Repository: lizhi5753186/OnlineStore Branch: master Commit: e5aa45a51d0f Files: 547 Total size: 38.7 MB Directory structure: gitextract_wa3viklp/ ├── .gitattributes ├── .gitignore ├── .nuget/ │ ├── NuGet.Config │ └── NuGet.targets ├── OnlineStore.Application/ │ ├── AddressResolver.cs │ ├── App_Data/ │ │ ├── OnlineStore.mdf │ │ └── OnlineStore_log.ldf │ ├── ApplicationService.cs │ ├── Global.asax │ ├── Global.asax.cs │ ├── InversedAddressResolver.cs │ ├── Logs/ │ │ └── onlinestore.txt │ ├── OnlineStore.Application.csproj │ ├── OrderService.svc │ ├── OrderService.svc.cs │ ├── ProductService.svc │ ├── ProductService.svc.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── ServiceImplementations/ │ │ ├── OrderServiceImp.cs │ │ ├── ProductServiceImp.cs │ │ └── UserServiceImp.cs │ ├── UserService.svc │ ├── UserService.svc.cs │ ├── Web.Debug.config │ ├── Web.Release.config │ ├── Web.config │ └── packages.config ├── OnlineStore.Domain/ │ ├── DomainException.cs │ ├── Events/ │ │ ├── DomainEvent.cs │ │ ├── EventHandlers/ │ │ │ ├── OrderConfirmedEventHandler.cs │ │ │ └── OrderDispatchedEventHandler.cs │ │ ├── IDomainEvent.cs │ │ ├── IDomainEventHandler.cs │ │ ├── OrderConfirmedEvent.cs │ │ └── OrderDispatchedEvent.cs │ ├── IAggregateRoot.cs │ ├── IEntity.cs │ ├── Model/ │ │ ├── Address.cs │ │ ├── AggregateRoot.cs │ │ ├── Category.cs │ │ ├── Order.cs │ │ ├── OrderItem.cs │ │ ├── OrderStatus.cs │ │ ├── Product.cs │ │ ├── ProductCategorization.cs │ │ ├── Role.cs │ │ ├── ShoppingCart.cs │ │ ├── ShoppingCartItem.cs │ │ ├── User.cs │ │ └── UserRole.cs │ ├── OnlineStore.Domain.csproj │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── Repositories/ │ │ ├── ICategoryRepository.cs │ │ ├── IOrderRepository.cs │ │ ├── IProductCategorizationRepository.cs │ │ ├── IProductRepository.cs │ │ ├── IRepository.cs │ │ ├── IRepositoryContext.cs │ │ ├── IRoleRepository.cs │ │ ├── IShoppingCartItemRepository.cs │ │ ├── IShoppingCartRepository.cs │ │ ├── IUserRepository.cs │ │ ├── IUserRoleRepository.cs │ │ └── SortOrder.cs │ ├── Services/ │ │ ├── DomainService.cs │ │ └── IDomainService.cs │ ├── Specifications/ │ │ ├── AnySpecification.cs │ │ ├── ExpressionSpecification.cs │ │ ├── ISpecification.cs │ │ ├── ParameterReplacer.cs │ │ ├── SpecExprExtensions.cs │ │ └── Specification.cs │ └── app.config ├── OnlineStore.Events/ │ ├── Bus/ │ │ ├── EventBus.cs │ │ ├── IBus.cs │ │ ├── IEventBus.cs │ │ ├── MsmqBusOptions.cs │ │ └── MsmqEventBus.cs │ ├── EventAggregator.cs │ ├── HandlesAsynchronouslyAttribute.cs │ ├── IEvent.cs │ ├── IEventAggregator.cs │ ├── IEventHandler.cs │ ├── OnlineStore.Events.csproj │ ├── Properties/ │ │ └── AssemblyInfo.cs │ └── app.config ├── OnlineStore.Events.Handlers/ │ ├── OnlineStore.Events.Handlers.csproj │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── SendEmailHandler.cs │ └── app.config ├── OnlineStore.Infrastructure/ │ ├── Caching/ │ │ ├── AppfabricCacheProvider.cs │ │ ├── CacheAttribute.cs │ │ ├── CachingMethod.cs │ │ ├── EntLibCacheProvider.cs │ │ └── ICacheProvider.cs │ ├── DisposableObject.cs │ ├── IUnitOfWork.cs │ ├── InterceptionBehaviors/ │ │ ├── CachingBehavior.cs │ │ └── ExceptionLoggingBehavior.cs │ ├── OnlineStore.Infrastructure.csproj │ ├── PagedResult.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── ServiceLocator.cs │ ├── Utils.cs │ ├── app.config │ └── packages.config ├── OnlineStore.ModelDTO/ │ ├── OnlineStore.ModelDTO.csproj │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── Service References/ │ │ ├── OrderService/ │ │ │ ├── OnlineStore.ModelDTO.OrderService.ShoppingCart.datasource │ │ │ ├── OrderService.disco │ │ │ ├── OrderService.wsdl │ │ │ ├── OrderService.xsd │ │ │ ├── OrderService1.xsd │ │ │ ├── OrderService2.xsd │ │ │ ├── Reference.cs │ │ │ ├── Reference.svcmap │ │ │ ├── configuration.svcinfo │ │ │ └── configuration91.svcinfo │ │ └── ProductService/ │ │ ├── OnlineStore.ModelDTO.ProductService.Category.datasource │ │ ├── OnlineStore.ModelDTO.ProductService.Product.datasource │ │ ├── ProductService.disco │ │ ├── ProductService.wsdl │ │ ├── ProductService.xsd │ │ ├── ProductService1.wsdl │ │ ├── ProductService1.xsd │ │ ├── ProductService2.xsd │ │ ├── Reference.cs │ │ ├── Reference.svcmap │ │ ├── configuration.svcinfo │ │ └── configuration91.svcinfo │ └── app.config ├── OnlineStore.Repositories/ │ ├── App.config │ ├── EntityFramework/ │ │ ├── CategoryRepository.cs │ │ ├── EntityFrameworkRepository.cs │ │ ├── EntityFrameworkRepositoryContext.cs │ │ ├── IEntityFrameworkRepositoryContext.cs │ │ ├── ModelConfigurations/ │ │ │ ├── CategoryTypeConfiguration.cs │ │ │ ├── OrderItemTypeConfiguration.cs │ │ │ ├── OrderTypeConfiguration.cs │ │ │ ├── ProductCategorizationTypeConfiguration.cs │ │ │ ├── ProductTypeConfiguration.cs │ │ │ ├── RoleTypeConfiguration.cs │ │ │ ├── ShoppingCartItemTypeConfiguration.cs │ │ │ ├── ShoppingCartTypeConfiguration.cs │ │ │ ├── UserRoleTypeConfiguration.cs │ │ │ └── UserTypeConfiguration.cs │ │ ├── OnlineStoreDbContext.cs │ │ ├── OnlineStoreDbContextInitailizer.cs │ │ ├── OrderRepository.cs │ │ ├── ProductCategorizationRepository.cs │ │ ├── ProductRepository.cs │ │ ├── RoleRepository.cs │ │ ├── ShoppingCartItemRepository.cs │ │ ├── ShoppingCartRepository.cs │ │ ├── SortByExtension.cs │ │ ├── UserRepository.cs │ │ └── UserRoleRepository.cs │ ├── OnlineStore.Repositories.csproj │ ├── Properties/ │ │ └── AssemblyInfo.cs │ └── packages.config ├── OnlineStore.ServiceContract/ │ ├── IOrderService.cs │ ├── IProductService.cs │ ├── IUserService.cs │ ├── ModelDTOs/ │ │ ├── AddressDto.cs │ │ ├── CategoryDto.cs │ │ ├── FaultData.cs │ │ ├── OrderDto.cs │ │ ├── OrderItemDto.cs │ │ ├── OrderStatusDto.cs │ │ ├── Pagination.cs │ │ ├── ProductCategorizationDto.cs │ │ ├── ProductDto.cs │ │ ├── ProductDtoWithPagination.cs │ │ ├── RoleDto.cs │ │ ├── ShoppingCartDto.cs │ │ ├── ShoppingCartItemDto.cs │ │ └── UserDto.cs │ ├── OnlineStore.ServiceContracts.csproj │ ├── Properties/ │ │ └── AssemblyInfo.cs │ └── app.config ├── OnlineStore.Web/ │ ├── App_Code/ │ │ ├── HtmlExtension.cs │ │ ├── PermissionKeys.cs │ │ └── UrlHelperExtension.cs │ ├── App_Start/ │ │ ├── AuthConfig.cs │ │ ├── BundleConfig.cs │ │ ├── FilterConfig.cs │ │ ├── RouteConfig.cs │ │ └── WebApiConfig.cs │ ├── Content/ │ │ ├── Site.css │ │ ├── themes/ │ │ │ └── base/ │ │ │ ├── jquery-ui.css │ │ │ ├── jquery.ui.accordion.css │ │ │ ├── jquery.ui.all.css │ │ │ ├── jquery.ui.autocomplete.css │ │ │ ├── jquery.ui.base.css │ │ │ ├── jquery.ui.button.css │ │ │ ├── jquery.ui.core.css │ │ │ ├── jquery.ui.datepicker.css │ │ │ ├── jquery.ui.dialog.css │ │ │ ├── jquery.ui.progressbar.css │ │ │ ├── jquery.ui.resizable.css │ │ │ ├── jquery.ui.selectable.css │ │ │ ├── jquery.ui.slider.css │ │ │ ├── jquery.ui.tabs.css │ │ │ └── jquery.ui.theme.css │ │ ├── uploadify.css │ │ └── uploadify.swf │ ├── Controllers/ │ │ ├── AccountController.cs │ │ ├── AdminController.cs │ │ ├── ControllerBase.cs │ │ ├── HomeController.cs │ │ └── LayoutController.cs │ ├── Global.asax │ ├── Global.asax.cs │ ├── Membership/ │ │ ├── OnlineStoreMembershipProvider.cs │ │ └── OnlineStoreMembershipUser.cs │ ├── MvcSiteMap.cs │ ├── OnlineStore.Web.csproj │ ├── OnlineStore.Web.csproj.DotSettings │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── Scripts/ │ │ ├── _references.js │ │ ├── hoverIntent.js │ │ ├── jquery-1.7.1.intellisense.js │ │ ├── jquery-1.7.1.js │ │ ├── jquery-ui-1.8.20.js │ │ ├── jquery.unobtrusive-ajax.js │ │ ├── jquery.uploadify.js │ │ ├── jquery.validate-vsdoc.js │ │ ├── jquery.validate.js │ │ ├── jquery.validate.unobtrusive.js │ │ ├── knockout-2.1.0.debug.js │ │ ├── knockout-2.1.0.js │ │ ├── modernizr-2.5.3.js │ │ ├── superfish.js │ │ └── supersubs.js │ ├── Service References/ │ │ ├── OnlineStoreDto.Partial.cs │ │ ├── OrderService/ │ │ │ ├── OnlineStore.Web.OrderService.OrderDto.datasource │ │ │ ├── OnlineStore.Web.OrderService.ShoppingCartDto.datasource │ │ │ ├── OrderService.disco │ │ │ ├── OrderService.wsdl │ │ │ ├── OrderService.xsd │ │ │ ├── OrderService1.xsd │ │ │ ├── OrderService2.xsd │ │ │ ├── Reference.cs │ │ │ ├── Reference.svcmap │ │ │ ├── configuration.svcinfo │ │ │ └── configuration91.svcinfo │ │ ├── ProductService/ │ │ │ ├── OnlineStore.Web.ProductService.CategoryDto.datasource │ │ │ ├── OnlineStore.Web.ProductService.ProductCategorizationDto.datasource │ │ │ ├── OnlineStore.Web.ProductService.ProductDto.datasource │ │ │ ├── OnlineStore.Web.ProductService.ProductDtoWithPagination.datasource │ │ │ ├── ProductService.disco │ │ │ ├── ProductService.wsdl │ │ │ ├── ProductService.xsd │ │ │ ├── ProductService1.wsdl │ │ │ ├── ProductService1.xsd │ │ │ ├── ProductService2.xsd │ │ │ ├── ProductService3.xsd │ │ │ ├── Reference.cs │ │ │ ├── Reference.svcmap │ │ │ ├── configuration.svcinfo │ │ │ └── configuration91.svcinfo │ │ └── UserService/ │ │ ├── OnlineStore.Web.UserService.OrderDto.datasource │ │ ├── OnlineStore.Web.UserService.RoleDto.datasource │ │ ├── OnlineStore.Web.UserService.UserDto.datasource │ │ ├── Reference.cs │ │ ├── Reference.svcmap │ │ ├── UserService.disco │ │ ├── UserService.wsdl │ │ ├── UserService.xsd │ │ ├── UserService1.wsdl │ │ ├── UserService1.xsd │ │ ├── UserService2.xsd │ │ ├── UserService3.xsd │ │ ├── configuration.svcinfo │ │ └── configuration91.svcinfo │ ├── SiteMap.xml │ ├── ViewModels/ │ │ ├── LoginViewModel.cs │ │ └── UserAccountModel.cs │ ├── Views/ │ │ ├── Account/ │ │ │ ├── Login.cshtml │ │ │ ├── Manage.cshtml │ │ │ └── Register.cshtml │ │ ├── Admin/ │ │ │ ├── AddCategory.cshtml │ │ │ ├── AddProduct.cshtml │ │ │ ├── AddRole.cshtml │ │ │ ├── AddUserAccount.cshtml │ │ │ ├── Administration.cshtml │ │ │ ├── Categories.cshtml │ │ │ ├── EditCategory.cshtml │ │ │ ├── EditProduct.cshtml │ │ │ ├── EditRole.cshtml │ │ │ ├── EditUserAccount.cshtml │ │ │ ├── Order.cshtml │ │ │ ├── Orders.cshtml │ │ │ ├── Products.cshtml │ │ │ ├── Roles.cshtml │ │ │ └── UserAccounts.cshtml │ │ ├── Home/ │ │ │ ├── About.cshtml │ │ │ ├── Category.cshtml │ │ │ ├── Checkout.cshtml │ │ │ ├── Contact.cshtml │ │ │ ├── Index.cshtml │ │ │ ├── Order.cshtml │ │ │ ├── Orders.cshtml │ │ │ ├── ProductDetail.cshtml │ │ │ ├── ShoppingCart.cshtml │ │ │ └── SuccessPage.cshtml │ │ ├── Shared/ │ │ │ ├── CategoriesPartial.cshtml │ │ │ ├── Error.cshtml │ │ │ ├── NewProductsPartial.cshtml │ │ │ ├── ProductsPartial.cshtml │ │ │ ├── _Layout.cshtml │ │ │ └── _LoginPartial.cshtml │ │ ├── Web.config │ │ └── _ViewStart.cshtml │ ├── Web.Debug.config │ ├── Web.Release.config │ ├── Web.config │ └── packages.config ├── OnlineStore.sln ├── README.md ├── Scripts/ │ ├── dbo.Categories.data.sql │ ├── dbo.ProductCategorizations.data.sql │ ├── dbo.Products.data.sql │ ├── dbo.Roles.sql │ ├── dbo.UserRoles.data.sql │ └── dbo.Users.data.sql └── packages/ ├── Antlr.3.4.1.9004/ │ └── Antlr.3.4.1.9004.nupkg ├── Antlr.3.5.0.2/ │ └── Antlr.3.5.0.2.nupkg ├── AutoMapper.3.3.1/ │ ├── AutoMapper.3.3.1.nupkg │ ├── lib/ │ │ ├── MonoAndroid/ │ │ │ └── AutoMapper.xml │ │ ├── MonoTouch/ │ │ │ └── AutoMapper.xml │ │ ├── net40/ │ │ │ └── AutoMapper.xml │ │ ├── portable-windows8+net40+wp8+sl5+MonoAndroid+MonoTouch/ │ │ │ └── AutoMapper.xml │ │ ├── portable-windows8+net40+wp8+wpa81+sl5+MonoAndroid+MonoTouch/ │ │ │ └── AutoMapper.xml │ │ ├── sl5/ │ │ │ └── AutoMapper.xml │ │ ├── windows8/ │ │ │ └── AutoMapper.xml │ │ ├── wp8/ │ │ │ └── AutoMapper.xml │ │ └── wpa81/ │ │ └── AutoMapper.xml │ └── tools/ │ ├── AutoMapper.targets │ ├── MonoAndroid/ │ │ ├── Install.ps1 │ │ └── uninstall.ps1 │ ├── MonoTouch/ │ │ ├── Install.ps1 │ │ └── uninstall.ps1 │ ├── net40/ │ │ ├── Install.ps1 │ │ └── uninstall.ps1 │ ├── sl5/ │ │ ├── Install.ps1 │ │ └── uninstall.ps1 │ ├── windows8/ │ │ ├── Install.ps1 │ │ └── uninstall.ps1 │ ├── wp8/ │ │ ├── Install.ps1 │ │ └── uninstall.ps1 │ └── wpa81/ │ ├── Install.ps1 │ └── uninstall.ps1 ├── CommonServiceLocator.1.3/ │ ├── CommonServiceLocator.1.3.nupkg │ └── lib/ │ └── portable-net4+sl5+netcore45+wpa81+wp8/ │ └── Microsoft.Practices.ServiceLocation.XML ├── DotNetOpenAuth.AspNet.4.0.3.12153/ │ ├── DotNetOpenAuth.AspNet.4.0.3.12153.nupkg │ └── lib/ │ └── net40-full/ │ └── DotNetOpenAuth.AspNet.xml ├── DotNetOpenAuth.AspNet.4.3.0.13117/ │ ├── DotNetOpenAuth.AspNet.4.3.0.13117.nupkg │ └── lib/ │ ├── net40-full/ │ │ └── DotNetOpenAuth.AspNet.xml │ └── net45-full/ │ └── DotNetOpenAuth.AspNet.xml ├── DotNetOpenAuth.Core.4.0.3.12153/ │ ├── DotNetOpenAuth.Core.4.0.3.12153.nupkg │ ├── content/ │ │ └── web.config.transform │ └── lib/ │ ├── net35-full/ │ │ └── DotNetOpenAuth.Core.xml │ └── net40-full/ │ └── DotNetOpenAuth.Core.xml ├── DotNetOpenAuth.Core.4.3.0.13117/ │ ├── DotNetOpenAuth.Core.4.3.0.13117.nupkg │ ├── content/ │ │ └── web.config.transform │ └── lib/ │ ├── net35-full/ │ │ └── DotNetOpenAuth.Core.xml │ ├── net40-full/ │ │ └── DotNetOpenAuth.Core.xml │ └── net45-full/ │ └── DotNetOpenAuth.Core.xml ├── DotNetOpenAuth.OAuth.Consumer.4.0.3.12153/ │ ├── DotNetOpenAuth.OAuth.Consumer.4.0.3.12153.nupkg │ └── lib/ │ ├── net35-full/ │ │ └── DotNetOpenAuth.OAuth.Consumer.xml │ └── net40-full/ │ └── DotNetOpenAuth.OAuth.Consumer.xml ├── DotNetOpenAuth.OAuth.Consumer.4.3.0.13117/ │ ├── DotNetOpenAuth.OAuth.Consumer.4.3.0.13117.nupkg │ └── lib/ │ ├── net35-full/ │ │ └── DotNetOpenAuth.OAuth.Consumer.xml │ ├── net40-full/ │ │ └── DotNetOpenAuth.OAuth.Consumer.xml │ └── net45-full/ │ └── DotNetOpenAuth.OAuth.Consumer.xml ├── DotNetOpenAuth.OAuth.Core.4.0.3.12153/ │ ├── DotNetOpenAuth.OAuth.Core.4.0.3.12153.nupkg │ ├── content/ │ │ └── web.config.transform │ └── lib/ │ ├── net35-full/ │ │ └── DotNetOpenAuth.OAuth.xml │ └── net40-full/ │ └── DotNetOpenAuth.OAuth.xml ├── DotNetOpenAuth.OAuth.Core.4.3.0.13117/ │ ├── DotNetOpenAuth.OAuth.Core.4.3.0.13117.nupkg │ ├── content/ │ │ └── web.config.transform │ └── lib/ │ ├── net35-full/ │ │ └── DotNetOpenAuth.OAuth.xml │ ├── net40-full/ │ │ └── DotNetOpenAuth.OAuth.xml │ └── net45-full/ │ └── DotNetOpenAuth.OAuth.xml ├── DotNetOpenAuth.OpenId.Core.4.0.3.12153/ │ ├── DotNetOpenAuth.OpenId.Core.4.0.3.12153.nupkg │ ├── content/ │ │ └── web.config.transform │ └── lib/ │ ├── net35-full/ │ │ ├── DotNetOpenAuth.OpenId.xml │ │ ├── Mono.Math.xml │ │ └── Org.Mentalis.Security.Cryptography.xml │ └── net40-full/ │ ├── DotNetOpenAuth.OpenId.xml │ ├── Mono.Math.xml │ └── Org.Mentalis.Security.Cryptography.xml ├── DotNetOpenAuth.OpenId.Core.4.3.0.13117/ │ ├── DotNetOpenAuth.OpenId.Core.4.3.0.13117.nupkg │ ├── content/ │ │ ├── net35-full/ │ │ │ └── web.config.transform │ │ ├── net40-full/ │ │ │ └── web.config.transform │ │ └── net45-full/ │ │ └── web.config.transform │ └── lib/ │ ├── net35-full/ │ │ ├── DotNetOpenAuth.OpenId.xml │ │ ├── Mono.Math.xml │ │ └── Org.Mentalis.Security.Cryptography.xml │ ├── net40-full/ │ │ ├── DotNetOpenAuth.OpenId.xml │ │ ├── Mono.Math.xml │ │ └── Org.Mentalis.Security.Cryptography.xml │ └── net45-full/ │ ├── DotNetOpenAuth.OpenId.xml │ ├── Mono.Math.xml │ └── Org.Mentalis.Security.Cryptography.xml ├── DotNetOpenAuth.OpenId.RelyingParty.4.0.3.12153/ │ ├── DotNetOpenAuth.OpenId.RelyingParty.4.0.3.12153.nupkg │ ├── content/ │ │ └── web.config.transform │ └── lib/ │ ├── net35-full/ │ │ └── DotNetOpenAuth.OpenId.RelyingParty.xml │ └── net40-full/ │ └── DotNetOpenAuth.OpenId.RelyingParty.xml ├── DotNetOpenAuth.OpenId.RelyingParty.4.3.0.13117/ │ ├── DotNetOpenAuth.OpenId.RelyingParty.4.3.0.13117.nupkg │ ├── content/ │ │ └── web.config.transform │ └── lib/ │ ├── net35-full/ │ │ └── DotNetOpenAuth.OpenId.RelyingParty.xml │ ├── net40-full/ │ │ └── DotNetOpenAuth.OpenId.RelyingParty.xml │ └── net45-full/ │ └── DotNetOpenAuth.OpenId.RelyingParty.xml ├── EnterpriseLibrary.Caching.5.0.505.0/ │ ├── EnterpriseLibrary.Caching.5.0.505.0.nupkg │ ├── lib/ │ │ ├── NET35/ │ │ │ └── Microsoft.Practices.EnterpriseLibrary.Caching.xml │ │ └── SL40/ │ │ └── Microsoft.Practices.EnterpriseLibrary.Caching.Silverlight.xml │ └── tools/ │ ├── Utils.psm1 │ └── install.ps1 ├── EnterpriseLibrary.Common.5.0.505.0/ │ ├── EnterpriseLibrary.Common.5.0.505.0.nupkg │ ├── lib/ │ │ ├── NET35/ │ │ │ └── Microsoft.Practices.EnterpriseLibrary.Common.xml │ │ └── SL40/ │ │ └── Microsoft.Practices.EnterpriseLibrary.Common.Silverlight.xml │ └── tools/ │ ├── Utils.psm1 │ └── install.ps1 ├── EntityFramework.5.0.0/ │ ├── Content/ │ │ ├── App.config.transform │ │ └── Web.config.transform │ ├── EntityFramework.5.0.0.nupkg │ ├── lib/ │ │ ├── net40/ │ │ │ └── EntityFramework.xml │ │ └── net45/ │ │ └── EntityFramework.xml │ └── tools/ │ ├── EntityFramework.PS3.psd1 │ ├── EntityFramework.psd1 │ ├── EntityFramework.psm1 │ ├── Redirect.VS11.config │ ├── Redirect.config │ ├── about_EntityFramework.help.txt │ ├── init.ps1 │ └── install.ps1 ├── EntityFramework.6.1.3/ │ ├── EntityFramework.6.1.3.nupkg │ ├── content/ │ │ ├── App.config.transform │ │ └── Web.config.transform │ ├── lib/ │ │ ├── net40/ │ │ │ ├── EntityFramework.SqlServer.xml │ │ │ └── EntityFramework.xml │ │ └── net45/ │ │ ├── EntityFramework.SqlServer.xml │ │ └── EntityFramework.xml │ └── tools/ │ ├── EntityFramework.psd1 │ ├── EntityFramework.psm1 │ ├── about_EntityFramework.help.txt │ ├── init.ps1 │ └── install.ps1 ├── Microsoft.AspNet.Mvc.4.0.20710.0/ │ ├── Microsoft.AspNet.Mvc.4.0.20710.0.nupkg │ └── lib/ │ └── net40/ │ └── System.Web.Mvc.xml ├── Microsoft.AspNet.Razor.2.0.20710.0/ │ ├── Microsoft.AspNet.Razor.2.0.20710.0.nupkg │ └── lib/ │ └── net40/ │ └── System.Web.Razor.xml ├── Microsoft.AspNet.Web.Optimization.1.0.0/ │ └── Microsoft.AspNet.Web.Optimization.1.0.0.nupkg ├── Microsoft.AspNet.WebApi.4.0.20710.0/ │ └── Microsoft.AspNet.WebApi.4.0.20710.0.nupkg ├── Microsoft.AspNet.WebApi.Client.4.0.20710.0/ │ ├── Microsoft.AspNet.WebApi.Client.4.0.20710.0.nupkg │ └── lib/ │ └── net40/ │ └── System.Net.Http.Formatting.xml ├── Microsoft.AspNet.WebApi.Core.4.0.20710.0/ │ ├── Microsoft.AspNet.WebApi.Core.4.0.20710.0.nupkg │ ├── content/ │ │ └── web.config.transform │ └── lib/ │ └── net40/ │ └── System.Web.Http.xml ├── Microsoft.AspNet.WebApi.WebHost.4.0.20710.0/ │ ├── Microsoft.AspNet.WebApi.WebHost.4.0.20710.0.nupkg │ └── lib/ │ └── net40/ │ └── System.Web.Http.WebHost.xml ├── Microsoft.AspNet.WebPages.2.0.20710.0/ │ ├── Microsoft.AspNet.WebPages.2.0.20710.0.nupkg │ └── lib/ │ └── net40/ │ ├── System.Web.Helpers.xml │ ├── System.Web.WebPages.Deployment.xml │ ├── System.Web.WebPages.Razor.xml │ └── System.Web.WebPages.xml ├── Microsoft.AspNet.WebPages.Data.2.0.20710.0/ │ ├── Microsoft.AspNet.WebPages.Data.2.0.20710.0.nupkg │ └── lib/ │ └── net40/ │ └── WebMatrix.Data.xml ├── Microsoft.AspNet.WebPages.OAuth.2.0.20710.0/ │ ├── Microsoft.AspNet.WebPages.OAuth.2.0.20710.0.nupkg │ └── lib/ │ └── net40/ │ └── Microsoft.Web.WebPages.OAuth.xml ├── Microsoft.AspNet.WebPages.WebData.2.0.20710.0/ │ ├── Microsoft.AspNet.WebPages.WebData.2.0.20710.0.nupkg │ └── lib/ │ └── net40/ │ └── WebMatrix.WebData.xml ├── Microsoft.Net.Http.2.0.20710.0/ │ ├── Microsoft.Net.Http.2.0.20710.0.nupkg │ └── lib/ │ ├── net40/ │ │ ├── System.Net.Http.WebRequest.xml │ │ └── System.Net.Http.xml │ └── net45/ │ └── _._ ├── Microsoft.Web.Infrastructure.1.0.0.0/ │ └── Microsoft.Web.Infrastructure.1.0.0.0.nupkg ├── Microsoft.jQuery.Unobtrusive.Ajax.2.0.20710.0/ │ ├── Content/ │ │ └── Scripts/ │ │ └── jquery.unobtrusive-ajax.js │ └── Microsoft.jQuery.Unobtrusive.Ajax.2.0.20710.0.nupkg ├── Microsoft.jQuery.Unobtrusive.Validation.2.0.20710.0/ │ ├── Content/ │ │ └── Scripts/ │ │ └── jquery.validate.unobtrusive.js │ └── Microsoft.jQuery.Unobtrusive.Validation.2.0.20710.0.nupkg ├── Modernizr.2.5.3/ │ ├── Content/ │ │ └── Scripts/ │ │ └── modernizr-2.5.3.js │ └── Modernizr.2.5.3.nupkg ├── Newtonsoft.Json.4.5.6/ │ ├── Newtonsoft.Json.4.5.6.nupkg │ └── lib/ │ ├── net20/ │ │ └── Newtonsoft.Json.xml │ ├── net35/ │ │ └── Newtonsoft.Json.xml │ ├── net40/ │ │ └── Newtonsoft.Json.xml │ ├── sl3-wp/ │ │ └── Newtonsoft.Json.xml │ ├── sl4/ │ │ └── Newtonsoft.Json.xml │ ├── sl4-windowsphone71/ │ │ └── Newtonsoft.Json.xml │ └── winrt45/ │ └── Newtonsoft.Json.xml ├── Unity.3.5.1404.0/ │ ├── Unity.3.5.1404.0.nupkg │ ├── UnityConfiguration30.xsd │ └── lib/ │ ├── net45/ │ │ ├── Microsoft.Practices.Unity.Configuration.XML │ │ ├── Microsoft.Practices.Unity.RegistrationByConvention.XML │ │ └── Microsoft.Practices.Unity.xml │ ├── portable-net45+wp80+win8+MonoAndroid10+MonoTouch10/ │ │ └── Microsoft.Practices.Unity.xml │ ├── win8/ │ │ ├── Microsoft.Practices.Unity.RegistrationByConvention.XML │ │ ├── Microsoft.Practices.Unity.RegistrationByConvention.pri │ │ └── Microsoft.Practices.Unity.xml │ └── wp80/ │ ├── Microsoft.Practices.Unity.RegistrationByConvention.XML │ └── Microsoft.Practices.Unity.xml ├── Unity.Interception.3.5.1404.0/ │ ├── Unity.Interception.3.5.1404.0.nupkg │ └── lib/ │ └── Net45/ │ ├── Microsoft.Practices.Unity.Interception.Configuration.xml │ └── Microsoft.Practices.Unity.Interception.xml ├── WebGrease.1.1.0/ │ └── WebGrease.1.1.0.nupkg ├── jQuery.1.7.1.1/ │ ├── Content/ │ │ └── Scripts/ │ │ ├── jquery-1.7.1-vsdoc.js │ │ └── jquery-1.7.1.js │ ├── Tools/ │ │ ├── common.ps1 │ │ ├── install.ps1 │ │ ├── jquery-1.7.1.intellisense.js │ │ └── uninstall.ps1 │ └── jQuery.1.7.1.1.nupkg ├── jQuery.UI.Combined.1.8.20.1/ │ ├── Content/ │ │ ├── Content/ │ │ │ └── themes/ │ │ │ └── base/ │ │ │ ├── jquery-ui.css │ │ │ ├── jquery.ui.accordion.css │ │ │ ├── jquery.ui.all.css │ │ │ ├── jquery.ui.autocomplete.css │ │ │ ├── jquery.ui.base.css │ │ │ ├── jquery.ui.button.css │ │ │ ├── jquery.ui.core.css │ │ │ ├── jquery.ui.datepicker.css │ │ │ ├── jquery.ui.dialog.css │ │ │ ├── jquery.ui.progressbar.css │ │ │ ├── jquery.ui.resizable.css │ │ │ ├── jquery.ui.selectable.css │ │ │ ├── jquery.ui.slider.css │ │ │ ├── jquery.ui.tabs.css │ │ │ └── jquery.ui.theme.css │ │ └── Scripts/ │ │ └── jquery-ui-1.8.20.js │ └── jQuery.UI.Combined.1.8.20.1.nupkg ├── jQuery.Validation.1.9.0.1/ │ ├── Content/ │ │ └── Scripts/ │ │ ├── jquery.validate-vsdoc.js │ │ └── jquery.validate.js │ └── jQuery.Validation.1.9.0.1.nupkg ├── knockoutjs.2.1.0/ │ ├── Content/ │ │ └── Scripts/ │ │ ├── knockout-2.1.0.debug.js │ │ └── knockout-2.1.0.js │ └── knockoutjs.2.1.0.nupkg ├── log4net.2.0.3/ │ ├── lib/ │ │ ├── net10-full/ │ │ │ └── log4net.xml │ │ ├── net11-full/ │ │ │ └── log4net.xml │ │ ├── net20-full/ │ │ │ └── log4net.xml │ │ ├── net35-client/ │ │ │ └── log4net.xml │ │ ├── net35-full/ │ │ │ └── log4net.xml │ │ ├── net40-client/ │ │ │ └── log4net.xml │ │ └── net40-full/ │ │ └── log4net.xml │ └── log4net.2.0.3.nupkg └── repositories.config ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitattributes ================================================ # Auto detect text files and perform LF normalization * text=auto # Custom for Visual Studio *.cs diff=csharp *.sln merge=union *.csproj merge=union *.vbproj merge=union *.fsproj merge=union *.dbproj merge=union # Standard to msysgit *.doc diff=astextplain *.DOC diff=astextplain *.docx diff=astextplain *.DOCX diff=astextplain *.dot diff=astextplain *.DOT diff=astextplain *.pdf diff=astextplain *.PDF diff=astextplain *.rtf diff=astextplain *.RTF diff=astextplain ================================================ FILE: .gitignore ================================================ ################# ## Eclipse ################# *.pydevproject .project .metadata bin/ tmp/ *.tmp *.bak *.swp *~.nib local.properties .classpath .settings/ .loadpath # External tool builders .externalToolBuilders/ # Locally stored "Eclipse launch configurations" *.launch # CDT-specific .cproject # PDT-specific .buildpath ################# ## Visual Studio ################# ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. # User-specific files *.suo *.user *.sln.docstates # Build results [Dd]ebug/ [Rr]elease/ x64/ build/ [Bb]in/ [Oo]bj/ # MSTest test Results [Tt]est[Rr]esult*/ [Bb]uild[Ll]og.* *_i.c *_p.c *.ilk *.meta *.obj *.pch *.pdb *.pgc *.pgd *.rsp *.sbr *.tlb *.tli *.tlh *.tmp *.tmp_proj *.log *.vspscc *.vssscc .builds *.pidb *.log *.scc # Visual C++ cache files ipch/ *.aps *.ncb *.opensdf *.sdf *.cachefile # Visual Studio profiler *.psess *.vsp *.vspx # Guidance Automation Toolkit *.gpState # ReSharper is a .NET coding add-in _ReSharper*/ *.[Rr]e[Ss]harper # TeamCity is a build add-in _TeamCity* # DotCover is a Code Coverage Tool *.dotCover # NCrunch *.ncrunch* .*crunch*.local.xml # Installshield output folder [Ee]xpress/ # DocProject is a documentation generator add-in DocProject/buildhelp/ DocProject/Help/*.HxT DocProject/Help/*.HxC DocProject/Help/*.hhc DocProject/Help/*.hhk DocProject/Help/*.hhp DocProject/Help/Html2 DocProject/Help/html # Click-Once directory publish/ # Publish Web Output *.Publish.xml *.pubxml # NuGet Packages Directory ## TODO: If you have NuGet Package Restore enabled, uncomment the next line #packages/ # Windows Azure Build Output csx *.build.csdef # Windows Store app package directory AppPackages/ # Others sql/ *.Cache ClientBin/ [Ss]tyle[Cc]op.* ~$* *~ *.dbmdl *.[Pp]ublish.xml *.pfx *.publishsettings # RIA/Silverlight projects Generated_Code/ # Backup & report files from converting an old project file to a newer # Visual Studio version. Backup files are not needed, because we have git ;-) _UpgradeReport_Files/ Backup*/ UpgradeLog*.XML UpgradeLog*.htm # SQL Server files App_Data/*.mdf App_Data/*.ldf ############# ## Windows detritus ############# # Windows image file caches Thumbs.db ehthumbs.db # Folder config file Desktop.ini # Recycle Bin used on file shares $RECYCLE.BIN/ # Mac crap .DS_Store ############# ## Python ############# *.py[co] # Packages *.egg *.egg-info dist/ build/ eggs/ parts/ var/ sdist/ develop-eggs/ .installed.cfg # Installer logs pip-log.txt # Unit test / coverage reports .coverage .tox #Translations *.mo #Mr Developer .mr.developer.cfg ================================================ FILE: .nuget/NuGet.Config ================================================  ================================================ FILE: .nuget/NuGet.targets ================================================ $(MSBuildProjectDirectory)\..\ false false true false $([System.IO.Path]::Combine($(SolutionDir), ".nuget")) $(SolutionDir).nuget $(MSBuildProjectDirectory)\packages.$(MSBuildProjectName.Replace(' ', '_')).config $(MSBuildProjectDirectory)\packages.$(MSBuildProjectName).config $(MSBuildProjectDirectory)\packages.config $(PackagesProjectConfig) $(NuGetToolsPath)\NuGet.exe @(PackageSource) "$(NuGetExePath)" mono --runtime=v4.0.30319 "$(NuGetExePath)" $(TargetDir.Trim('\\')) -RequireConsent -NonInteractive "$(SolutionDir) " "$(SolutionDir)" $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch) -solutionDir $(PaddedSolutionDir) $(NuGetCommand) pack "$(ProjectPath)" -Properties "Configuration=$(Configuration);Platform=$(Platform)" $(NonInteractiveSwitch) -OutputDirectory "$(PackageOutputDir)" -symbols RestorePackages; $(BuildDependsOn); $(BuildDependsOn); BuildPackage; ================================================ FILE: OnlineStore.Application/AddressResolver.cs ================================================ using AutoMapper; using OnlineStore.Domain.Model; using OnlineStore.ServiceContracts.ModelDTOs; namespace OnlineStore.Application { public class AddressResolver : ValueResolver { protected override Address ResolveCore(AddressDto source) { return new Address { City = source.City, Country = source.Country, State = source.State, Street = source.Street, Zip = source.Zip }; } } } ================================================ FILE: OnlineStore.Application/ApplicationService.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using AutoMapper; using OnlineStore.Domain; using OnlineStore.Domain.Model; using OnlineStore.Domain.Repositories; using OnlineStore.ServiceContracts.ModelDTOs; using OrderStatus = OnlineStore.Domain.Model.OrderStatus; namespace OnlineStore.Application { // 定义一个应用服务抽象类,以便把重复的代码放在该抽象类中 public abstract class ApplicationService { private readonly IRepositoryContext _repositoryContext; protected ApplicationService(IRepositoryContext repositoryContext) { _repositoryContext = repositoryContext; } protected IRepositoryContext RepositorytContext { get { return this._repositoryContext; } } #region Protected Methods // 判断给定字符串是否是Guid.Empty protected bool IsEmptyGuidString(string s) { if (string.IsNullOrWhiteSpace(s)) return true; var guid = new Guid(s); return guid == Guid.Empty; } // 处理简单的聚合创建逻辑。 protected TDtoList PerformCreateObjects(TDtoList dataTransferObjects, IRepository repository, Action processDto = null, Action processAggregateRoot = null) where TDtoList : List, new() where TAggregateRoot : class, IAggregateRoot { if (dataTransferObjects == null) throw new ArgumentNullException("dataTransferObjects"); if (repository == null) throw new ArgumentNullException("repository"); TDtoList result = new TDtoList(); if (dataTransferObjects.Count <= 0) return result; var ars = new List(); foreach (var dto in dataTransferObjects) { if (processDto != null) processDto(dto); var ar = Mapper.Map(dto); if (processAggregateRoot != null) processAggregateRoot(ar); ars.Add(ar); repository.Add(ar); } RepositorytContext.Commit(); ars.ForEach(ar => result.Add(Mapper.Map(ar))); return result; } // 处理简单的聚合更新操作。 protected TDtoList PerformUpdateObjects(TDtoList dataTransferObjects, IRepository repository, Func idFunc, Action updateAction) where TDtoList : List, new() where TAggregateRoot : class, IAggregateRoot { if (dataTransferObjects == null) throw new ArgumentNullException("dataTransferObjects"); if (repository == null) throw new ArgumentNullException("repository"); if (idFunc == null) throw new ArgumentNullException("idFunc"); if (updateAction == null) throw new ArgumentNullException("updateAction"); TDtoList result = null; if (dataTransferObjects.Count > 0) { result = new TDtoList(); foreach (var dto in dataTransferObjects) { if (IsEmptyGuidString(idFunc(dto))) throw new ArgumentNullException("Id"); var id = new Guid(idFunc(dto)); var ar = repository.GetByKey(id); updateAction(ar, dto); repository.Update(ar); result.Add(Mapper.Map(ar)); } RepositorytContext.Commit(); } return result; } // 处理简单的删除聚合根的操作。 protected void PerformDeleteObjects(IList ids, IRepository repository, Action preDelete = null, Action postDelete = null) where TAggregateRoot : class, IAggregateRoot { if (ids == null) throw new ArgumentNullException("ids"); if (repository == null) throw new ArgumentNullException("repository"); foreach (var id in ids) { var guid = new Guid(id); if (preDelete != null) preDelete(guid); var ar = repository.GetByKey(guid); repository.Remove(ar); if (postDelete != null) postDelete(guid); } RepositorytContext.Commit(); } #endregion // AutoMapper框架的初始化 public static void Initialize() { Mapper.CreateMap(); Mapper.CreateMap() .ForMember(uMermber => uMermber.ContactAddress, mceUto=> mceUto.ResolveUsing().FromMember(fm=>fm.ContactAddress)) .ForMember(uMember => uMember.DeliveryAddress, mceUto => mceUto.ResolveUsing().FromMember(fm => fm.DeliveryAddress)); Mapper.CreateMap() .ForMember(udoMember => udoMember.ContactAddress, mceU => mceU.ResolveUsing().FromMember(fm => fm.ContactAddress)) .ForMember(udoMember => udoMember.DeliveryAddress, mceU => mceU.ResolveUsing().FromMember(fm => fm.DeliveryAddress)); Mapper.CreateMap(); Mapper.CreateMap(); Mapper.CreateMap(); Mapper.CreateMap(); Mapper.CreateMap(); Mapper.CreateMap(); Mapper.CreateMap(); Mapper.CreateMap(); Mapper.CreateMap(); Mapper.CreateMap(); Mapper.CreateMap() //.ForMember(odtoMember => odtoMember.Subtotal, // mceO => mceO.ResolveUsing( // o => o.OrderItems.Sum(item => item.ItemAmout))) .ForMember(odtoMember => odtoMember.UserContact, mceO => mceO.ResolveUsing(o => o.User.Contact)) .ForMember(odtoMember => odtoMember.UserPhone, mceO => mceO.ResolveUsing(o => o.User.PhoneNumber)) .ForMember(odtoMember => odtoMember.UserEmail, mceO => mceO.ResolveUsing(o => o.User.Email)) .ForMember(odtoMember => odtoMember.UserId, mceO => mceO.ResolveUsing(o => o.User.Id)) .ForMember(odtoMember => odtoMember.UserName, mceO => mceO.ResolveUsing(o => o.User.UserName)) .ForMember(odtoMember => odtoMember.UserAddressCountry, mceO => mceO.ResolveUsing(o => o.User.DeliveryAddress.Country)) .ForMember(odtoMember => odtoMember.UserAddressState, mceO => mceO.ResolveUsing(o => o.User.DeliveryAddress.State)) .ForMember(odtoMember => odtoMember.UserAddressCity, mceO => mceO.ResolveUsing(o => o.User.DeliveryAddress.City)) .ForMember(odtoMember => odtoMember.UserAddressStreet, mceO => mceO.ResolveUsing(o => o.User.DeliveryAddress.Street)) .ForMember(odtoMember => odtoMember.UserAddressZip, mceO => mceO.ResolveUsing(o => o.User.DeliveryAddress.Zip)) .ForMember(odtoMember => odtoMember.Status, mceO => mceO.ResolveUsing(o => { switch (o.Status) { case OrderStatus.Created: return OrderStatusDto.Created; case OrderStatus.Delivered: return OrderStatusDto.Delivered; case OrderStatus.Dispatched: return OrderStatusDto.Dispatched; case OrderStatus.Paid: return OrderStatusDto.Paid; case OrderStatus.Picked: return OrderStatusDto.Picked; default: throw new InvalidOperationException(); } })); Mapper.CreateMap(); Mapper.CreateMap(); Mapper.CreateMap(); Mapper.CreateMap(); Mapper.CreateMap(); } } } ================================================ FILE: OnlineStore.Application/Global.asax ================================================ <%@ Application Codebehind="Global.asax.cs" Inherits="OnlineStore.Application.Global" Language="C#" %> ================================================ FILE: OnlineStore.Application/Global.asax.cs ================================================ using System; using System.Web; using OnlineStore.Repositories.EntityFramework; namespace OnlineStore.Application { public class Global : HttpApplication { protected void Application_Start(object sender, EventArgs e) { OnlineStoreDbContextInitailizer.Initialize(); ApplicationService.Initialize(); log4net.Config.XmlConfigurator.Configure(); } protected void Session_Start(object sender, EventArgs e) { } protected void Application_BeginRequest(object sender, EventArgs e) { } protected void Application_AuthenticateRequest(object sender, EventArgs e) { } protected void Application_Error(object sender, EventArgs e) { } protected void Session_End(object sender, EventArgs e) { } protected void Application_End(object sender, EventArgs e) { } } } ================================================ FILE: OnlineStore.Application/InversedAddressResolver.cs ================================================ using AutoMapper; using OnlineStore.Domain.Model; using OnlineStore.ServiceContracts.ModelDTOs; namespace OnlineStore.Application { public class InversedAddressResolver : ValueResolver { protected override AddressDto ResolveCore(Address source) { return new AddressDto { City = source.City, Country = source.Country, State = source.State, Street = source.Street, Zip = source.Zip }; } } } ================================================ FILE: OnlineStore.Application/Logs/onlinestore.txt ================================================ ================================================ FILE: OnlineStore.Application/OnlineStore.Application.csproj ================================================  Debug AnyCPU 2.0 {C4B3BA5F-A38D-4E52-B49E-6D69E8619016} {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} Library Properties OnlineStore.Application OnlineStore.Application v4.5 True true ..\ true true full false bin\ DEBUG;TRACE prompt 4 pdbonly true bin\ TRACE prompt 4 ..\packages\AutoMapper.3.3.1\lib\net40\AutoMapper.dll True ..\packages\AutoMapper.3.3.1\lib\net40\AutoMapper.Net4.dll True False ..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll ..\packages\log4net.2.0.3\lib\net40-full\log4net.dll True ..\packages\EnterpriseLibrary.Caching.5.0.505.0\lib\NET35\Microsoft.Practices.EnterpriseLibrary.Caching.dll True ..\packages\EnterpriseLibrary.Common.5.0.505.0\lib\NET35\Microsoft.Practices.EnterpriseLibrary.Common.dll True ..\packages\CommonServiceLocator.1.3\lib\portable-net4+sl5+netcore45+wpa81+wp8\Microsoft.Practices.ServiceLocation.dll True ..\packages\Unity.3.5.1404.0\lib\net45\Microsoft.Practices.Unity.dll True ..\packages\Unity.3.5.1404.0\lib\net45\Microsoft.Practices.Unity.Configuration.dll True ..\packages\Unity.Interception.3.5.1404.0\lib\Net45\Microsoft.Practices.Unity.Interception.dll True ..\packages\Unity.Interception.3.5.1404.0\lib\Net45\Microsoft.Practices.Unity.Interception.Configuration.dll True ..\packages\Unity.3.5.1404.0\lib\net45\Microsoft.Practices.Unity.RegistrationByConvention.dll True OnlineStore.mdf Always Global.asax OrderService.svc ProductService.svc UserService.svc Web.config Always Web.config Always {1ae7732f-2faf-407e-89dd-bad81c4132e0} OnlineStore.Domain {2471e6b9-1030-48b8-bbc4-5018a221fbe2} OnlineStore.Events.Handlers {f165abc2-f76a-4fd7-8675-833264855221} OnlineStore.Events {9dde33cc-cf3c-436e-8a5f-4e1f0f8b603e} OnlineStore.Infrastructure {30afab37-57be-459c-a36a-5a72bbf77529} OnlineStore.Repositories {d46d13dd-1e1a-451b-ad17-42ed3fc54eac} OnlineStore.ServiceContracts 10.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) True True 8003 / http://localhost:8003/ False False False This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. ================================================ FILE: OnlineStore.Application/OrderService.svc ================================================ <%@ ServiceHost Language="C#" Debug="true" Service="OnlineStore.Application.OrderService" CodeBehind="OrderService.svc.cs" %> ================================================ FILE: OnlineStore.Application/OrderService.svc.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.Text; using OnlineStore.Domain.Model; using OnlineStore.Infrastructure; using OnlineStore.ServiceContracts; using OnlineStore.ServiceContracts.ModelDTOs; namespace OnlineStore.Application { [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)] public class OrderService : IOrderService { private readonly IOrderService _orderServiceImp; public OrderService() { _orderServiceImp = ServiceLocator.Instance.GetService(); } public void AddProductToCart(Guid customerId, Guid productId, int quantity) { try { _orderServiceImp.AddProductToCart(customerId, productId, quantity); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public ShoppingCartDto GetShoppingCart(Guid customerId) { try { return _orderServiceImp.GetShoppingCart(customerId); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public int GetShoppingCartItemCount(Guid userId) { try { return _orderServiceImp.GetShoppingCartItemCount(userId); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public void UpdateShoppingCartItem(Guid shoppingCartItemId, int quantity) { try { _orderServiceImp.UpdateShoppingCartItem(shoppingCartItemId, quantity); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public void DeleteShoppingCartItem(Guid shoppingCartItemId) { try { _orderServiceImp.DeleteShoppingCartItem(shoppingCartItemId); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public OrderDto Checkout(Guid customerId) { try { return _orderServiceImp.Checkout(customerId); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public OrderDto GetOrder(Guid orderId) { try { return _orderServiceImp.GetOrder(orderId); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public IList GetOrdersForUser(Guid userId) { try { return _orderServiceImp.GetOrdersForUser(userId); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public IList GetAllOrders() { try { return _orderServiceImp.GetAllOrders(); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public void Confirm(Guid orderId) { try { _orderServiceImp.Confirm(orderId); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public void Dispatch(Guid orderId) { try { _orderServiceImp.Dispatch(orderId); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } } } ================================================ FILE: OnlineStore.Application/ProductService.svc ================================================ <%@ ServiceHost Language="C#" Debug="true" Service="OnlineStore.Application.ProductService" CodeBehind="ProductService.svc.cs" %> ================================================ FILE: OnlineStore.Application/ProductService.svc.cs ================================================ using System; using System.Collections.Generic; using System.ServiceModel; using OnlineStore.Infrastructure; using OnlineStore.ServiceContracts; using OnlineStore.ServiceContracts.ModelDTOs; namespace OnlineStore.Application { // 商品WCF服务 [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)] public class ProductService : IProductService { // 引用商品服务接口 private readonly IProductService _productService; public ProductService() { _productService = ServiceLocator.Instance.GetService(); } public IEnumerable GetProducts() { try { return _productService.GetProducts(); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public IEnumerable GetProductsForCategory(Guid categoryId) { try { return _productService.GetProductsForCategory(categoryId); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public IEnumerable GetNewProducts(int count) { try { return _productService.GetNewProducts(count); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public CategoryDto GetCategoryById(Guid id) { try { return _productService.GetCategoryById(id); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public IEnumerable GetCategories() { try { return _productService.GetCategories(); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public ProductDto GetProductById(Guid id) { try { return _productService.GetProductById(id); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public List CreateProducts(List productsDtos) { try { return _productService.CreateProducts(productsDtos); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public List CreateCategories(List categoriDtos) { try { return _productService.CreateCategories(categoriDtos); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public List UpdateProducts(List productsDtos) { try { return _productService.UpdateProducts(productsDtos); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public List UpdateCategories(List categoriDtos) { try { return _productService.UpdateCategories(categoriDtos); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public void DeleteProducts(List produtList) { try { _productService.DeleteProducts(produtList); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public void DeleteCategories(List categoryList) { try { _productService.DeleteCategories(categoryList); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public ProductCategorizationDto CategorizeProduct(Guid productId, Guid categoryId) { try { return _productService.CategorizeProduct(productId, categoryId); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public void UncategorizeProduct(Guid productId) { try { _productService.UncategorizeProduct(productId); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public ProductDtoWithPagination GetProductsWithPagination(Pagination pagination) { try { return _productService.GetProductsWithPagination(pagination); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public ProductDtoWithPagination GetProductsForCategoryWithPagination(Guid categoryId, Pagination pagination) { try { return _productService.GetProductsForCategoryWithPagination(categoryId, pagination); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } } } ================================================ FILE: OnlineStore.Application/Properties/AssemblyInfo.cs ================================================ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("OnlineStore.Application")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Microsoft")] [assembly: AssemblyProduct("OnlineStore.Application")] [assembly: AssemblyCopyright("Copyright © Microsoft 2015")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("dac59b79-780a-4aa9-a382-7e2af67b7d0c")] // Version information for an assembly consists of the following four values: // // Major Version // Minor Version // Build Number // Revision // // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] ================================================ FILE: OnlineStore.Application/ServiceImplementations/OrderServiceImp.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using AutoMapper; using OnlineStore.Domain; using OnlineStore.Domain.Model; using OnlineStore.Domain.Repositories; using OnlineStore.Domain.Specifications; using OnlineStore.ServiceContracts; using OnlineStore.ServiceContracts.ModelDTOs; using System.Linq; using System.Transactions; using OnlineStore.Domain.Services; using OnlineStore.Events.Bus; namespace OnlineStore.Application.ServiceImplementations { public class OrderServiceImp : ApplicationService, IOrderService { #region Private Fileds private readonly IShoppingCartRepository _shoppingCartRepository; private readonly IShoppingCartItemRepository _shoppingCartItemRepository; private readonly IUserRepository _userRepository; private readonly IOrderRepository _orderRepository; private readonly IProductRepository _productRepository; private readonly IDomainService _domainService; private readonly IEventBus _eventBus; #endregion #region Ctor public OrderServiceImp(IRepositoryContext context, IUserRepository userRepository, IShoppingCartRepository shoppingCartRepository, IProductRepository productRepository, IShoppingCartItemRepository shoppingCartItemRepository, IDomainService domainService, IOrderRepository orderRepository, IEventBus eventBus) : base(context) { _userRepository = userRepository; _shoppingCartRepository = shoppingCartRepository; _productRepository = productRepository; _shoppingCartItemRepository = shoppingCartItemRepository; _domainService = domainService; _orderRepository = orderRepository; _eventBus = eventBus; } #endregion #region IOrderService Members public void AddProductToCart(Guid customerId, Guid productId, int quantity) { var user = _userRepository.GetByKey(customerId); var shoppingCart = _shoppingCartRepository.GetBySpecification(new ExpressionSpecification(s=>s.User.Id == user.Id)); if (shoppingCart == null) throw new DomainException("用户{0}不存在购物车.", customerId); var product = _productRepository.GetByKey(productId); var shoppingCartItem = _shoppingCartItemRepository.FindItem(shoppingCart, product); if (shoppingCartItem == null) { shoppingCartItem = new ShoppingCartItem() { Product = product, ShoopingCart = shoppingCart, Quantity = quantity }; _shoppingCartItemRepository.Add(shoppingCartItem); } else { shoppingCartItem.UpdateQuantity(shoppingCartItem.Quantity + quantity); _shoppingCartItemRepository.Update(shoppingCartItem); } RepositorytContext.Commit(); } public ShoppingCartDto GetShoppingCart(Guid customerId) { var user = _userRepository.GetByKey(customerId); var shoppingCart = _shoppingCartRepository.GetBySpecification( new ExpressionSpecification(s => s.User.Id == user.Id)); if (shoppingCart == null) throw new DomainException("用户{0}不存在购物车.", customerId); var shoppingCartItems = _shoppingCartItemRepository.GetAll( new ExpressionSpecification(s => s.ShoopingCart.Id == shoppingCart.Id), elp => elp.Product); var shoppingCartDto = Mapper.Map(shoppingCart); shoppingCartDto.Items = new List(); if (shoppingCartItems != null && shoppingCartItems.Any()) { shoppingCartItems .ToList() .ForEach(s => shoppingCartDto.Items.Add(Mapper.Map(s))); shoppingCartDto.Subtotal = shoppingCartDto.Items.Sum(p => p.ItemAmount); } return shoppingCartDto; } public int GetShoppingCartItemCount(Guid userId) { var user = _userRepository.GetByKey(userId); var shoppingCart = _shoppingCartRepository.GetBySpecification(new ExpressionSpecification(s => s.User.Id == user.Id)); if(shoppingCart == null) throw new InvalidOperationException("没有可用的购物车实例."); var shoppingCartItems = _shoppingCartItemRepository.GetAll(new ExpressionSpecification(s => s.ShoopingCart.Id == shoppingCart.Id), elp => elp.Product); return shoppingCartItems.Sum(s => s.Quantity); } public void UpdateShoppingCartItem(Guid shoppingCartItemId, int quantity) { var shoppingCartItem = _shoppingCartItemRepository.GetByKey(shoppingCartItemId); shoppingCartItem.UpdateQuantity(quantity); _shoppingCartItemRepository.Update(shoppingCartItem); RepositorytContext.Commit(); } public void DeleteShoppingCartItem(Guid shoppingCartItemId) { var shoppingCartItem = _shoppingCartItemRepository.GetByKey(shoppingCartItemId); _shoppingCartItemRepository.Remove(shoppingCartItem); RepositorytContext.Commit(); } public OrderDto Checkout(Guid customerId) { var user = _userRepository.GetByKey(customerId); var shoppingCart = _shoppingCartRepository.GetByExpression(s => s.User.Id == user.Id); var order = _domainService.CreateOrder(user, shoppingCart); return Mapper.Map(order); } public OrderDto GetOrder(Guid orderId) { var order = _orderRepository.GetBySpecification(new ExpressionSpecification(o=>o.Id.Equals(orderId)), elp=>elp.OrderItems); return Mapper.Map(order); } // 获得指定用户的所有订单 public IList GetOrdersForUser(Guid userId) { var user = _userRepository.GetByKey(userId); var orders = _orderRepository.GetAll(new ExpressionSpecification(o => o.User.Id == userId), sp => sp.CreatedDate, SortOrder.Descending, elp=>elp.OrderItems); var orderDtos = new List(); orders .ToList() .ForEach(o=>orderDtos.Add(Mapper.Map(o))); return orderDtos; } public IList GetAllOrders() { var orders = _orderRepository.GetAll(sort => sort.CreatedDate, SortOrder.Descending); var orderDtos = new List(); orders .ToList() .ForEach(o=>orderDtos.Add(Mapper.Map(o))); return orderDtos; } public void Confirm(Guid orderId) { using (var transactionScope = new TransactionScope()) { var order = _orderRepository.GetByKey(orderId); order.Confirm(); _orderRepository.Update(order); RepositorytContext.Commit(); _eventBus.Commit(); transactionScope.Complete(); } } public void Dispatch(Guid orderId) { using (var transactionScope = new TransactionScope()) { var order = _orderRepository.GetByKey(orderId); order.Dispatch(); _orderRepository.Update(order); RepositorytContext.Commit(); _eventBus.Commit(); transactionScope.Complete(); } } #endregion } } ================================================ FILE: OnlineStore.Application/ServiceImplementations/ProductServiceImp.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using AutoMapper; using OnlineStore.Domain.Model; using OnlineStore.Domain.Repositories; using OnlineStore.Domain.Services; using OnlineStore.Domain.Specifications; using OnlineStore.ServiceContracts; using OnlineStore.ServiceContracts.ModelDTOs; namespace OnlineStore.Application.ServiceImplementations { // 商品服务的实现 public class ProductServiceImp : ApplicationService, IProductService { #region Private Fields private readonly IProductRepository _productRepository; private readonly ICategoryRepository _categoryRepository; private readonly IProductCategorizationRepository _productCategorizationRepository; private readonly IDomainService _domainService; #endregion #region Ctor public ProductServiceImp(IRepositoryContext context, IProductRepository productRepository, ICategoryRepository categoryRepository, IProductCategorizationRepository productCategorizationRepository, IDomainService domainService) :base(context) { _categoryRepository = categoryRepository; _productRepository = productRepository; _productCategorizationRepository = productCategorizationRepository; _domainService = domainService; } #endregion #region IProductService Members public IEnumerable GetProducts() { var result = new List(); _productRepository. GetAll(). ToList(). ForEach(p => { var productDto = Mapper.Map(p); { var category = _productCategorizationRepository.GetCategoryForProduct(p); if (category != null) productDto.Category = Mapper.Map(category); } result.Add(productDto); }); return result; } public ProductDtoWithPagination GetProductsWithPagination(Pagination pagination) { var pagedProducts = _productRepository.GetAll(sp => sp.Name, SortOrder.Ascending, pagination.PageNumber, pagination.PageSize); pagination.TotalPages = pagedProducts.TotalPages; var productDtoList = new List(); pagedProducts.PageData.ToList().ForEach(p=>productDtoList.Add(Mapper.Map(p))); return new ProductDtoWithPagination() { Pagination = pagination, ProductDtos = productDtoList }; } public IEnumerable GetProductsForCategory(Guid categoryId) { var result = new List(); var category = _categoryRepository.GetByKey(categoryId); var products = _productCategorizationRepository.GetProductsForCategory(category); products.ToList().ForEach(p=>result.Add(Mapper.Map(p))); return result; } public ProductDtoWithPagination GetProductsForCategoryWithPagination(Guid categoryId, Pagination pagination) { var category = _categoryRepository.GetByKey(categoryId); var pagedProducts = _productCategorizationRepository.GetProductsForCategoryWithPagination(category, pagination.PageNumber, pagination.PageSize); if (pagedProducts == null) { pagination.TotalPages = 0; return new ProductDtoWithPagination() { Pagination = pagination, ProductDtos = new List() }; } pagination.TotalPages = pagedProducts.TotalPages; var productDtoList = new List(); pagedProducts.PageData.ToList().ForEach(p=>productDtoList.Add(Mapper.Map(p))); return new ProductDtoWithPagination() { Pagination = pagination, ProductDtos = productDtoList }; } public IEnumerable GetNewProducts(int count) { var newProducts = new List(); _productRepository.GetNewProducts(count) .ToList() .ForEach ( np => newProducts.Add(Mapper.Map(np)) ); return newProducts; } public CategoryDto GetCategoryById(Guid id) { var category = _categoryRepository.GetByKey(id); var result = Mapper.Map(category); return result; } public IEnumerable GetCategories() { var result = new List(); _categoryRepository.GetAll().ToList().ForEach(c => { var categoryDto = Mapper.Map(c); result.Add(categoryDto); }); return result; } public ProductDto GetProductById(Guid id) { var product = _productRepository.GetByKey(id); var result = Mapper.Map(product); result.Category = Mapper.Map(_productCategorizationRepository.GetCategoryForProduct(product)); return result; } public List CreateProducts(List productsDtos) { return PerformCreateObjects, ProductDto, Product>(productsDtos, _productRepository); } public List CreateCategories(List categoriDtos) { return PerformCreateObjects, CategoryDto, Category>(categoriDtos, _categoryRepository); } public List UpdateProducts(List productsDtos) { return PerformUpdateObjects, ProductDto, Product>(productsDtos, _productRepository, pdto => pdto.Id, (p, pdto) => { if (!string.IsNullOrEmpty(pdto.Description)) p.Description = pdto.Description; if (!string.IsNullOrEmpty(pdto.ImageUrl)) p.ImageUrl = pdto.ImageUrl; if (!string.IsNullOrEmpty(pdto.Name)) p.Name = pdto.Name; if (pdto.IsNew != null) p.IsNew = pdto.IsNew.Value; if (pdto.UnitPrice != null) p.UnitPrice = pdto.UnitPrice.Value; }); } public List UpdateCategories(List categoriDtos) { return PerformUpdateObjects, CategoryDto, Category>(categoriDtos, _categoryRepository, cdto => cdto.Id, (c, cdto) => { if (!string.IsNullOrEmpty(cdto.Name)) c.Name = cdto.Name; if (!string.IsNullOrEmpty(cdto.Description)) c.Description = cdto.Description; }); } public void DeleteProducts(List produList) { PerformDeleteObjects(produList, _productRepository, id => { var categorization = _productCategorizationRepository.GetBySpecification(Specification.Eval(c => c.ProductId == id)); if (categorization != null) _productCategorizationRepository.Remove(categorization); }); } public void DeleteCategories(List categoryList) { PerformDeleteObjects(categoryList, _categoryRepository, id => { var categorization = _productCategorizationRepository.GetBySpecification(Specification.Eval(c => c.CategoryId == id)); if (categorization != null) _productCategorizationRepository.Remove(categorization); }); } public ProductCategorizationDto CategorizeProduct(Guid productId, Guid categoryId) { if (productId == Guid.Empty) throw new ArgumentNullException("productId"); if (categoryId == Guid.Empty) throw new ArgumentNullException("categoryId"); var product = _productRepository.GetByKey(productId); var category = _categoryRepository.GetByKey(categoryId); return Mapper.Map(_domainService.Categorize(product, category)); } public void UncategorizeProduct(Guid productId) { if (productId == Guid.Empty) throw new ArgumentNullException("productId"); var product = _productRepository.GetByKey(productId); _domainService.Uncategorize(product); } #endregion } } ================================================ FILE: OnlineStore.Application/ServiceImplementations/UserServiceImp.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Remoting.Contexts; using AutoMapper; using OnlineStore.Domain.Model; using OnlineStore.Domain.Repositories; using OnlineStore.Domain.Services; using OnlineStore.Domain.Specifications; using OnlineStore.ServiceContracts; using OnlineStore.ServiceContracts.ModelDTOs; namespace OnlineStore.Application.ServiceImplementations { public class UserServiceImp :ApplicationService, IUserService { private readonly IUserRepository _userRepository; private readonly IShoppingCartRepository _shoppingCartRepository; private readonly IUserRoleRepository _userRoleRepository; private readonly IRoleRepository _roleRepository; private readonly IDomainService _domainService; public UserServiceImp(IRepositoryContext repositoryContext, IUserRepository userRepository, IShoppingCartRepository shoppingCartRepository, IDomainService domainService, IRoleRepository roleRepository, IUserRoleRepository userRoleRepository) : base(repositoryContext) { _userRepository = userRepository; _shoppingCartRepository = shoppingCartRepository; _domainService = domainService; _roleRepository = roleRepository; _userRoleRepository = userRoleRepository; } #region IUserService Members public IList CreateUsers(List userDtos) { if (userDtos == null) throw new ArgumentNullException("userDtos"); return PerformCreateObjects, UserDto, User>(userDtos, _userRepository, dto => { if (dto.RegisteredDate == null) dto.RegisteredDate = DateTime.Now; }, ar => { var shoppingCart = ar.CreateShoppingCart(); _shoppingCartRepository.Add(shoppingCart); }); } public bool ValidateUser(string userName, string password) { if (string.IsNullOrEmpty(userName)) throw new ArgumentNullException("userName"); if (string.IsNullOrEmpty(password)) throw new ArgumentNullException("password"); return _userRepository.CheckPassword(userName, password); } public bool DisableUser(UserDto userDto) { if(userDto == null) throw new ArgumentNullException("userDto"); User user; if (!IsEmptyGuidString(userDto.Id)) user = _userRepository.GetByKey(new Guid(userDto.Id)); else if (!string.IsNullOrEmpty(userDto.UserName)) user = _userRepository.GetByExpression(u=>u.UserName == userDto.UserName); else if (!string.IsNullOrEmpty(userDto.Email)) user = _userRepository.GetByExpression(u => u.Email == userDto.Email); else throw new ArgumentNullException("userDto", "Either ID, UserName or Email should be specified."); user.Disable(); _userRepository.Update(user); RepositorytContext.Commit(); return user.IsDisabled; } public bool EnableUser(UserDto userDto) { if (userDto == null) throw new ArgumentNullException("userDto"); User user; if (!IsEmptyGuidString(userDto.Id)) user = _userRepository.GetByKey(new Guid(userDto.Id)); else if (!string.IsNullOrEmpty(userDto.UserName)) user = _userRepository.GetByExpression(u => u.UserName == userDto.UserName); else if (!string.IsNullOrEmpty(userDto.Email)) user = _userRepository.GetByExpression(u => u.Email == userDto.Email); else throw new ArgumentNullException("userDto", "Either ID, UserName or Email should be specified."); user.Enable(); _userRepository.Update(user); RepositorytContext.Commit(); return user.IsDisabled; } public IList UpdateUsers(List userDataObjects) { return PerformUpdateObjects, UserDto, User>(userDataObjects, _userRepository, userDto => userDto.Id, (u, userDto) => { if (!string.IsNullOrEmpty(userDto.Contact)) u.Contact = userDto.Contact; if (!string.IsNullOrEmpty(userDto.PhoneNumber)) u.PhoneNumber = userDto.PhoneNumber; if (userDto.ContactAddress != null) { if (!string.IsNullOrEmpty(userDto.ContactAddress.City)) u.ContactAddress.City = userDto.ContactAddress.City; if (!string.IsNullOrEmpty(userDto.ContactAddress.Country)) u.ContactAddress.Country = userDto.ContactAddress.Country; if (!string.IsNullOrEmpty(userDto.ContactAddress.State)) u.ContactAddress.State = userDto.ContactAddress.State; if (!string.IsNullOrEmpty(userDto.ContactAddress.Street)) u.ContactAddress.Street = userDto.ContactAddress.Street; if (!string.IsNullOrEmpty(userDto.ContactAddress.Zip)) u.ContactAddress.Zip = userDto.ContactAddress.Zip; } if (userDto.DeliveryAddress != null) { if (!string.IsNullOrEmpty(userDto.DeliveryAddress.City)) u.DeliveryAddress.City = userDto.DeliveryAddress.City; if (!string.IsNullOrEmpty(userDto.DeliveryAddress.Country)) u.DeliveryAddress.Country = userDto.DeliveryAddress.Country; if (!string.IsNullOrEmpty(userDto.DeliveryAddress.State)) u.DeliveryAddress.State = userDto.DeliveryAddress.State; if (!string.IsNullOrEmpty(userDto.DeliveryAddress.Street)) u.DeliveryAddress.Street = userDto.DeliveryAddress.Street; if (!string.IsNullOrEmpty(userDto.DeliveryAddress.Zip)) u.DeliveryAddress.Zip = userDto.DeliveryAddress.Zip; } if (userDto.LastLogonDate != null) u.LastLogonDate = userDto.LastLogonDate; if (userDto.RegisteredDate != null) u.RegisteredDate = userDto.RegisteredDate.Value; if (!string.IsNullOrEmpty(userDto.Email)) u.Email = userDto.Email; if (userDto.IsDisabled != null) { if (userDto.IsDisabled.Value) u.Disable(); else u.Enable(); } if (!string.IsNullOrEmpty(userDto.Password)) u.Password = userDto.Password; }); } public void DeleteUsers(List userDtos) { if (userDtos == null) throw new ArgumentNullException("userDtos"); foreach (var userDto in userDtos) { User user = null; if (!IsEmptyGuidString(userDto.Id)) user = _userRepository.GetByKey(new Guid(userDto.Id)); else if (!string.IsNullOrEmpty(userDto.UserName)) user = _userRepository.GetByExpression(u => u.UserName == userDto.UserName); else if (!string.IsNullOrEmpty(userDto.Email)) user = _userRepository.GetByExpression(u=>u.Email == userDto.Email); else throw new ArgumentNullException("userDtos", "Either ID, UserName or Email should be specified."); var userRole = _userRoleRepository.GetBySpecification(Specification.Eval(ur => ur.UserId == user.Id)); if (userRole != null) _userRoleRepository.Remove(userRole); _userRepository.Remove(user); } RepositorytContext.Commit(); } public UserDto GetUserByKey(Guid id) { var user = _userRepository.GetByKey(id); var userDto = Mapper.Map(user); return userDto; } public UserDto GetUserByEmail(string email) { if(string.IsNullOrEmpty(email)) throw new ArgumentException("email"); var user = _userRepository.GetByExpression(u => u.Email == email); var userDto = Mapper.Map(user); return userDto; } public UserDto GetUserByName(string userName) { if (string.IsNullOrEmpty(userName)) throw new ArgumentException("userName"); var user = _userRepository.GetByExpression(u => u.UserName == userName); var userDto = Mapper.Map(user); return userDto; } public IList GetUsers() { var users = _userRepository.GetAll(); if (users == null) return null; var result = new List(); foreach (var user in users) { var userDto = Mapper.Map(user); var role = _userRoleRepository.GetRoleForUser(user); if (role != null) { userDto.Role = Mapper.Map(role); } result.Add(userDto); } return result; } public IList GetRoles() { var roles = _roleRepository.GetAll(); if (roles == null) return null; var result = roles.Select(role => Mapper.Map(role)).ToList(); return result; } public RoleDto GetRoleByKey(Guid id) { return Mapper.Map(_roleRepository.GetByKey(id)); } public IList CreateRoles(List roleDataObjects) { return PerformCreateObjects, RoleDto, Role>(roleDataObjects, _roleRepository); } public IList UpdateRoles(List roleDataObjects) { return PerformUpdateObjects, RoleDto, Role>(roleDataObjects, _roleRepository, roleDto => roleDto.Id, (r, roleDto) => { if (!string.IsNullOrEmpty(roleDto.Name)) r.Name = roleDto.Name; if (!string.IsNullOrEmpty(roleDto.Description)) r.Description = roleDto.Description; }); } /// /// 删除角色 /// /// 需要删除的角色ID值列表 public void DeleteRoles(List roleList) { PerformDeleteObjects(roleList, _roleRepository, id => { var userRole = _userRoleRepository.GetBySpecification(Specification.Eval(ur => ur.RoleId == id)); if (userRole != null) _userRoleRepository.Remove(userRole); }); } public void AssignRole(Guid userId, Guid roleId) { var user = _userRepository.GetByKey(userId); var role = _roleRepository.GetByKey(roleId); _domainService.AssignRole(user, role); } public void UnassignRole(Guid userId) { var user = _userRepository.GetByKey(userId); _domainService.UnassignRole(user); } // 根据指定的用户名,获取该用户所属的角色 public RoleDto GetRoleByUserName(string userName) { var user = _userRepository.GetByExpression(u=>u.UserName == userName); var role = _userRoleRepository.GetRoleForUser(user); return Mapper.Map(role); } public IList GetOrdersForUser(string userName) { var user = _userRepository.GetByExpression(u => u.UserName == userName); var orders = user.Orders; var result = new List(); if (orders == null) return result; result = orders.Select(so => Mapper.Map(so)).ToList(); return result; } #endregion } } ================================================ FILE: OnlineStore.Application/UserService.svc ================================================ <%@ ServiceHost Language="C#" Debug="true" Service="OnlineStore.Application.UserService" CodeBehind="UserService.svc.cs" %> ================================================ FILE: OnlineStore.Application/UserService.svc.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.Text; using OnlineStore.Infrastructure; using OnlineStore.ServiceContracts; using OnlineStore.ServiceContracts.ModelDTOs; namespace OnlineStore.Application { // UserService.svc, WCF服务 [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)] public class UserService : IUserService { private readonly IUserService _userServiceImp; public UserService() { _userServiceImp = ServiceLocator.Instance.GetService(); } public IList CreateUsers(List userDtos) { try { return _userServiceImp.CreateUsers(userDtos); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public bool ValidateUser(string userName, string password) { try { return _userServiceImp.ValidateUser(userName, password); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public bool DisableUser(UserDto userDto) { try { return _userServiceImp.DisableUser(userDto); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public bool EnableUser(UserDto userDto) { try { return _userServiceImp.EnableUser(userDto); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public void DeleteUsers(List userDtos) { try { _userServiceImp.DeleteUsers(userDtos); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public IList UpdateUsers(List userDataObjects) { try { return _userServiceImp.UpdateUsers(userDataObjects); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public UserDto GetUserByKey(Guid id) { try { return _userServiceImp.GetUserByKey(id); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public UserDto GetUserByEmail(string email) { try { return _userServiceImp.GetUserByEmail(email); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public UserDto GetUserByName(string userName) { try { return _userServiceImp.GetUserByName(userName); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public IList GetUsers() { try { return _userServiceImp.GetUsers(); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public IList GetRoles() { try { return _userServiceImp.GetRoles(); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public RoleDto GetRoleByKey(Guid id) { try { return _userServiceImp.GetRoleByKey(id); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public IList CreateRoles(List roleDataObjects) { try { return _userServiceImp.CreateRoles(roleDataObjects); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public IList UpdateRoles(List roleDataObjects) { try { return _userServiceImp.UpdateRoles(roleDataObjects); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public void DeleteRoles(List roleList) { try { _userServiceImp.DeleteRoles(roleList); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public void AssignRole(Guid userId, Guid roleId) { try { _userServiceImp.AssignRole(userId, roleId); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public void UnassignRole(Guid userId) { try { _userServiceImp.UnassignRole(userId); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public RoleDto GetRoleByUserName(string userName) { try { return _userServiceImp.GetRoleByUserName(userName); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } public IList GetOrdersForUser(string userName) { try { return _userServiceImp.GetOrdersForUser(userName); } catch (Exception ex) { throw new FaultException(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex)); } } } } ================================================ FILE: OnlineStore.Application/Web.Debug.config ================================================ ================================================ FILE: OnlineStore.Application/Web.Release.config ================================================ ================================================ FILE: OnlineStore.Application/Web.config ================================================ 
================================================ FILE: OnlineStore.Application/packages.config ================================================  ================================================ FILE: OnlineStore.Domain/DomainException.cs ================================================ using System; using System.Runtime.Serialization; namespace OnlineStore.Domain { public class DomainException : Exception { #region Ctor public DomainException() : base() { } public DomainException(string message) : base(message) { } public DomainException(string message, Exception innerException) : base(message, innerException) { } public DomainException(string format, params object[] args) : base(string.Format(format, args)) { } protected DomainException(SerializationInfo info, StreamingContext context) : base(info, context) { } #endregion } } ================================================ FILE: OnlineStore.Domain/Events/DomainEvent.cs ================================================ using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Threading.Tasks; using OnlineStore.Events; using OnlineStore.Infrastructure; namespace OnlineStore.Domain.Events { [SuppressMessage("ReSharper", "AccessToForEachVariableInClosure")] public class DomainEvent : IDomainEvent { #region Private Fields private readonly IEntity _source; private Guid _id = Guid.NewGuid(); private DateTime _timeStamp = DateTime.UtcNow; #endregion #region Ctor public DomainEvent() { } public DomainEvent(IEntity source) { _source = source; } #endregion #region IDomainEvent Members public IEntity Source { get { return _source; } } public Guid Id { get { return _id; } set { _id = value; } } public DateTime TimeStamp { get { return _timeStamp; } set { _timeStamp = value; } } #endregion #region Public Static Methods public static void Handle(TDomainEvent domainEvent) where TDomainEvent : class, IDomainEvent { // 找到对应的事件处理器来对事件进行处理 var handlers = ServiceLocator.Instance.ResolveAll>(); foreach (var handler in handlers) { if (handler.GetType().IsDefined(typeof(HandlesAsynchronouslyAttribute), false)) Task.Factory.StartNew(() => handler.Handle(domainEvent)); else handler.Handle(domainEvent); } } public static void Handle(TDomainEvent domainEvent, Action callback, TimeSpan? timeout = null) where TDomainEvent : class, IDomainEvent { var handlers = ServiceLocator.Instance.ResolveAll>(); if (handlers != null && handlers.Any()) { var tasks = new List(); try { foreach (var handler in handlers) { if (handler.GetType().IsDefined(typeof(HandlesAsynchronouslyAttribute), false)) { tasks.Add(Task.Factory.StartNew(() => handler.Handle(domainEvent))); } else handler.Handle(domainEvent); } if (tasks.Count > 0) { if (timeout == null) Task.WaitAll(tasks.ToArray()); else Task.WaitAll(tasks.ToArray(), timeout.Value); } callback(domainEvent, true, null); } catch (Exception ex) { callback(domainEvent, false, ex); } } else callback(domainEvent, false, null); } #endregion } } ================================================ FILE: OnlineStore.Domain/Events/EventHandlers/OrderConfirmedEventHandler.cs ================================================ using OnlineStore.Domain.Model; using OnlineStore.Events.Bus; namespace OnlineStore.Domain.Events.EventHandlers { // 订单确认事件处理器 public class OrderConfirmedEventHandler : IDomainEventHandler { private readonly IEventBus _bus; public OrderConfirmedEventHandler(IEventBus bus) { _bus = bus; } #region IDomainEventHandler Member // 事件处理器只对事件源的状态进行更新,事件状态的持久化而是在EventBus中进行处理的。 public void Handle(OrderConfirmedEvent @event) { // 获得事件源对象 var order = @event.Source as Order; // 更新事件源对象的属性 if (order == null) return; order.DeliveredDate = @event.ConfirmedDate; order.Status = OrderStatus.Delivered; // 把事件推送到EventBus中进行进一步处理 _bus.Publish(@event); } #endregion } } ================================================ FILE: OnlineStore.Domain/Events/EventHandlers/OrderDispatchedEventHandler.cs ================================================ using OnlineStore.Domain.Model; using OnlineStore.Domain.Repositories; using OnlineStore.Events.Bus; namespace OnlineStore.Domain.Events.EventHandlers { // 发货事件处理器 public class OrderDispatchedEventHandler : IDomainEventHandler { private readonly IEventBus _bus; public OrderDispatchedEventHandler(IEventBus bus) { _bus = bus; } public void Handle(OrderDispatchedEvent @event) { // 获得事件源对象 var order = @event.Source as Order; // 更新事件源对象的属性 if (order == null) return; order.DispatchedDate = @event.DispatchedDate; order.Status = OrderStatus.Dispatched; // 这里把领域事件认为是一种消息,推送到EventBus中进行进一步处理。 _bus.Publish(@event); } } } ================================================ FILE: OnlineStore.Domain/Events/IDomainEvent.cs ================================================ using OnlineStore.Events; namespace OnlineStore.Domain.Events { public interface IDomainEvent : IEvent { // 获取产生领域事件的事件源对象 IEntity Source { get; } } } ================================================ FILE: OnlineStore.Domain/Events/IDomainEventHandler.cs ================================================ using OnlineStore.Events; namespace OnlineStore.Domain.Events { /// /// 领域事件处理器 /// public interface IDomainEventHandler : IEventHandler where TDomainEvent :class, IDomainEvent { } } ================================================ FILE: OnlineStore.Domain/Events/OrderConfirmedEvent.cs ================================================ using System; namespace OnlineStore.Domain.Events { [Serializable] public class OrderConfirmedEvent : DomainEvent { #region Ctor public OrderConfirmedEvent() { } public OrderConfirmedEvent(IEntity source) : base(source) { } #endregion #region Public Properties /// /// 获取或设置订单确认的日期。 /// public DateTime ConfirmedDate { get; set; } public string UserEmailAddress { get; set; } public Guid OrderId { get; set; } #endregion } } ================================================ FILE: OnlineStore.Domain/Events/OrderDispatchedEvent.cs ================================================ using System; namespace OnlineStore.Domain.Events { [Serializable] public class OrderDispatchedEvent : DomainEvent { #region Ctor public OrderDispatchedEvent() { } public OrderDispatchedEvent(IEntity source) : base(source) { } #endregion #region Public Properties /// /// 获取或设置订单发货的日期。 /// public DateTime DispatchedDate { get; set; } public string UserEmailAddress { get; set; } public Guid OrderId { get; set; } #endregion } } ================================================ FILE: OnlineStore.Domain/IAggregateRoot.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OnlineStore.Domain { // 聚合根接口,继承于该接口的对象是外部唯一操作的对象 public interface IAggregateRoot : IEntity { } } ================================================ FILE: OnlineStore.Domain/IEntity.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OnlineStore.Domain { // 领域实体接口 public interface IEntity { // 当前领域实体的全局唯一标识 Guid Id { get; } } } ================================================ FILE: OnlineStore.Domain/Model/Address.cs ================================================  namespace OnlineStore.Domain.Model { // 值对象 public class Address { #region Properties // 国家 public string Country { get; set; } //省份 public string State { get; set; } // 市 public string City { get; set; } public string Street { get; set; } public string Zip { get; set; } #endregion #region Object Member public override bool Equals(object obj) { if (obj == null) return false; if (ReferenceEquals(this, obj)) return true; Address another = obj as Address; if (another == null) return false; return this.Country.Equals(another.Country) && this.State.Equals(another.State) && this.City.Equals(another.City) && this.Street.Equals(another.Street) && this.Zip.Equals(another.Zip); } public override int GetHashCode() { return this.Country.GetHashCode() ^ this.State.GetHashCode() ^ this.City.GetHashCode() ^ this.Street.GetHashCode() ^ this.Zip.GetHashCode(); } public override string ToString() { return string.Format("{0} {1}, {2}, {3}, {4}", Zip, Street, City, State, Country); } #endregion #region Public Static Operator Overrides public static bool operator ==(Address a, Address b) { if (a == null) { return b == null; } return a.Equals(b); } public static bool operator !=(Address a, Address b) { return !(a == b); } #endregion } } ================================================ FILE: OnlineStore.Domain/Model/AggregateRoot.cs ================================================ using System; namespace OnlineStore.Domain.Model { public abstract class AggregateRoot : IAggregateRoot { public Guid Id { get; set; } #region Object Member public override bool Equals(object obj) { if (obj == null) return false; if (ReferenceEquals(this, obj)) return true; IAggregateRoot ar = obj as IAggregateRoot; if (ar == null) return false; return this.Id == ar.Id; } public override int GetHashCode() { return this.Id.GetHashCode(); } #endregion } } ================================================ FILE: OnlineStore.Domain/Model/Category.cs ================================================  namespace OnlineStore.Domain.Model { // 类别类 public class Category : AggregateRoot { public string Name { get; set; } public string Description { get; set; } public override string ToString() { return this.Name; } } } ================================================ FILE: OnlineStore.Domain/Model/Order.cs ================================================  using System; using System.Collections.Generic; using System.Linq; using OnlineStore.Domain.Events; namespace OnlineStore.Domain.Model { public class Order : AggregateRoot { private List _orderItems = new List(); #region Public Properties // 获取或设置订单的状态 public OrderStatus Status { get; set; } /// /// 获取或设置订单的创建日期 /// public DateTime CreatedDate { get; set; } /// /// 获取或设置订单的发货日期 /// public DateTime? DispatchedDate { get; set; } /// /// 获取或设置订单的派送日期 /// public DateTime? DeliveredDate { get; set; } public virtual List OrderItems { get { return _orderItems; } set { _orderItems = value; } } public virtual User User { get; set; } public Address DeliveryAddress { get { return User.DeliveryAddress; } } // 在严格的业务系统中,金额往往以Money模式实现。有关Money模式,请参见:http://martinfowler.com/eaaCatalog/money.html public decimal Subtotal { get { return this.OrderItems.Sum(p => p.ItemAmout); } } #endregion #region Ctor public Order() { CreatedDate = DateTime.Now; Status = OrderStatus.Created; } #endregion #region Public Methods /// /// 当客户完成收货后,对销售订单进行确认。 /// public void Confirm() { // 处理领域事件 DomainEvent.Handle(new OrderConfirmedEvent(this) { ConfirmedDate = DateTime.Now, OrderId = this.Id, UserEmailAddress = this.User.Email }); } /// /// 处理发货。 /// public void Dispatch() { // 处理领域事件 DomainEvent.Handle(new OrderDispatchedEvent(this) { DispatchedDate = DateTime.Now, OrderId = this.Id, UserEmailAddress = this.User.Email }); } #endregion } } ================================================ FILE: OnlineStore.Domain/Model/OrderItem.cs ================================================ using System; namespace OnlineStore.Domain.Model { public class OrderItem : IEntity { #region IEnity Member public Guid Id { get; set; } #endregion public int Quantity { get; set; } public virtual Product Product { get; set; } // 包含当前订单项的订单对象 public virtual Order Order { get; set; } public decimal ItemAmout { get { return this.Product.UnitPrice * this.Quantity; } } #region Object Member public override bool Equals(object obj) { if (ReferenceEquals(this, obj)) return true; if (obj == null) return false; OrderItem other = obj as OrderItem; if ((object)other == null) return false; return this.Id == other.Id; } public override int GetHashCode() { return this.Id.GetHashCode(); } #endregion #region Public Static Operator Overrides public static bool operator ==(OrderItem a, OrderItem b) { if ((object)a == null) { return (object)b == null; } return a.Equals(b); } public static bool operator !=(OrderItem a, OrderItem b) { return !(a == b); } #endregion } } ================================================ FILE: OnlineStore.Domain/Model/OrderStatus.cs ================================================  namespace OnlineStore.Domain.Model { public enum OrderStatus { Created = 0, // 订单已被创建 Paid, // 订单已付款 Picked, // 订单已仓库拣货 Dispatched, // 已发货 Delivered // 已派送 } } ================================================ FILE: OnlineStore.Domain/Model/Product.cs ================================================  namespace OnlineStore.Domain.Model { // 商品类 public class Product : AggregateRoot { public string Name { get; set; } public string Description { get; set; } public decimal UnitPrice { get; set; } public string ImageUrl { get; set; } public bool IsNew{ get; set; } public override string ToString() { return Name; } } } ================================================ FILE: OnlineStore.Domain/Model/ProductCategorization.cs ================================================ using System; namespace OnlineStore.Domain.Model { public class ProductCategorization : AggregateRoot { public ProductCategorization() { } public ProductCategorization(Guid productId, Guid categoryId) { this.CategoryId = categoryId; this.ProductId = productId; } public Guid CategoryId { get; set; } public Guid ProductId { get; set; } public override string ToString() { return string.Format("CategoryID: {0}, ProductID: {1}", this.CategoryId, this.ProductId); } // 通过商品对象和分类对象来创建商品分类对象 public static ProductCategorization CreateCategorization(Product product, Category category) { return new ProductCategorization(product.Id, category.Id); } } } ================================================ FILE: OnlineStore.Domain/Model/Role.cs ================================================  namespace OnlineStore.Domain.Model { public class Role : AggregateRoot { public string Name { get; set; } public string Description { get; set; } } } ================================================ FILE: OnlineStore.Domain/Model/ShoppingCart.cs ================================================  namespace OnlineStore.Domain.Model { public class ShoppingCart : AggregateRoot { public User User { get; set; } } } ================================================ FILE: OnlineStore.Domain/Model/ShoppingCartItem.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OnlineStore.Domain.Model { public class ShoppingCartItem : AggregateRoot { public int Quantity { get; set; } public virtual Product Product { get; set; } public virtual ShoppingCart ShoopingCart { get; set; } public decimal ItemAmount { get { return this.Product.UnitPrice * this.Quantity; } } #region Public Methods // 将当前的购物车中的项目转换为订单项 public OrderItem ConvertToOrderItem() { var orderItem = new OrderItem { Id = Guid.NewGuid(), Product = this.Product, Quantity = this.Quantity }; return orderItem; } public void UpdateQuantity(int quantity) { this.Quantity = quantity; } #endregion } } ================================================ FILE: OnlineStore.Domain/Model/User.cs ================================================  using System; using System.Collections.Generic; namespace OnlineStore.Domain.Model { // 用户聚合根 public class User : AggregateRoot { public string UserName { get; set; } public string Password { get; set; } public string Email { get; set; } public string PhoneNumber { get; set; } public bool IsDisabled { get; set; } public DateTime RegisteredDate { get; set; } public DateTime? LastLogonDate { get; set; } public string Contact { get; set; } //用户的联系地址 public Address ContactAddress { get; set; } //用户的发货地址 public Address DeliveryAddress { get; set; } public IEnumerable Orders { get { IEnumerable result = null; //DomainEvent.Handle(new GetUserOrdersEvent(this), // (e, ret, exc) => // { // result = e.Orders; // }); return result; } } public override string ToString() { return this.UserName; } #region Public Methods public void Disable() { this.IsDisabled = true; } public void Enable() { this.IsDisabled = false; } // 为当前用户创建购物篮。 public ShoppingCart CreateShoppingCart() { var shoppingCart = new ShoppingCart { User = this }; return shoppingCart; } #endregion } } ================================================ FILE: OnlineStore.Domain/Model/UserRole.cs ================================================ using System; namespace OnlineStore.Domain.Model { public class UserRole : AggregateRoot { public Guid UserId { get; set; } public Guid RoleId { get; set; } public static UserRole CreateUserRole(User user, Role role) { return new UserRole() { UserId = user.Id, RoleId = role.Id }; } } } ================================================ FILE: OnlineStore.Domain/OnlineStore.Domain.csproj ================================================  Debug AnyCPU {1AE7732F-2FAF-407E-89DD-BAD81C4132E0} Library Properties OnlineStore.Domain OnlineStore.Domain v4.5 512 true full false bin\Debug\ DEBUG;TRACE prompt 4 pdbonly true bin\Release\ TRACE prompt 4 {f165abc2-f76a-4fd7-8675-833264855221} OnlineStore.Events {9dde33cc-cf3c-436e-8a5f-4e1f0f8b603e} OnlineStore.Infrastructure ================================================ FILE: OnlineStore.Domain/Properties/AssemblyInfo.cs ================================================ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("OnlineStore.Domain")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Microsoft")] [assembly: AssemblyProduct("OnlineStore.Domain")] [assembly: AssemblyCopyright("Copyright © Microsoft 2015")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("2e3e41cc-5c75-45ad-aac8-23bf93d1abe2")] // Version information for an assembly consists of the following four values: // // Major Version // Minor Version // Build Number // Revision // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] ================================================ FILE: OnlineStore.Domain/Repositories/ICategoryRepository.cs ================================================ using System.Collections; using System.Collections.Generic; using OnlineStore.Domain.Model; namespace OnlineStore.Domain.Repositories { public interface ICategoryRepository : IRepository { } } ================================================ FILE: OnlineStore.Domain/Repositories/IOrderRepository.cs ================================================ using OnlineStore.Domain.Model; namespace OnlineStore.Domain.Repositories { // 订单仓储接口 public interface IOrderRepository : IRepository { } } ================================================ FILE: OnlineStore.Domain/Repositories/IProductCategorizationRepository.cs ================================================ using System.Collections.Generic; using OnlineStore.Domain.Model; using OnlineStore.Infrastructure; namespace OnlineStore.Domain.Repositories { public interface IProductCategorizationRepository : IRepository { // 获取指定分类下的所有商品信息 IEnumerable GetProductsForCategory(Category category); /// /// 以分页的方式,获取指定分类下的所有商品信息 /// /// 指定的商品分类 /// 所请求的分页页码 /// 所请求的页大小 /// 指定分类下的某页的商品信息 PagedResult GetProductsForCategoryWithPagination(Category category, int pageNumber, int pageSize); /// /// 获取商品所属的商品分类。 /// /// 商品信息。 /// 商品分类。 Category GetCategoryForProduct(Product product); } } ================================================ FILE: OnlineStore.Domain/Repositories/IProductRepository.cs ================================================ using OnlineStore.Domain.Model; using System; using System.Collections.Generic; namespace OnlineStore.Domain.Repositories { public interface IProductRepository : IRepository { IEnumerable GetNewProducts(int count = 0); } } ================================================ FILE: OnlineStore.Domain/Repositories/IRepository.cs ================================================ using OnlineStore.Domain.Specifications; using OnlineStore.Infrastructure; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; namespace OnlineStore.Domain.Repositories { // 仓储接口 public interface IRepository where TAggregateRoot :class, IAggregateRoot { #region Methods void Add(TAggregateRoot aggregateRoot); // 根据聚合根的ID值,从仓储中读取聚合根 TAggregateRoot GetByKey(Guid key); TAggregateRoot GetBySpecification(ISpecification spec); TAggregateRoot GetByExpression(Expression> expression); // 读取所有聚合根。 IEnumerable GetAll(); // 以指定的排序字段和排序方式,从仓储中读取所有聚合根。 IEnumerable GetAll(Expression> sortPredicate, SortOrder sortOrder); // 根据指定的规约获取聚合根 IEnumerable GetAll(ISpecification specification); // 根据指定的规约,以指定的排序字段和排序方式,从仓储中读取聚合根 IEnumerable GetAll(ISpecification specification, Expression> sortPredicate, SortOrder sortOrder); // 返回一个值,该值表示符合指定规约条件的聚合根是否存在。 bool Exists(ISpecification specification); void Remove(TAggregateRoot aggregateRoot); void Update(TAggregateRoot aggregateRoot); #region 分页支持 #endregion PagedResult GetAll(Expression> sortPredicate, SortOrder sortOrder, int pageNumber, int pageSize); PagedResult GetAll( ISpecification specification, Expression> sortPredicate, SortOrder sortOrder, int pageNumber, int pageSize); PagedResult GetAll(Expression> sortPredicate, SortOrder sortOrder, int pageNumber, int pageSize, params Expression>[] eagerLoadingProperties); PagedResult GetAll(ISpecification specification, Expression> sortPredicate, SortOrder sortOrder, int pageNumber, int pageSize, params Expression>[] eagerLoadingProperties); #endregion #region 饥饿加载方式 TAggregateRoot GetBySpecification(ISpecification specification, params Expression>[] eagerLoadingProperties); IEnumerable GetAll(params Expression>[] eagerLoadingProperties); IEnumerable GetAll(Expression> sortPredicate, SortOrder sortOrder, params Expression>[] eagerLoadingProperties); IEnumerable GetAll(ISpecification specification, params Expression>[] eagerLoadingProperties); IEnumerable GetAll(ISpecification specification, Expression> sortPredicate, SortOrder sortOrder, params Expression>[] eagerLoadingProperties); #endregion } } ================================================ FILE: OnlineStore.Domain/Repositories/IRepositoryContext.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using OnlineStore.Infrastructure; namespace OnlineStore.Domain.Repositories { // 仓储上下文接口 // 这里把传统的IUnitOfWork接口中方法分别在2个接口定义:一个是IUnitOfWork,另一个就是该接口 public interface IRepositoryContext : IUnitOfWork { // 用来标识仓储上下文 Guid Id { get; } void RegisterNew(TAggregateRoot entity) where TAggregateRoot : class, IAggregateRoot; void RegisterModified(TAggregateRoot entity) where TAggregateRoot : class, IAggregateRoot; void RegisterDeleted(TAggregateRoot entity) where TAggregateRoot : class, IAggregateRoot; } } ================================================ FILE: OnlineStore.Domain/Repositories/IRoleRepository.cs ================================================ using OnlineStore.Domain.Model; namespace OnlineStore.Domain.Repositories { public interface IRoleRepository : IRepository { } } ================================================ FILE: OnlineStore.Domain/Repositories/IShoppingCartItemRepository.cs ================================================ using System.Collections.Generic; using OnlineStore.Domain.Model; namespace OnlineStore.Domain.Repositories { public interface IShoppingCartItemRepository : IRepository { ShoppingCartItem FindItem(ShoppingCart shoppingCart, Product product); } } ================================================ FILE: OnlineStore.Domain/Repositories/IShoppingCartRepository.cs ================================================ using OnlineStore.Domain.Model; namespace OnlineStore.Domain.Repositories { public interface IShoppingCartRepository : IRepository { } } ================================================ FILE: OnlineStore.Domain/Repositories/IUserRepository.cs ================================================ using OnlineStore.Domain.Model; using OnlineStore.Domain.Specifications; namespace OnlineStore.Domain.Repositories { public interface IUserRepository : IRepository { bool CheckPassword(string userName, string password); } } ================================================ FILE: OnlineStore.Domain/Repositories/IUserRoleRepository.cs ================================================ using OnlineStore.Domain.Model; namespace OnlineStore.Domain.Repositories { public interface IUserRoleRepository : IRepository { /// /// 根据指定的用户,获取该用户所属的角色 /// /// /// Role GetRoleForUser(User user); } } ================================================ FILE: OnlineStore.Domain/Repositories/SortOrder.cs ================================================ namespace OnlineStore.Domain.Repositories { public enum SortOrder { UnSpecified = -1, Ascending = 0, Descending = 1 } } ================================================ FILE: OnlineStore.Domain/Services/DomainService.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using OnlineStore.Domain.Model; using OnlineStore.Domain.Repositories; using OnlineStore.Domain.Specifications; namespace OnlineStore.Domain.Services { // 领域服务类型 // 牵涉到多个实体的操作可以把这些操作封装到领域服务里 public class DomainService : IDomainService { #region Private Fields private readonly IRepositoryContext _repositoryContext; private readonly IShoppingCartItemRepository _shoppingCartItemRepository; private readonly IOrderRepository _orderRepository; private readonly IProductCategorizationRepository _productCategorizationRepository; private readonly IUserRoleRepository _userRoleRepository; #endregion #region Ctor public DomainService(IRepositoryContext repositoryContext, IOrderRepository orderRepository, IShoppingCartItemRepository shoppingCartItemRepository, ICategoryRepository categoryRepository, IProductCategorizationRepository productCategorizationRepository, IProductRepository productRepository, IUserRepository userRepository, IRoleRepository roleRepository, IUserRoleRepository userRoleRepository) { _repositoryContext = repositoryContext; _orderRepository = orderRepository; _shoppingCartItemRepository = shoppingCartItemRepository; _productCategorizationRepository = productCategorizationRepository; _userRoleRepository = userRoleRepository; } #endregion #region IDomainService /// /// 创建订单,涉及到的操作有2个:1. 把购物车中的项中购物车移除; 2.创建一个订单。 /// 这两个操作必须同时完成或失败。 /// /// /// /// public Order CreateOrder(User user, ShoppingCart shoppingCart) { var order = new Order(); var shoppingCartItems = _shoppingCartItemRepository.GetAll( new ExpressionSpecification(s => s.ShoopingCart.Id == shoppingCart.Id)); if (shoppingCartItems == null || !shoppingCartItems.Any()) throw new InvalidOperationException("购物篮中没有任何物品"); order.OrderItems = new List(); foreach (var shoppingCartItem in shoppingCartItems) { var orderItem = shoppingCartItem.ConvertToOrderItem(); orderItem.Order = order; order.OrderItems.Add(orderItem); _shoppingCartItemRepository.Remove(shoppingCartItem); } order.User = user; order.Status = OrderStatus.Paid; _orderRepository.Add(order); _repositoryContext.Commit(); return order; } // 将指定的商品归类到指定的商品分类中。 public ProductCategorization Categorize(Product product, Category category) { if(product == null) throw new ArgumentNullException("product"); if(category == null) throw new ArgumentNullException("category"); var productCategorization = _productCategorizationRepository.GetBySpecification( Specification.Eval(c => c.ProductId == product.Id)); if (productCategorization == null) { productCategorization = ProductCategorization.CreateCategorization(product, category); _productCategorizationRepository.Add(productCategorization); } else { productCategorization.CategoryId = category.Id; _productCategorizationRepository.Update(productCategorization); } _repositoryContext.Commit(); return productCategorization; } // 将指定的商品从其所属的商品分类中移除 public void Uncategorize(Product product, Category category = null) { Expression> specExpress = null ; if (category == null) specExpress = p => p.ProductId == product.Id; else specExpress = p => p.ProductId == product.Id && p.CategoryId == category.Id; var productCategorization = _productCategorizationRepository.GetByExpression(specExpress); if (productCategorization == null) return; _productCategorizationRepository.Remove(productCategorization); _repositoryContext.Commit(); } // 将指定的用户赋予特定的角色。 public UserRole AssignRole(User user, Role role) { if (user == null) throw new ArgumentNullException("user"); if (role == null) throw new ArgumentNullException("role"); var userRole = _userRoleRepository.GetBySpecification(Specification.Eval(ur => ur.UserId == user.Id)); if (userRole == null) { userRole = UserRole.CreateUserRole(user, role); _userRoleRepository.Add(userRole); } else { userRole.RoleId = role.Id; _userRoleRepository.Update(userRole); } _repositoryContext.Commit(); return userRole; } // 将指定的用户从角色中移除。 public void UnassignRole(User user, Role role = null) { if (user == null) throw new ArgumentNullException("user"); Expression> specExpression = null; if (role == null) specExpression = ur => ur.UserId == user.Id; else specExpression = ur => ur.UserId == user.Id && ur.RoleId == role.Id; UserRole userRole = _userRoleRepository.GetBySpecification(Specification.Eval(specExpression)); if (userRole == null) return; _userRoleRepository.Remove(userRole); _repositoryContext.Commit(); } #endregion } } ================================================ FILE: OnlineStore.Domain/Services/IDomainService.cs ================================================ using OnlineStore.Domain.Model; namespace OnlineStore.Domain.Services { // 领域服务接口 public interface IDomainService { Order CreateOrder(User user, ShoppingCart shoppingCart); /// /// 将指定的商品归类到指定的商品分类中。 /// /// 需要归类的商品。 /// 商品分类。 /// 用以表述商品及其分类之间关系的实体。 ProductCategorization Categorize(Product product, Category category); /// /// 将指定的商品从其所属的商品分类中移除。 /// /// 商品。 /// 分类,若为NULL,则表示从所有分类中移除。 void Uncategorize(Product product, Category category = null); /// /// 将指定的用户赋予特定的角色。 /// /// 用户实体。 /// 角色实体。 /// 用以表述用户及其角色之间关系的实体。 UserRole AssignRole(User user, Role role); /// /// 将指定的用户从角色中移除。 /// /// 用户实体。 /// 角色实体,若为NULL,则表示从所有角色中移除。 void UnassignRole(User user, Role role = null); } } ================================================ FILE: OnlineStore.Domain/Specifications/AnySpecification.cs ================================================ using System; using System.Linq.Expressions; namespace OnlineStore.Domain.Specifications { public sealed class AnySpecification : Specification { public override Expression> Expression { get { return o => true; } } } } ================================================ FILE: OnlineStore.Domain/Specifications/ExpressionSpecification.cs ================================================ using System; using System.Linq.Expressions; namespace OnlineStore.Domain.Specifications { public sealed class ExpressionSpecification : Specification { private readonly Expression> _expression; public ExpressionSpecification(Expression> expression) { this._expression = expression; } public override Expression> Expression { get { return _expression; } } } } ================================================ FILE: OnlineStore.Domain/Specifications/ISpecification.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; namespace OnlineStore.Domain.Specifications { public interface ISpecification { bool IsSatisfiedBy(T candidate); Expression> Expression { get; } } } ================================================ FILE: OnlineStore.Domain/Specifications/ParameterReplacer.cs ================================================ using System.Linq.Expressions; namespace OnlineStore.Domain.Specifications { public class ParameterReplacer : ExpressionVisitor { public ParameterReplacer(ParameterExpression paramExpr) { this.ParameterExpression = paramExpr; } public ParameterExpression ParameterExpression { get; private set; } public Expression Replace(Expression expr) { return this.Visit(expr); } protected override Expression VisitParameter(ParameterExpression p) { return this.ParameterExpression; } } } ================================================ FILE: OnlineStore.Domain/Specifications/SpecExprExtensions.cs ================================================ using System; using System.Linq.Expressions; namespace OnlineStore.Domain.Specifications { public static class SpecExprExtensions { public static Expression> Not(this Expression> one) { var candidateExpr = one.Parameters[0]; var body = Expression.Not(one.Body); return Expression.Lambda>(body, candidateExpr); } public static Expression> And(this Expression> one, Expression> another) { // 首先定义好一个ParameterExpression var candidateExpr = Expression.Parameter(typeof(T), "candidate"); var parameterReplacer = new ParameterReplacer(candidateExpr); // 将表达式树的参数统一替换成我们定义好的candidateExpr var left = parameterReplacer.Replace(one.Body); var right = parameterReplacer.Replace(another.Body); var body = Expression.And(left, right); return Expression.Lambda>(body, candidateExpr); } public static Expression> Or( this Expression> one, Expression> another) { var candidateExpr = Expression.Parameter(typeof(T), "candidate"); var parameterReplacer = new ParameterReplacer(candidateExpr); var left = parameterReplacer.Replace(one.Body); var right = parameterReplacer.Replace(another.Body); var body = Expression.Or(left, right); return Expression.Lambda>(body, candidateExpr); } } } ================================================ FILE: OnlineStore.Domain/Specifications/Specification.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; using OnlineStore.Domain.Model; namespace OnlineStore.Domain.Specifications { public abstract class Specification : ISpecification { public static Specification Eval(Expression> expression) { return new ExpressionSpecification(expression); } #region ISpecification Members public bool IsSatisfiedBy(T candidate) { return this.Expression.Compile()(candidate); } public abstract Expression> Expression { get; } #endregion } } ================================================ FILE: OnlineStore.Domain/app.config ================================================  ================================================ FILE: OnlineStore.Events/Bus/EventBus.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Threading; using OnlineStore.Infrastructure; namespace OnlineStore.Events.Bus { // 领域事件处理器只是对事件对象的状态进行更新 // 后续的事件处理操作交给EventBus进行处理 // 本案例中EventBus主要处理的任务就是发送邮件通知, // 在EventBus一般处理应用事件,而领域事件处理器一般处理领域事件 public class EventBus : DisposableObject, IEventBus { private readonly Guid _id = Guid.NewGuid(); private readonly ThreadLocal> _messageQueue = new ThreadLocal>(() => new Queue()); private readonly IEventAggregator _aggregator; private readonly ThreadLocal _committed = new ThreadLocal(() => true); private readonly MethodInfo _handleMethod; public EventBus(IEventAggregator aggregator) { this._aggregator = aggregator; // 获得EventAggregator中的Handle方法 _handleMethod = (from m in aggregator.GetType().GetMethods() let parameters = m.GetParameters() let methodName = m.Name where methodName == "Handle" && parameters != null && parameters.Length == 1 select m).First(); } protected override void Dispose(bool disposing) { if (disposing) { _messageQueue.Dispose(); _committed.Dispose(); } } #region IBus Members public Guid Id { get { return _id; } } public void Publish(TMessage message) where TMessage : class, IEvent { _messageQueue.Value.Enqueue(message); _committed.Value = false; } public void Publish(IEnumerable messages) where TMessage : class, IEvent { foreach (var message in messages) Publish(message); } public void Clear() { _messageQueue.Value.Clear(); _committed.Value = true; } #endregion #region IUnitOfWork Members public bool DistributedTransactionSupported { get { return false; } } public bool Committed { get { return _committed.Value; } } // 触发应用事件处理器对事件进行处理 public void Commit() { while (_messageQueue.Value.Count > 0) { var evnt = _messageQueue.Value.Dequeue(); var evntType = evnt.GetType(); var method = _handleMethod.MakeGenericMethod(evntType); // 调用应用事件处理器来对应用事件进行处理 method.Invoke(_aggregator, new object[] { evnt }); } _committed.Value = true; } public void Rollback() { Clear(); } #endregion } } ================================================ FILE: OnlineStore.Events/Bus/IBus.cs ================================================ using System; using System.Collections.Generic; using OnlineStore.Infrastructure; namespace OnlineStore.Events.Bus { public interface IBus : IUnitOfWork, IDisposable { Guid Id { get; } void Publish(TMessage message) where TMessage : class, IEvent; void Publish(IEnumerable messages) where TMessage : class, IEvent; void Clear(); } } ================================================ FILE: OnlineStore.Events/Bus/IEventBus.cs ================================================ namespace OnlineStore.Events.Bus { public interface IEventBus : IBus { } } ================================================ FILE: OnlineStore.Events/Bus/MsmqBusOptions.cs ================================================ using System.Messaging; namespace OnlineStore.Events.Bus { public class MsmqBusOptions { public bool SharedModeDenyReceive { get; set; } public bool EnableCache { get; set; } public QueueAccessMode QueueAccessMode { get; set; } public string Path { get; set; } public bool UseInternalTransaction { get; set; } public MsmqBusOptions(string path, bool sharedModeDenyReceive, bool enableCache, QueueAccessMode queueAccessMode, bool useInternalTransaction) { this.SharedModeDenyReceive = sharedModeDenyReceive; this.EnableCache = enableCache; this.QueueAccessMode = queueAccessMode; this.Path = path; this.UseInternalTransaction = useInternalTransaction; } public MsmqBusOptions(string path) : this(path, false, false, QueueAccessMode.SendAndReceive, false) { } public MsmqBusOptions(string path, bool useInternalTransaction) : this(path, false, false, QueueAccessMode.SendAndReceive, useInternalTransaction) { } } } ================================================ FILE: OnlineStore.Events/Bus/MsmqEventBus.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Messaging; using System.Reflection; using OnlineStore.Infrastructure; namespace OnlineStore.Events.Bus { // 基于微软MSMQ的EventBus的实现 public class MsmqEventBus : DisposableObject, IEventBus { #region Private Fields private readonly Guid _id = Guid.NewGuid(); private volatile bool _committed = true; private readonly bool _useInternalTransaction; private readonly MessageQueue _messageQueue; private readonly IEventAggregator _aggregator; private readonly MethodInfo _publishMethod; #endregion #region Ctor public MsmqEventBus(string path) { this._aggregator = ServiceLocator.Instance.GetService(); _publishMethod = (from m in _aggregator.GetType().GetMethods() let parameters = m.GetParameters() let methodName = m.Name where methodName == "Handle" && parameters != null && parameters.Length == 1 select m).First(); var options = new MsmqBusOptions(path); // 初始化消息队列对象 // 更多信息参考:https://msdn.microsoft.com/zh-cn/library/System.Messaging.MessageQueue(v=vs.110).aspx this._messageQueue = new MessageQueue(path, options.SharedModeDenyReceive, options.EnableCache, options.QueueAccessMode); this._useInternalTransaction = options.UseInternalTransaction && _messageQueue.Transactional; } #endregion #region IEventBus Members public Guid Id { get { return _id; } } public void Publish(TMessage message) where TMessage : class, IEvent { // 将消息放入Message中Body属性进行序列化发送到消息队列中 var msmqMessage = new Message(message) { Formatter = new XmlMessageFormatter(new[] { message.GetType() }), Label = message.GetType().ToString()}; _messageQueue.Send(msmqMessage); _committed = false; } public void Publish(IEnumerable messages) where TMessage : class, IEvent { messages.ToList().ForEach(m => { _messageQueue.Send(m); _committed = false; }); } public void Clear() { this._messageQueue.Close(); } public void Commit() { if (this._useInternalTransaction) { using (var transaction = new MessageQueueTransaction()) { try { transaction.Begin(); var message = _messageQueue.Receive(); if (message != null) { message.Formatter = new XmlMessageFormatter(new[] { typeof(string) }); var evntType = ConvertStringToType(message.Body.ToString()); var method = _publishMethod.MakeGenericMethod(evntType); var evnt = Activator.CreateInstance(evntType); method.Invoke(_aggregator, new object[] { evnt }); transaction.Commit(); } } catch { transaction.Abort(); throw; } } } else { // 从msmq消息队列中出队,此时获得的对象是消息对象 var message = _messageQueue.Receive(); if (message != null) { // 指定反序列化的对象,由于我们之前把对应的事件类型保存在MessageQueue中的Label属性 // 所以此时可以通过Label属性来获得目标序列化类型 message.Formatter = new XmlMessageFormatter(new[] { ConvertStringToType(message.Label) }); // 这样message.Body获得就是对应的事件对象,后面的处理逻辑就和EventBus一样了 var evntType =message.Body.GetType(); var method = _publishMethod.MakeGenericMethod(evntType); method.Invoke(_aggregator, new object[] { message.Body }); } } _committed = true; } #endregion #region DisposableObject Members protected override void Dispose(bool disposing) { if (!disposing) return; if (_messageQueue == null) return; _messageQueue.Close(); _messageQueue.Dispose(); } #endregion private Type ConvertStringToType(string sourceStr) { return Type.GetType(sourceStr + ", OnlineStore.Domain"); } } } ================================================ FILE: OnlineStore.Events/EventAggregator.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Threading.Tasks; using OnlineStore.Infrastructure; namespace OnlineStore.Events { public class EventAggregator : IEventAggregator { private readonly object _sync = new object(); private readonly Dictionary> _eventHandlers = new Dictionary>(); private readonly MethodInfo _registerEventHandlerMethod; public EventAggregator() { // 通过反射获得EventAggregator的Register方法 _registerEventHandlerMethod = (from p in this.GetType().GetMethods() let methodName = p.Name let parameters = p.GetParameters() where methodName == "Register" && parameters != null && parameters.Length == 1 && parameters[0].ParameterType.GetGenericTypeDefinition() == typeof(IEventHandler<>) select p).First(); } public EventAggregator(object[] handlers) : this() { // 遍历注册的EventHandler来把配置文件中具体的EventHanler通过Register添加进_eventHandlers字典中 foreach (var obj in handlers) { var type = obj.GetType(); var implementedInterfaces = type.GetInterfaces(); foreach (var implementedInterface in implementedInterfaces) { if (implementedInterface.IsGenericType && implementedInterface.GetGenericTypeDefinition() == typeof(IEventHandler<>)) { var eventType = implementedInterface.GetGenericArguments().First(); var method = _registerEventHandlerMethod.MakeGenericMethod(eventType); // 调用Register方法将EventHandler添加进_eventHandlers字典中 method.Invoke(this, new object[] { obj }); } } } } public void Register(IEventHandler eventHandler) where TEvent : class, IEvent { lock (_sync) { var eventType = typeof(TEvent); if (_eventHandlers.ContainsKey(eventType)) { var handlers = _eventHandlers[eventType]; if (handlers != null) { handlers.Add(eventHandler); } else { handlers = new List {eventHandler}; } } else _eventHandlers.Add(eventType, new List { eventHandler }); } } public void Register(IEnumerable> eventHandlers) where TEvent : class, IEvent { foreach (var eventHandler in eventHandlers) Register(eventHandler); } // 调用具体的EventHanler的Handle方法来对事件进行处理 public void Handle(TEvent evnt) where TEvent : class, IEvent { if (evnt == null) throw new ArgumentNullException("evnt"); var eventType = evnt.GetType(); if (_eventHandlers.ContainsKey(eventType) && _eventHandlers[eventType] != null && _eventHandlers[eventType].Count > 0) { var handlers = _eventHandlers[eventType]; foreach (var handler in handlers) { var eventHandler = handler as IEventHandler; if(eventHandler == null) continue; // 异步处理 if (eventHandler.GetType().IsDefined(typeof(HandlesAsynchronouslyAttribute), false)) { Task.Factory.StartNew((o) => eventHandler.Handle((TEvent)o), evnt); } else { eventHandler.Handle(evnt); } } } } public void Handle(TEvent evnt, Action callback, TimeSpan? timeout = null) where TEvent : class, IEvent { if (evnt == null) throw new ArgumentNullException("evnt"); var eventType = evnt.GetType(); if (_eventHandlers.ContainsKey(eventType) && _eventHandlers[eventType] != null && _eventHandlers[eventType].Count > 0) { var handlers = _eventHandlers[eventType]; List tasks = new List(); try { foreach (var handler in handlers) { var eventHandler = handler as IEventHandler; if (eventHandler == null) continue; if (eventHandler.GetType().IsDefined(typeof(HandlesAsynchronouslyAttribute), false)) { tasks.Add(Task.Factory.StartNew((o) => eventHandler.Handle((TEvent)o), evnt)); } else { eventHandler.Handle(evnt); } } if (tasks.Count > 0) { if (timeout == null) Task.WaitAll(tasks.ToArray()); else Task.WaitAll(tasks.ToArray(), timeout.Value); } callback(evnt, true, null); } catch (Exception ex) { callback(evnt, false, ex); } } else callback(evnt, false, null); } } } ================================================ FILE: OnlineStore.Events/HandlesAsynchronouslyAttribute.cs ================================================ using System; namespace OnlineStore.Events { // 如果事件处理器添加了该属性,表示以异步的方式处理事件 [AttributeUsage(AttributeTargets.Class, Inherited = false)] public class HandlesAsynchronouslyAttribute : Attribute { } } ================================================ FILE: OnlineStore.Events/IEvent.cs ================================================ using System; namespace OnlineStore.Events { // 事件接口 public interface IEvent { Guid Id { get; } // 获取产生事件的时间 DateTime TimeStamp { get; } } } ================================================ FILE: OnlineStore.Events/IEventAggregator.cs ================================================ using System; using System.Collections.Generic; namespace OnlineStore.Events { public interface IEventAggregator { void Register(IEventHandler domainEventHandler) where TEvent : class, IEvent; void Register(IEnumerable> domainEventHandlers) where TEvent : class, IEvent; void Handle(TEvent domainEvent) where TEvent : class, IEvent; void Handle(TEvent domainEvent, Action callback, TimeSpan? timeout = null) where TEvent : class, IEvent; } } ================================================ FILE: OnlineStore.Events/IEventHandler.cs ================================================ namespace OnlineStore.Events { // 事件处理器接口 public interface IEventHandler where TEvent : IEvent { // 处理给定的事件 void Handle(TEvent @event); } } ================================================ FILE: OnlineStore.Events/OnlineStore.Events.csproj ================================================  Debug AnyCPU {F165ABC2-F76A-4FD7-8675-833264855221} Library Properties OnlineStore.Events OnlineStore.Events v4.5 512 true full false bin\Debug\ DEBUG;TRACE prompt 4 pdbonly true bin\Release\ TRACE prompt 4 {9dde33cc-cf3c-436e-8a5f-4e1f0f8b603e} OnlineStore.Infrastructure ================================================ FILE: OnlineStore.Events/Properties/AssemblyInfo.cs ================================================ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // 有关程序集的常规信息通过以下 // 特性集控制。更改这些特性值可修改 // 与程序集关联的信息。 [assembly: AssemblyTitle("OnlineStore.Events")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("OnlineStore.Events")] [assembly: AssemblyCopyright("Copyright © 2015")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // 将 ComVisible 设置为 false 使此程序集中的类型 // 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型, // 则将该类型上的 ComVisible 特性设置为 true。 [assembly: ComVisible(false)] // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID [assembly: Guid("00ced95c-df18-4d3b-a3a2-870dc7c51a7c")] // 程序集的版本信息由下面四个值组成: // // 主版本 // 次版本 // 生成号 // 修订号 // // 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值, // 方法是按如下所示使用“*”: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] ================================================ FILE: OnlineStore.Events/app.config ================================================  ================================================ FILE: OnlineStore.Events.Handlers/OnlineStore.Events.Handlers.csproj ================================================  Debug AnyCPU {2471E6B9-1030-48B8-BBC4-5018A221FBE2} Library Properties OnlineStore.Events.Handlers OnlineStore.Events.Handlers v4.5 512 true full false bin\Debug\ DEBUG;TRACE prompt 4 pdbonly true bin\Release\ TRACE prompt 4 {1ae7732f-2faf-407e-89dd-bad81c4132e0} OnlineStore.Domain {f165abc2-f76a-4fd7-8675-833264855221} OnlineStore.Events {9dde33cc-cf3c-436e-8a5f-4e1f0f8b603e} OnlineStore.Infrastructure ================================================ FILE: OnlineStore.Events.Handlers/Properties/AssemblyInfo.cs ================================================ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // 有关程序集的常规信息通过以下 // 特性集控制。更改这些特性值可修改 // 与程序集关联的信息。 [assembly: AssemblyTitle("OnlineStore.Events.Handlers")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("OnlineStore.Events.Handlers")] [assembly: AssemblyCopyright("Copyright © 2015")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // 将 ComVisible 设置为 false 使此程序集中的类型 // 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型, // 则将该类型上的 ComVisible 特性设置为 true。 [assembly: ComVisible(false)] // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID [assembly: Guid("4aacb77c-8537-48d1-ac75-f779950b3ae4")] // 程序集的版本信息由下面四个值组成: // // 主版本 // 次版本 // 生成号 // 修订号 // // 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值, // 方法是按如下所示使用“*”: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] ================================================ FILE: OnlineStore.Events.Handlers/SendEmailHandler.cs ================================================ using System; using OnlineStore.Domain.Events; using OnlineStore.Infrastructure; namespace OnlineStore.Events.Handlers { [HandlesAsynchronously] public class SendEmailHandler : IEventHandler, IEventHandler { // 处理确认收货事件 public void Handle(OrderConfirmedEvent @event) { try { Utils.SendEmail(@event.UserEmailAddress, "您的订单已经确认收货", string.Format("您的订单 {0} 已于 {1} 确认收货,欢迎您随时关注订单状态", @event.OrderId.ToString().ToUpper(), @event.ConfirmedDate)); } catch (Exception ex) { // 如遇异常,直接记Log Utils.Log(ex); } } // 处理发货事件 public void Handle(OrderDispatchedEvent @event) { try { Utils.SendEmail(@event.UserEmailAddress, "您的订单已经发货", string.Format("您的订单 {0} 已于 {1} 发货, 欢迎您随时关注订单状态", @event.OrderId.ToString().ToUpper(), @event.DispatchedDate)); } catch (Exception ex) { // 如遇异常,直接记Log Utils.Log(ex); } } } } ================================================ FILE: OnlineStore.Events.Handlers/app.config ================================================  ================================================ FILE: OnlineStore.Infrastructure/Caching/AppfabricCacheProvider.cs ================================================ using System.Collections.Generic; using Microsoft.ApplicationServer.Caching; namespace OnlineStore.Infrastructure.Caching { // 分布式缓存,该类是对微软分布式缓存服务的封装 // 在该案例中没用用到该缓存,但是提供在这里让大家明白微软的分布式缓存实现,并不是只有memcached和Redis // Redis参考:http://www.cnblogs.com/ceecy/p/3279407.html 和 http://blog.csdn.net/suifeng3051/article/details/23739295 // 关于微软分布式缓存更多介绍参考:http://www.cnblogs.com/shanyou/archive/2010/06/29/AppFabricCaching.html // 和http://www.cnblogs.com/mlj322/archive/2010/04/05/1704624.html public class AppfabricCacheProvider : ICacheProvider { private readonly DataCacheFactory _factory = new DataCacheFactory(); private readonly DataCache _cache; public AppfabricCacheProvider() { this._cache = _factory.GetDefaultCache(); } #region ICacheProvider Members public void Add(string key, string valueKey, object value) { // DataCache中不包含Contain方法,所有用Get方法来判断对应的key值是否在缓存中存在 var val = (Dictionary)_cache.Get(key); if (val == null) { val = new Dictionary {{ valueKey, value}}; _cache.Add(key, val); } else { if (!val.ContainsKey(valueKey)) val.Add(valueKey, value); else val[valueKey] = value; _cache.Put(key, val); } } public void Update(string key, string valueKey, object value) { Add(key, valueKey, value); } public object Get(string key, string valueKey) { return Exists(key, valueKey) ? ((Dictionary)_cache.Get(key))[valueKey] : null; } public void Remove(string key) { _cache.Remove(key); } public bool Exists(string key) { return _cache.Get(key) != null; } public bool Exists(string key, string valueKey) { var val = _cache.Get(key); if (val == null) return false; return ((Dictionary)val).ContainsKey(valueKey); } #endregion } } ================================================ FILE: OnlineStore.Infrastructure/Caching/CacheAttribute.cs ================================================ using System; namespace OnlineStore.Infrastructure.Caching { [AttributeUsage(AttributeTargets.Method, Inherited = false)] public class CacheAttribute : Attribute { public CachingMethod Method { get; set; } public bool IsForce { get; set; } // 缓存相关的方法名称,该参数仅在Remove的方式用到 public string[] CorrespondingMethodNames { get; set; } public CacheAttribute(CachingMethod method) { this.Method = method; } public CacheAttribute(CachingMethod method, params string[] correspondingMethodNames) : this(method) { this.CorrespondingMethodNames = correspondingMethodNames; } } } ================================================ FILE: OnlineStore.Infrastructure/Caching/CachingMethod.cs ================================================ namespace OnlineStore.Infrastructure.Caching { /// /// 缓存方式 /// public enum CachingMethod { Get, Update, Remove } } ================================================ FILE: OnlineStore.Infrastructure/Caching/EntLibCacheProvider.cs ================================================ using System.Collections.Generic; using Microsoft.Practices.EnterpriseLibrary.Caching; namespace OnlineStore.Infrastructure.Caching { // 表示基于Microsoft Patterns & Practices - Enterprise Library Caching Application Block的缓存机制的实现 // 该类简单理解为对Enterprise Library Caching中的CacheManager封装 // 该缓存实现不支持分布式缓存,更多信息参考: // http://stackoverflow.com/questions/7799664/enterpriselibrary-caching-in-load-balance public class EntLibCacheProvider : ICacheProvider { // 获得CacheManager实例,该实例的注册通过cachingConfiguration进行注册进去的,具体看配置文件 private readonly ICacheManager _cacheManager = CacheFactory.GetCacheManager(); #region ICahceProvider public void Add(string key, string valueKey, object value) { Dictionary dict = null; if (_cacheManager.Contains(key)) { dict = (Dictionary) _cacheManager[key]; dict[valueKey] = value; } else { dict = new Dictionary { { valueKey, value }}; } _cacheManager.Add(key, dict); } public void Update(string key, string valueKey, object value) { Add(key, valueKey, value); } public object Get(string key, string valueKey) { if (!_cacheManager.Contains(key)) return null; var dict = (Dictionary)_cacheManager[key]; if (dict != null && dict.ContainsKey(valueKey)) return dict[valueKey]; else return null; } // 从缓存中移除对象 public void Remove(string key) { _cacheManager.Remove(key); } // 判断指定的键值的缓存是否存在 public bool Exists(string key) { return _cacheManager.Contains(key); } // 判断指定的键值和缓存键值的缓存是否存在 public bool Exists(string key, string valueKey) { return _cacheManager.Contains(key) && ((Dictionary)_cacheManager[key]).ContainsKey(valueKey); } #endregion } } ================================================ FILE: OnlineStore.Infrastructure/Caching/ICacheProvider.cs ================================================ namespace OnlineStore.Infrastructure.Caching { // 缓存接口的定义 public interface ICacheProvider { /// /// 向缓存中添加一个对象 /// /// 缓存的键值 /// 缓存值的键值 /// 缓存的对象 void Add(string key, string valueKey, object value); void Update(string key, string valueKey, object value); object Get(string key, string valueKey); void Remove(string key); bool Exists(string key); bool Exists(string key, string valueKey); } } ================================================ FILE: OnlineStore.Infrastructure/DisposableObject.cs ================================================ using System; namespace OnlineStore.Infrastructure { public abstract class DisposableObject :IDisposable { ~DisposableObject() { this.Dispose(false); } protected abstract void Dispose(bool disposing); protected void ExplicitDispose() { this.Dispose(true); GC.SuppressFinalize(this); } #region IDisposable Members public void Dispose() { this.ExplicitDispose(); } #endregion } } ================================================ FILE: OnlineStore.Infrastructure/IUnitOfWork.cs ================================================ namespace OnlineStore.Infrastructure { public interface IUnitOfWork { void Commit(); } } ================================================ FILE: OnlineStore.Infrastructure/InterceptionBehaviors/CachingBehavior.cs ================================================ using OnlineStore.Infrastructure.Caching; using Microsoft.Practices.Unity.InterceptionExtension; using System; using System.Collections.Generic; using System.Text; namespace OnlineStore.Infrastructure.InterceptionBehaviors { // 缓存AOP的实现 public class CachingBehavior : IInterceptionBehavior { private readonly ICacheProvider _cacheProvider; public CachingBehavior() { _cacheProvider = ServiceLocator.Instance.GetService(); } // 生成缓存值的键值 private string GetValueKey(CacheAttribute cachingAttribute, IMethodInvocation input) { switch (cachingAttribute.Method) { // 如果是Remove,则不存在特定值键名,所有的以该方法名称相关的缓存都需要清除 case CachingMethod.Remove: return null; // 如果是Get或者Update,则需要产生一个针对特定参数值的键名 case CachingMethod.Get: case CachingMethod.Update: if (input.Arguments != null && input.Arguments.Count > 0) { var sb = new StringBuilder(); for (var i = 0; i < input.Arguments.Count; i++) { sb.Append(input.Arguments[i]); if (i != input.Arguments.Count - 1) sb.Append("_"); } return sb.ToString(); } else return "NULL"; default: throw new InvalidOperationException("无效的缓存方式。"); } } #region IInterceptionBehavior Members public IEnumerable GetRequiredInterfaces() { return Type.EmptyTypes; } public IMethodReturn Invoke(IMethodInvocation input, GetNextInterceptionBehaviorDelegate getNext) { // 获得被拦截的方法 var method = input.MethodBase; var key = method.Name; // 获得拦截的方法名 // 如果拦截的方法定义了Cache属性,说明需要对该方法的结果需要进行缓存 if (!method.IsDefined(typeof (CacheAttribute), false)) return getNext().Invoke(input, getNext); var cachingAttribute = (CacheAttribute)method.GetCustomAttributes(typeof (CacheAttribute), false)[0]; var valueKey = GetValueKey(cachingAttribute, input); switch (cachingAttribute.Method) { case CachingMethod.Get: try { // 如果缓存中存在该键值的缓存,则直接返回缓存中的结果退出 if (_cacheProvider.Exists(key, valueKey)) { var value = _cacheProvider.Get(key, valueKey); var arguments = new object[input.Arguments.Count]; input.Arguments.CopyTo(arguments, 0); return new VirtualMethodReturn(input, value, arguments); } else // 否则先调用方法,再把返回结果进行缓存 { var methodReturn = getNext().Invoke(input, getNext); _cacheProvider.Add(key, valueKey, methodReturn.ReturnValue); return methodReturn; } } catch (Exception ex) { return new VirtualMethodReturn(input, ex); } case CachingMethod.Update: try { var methodReturn = getNext().Invoke(input, getNext); if (_cacheProvider.Exists(key)) { if (cachingAttribute.IsForce) { _cacheProvider.Remove(key); _cacheProvider.Add(key, valueKey, methodReturn.ReturnValue); } else _cacheProvider.Update(key, valueKey, methodReturn); } else _cacheProvider.Add(key, valueKey, methodReturn.ReturnValue); return methodReturn; } catch (Exception ex) { return new VirtualMethodReturn(input, ex); } case CachingMethod.Remove: try { var removeKeys = cachingAttribute.CorrespondingMethodNames; foreach (var removeKey in removeKeys) { if (_cacheProvider.Exists(removeKey)) _cacheProvider.Remove(removeKey); } // 执行具体截获的方法 var methodReturn = getNext().Invoke(input, getNext); return methodReturn; } catch (Exception ex) { return new VirtualMethodReturn(input, ex); } default: break; } return getNext().Invoke(input, getNext); } public bool WillExecute { get { return true; } } #endregion } } ================================================ FILE: OnlineStore.Infrastructure/InterceptionBehaviors/ExceptionLoggingBehavior.cs ================================================ using System.Collections.Generic; using Microsoft.Practices.Unity.InterceptionExtension; using System; namespace OnlineStore.Infrastructure.InterceptionBehaviors { // 用于异常日志记录的拦截行为 public class ExceptionLoggingBehavior :IInterceptionBehavior { /// /// 需要拦截的对象类型的接口 /// /// public IEnumerable GetRequiredInterfaces() { return Type.EmptyTypes; } /// /// 通过该方法来拦截调用并执行所需要的拦截行为 /// /// 调用拦截目标时的输入信息 /// 通过行为链来获取下一个拦截行为的委托 /// 从拦截目标获得的返回信息 public IMethodReturn Invoke(IMethodInvocation input, GetNextInterceptionBehaviorDelegate getNext) { // 执行目标方法 var methodReturn = getNext().Invoke(input, getNext); // 方法执行后的处理 if (methodReturn.Exception != null) { Utils.Log(methodReturn.Exception); } return methodReturn; } // 表示当拦截行为被调用时,是否需要执行某些操作 public bool WillExecute { get { return true; } } } } ================================================ FILE: OnlineStore.Infrastructure/OnlineStore.Infrastructure.csproj ================================================  Debug AnyCPU {9DDE33CC-CF3C-436E-8A5F-4E1F0F8B603E} Library Properties OnlineStore.Infrastructure OnlineStore.Infrastructure v4.5 512 ..\ true true full false bin\Debug\ DEBUG;TRACE prompt 4 pdbonly true bin\Release\ TRACE prompt 4 ..\packages\log4net.2.0.3\lib\net40-full\log4net.dll ..\libs\AppfabricCaching\Microsoft.ApplicationServer.Caching.Client.dll ..\libs\AppfabricCaching\Microsoft.ApplicationServer.Caching.Core.dll ..\packages\EnterpriseLibrary.Caching.5.0.505.0\lib\NET35\Microsoft.Practices.EnterpriseLibrary.Caching.dll True ..\packages\EnterpriseLibrary.Common.5.0.505.0\lib\NET35\Microsoft.Practices.EnterpriseLibrary.Common.dll True False ..\packages\Unity.3.5.1404.0\lib\net45\Microsoft.Practices.Unity.dll ..\packages\Unity.3.5.1404.0\lib\net45\Microsoft.Practices.Unity.Configuration.dll ..\packages\Unity.Interception.3.5.1404.0\lib\Net45\Microsoft.Practices.Unity.Interception.dll ..\packages\Unity.Interception.3.5.1404.0\lib\Net45\Microsoft.Practices.Unity.Interception.Configuration.dll ..\packages\Unity.3.5.1404.0\lib\net45\Microsoft.Practices.Unity.RegistrationByConvention.dll ..\libs\AppfabricCaching\Microsoft.WindowsFabric.Common.dll ..\libs\AppfabricCaching\Microsoft.WindowsFabric.Data.Common.dll This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. ================================================ FILE: OnlineStore.Infrastructure/PagedResult.cs ================================================ using System.Collections; using System.Collections.Generic; namespace OnlineStore.Infrastructure { /// /// 分页结果 /// public class PagedResult : IEnumerable, ICollection { public static readonly PagedResult EmptyPagedResult = new PagedResult(0, 0, 0, 0, null); #region Public Properties // 总记录数 public int TotalRecords { get; set; } // 总页数 public int TotalPages { get; set; } // 每页的记录数 public int PageSize { get; set; } // 页码 public int PageNumber { get; set; } /// /// 获取或设置当前页码的记录 /// public List PageData { get; set; } #endregion #region Ctor public PagedResult() { this.PageData =new List(); } public PagedResult(int totalRecords, int totalPages, int pageSize, int pageNumber, List data) { this.TotalPages = totalPages; this.TotalRecords = totalRecords; this.PageSize = pageSize; this.PageNumber = pageNumber; this.PageData = data; } #endregion #region Override Object Members /// /// 确定指定的Object是否等于当前的Object。 /// /// 要与当前对象进行比较的对象。 /// 如果指定的Object与当前Object相等,则返回true,否则返回false。 public override bool Equals(object obj) { if (ReferenceEquals(this, obj)) return true; if (obj == (object)null) return false; var other = obj as PagedResult; if (ReferenceEquals(other, (object)null)) return false; return this.TotalPages == other.TotalPages && this.TotalRecords == other.TotalRecords && this.PageNumber == other.PageNumber && this.PageSize == other.PageSize && this.PageData == other.PageData; } /// /// 用作特定类型的哈希函数。 /// /// 当前Object的哈希代码。 public override int GetHashCode() { return this.TotalPages.GetHashCode() ^ this.TotalRecords.GetHashCode() ^ this.PageNumber.GetHashCode() ^ this.PageSize.GetHashCode(); } /// /// 确定两个对象是否相等。 /// /// 待确定的第一个对象。 /// 待确定的另一个对象。 /// 如果两者相等,则返回true,否则返回false。 public static bool operator ==(PagedResult a, PagedResult b) { if (ReferenceEquals(a, b)) return true; if ((object)a == null || (object)b == null) return false; return a.Equals(b); } /// /// 确定两个对象是否不相等。 /// /// 待确定的第一个对象。 /// 待确定的另一个对象。 /// 如果两者不相等,则返回true,否则返回false。 public static bool operator !=(PagedResult a, PagedResult b) { return !(a == b); } #endregion #region IEnumberable Members public IEnumerator GetEnumerator() { return PageData.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return PageData.GetEnumerator(); } #endregion #region ICollection Members public void Add(T item) { PageData.Add(item); } public void Clear() { PageData.Clear(); } public bool Contains(T item) { return PageData.Contains(item); } public void CopyTo(T[] array, int arrayIndex) { PageData.CopyTo(array, arrayIndex); } public int Count { get { return PageData.Count; } } public bool IsReadOnly { get { return false; } } public bool Remove(T item) { return PageData.Remove(item); } #endregion } } ================================================ FILE: OnlineStore.Infrastructure/Properties/AssemblyInfo.cs ================================================ using System.Reflection; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("OnlineStore.Infrastructure")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Microsoft")] [assembly: AssemblyProduct("OnlineStore.Infrastructure")] [assembly: AssemblyCopyright("Copyright © Microsoft 2015")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("27cc87c2-0d46-438b-89a6-f858f7770912")] // Version information for an assembly consists of the following four values: // // Major Version // Minor Version // Build Number // Revision // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] ================================================ FILE: OnlineStore.Infrastructure/ServiceLocator.cs ================================================ using System; using System.Collections.Generic; using System.Configuration.Internal; using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Reflection; using Microsoft.Practices.Unity; using Microsoft.Practices.Unity.Configuration; namespace OnlineStore.Infrastructure { // 服务定位器的实现 [SuppressMessage("ReSharper", "CoVariantArrayConversion")] public class ServiceLocator : IServiceProvider { private readonly IUnityContainer _container; private static ServiceLocator _instance = new ServiceLocator(); private ServiceLocator() { _container = new UnityContainer(); try { _container.LoadConfiguration(); } catch (Exception) { throw; } } public static ServiceLocator Instance { get { return _instance; } } #region Public Methods public T GetService() { return _container.Resolve(); } public void Register() where TTo : TFrom { _container.RegisterType(); } public void Register(string name) where TTo : TFrom { _container.RegisterType(name); } public IEnumerable ResolveAll() { return _container.ResolveAll(); } public T GetService(object overridedArguments) { var overrides = GetParameterOverrides(overridedArguments); return _container.Resolve(overrides.ToArray()); } public object GetService(Type serviceType, object overridedArguments) { var overrides = GetParameterOverrides(overridedArguments); return _container.Resolve(serviceType, overrides.ToArray()); } #endregion #region Private Methods private IEnumerable GetParameterOverrides(object overridedArguments) { var overrides = new List(); var argumentsType = overridedArguments.GetType(); argumentsType.GetProperties(BindingFlags.Public | BindingFlags.Instance) .ToList() .ForEach(property => { var propertyValue = property.GetValue(overridedArguments, null); var propertyName = property.Name; overrides.Add(new ParameterOverride(propertyName, propertyValue)); }); return overrides; } #endregion #region IServiceProvider Members public object GetService(Type serviceType) { return _container.Resolve(serviceType); } #endregion } } ================================================ FILE: OnlineStore.Infrastructure/Utils.cs ================================================ using System; using System.Diagnostics.CodeAnalysis; using System.Net; using System.Net.Mail; namespace OnlineStore.Infrastructure { [SuppressMessage("ReSharper", "InconsistentNaming")] public class Utils { #region Private Fields private static readonly log4net.ILog log = log4net.LogManager.GetLogger("OnlineStore.Logger"); #endregion #region Public Static Methods /// /// 将指定的字符串信息写入日志。 /// /// 需要写入日志的字符串信息。 public static void Log(string message) { log.Info(message); } /// /// 将指定的实例详细信息写入日志。 /// /// 需要将详细信息写入日志的实例。 public static void Log(Exception ex) { log.Error("Exception caught", ex); } /// /// 向指定的邮件地址发送邮件。 /// /// 需要发送邮件的邮件地址。 /// 邮件主题。 /// 邮件内容。 public static void SendEmail(string to, string subject, string content) { MailMessage msg = new MailMessage(); msg.To.Add(new MailAddress(to)); msg.Subject = subject; msg.Body = content; var smtpClient = new SmtpClient(); smtpClient.Send(msg); } #endregion } } ================================================ FILE: OnlineStore.Infrastructure/app.config ================================================  ================================================ FILE: OnlineStore.Infrastructure/packages.config ================================================  ================================================ FILE: OnlineStore.ModelDTO/OnlineStore.ModelDTO.csproj ================================================  Debug AnyCPU {3F57C38E-E4B1-4BBF-B106-637FAC43A2EF} Library Properties OnlineStore.ModelDTO OnlineStore.ModelDTO v4.5 512 true full false bin\Debug\ DEBUG;TRACE prompt 4 pdbonly true bin\Release\ TRACE prompt 4 True True Reference.svcmap True True Reference.svcmap Reference.svcmap Designer Designer Designer Reference.svcmap Reference.svcmap Designer Designer Designer WCF Proxy Generator Reference.cs WCF Proxy Generator Reference.cs ================================================ FILE: OnlineStore.ModelDTO/Properties/AssemblyInfo.cs ================================================ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // 有关程序集的常规信息通过以下 // 特性集控制。更改这些特性值可修改 // 与程序集关联的信息。 [assembly: AssemblyTitle("OnlineStore.ModelDTO")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("OnlineStore.ModelDTO")] [assembly: AssemblyCopyright("Copyright © 2015")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // 将 ComVisible 设置为 false 使此程序集中的类型 // 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型, // 则将该类型上的 ComVisible 特性设置为 true。 [assembly: ComVisible(false)] // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID [assembly: Guid("29f4a353-4554-4d8d-85e8-7cc31482a28f")] // 程序集的版本信息由下面四个值组成: // // 主版本 // 次版本 // 生成号 // 修订号 // // 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值, // 方法是按如下所示使用“*”: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] ================================================ FILE: OnlineStore.ModelDTO/Service References/OrderService/OnlineStore.ModelDTO.OrderService.ShoppingCart.datasource ================================================  OnlineStore.ModelDTO.OrderService.ShoppingCart, Service References.OrderService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null ================================================ FILE: OnlineStore.ModelDTO/Service References/OrderService/OrderService.disco ================================================ ================================================ FILE: OnlineStore.ModelDTO/Service References/OrderService/OrderService.wsdl ================================================ ================================================ FILE: OnlineStore.ModelDTO/Service References/OrderService/OrderService.xsd ================================================ ================================================ FILE: OnlineStore.ModelDTO/Service References/OrderService/OrderService1.xsd ================================================ ================================================ FILE: OnlineStore.ModelDTO/Service References/OrderService/OrderService2.xsd ================================================ ================================================ FILE: OnlineStore.ModelDTO/Service References/OrderService/Reference.cs ================================================ //------------------------------------------------------------------------------ // // 此代码由工具生成。 // 运行时版本:4.0.30319.18408 // // 对此文件的更改可能会导致不正确的行为,并且如果 // 重新生成代码,这些更改将会丢失。 // //------------------------------------------------------------------------------ namespace OnlineStore.ModelDTO.OrderService { using System.Runtime.Serialization; using System; [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] [System.Runtime.Serialization.DataContractAttribute(Name="AggregateRoot", Namespace="http://schemas.datacontract.org/2004/07/OnlineStore.Domain.Model")] [System.SerializableAttribute()] [System.Runtime.Serialization.KnownTypeAttribute(typeof(OnlineStore.ModelDTO.OrderService.User))] [System.Runtime.Serialization.KnownTypeAttribute(typeof(OnlineStore.ModelDTO.OrderService.Order))] [System.Runtime.Serialization.KnownTypeAttribute(typeof(OnlineStore.ModelDTO.OrderService.Product))] [System.Runtime.Serialization.KnownTypeAttribute(typeof(OnlineStore.ModelDTO.OrderService.ShoppingCart))] public partial class AggregateRoot : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { [System.NonSerializedAttribute()] private System.Runtime.Serialization.ExtensionDataObject extensionDataField; [System.Runtime.Serialization.OptionalFieldAttribute()] private System.Guid IdField; [global::System.ComponentModel.BrowsableAttribute(false)] public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { return this.extensionDataField; } set { this.extensionDataField = value; } } [System.Runtime.Serialization.DataMemberAttribute()] public System.Guid Id { get { return this.IdField; } set { if ((this.IdField.Equals(value) != true)) { this.IdField = value; this.RaisePropertyChanged("Id"); } } } public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; protected void RaisePropertyChanged(string propertyName) { System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; if ((propertyChanged != null)) { propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); } } } [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] [System.Runtime.Serialization.DataContractAttribute(Name="User", Namespace="http://schemas.datacontract.org/2004/07/OnlineStore.Domain.Model")] [System.SerializableAttribute()] public partial class User : OnlineStore.ModelDTO.OrderService.AggregateRoot { [System.Runtime.Serialization.OptionalFieldAttribute()] private string ContactField; [System.Runtime.Serialization.OptionalFieldAttribute()] private OnlineStore.ModelDTO.OrderService.Address DeliveryAddressField; [System.Runtime.Serialization.OptionalFieldAttribute()] private string EmailField; [System.Runtime.Serialization.OptionalFieldAttribute()] private bool IsDisabledField; [System.Runtime.Serialization.OptionalFieldAttribute()] private System.Nullable LastLogonDateField; [System.Runtime.Serialization.OptionalFieldAttribute()] private OnlineStore.ModelDTO.OrderService.Order[] OrdersField; [System.Runtime.Serialization.OptionalFieldAttribute()] private string PasswordField; [System.Runtime.Serialization.OptionalFieldAttribute()] private string PhoneNumberField; [System.Runtime.Serialization.OptionalFieldAttribute()] private System.DateTime RegisteredDateField; [System.Runtime.Serialization.OptionalFieldAttribute()] private string UserNameField; [System.Runtime.Serialization.DataMemberAttribute()] public string Contact { get { return this.ContactField; } set { if ((object.ReferenceEquals(this.ContactField, value) != true)) { this.ContactField = value; this.RaisePropertyChanged("Contact"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public OnlineStore.ModelDTO.OrderService.Address DeliveryAddress { get { return this.DeliveryAddressField; } set { if ((object.ReferenceEquals(this.DeliveryAddressField, value) != true)) { this.DeliveryAddressField = value; this.RaisePropertyChanged("DeliveryAddress"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public string Email { get { return this.EmailField; } set { if ((object.ReferenceEquals(this.EmailField, value) != true)) { this.EmailField = value; this.RaisePropertyChanged("Email"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public bool IsDisabled { get { return this.IsDisabledField; } set { if ((this.IsDisabledField.Equals(value) != true)) { this.IsDisabledField = value; this.RaisePropertyChanged("IsDisabled"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public System.Nullable LastLogonDate { get { return this.LastLogonDateField; } set { if ((this.LastLogonDateField.Equals(value) != true)) { this.LastLogonDateField = value; this.RaisePropertyChanged("LastLogonDate"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public OnlineStore.ModelDTO.OrderService.Order[] Orders { get { return this.OrdersField; } set { if ((object.ReferenceEquals(this.OrdersField, value) != true)) { this.OrdersField = value; this.RaisePropertyChanged("Orders"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public string Password { get { return this.PasswordField; } set { if ((object.ReferenceEquals(this.PasswordField, value) != true)) { this.PasswordField = value; this.RaisePropertyChanged("Password"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public string PhoneNumber { get { return this.PhoneNumberField; } set { if ((object.ReferenceEquals(this.PhoneNumberField, value) != true)) { this.PhoneNumberField = value; this.RaisePropertyChanged("PhoneNumber"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public System.DateTime RegisteredDate { get { return this.RegisteredDateField; } set { if ((this.RegisteredDateField.Equals(value) != true)) { this.RegisteredDateField = value; this.RaisePropertyChanged("RegisteredDate"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public string UserName { get { return this.UserNameField; } set { if ((object.ReferenceEquals(this.UserNameField, value) != true)) { this.UserNameField = value; this.RaisePropertyChanged("UserName"); } } } } [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] [System.Runtime.Serialization.DataContractAttribute(Name="Order", Namespace="http://schemas.datacontract.org/2004/07/OnlineStore.Domain.Model")] [System.SerializableAttribute()] public partial class Order : OnlineStore.ModelDTO.OrderService.AggregateRoot { [System.Runtime.Serialization.OptionalFieldAttribute()] private System.DateTime CreatedDateField; [System.Runtime.Serialization.OptionalFieldAttribute()] private System.Nullable DeliveredDateField; [System.Runtime.Serialization.OptionalFieldAttribute()] private System.Nullable DispatchedDateField; [System.Runtime.Serialization.OptionalFieldAttribute()] private OnlineStore.ModelDTO.OrderService.OrderItem[] OrderItemsField; [System.Runtime.Serialization.OptionalFieldAttribute()] private OnlineStore.ModelDTO.OrderService.User UserField; [System.Runtime.Serialization.DataMemberAttribute()] public System.DateTime CreatedDate { get { return this.CreatedDateField; } set { if ((this.CreatedDateField.Equals(value) != true)) { this.CreatedDateField = value; this.RaisePropertyChanged("CreatedDate"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public System.Nullable DeliveredDate { get { return this.DeliveredDateField; } set { if ((this.DeliveredDateField.Equals(value) != true)) { this.DeliveredDateField = value; this.RaisePropertyChanged("DeliveredDate"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public System.Nullable DispatchedDate { get { return this.DispatchedDateField; } set { if ((this.DispatchedDateField.Equals(value) != true)) { this.DispatchedDateField = value; this.RaisePropertyChanged("DispatchedDate"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public OnlineStore.ModelDTO.OrderService.OrderItem[] OrderItems { get { return this.OrderItemsField; } set { if ((object.ReferenceEquals(this.OrderItemsField, value) != true)) { this.OrderItemsField = value; this.RaisePropertyChanged("OrderItems"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public OnlineStore.ModelDTO.OrderService.User User { get { return this.UserField; } set { if ((object.ReferenceEquals(this.UserField, value) != true)) { this.UserField = value; this.RaisePropertyChanged("User"); } } } } [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] [System.Runtime.Serialization.DataContractAttribute(Name="Product", Namespace="http://schemas.datacontract.org/2004/07/OnlineStore.Domain.Model")] [System.SerializableAttribute()] public partial class Product : OnlineStore.ModelDTO.OrderService.AggregateRoot { [System.Runtime.Serialization.OptionalFieldAttribute()] private string DescriptionField; [System.Runtime.Serialization.OptionalFieldAttribute()] private string ImageUrlField; [System.Runtime.Serialization.OptionalFieldAttribute()] private bool IsNewField; [System.Runtime.Serialization.OptionalFieldAttribute()] private string NameField; [System.Runtime.Serialization.OptionalFieldAttribute()] private decimal UnitPriceField; [System.Runtime.Serialization.DataMemberAttribute()] public string Description { get { return this.DescriptionField; } set { if ((object.ReferenceEquals(this.DescriptionField, value) != true)) { this.DescriptionField = value; this.RaisePropertyChanged("Description"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public string ImageUrl { get { return this.ImageUrlField; } set { if ((object.ReferenceEquals(this.ImageUrlField, value) != true)) { this.ImageUrlField = value; this.RaisePropertyChanged("ImageUrl"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public bool IsNew { get { return this.IsNewField; } set { if ((this.IsNewField.Equals(value) != true)) { this.IsNewField = value; this.RaisePropertyChanged("IsNew"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public string Name { get { return this.NameField; } set { if ((object.ReferenceEquals(this.NameField, value) != true)) { this.NameField = value; this.RaisePropertyChanged("Name"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public decimal UnitPrice { get { return this.UnitPriceField; } set { if ((this.UnitPriceField.Equals(value) != true)) { this.UnitPriceField = value; this.RaisePropertyChanged("UnitPrice"); } } } } [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] [System.Runtime.Serialization.DataContractAttribute(Name="ShoppingCart", Namespace="http://schemas.datacontract.org/2004/07/OnlineStore.Domain.Model")] [System.SerializableAttribute()] public partial class ShoppingCart : OnlineStore.ModelDTO.OrderService.AggregateRoot { [System.Runtime.Serialization.OptionalFieldAttribute()] private OnlineStore.ModelDTO.OrderService.User UserField; [System.Runtime.Serialization.DataMemberAttribute()] public OnlineStore.ModelDTO.OrderService.User User { get { return this.UserField; } set { if ((object.ReferenceEquals(this.UserField, value) != true)) { this.UserField = value; this.RaisePropertyChanged("User"); } } } } [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] [System.Runtime.Serialization.DataContractAttribute(Name="Address", Namespace="http://schemas.datacontract.org/2004/07/OnlineStore.Domain.Model")] [System.SerializableAttribute()] public partial class Address : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { [System.NonSerializedAttribute()] private System.Runtime.Serialization.ExtensionDataObject extensionDataField; [System.Runtime.Serialization.OptionalFieldAttribute()] private string CityField; [System.Runtime.Serialization.OptionalFieldAttribute()] private string CountryField; [System.Runtime.Serialization.OptionalFieldAttribute()] private string StateField; [System.Runtime.Serialization.OptionalFieldAttribute()] private string StreetField; [System.Runtime.Serialization.OptionalFieldAttribute()] private string ZipField; [global::System.ComponentModel.BrowsableAttribute(false)] public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { return this.extensionDataField; } set { this.extensionDataField = value; } } [System.Runtime.Serialization.DataMemberAttribute()] public string City { get { return this.CityField; } set { if ((object.ReferenceEquals(this.CityField, value) != true)) { this.CityField = value; this.RaisePropertyChanged("City"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public string Country { get { return this.CountryField; } set { if ((object.ReferenceEquals(this.CountryField, value) != true)) { this.CountryField = value; this.RaisePropertyChanged("Country"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public string State { get { return this.StateField; } set { if ((object.ReferenceEquals(this.StateField, value) != true)) { this.StateField = value; this.RaisePropertyChanged("State"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public string Street { get { return this.StreetField; } set { if ((object.ReferenceEquals(this.StreetField, value) != true)) { this.StreetField = value; this.RaisePropertyChanged("Street"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public string Zip { get { return this.ZipField; } set { if ((object.ReferenceEquals(this.ZipField, value) != true)) { this.ZipField = value; this.RaisePropertyChanged("Zip"); } } } public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; protected void RaisePropertyChanged(string propertyName) { System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; if ((propertyChanged != null)) { propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); } } } [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] [System.Runtime.Serialization.DataContractAttribute(Name="OrderItem", Namespace="http://schemas.datacontract.org/2004/07/OnlineStore.Domain.Model")] [System.SerializableAttribute()] public partial class OrderItem : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { [System.NonSerializedAttribute()] private System.Runtime.Serialization.ExtensionDataObject extensionDataField; [System.Runtime.Serialization.OptionalFieldAttribute()] private System.Guid IdField; [System.Runtime.Serialization.OptionalFieldAttribute()] private OnlineStore.ModelDTO.OrderService.Order OrderField; [System.Runtime.Serialization.OptionalFieldAttribute()] private OnlineStore.ModelDTO.OrderService.Product ProductField; [System.Runtime.Serialization.OptionalFieldAttribute()] private int QuantityField; [global::System.ComponentModel.BrowsableAttribute(false)] public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { return this.extensionDataField; } set { this.extensionDataField = value; } } [System.Runtime.Serialization.DataMemberAttribute()] public System.Guid Id { get { return this.IdField; } set { if ((this.IdField.Equals(value) != true)) { this.IdField = value; this.RaisePropertyChanged("Id"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public OnlineStore.ModelDTO.OrderService.Order Order { get { return this.OrderField; } set { if ((object.ReferenceEquals(this.OrderField, value) != true)) { this.OrderField = value; this.RaisePropertyChanged("Order"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public OnlineStore.ModelDTO.OrderService.Product Product { get { return this.ProductField; } set { if ((object.ReferenceEquals(this.ProductField, value) != true)) { this.ProductField = value; this.RaisePropertyChanged("Product"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public int Quantity { get { return this.QuantityField; } set { if ((this.QuantityField.Equals(value) != true)) { this.QuantityField = value; this.RaisePropertyChanged("Quantity"); } } } public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; protected void RaisePropertyChanged(string propertyName) { System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; if ((propertyChanged != null)) { propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); } } } [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] [System.ServiceModel.ServiceContractAttribute(ConfigurationName="OrderService.IOrderService")] public interface IOrderService { [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOrderService/AddProductToCart", ReplyAction="http://tempuri.org/IOrderService/AddProductToCartResponse")] void AddProductToCart(System.Guid customerId, System.Guid productId, int quantity); [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOrderService/AddProductToCart", ReplyAction="http://tempuri.org/IOrderService/AddProductToCartResponse")] System.Threading.Tasks.Task AddProductToCartAsync(System.Guid customerId, System.Guid productId, int quantity); [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOrderService/GetShoppingCart", ReplyAction="http://tempuri.org/IOrderService/GetShoppingCartResponse")] OnlineStore.ModelDTO.OrderService.ShoppingCart GetShoppingCart(System.Guid customerId); [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOrderService/GetShoppingCart", ReplyAction="http://tempuri.org/IOrderService/GetShoppingCartResponse")] System.Threading.Tasks.Task GetShoppingCartAsync(System.Guid customerId); } [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] public interface IOrderServiceChannel : OnlineStore.ModelDTO.OrderService.IOrderService, System.ServiceModel.IClientChannel { } [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] public partial class OrderServiceClient : System.ServiceModel.ClientBase, OnlineStore.ModelDTO.OrderService.IOrderService { public OrderServiceClient() { } public OrderServiceClient(string endpointConfigurationName) : base(endpointConfigurationName) { } public OrderServiceClient(string endpointConfigurationName, string remoteAddress) : base(endpointConfigurationName, remoteAddress) { } public OrderServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : base(endpointConfigurationName, remoteAddress) { } public OrderServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : base(binding, remoteAddress) { } public void AddProductToCart(System.Guid customerId, System.Guid productId, int quantity) { base.Channel.AddProductToCart(customerId, productId, quantity); } public System.Threading.Tasks.Task AddProductToCartAsync(System.Guid customerId, System.Guid productId, int quantity) { return base.Channel.AddProductToCartAsync(customerId, productId, quantity); } public OnlineStore.ModelDTO.OrderService.ShoppingCart GetShoppingCart(System.Guid customerId) { return base.Channel.GetShoppingCart(customerId); } public System.Threading.Tasks.Task GetShoppingCartAsync(System.Guid customerId) { return base.Channel.GetShoppingCartAsync(customerId); } } } ================================================ FILE: OnlineStore.ModelDTO/Service References/OrderService/Reference.svcmap ================================================ false true true false false false true Auto true true ================================================ FILE: OnlineStore.ModelDTO/Service References/OrderService/configuration.svcinfo ================================================  ================================================ FILE: OnlineStore.ModelDTO/Service References/OrderService/configuration91.svcinfo ================================================ BasicHttpBinding_IOrderService StrongWildcard 65536 System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement 0 0 0 0 0 System.Text.UTF8Encoding Buffered Text System.ServiceModel.Configuration.BasicHttpSecurityElement None System.ServiceModel.Configuration.HttpTransportSecurityElement None None System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement Never TransportSelected (集合) System.ServiceModel.Configuration.BasicHttpMessageSecurityElement UserName Default http://localhost:8003/OrderService.svc basicHttpBinding BasicHttpBinding_IOrderService OrderService.IOrderService System.ServiceModel.Configuration.AddressHeaderCollectionElement <Header /> System.ServiceModel.Configuration.IdentityElement System.ServiceModel.Configuration.UserPrincipalNameElement System.ServiceModel.Configuration.ServicePrincipalNameElement System.ServiceModel.Configuration.DnsElement System.ServiceModel.Configuration.RsaElement System.ServiceModel.Configuration.CertificateElement System.ServiceModel.Configuration.CertificateReferenceElement My LocalMachine FindBySubjectDistinguishedName False BasicHttpBinding_IOrderService ================================================ FILE: OnlineStore.ModelDTO/Service References/ProductService/OnlineStore.ModelDTO.ProductService.Category.datasource ================================================  OnlineStore.ModelDTO.ProductService.Category, Service References.ProductService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null ================================================ FILE: OnlineStore.ModelDTO/Service References/ProductService/OnlineStore.ModelDTO.ProductService.Product.datasource ================================================  OnlineStore.ModelDTO.ProductService.Product, Service References.ProductService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null ================================================ FILE: OnlineStore.ModelDTO/Service References/ProductService/ProductService.disco ================================================ ================================================ FILE: OnlineStore.ModelDTO/Service References/ProductService/ProductService.wsdl ================================================ ================================================ FILE: OnlineStore.ModelDTO/Service References/ProductService/ProductService.xsd ================================================ ================================================ FILE: OnlineStore.ModelDTO/Service References/ProductService/ProductService1.wsdl ================================================ ================================================ FILE: OnlineStore.ModelDTO/Service References/ProductService/ProductService1.xsd ================================================ ================================================ FILE: OnlineStore.ModelDTO/Service References/ProductService/ProductService2.xsd ================================================ ================================================ FILE: OnlineStore.ModelDTO/Service References/ProductService/Reference.cs ================================================ //------------------------------------------------------------------------------ // // 此代码由工具生成。 // 运行时版本:4.0.30319.18408 // // 对此文件的更改可能会导致不正确的行为,并且如果 // 重新生成代码,这些更改将会丢失。 // //------------------------------------------------------------------------------ namespace OnlineStore.ModelDTO.ProductService { using System.Runtime.Serialization; using System; [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] [System.Runtime.Serialization.DataContractAttribute(Name="Product", Namespace="http://schemas.datacontract.org/2004/07/OnlineStore.Domain.Model")] [System.SerializableAttribute()] public partial class Product : OnlineStore.ModelDTO.ProductService.AggregateRoot { [System.Runtime.Serialization.OptionalFieldAttribute()] private string DescriptionField; [System.Runtime.Serialization.OptionalFieldAttribute()] private string ImageUrlField; [System.Runtime.Serialization.OptionalFieldAttribute()] private bool IsNewField; [System.Runtime.Serialization.OptionalFieldAttribute()] private string NameField; [System.Runtime.Serialization.OptionalFieldAttribute()] private decimal UnitPriceField; [System.Runtime.Serialization.DataMemberAttribute()] public string Description { get { return this.DescriptionField; } set { if ((object.ReferenceEquals(this.DescriptionField, value) != true)) { this.DescriptionField = value; this.RaisePropertyChanged("Description"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public string ImageUrl { get { return this.ImageUrlField; } set { if ((object.ReferenceEquals(this.ImageUrlField, value) != true)) { this.ImageUrlField = value; this.RaisePropertyChanged("ImageUrl"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public bool IsNew { get { return this.IsNewField; } set { if ((this.IsNewField.Equals(value) != true)) { this.IsNewField = value; this.RaisePropertyChanged("IsNew"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public string Name { get { return this.NameField; } set { if ((object.ReferenceEquals(this.NameField, value) != true)) { this.NameField = value; this.RaisePropertyChanged("Name"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public decimal UnitPrice { get { return this.UnitPriceField; } set { if ((this.UnitPriceField.Equals(value) != true)) { this.UnitPriceField = value; this.RaisePropertyChanged("UnitPrice"); } } } } [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] [System.Runtime.Serialization.DataContractAttribute(Name="AggregateRoot", Namespace="http://schemas.datacontract.org/2004/07/OnlineStore.Domain.Model")] [System.SerializableAttribute()] [System.Runtime.Serialization.KnownTypeAttribute(typeof(OnlineStore.ModelDTO.ProductService.Category))] [System.Runtime.Serialization.KnownTypeAttribute(typeof(OnlineStore.ModelDTO.ProductService.Product))] public partial class AggregateRoot : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { [System.NonSerializedAttribute()] private System.Runtime.Serialization.ExtensionDataObject extensionDataField; [System.Runtime.Serialization.OptionalFieldAttribute()] private System.Guid IdField; [global::System.ComponentModel.BrowsableAttribute(false)] public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { return this.extensionDataField; } set { this.extensionDataField = value; } } [System.Runtime.Serialization.DataMemberAttribute()] public System.Guid Id { get { return this.IdField; } set { if ((this.IdField.Equals(value) != true)) { this.IdField = value; this.RaisePropertyChanged("Id"); } } } public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; protected void RaisePropertyChanged(string propertyName) { System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; if ((propertyChanged != null)) { propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); } } } [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] [System.Runtime.Serialization.DataContractAttribute(Name="Category", Namespace="http://schemas.datacontract.org/2004/07/OnlineStore.Domain.Model")] [System.SerializableAttribute()] public partial class Category : OnlineStore.ModelDTO.ProductService.AggregateRoot { [System.Runtime.Serialization.OptionalFieldAttribute()] private string DescriptionField; [System.Runtime.Serialization.OptionalFieldAttribute()] private string NameField; [System.Runtime.Serialization.DataMemberAttribute()] public string Description { get { return this.DescriptionField; } set { if ((object.ReferenceEquals(this.DescriptionField, value) != true)) { this.DescriptionField = value; this.RaisePropertyChanged("Description"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public string Name { get { return this.NameField; } set { if ((object.ReferenceEquals(this.NameField, value) != true)) { this.NameField = value; this.RaisePropertyChanged("Name"); } } } } [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] [System.ServiceModel.ServiceContractAttribute(Namespace="", ConfigurationName="ProductService.IProductService")] public interface IProductService { [System.ServiceModel.OperationContractAttribute(Action="urn:IProductService/GetProducts", ReplyAction="urn:IProductService/GetProductsResponse")] OnlineStore.ModelDTO.ProductService.Product[] GetProducts(); [System.ServiceModel.OperationContractAttribute(Action="urn:IProductService/GetProducts", ReplyAction="urn:IProductService/GetProductsResponse")] System.Threading.Tasks.Task GetProductsAsync(); [System.ServiceModel.OperationContractAttribute(Action="urn:IProductService/GetProductsForCategory", ReplyAction="urn:IProductService/GetProductsForCategoryResponse")] OnlineStore.ModelDTO.ProductService.Product[] GetProductsForCategory(System.Guid categoryId); [System.ServiceModel.OperationContractAttribute(Action="urn:IProductService/GetProductsForCategory", ReplyAction="urn:IProductService/GetProductsForCategoryResponse")] System.Threading.Tasks.Task GetProductsForCategoryAsync(System.Guid categoryId); [System.ServiceModel.OperationContractAttribute(Action="urn:IProductService/GetNewProducts", ReplyAction="urn:IProductService/GetNewProductsResponse")] OnlineStore.ModelDTO.ProductService.Product[] GetNewProducts(int count); [System.ServiceModel.OperationContractAttribute(Action="urn:IProductService/GetNewProducts", ReplyAction="urn:IProductService/GetNewProductsResponse")] System.Threading.Tasks.Task GetNewProductsAsync(int count); [System.ServiceModel.OperationContractAttribute(Action="urn:IProductService/GetCategories", ReplyAction="urn:IProductService/GetCategoriesResponse")] OnlineStore.ModelDTO.ProductService.Category[] GetCategories(); [System.ServiceModel.OperationContractAttribute(Action="urn:IProductService/GetCategories", ReplyAction="urn:IProductService/GetCategoriesResponse")] System.Threading.Tasks.Task GetCategoriesAsync(); [System.ServiceModel.OperationContractAttribute(Action="urn:IProductService/GetProductById", ReplyAction="urn:IProductService/GetProductByIdResponse")] OnlineStore.ModelDTO.ProductService.Product GetProductById(System.Guid id); [System.ServiceModel.OperationContractAttribute(Action="urn:IProductService/GetProductById", ReplyAction="urn:IProductService/GetProductByIdResponse")] System.Threading.Tasks.Task GetProductByIdAsync(System.Guid id); } [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] public interface IProductServiceChannel : OnlineStore.ModelDTO.ProductService.IProductService, System.ServiceModel.IClientChannel { } [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] public partial class ProductServiceClient : System.ServiceModel.ClientBase, OnlineStore.ModelDTO.ProductService.IProductService { public ProductServiceClient() { } public ProductServiceClient(string endpointConfigurationName) : base(endpointConfigurationName) { } public ProductServiceClient(string endpointConfigurationName, string remoteAddress) : base(endpointConfigurationName, remoteAddress) { } public ProductServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : base(endpointConfigurationName, remoteAddress) { } public ProductServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : base(binding, remoteAddress) { } public OnlineStore.ModelDTO.ProductService.Product[] GetProducts() { return base.Channel.GetProducts(); } public System.Threading.Tasks.Task GetProductsAsync() { return base.Channel.GetProductsAsync(); } public OnlineStore.ModelDTO.ProductService.Product[] GetProductsForCategory(System.Guid categoryId) { return base.Channel.GetProductsForCategory(categoryId); } public System.Threading.Tasks.Task GetProductsForCategoryAsync(System.Guid categoryId) { return base.Channel.GetProductsForCategoryAsync(categoryId); } public OnlineStore.ModelDTO.ProductService.Product[] GetNewProducts(int count) { return base.Channel.GetNewProducts(count); } public System.Threading.Tasks.Task GetNewProductsAsync(int count) { return base.Channel.GetNewProductsAsync(count); } public OnlineStore.ModelDTO.ProductService.Category[] GetCategories() { return base.Channel.GetCategories(); } public System.Threading.Tasks.Task GetCategoriesAsync() { return base.Channel.GetCategoriesAsync(); } public OnlineStore.ModelDTO.ProductService.Product GetProductById(System.Guid id) { return base.Channel.GetProductById(id); } public System.Threading.Tasks.Task GetProductByIdAsync(System.Guid id) { return base.Channel.GetProductByIdAsync(id); } } } ================================================ FILE: OnlineStore.ModelDTO/Service References/ProductService/Reference.svcmap ================================================ false true true false false false true Auto true true ================================================ FILE: OnlineStore.ModelDTO/Service References/ProductService/configuration.svcinfo ================================================  ================================================ FILE: OnlineStore.ModelDTO/Service References/ProductService/configuration91.svcinfo ================================================ BasicHttpBinding_IProductService StrongWildcard 65536 System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement 0 0 0 0 0 System.Text.UTF8Encoding Buffered Text System.ServiceModel.Configuration.BasicHttpSecurityElement None System.ServiceModel.Configuration.HttpTransportSecurityElement None None System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement Never TransportSelected (集合) System.ServiceModel.Configuration.BasicHttpMessageSecurityElement UserName Default http://localhost:8003/ProductService.svc basicHttpBinding BasicHttpBinding_IProductService ProductService.IProductService System.ServiceModel.Configuration.AddressHeaderCollectionElement <Header /> System.ServiceModel.Configuration.IdentityElement System.ServiceModel.Configuration.UserPrincipalNameElement System.ServiceModel.Configuration.ServicePrincipalNameElement System.ServiceModel.Configuration.DnsElement System.ServiceModel.Configuration.RsaElement System.ServiceModel.Configuration.CertificateElement System.ServiceModel.Configuration.CertificateReferenceElement My LocalMachine FindBySubjectDistinguishedName False BasicHttpBinding_IProductService ================================================ FILE: OnlineStore.ModelDTO/app.config ================================================  ================================================ FILE: OnlineStore.Repositories/App.config ================================================ 
================================================ FILE: OnlineStore.Repositories/EntityFramework/CategoryRepository.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using OnlineStore.Domain.Model; using OnlineStore.Domain.Repositories; namespace OnlineStore.Repositories.EntityFramework { // 类别仓储的实现 public class CategoryRepository : EntityFrameworkRepository, ICategoryRepository { public CategoryRepository(IRepositoryContext context) : base(context) { } } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/EntityFrameworkRepository.cs ================================================ using System; using System.Collections.Generic; using OnlineStore.Domain; using System.Linq; using OnlineStore.Domain.Specifications; using System.Linq.Expressions; using OnlineStore.Domain.Repositories; using OnlineStore.Infrastructure; namespace OnlineStore.Repositories.EntityFramework { // 定义一个抽象类,实现代码的复用,因为我不想让每个具体的仓储类都去实现一遍Add,GetAll, Remove,Update逻辑 // 所以定义一个抽象类来实现这些公共的逻辑,具体仓储类只需要另外实现具体逻辑 public abstract class EntityFrameworkRepository : IRepository where TAggregateRoot: class, IAggregateRoot { private readonly IEntityFrameworkRepositoryContext _efContext; protected EntityFrameworkRepository(IRepositoryContext context) { var efContext = context as IEntityFrameworkRepositoryContext; if (efContext != null) this._efContext = efContext; } private MemberExpression GetMemberInfo(LambdaExpression lambda) { if (lambda == null) throw new ArgumentNullException("lambda"); MemberExpression memberExpr = null; switch (lambda.Body.NodeType) { case ExpressionType.Convert: memberExpr = ((UnaryExpression)lambda.Body).Operand as MemberExpression; break; case ExpressionType.MemberAccess: memberExpr = lambda.Body as MemberExpression; break; } if (memberExpr == null) throw new ArgumentException("method"); return memberExpr; } private string GetEagerLoadingPath(Expression> eagerLoadingProperty) { var memberExpression = this.GetMemberInfo(eagerLoadingProperty); var parameterName = eagerLoadingProperty.Parameters.First().Name; var memberExpressionStr = memberExpression.ToString(); var path = memberExpressionStr.Replace(parameterName + ".", ""); return path; } protected IEntityFrameworkRepositoryContext EfContext { get { return this._efContext; } } public void Add(TAggregateRoot aggregateRoot) { // 调用IEntityFrameworkRepositoryContext的RegisterNew方法将实体添加进DbContext.DbSet对象中 _efContext.RegisterNew(aggregateRoot); } public TAggregateRoot GetByKey(Guid key) { return _efContext.DbContex.Set().First(a => a.Id == key); } public TAggregateRoot GetBySpecification(ISpecification spec) { return _efContext.DbContex.Set().FirstOrDefault(spec.Expression); } public TAggregateRoot GetByExpression(Expression> expression) { return _efContext.DbContex.Set().FirstOrDefault(expression); } public IEnumerable GetAll() { return GetAll(new AnySpecification(), null, SortOrder.UnSpecified); } public IEnumerable GetAll(ISpecification specification) { return GetAll(specification, null, SortOrder.UnSpecified); } public IEnumerable GetAll(Expression> sortPredicate, SortOrder sortOrder) { return GetAll(new AnySpecification(), sortPredicate, sortOrder); } public IEnumerable GetAll(ISpecification specification, Expression> sortPredicate, SortOrder sortOrder) { var query = _efContext.DbContex.Set().Where(specification.Expression); if (sortPredicate != null) { switch (sortOrder) { case SortOrder.Ascending: return query.SortBy(sortPredicate).ToList(); break; case SortOrder.Descending: return query.SortByDescending(sortPredicate).ToList(); break; default: break; } } return query.ToList(); } public bool Exists(ISpecification specification) { var count = _efContext.DbContex.Set().Count(specification.IsSatisfiedBy); return count != 0; } public void Remove(TAggregateRoot aggregateRoot) { _efContext.RegisterDeleted(aggregateRoot); } public void Update(TAggregateRoot aggregateRoot) { _efContext.RegisterModified(aggregateRoot); } #region 饥饿加载方式实现 public TAggregateRoot GetBySpecification(ISpecification specification, params Expression>[] eagerLoadingProperties) { var dbset = _efContext.DbContex.Set(); if (eagerLoadingProperties != null && eagerLoadingProperties.Length > 0) { var eagerLoadingProperty = eagerLoadingProperties[0]; var eagerLoadingPath = this.GetEagerLoadingPath(eagerLoadingProperty); var dbquery = dbset.Include(eagerLoadingPath); for (var i = 1; i < eagerLoadingProperties.Length; i++) { eagerLoadingProperty = eagerLoadingProperties[i]; eagerLoadingPath = this.GetEagerLoadingPath(eagerLoadingProperty); dbquery = dbquery.Include(eagerLoadingPath); } return dbquery.Where(specification.Expression).FirstOrDefault(); } else return dbset.Where(specification.Expression).FirstOrDefault(); } public IEnumerable GetAll(params Expression>[] eagerLoadingProperties) { return GetAll(new AnySpecification(), null, SortOrder.UnSpecified, eagerLoadingProperties); } public IEnumerable GetAll(Expression> sortPredicate, SortOrder sortOrder, params Expression>[] eagerLoadingProperties) { return GetAll(new AnySpecification(), sortPredicate, sortOrder, eagerLoadingProperties); } public IEnumerable GetAll(ISpecification specification, params Expression>[] eagerLoadingProperties) { return GetAll(specification, null, SortOrder.UnSpecified, eagerLoadingProperties); } public IEnumerable GetAll(ISpecification specification, Expression> sortPredicate, SortOrder sortOrder, params Expression>[] eagerLoadingProperties) { var dbset = _efContext.DbContex.Set(); IQueryable queryable = null; if (eagerLoadingProperties != null && eagerLoadingProperties.Length > 0) { var eagerLoadingProperty = eagerLoadingProperties[0]; var eagerLoadingPath = this.GetEagerLoadingPath(eagerLoadingProperty); var dbquery = dbset.Include(eagerLoadingPath); for (var i = 1; i < eagerLoadingProperties.Length; i++) { eagerLoadingProperty = eagerLoadingProperties[i]; eagerLoadingPath = this.GetEagerLoadingPath(eagerLoadingProperty); dbquery = dbquery.Include(eagerLoadingPath); } queryable = dbquery.Where(specification.Expression); } else queryable = dbset.Where(specification.Expression); if (sortPredicate != null) { switch (sortOrder) { case SortOrder.Ascending: return queryable.SortBy(sortPredicate).ToList(); case SortOrder.Descending: return queryable.SortByDescending(sortPredicate).ToList(); default: break; } } return queryable.ToList(); } #endregion #region 分页支持 public PagedResult GetAll(Expression> sortPredicate, SortOrder sortOrder, int pageNumber, int pageSize) { return GetAll(new AnySpecification(), sortPredicate, sortOrder, pageNumber, pageSize); } // 分页也就是每次只取出每页展示的数据大小 public PagedResult GetAll(ISpecification specification, Expression> sortPredicate, SortOrder sortOrder, int pageNumber, int pageSize) { if(pageNumber <= 0) throw new ArgumentOutOfRangeException("pageNumber",pageNumber, "页码必须大于等于1"); if (pageSize <= 0) throw new ArgumentOutOfRangeException("pageSize", pageSize, "每页大小必须大于或等于1"); var query = _efContext.DbContex.Set() .Where(specification.Expression); var skip = (pageNumber - 1)* pageSize; var take = pageSize; if (sortPredicate == null) throw new InvalidOperationException("基于分页功能的查询必须指定排序字段和排序顺序。"); switch (sortOrder) { case SortOrder.Ascending: var pagedGroupAscending = query.SortBy(sortPredicate).Skip(skip).Take(take).GroupBy(p => new { Total = query.Count() }).FirstOrDefault(); if (pagedGroupAscending == null) return null; return new PagedResult(pagedGroupAscending.Key.Total, (pagedGroupAscending.Key.Total + pageSize - 1) / pageSize, pageSize, pageNumber, pagedGroupAscending.Select(p => p).ToList()); case SortOrder.Descending: var pagedGroupDescending = query.SortByDescending(sortPredicate).Skip(skip).Take(take).GroupBy(p => new { Total = query.Count() }).FirstOrDefault(); if (pagedGroupDescending == null) return null; return new PagedResult(pagedGroupDescending.Key.Total, (pagedGroupDescending.Key.Total + pageSize - 1) / pageSize, pageSize, pageNumber, pagedGroupDescending.Select(p => p).ToList()); default: break; } throw new InvalidOperationException("基于分页功能的查询必须指定排序字段和排序顺序。"); } public PagedResult GetAll(Expression> sortPredicate, SortOrder sortOrder, int pageNumber, int pageSize, params Expression>[] eagerLoadingProperties) { return GetAll(new AnySpecification(), sortPredicate, sortOrder, pageNumber, pageSize, eagerLoadingProperties); } public PagedResult GetAll(ISpecification specification, Expression> sortPredicate, SortOrder sortOrder, int pageNumber, int pageSize, params Expression>[] eagerLoadingProperties) { if (pageNumber <= 0) throw new ArgumentOutOfRangeException("pageNumber", pageNumber, "页码必须大于等于1"); if (pageSize <= 0) throw new ArgumentOutOfRangeException("pageSize", pageSize, "每页大小必须大于或等于1"); // 将需要饥饿加载的内容添加到Include方法参数中 var dbset = _efContext.DbContex.Set(); IQueryable query = null; if (eagerLoadingProperties != null && eagerLoadingProperties.Length > 0) { var eagerLoadingProperty = eagerLoadingProperties[0]; var eagerLoadingPath = this.GetEagerLoadingPath(eagerLoadingProperty); var dbquery = dbset.Include(eagerLoadingPath); for (var i = 1; i < eagerLoadingProperties.Length; i++) { eagerLoadingProperty = eagerLoadingProperties[i]; eagerLoadingPath = this.GetEagerLoadingPath(eagerLoadingProperty); dbquery = dbquery.Include(eagerLoadingPath); } query = dbquery.Where(specification.Expression); } else query = dbset.Where(specification.Expression); var skip = (pageNumber - 1) * pageSize; var take = pageSize; if (sortPredicate == null) throw new InvalidOperationException("基于分页功能的查询必须指定排序字段和排序顺序。"); switch (sortOrder) { case SortOrder.Ascending: var pagedGroupAscending = query.SortBy(sortPredicate).Skip(skip).Take(take).GroupBy(p => new { Total = query.Count() }).FirstOrDefault(); if (pagedGroupAscending == null) return null; return new PagedResult(pagedGroupAscending.Key.Total, (pagedGroupAscending.Key.Total + pageSize - 1) / pageSize, pageSize, pageNumber, pagedGroupAscending.Select(p => p).ToList()); case SortOrder.Descending: var pagedGroupDescending = query.SortByDescending(sortPredicate).Skip(skip).Take(take).GroupBy(p => new { Total = query.Count() }).FirstOrDefault(); if (pagedGroupDescending == null) return null; return new PagedResult(pagedGroupDescending.Key.Total, (pagedGroupDescending.Key.Total + pageSize - 1) / pageSize, pageSize, pageNumber, pagedGroupDescending.Select(p => p).ToList()); default: break; } throw new InvalidOperationException("基于分页功能的查询必须指定排序字段和排序顺序。"); } #endregion } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/EntityFrameworkRepositoryContext.cs ================================================  using System; using System.Data.Entity; using System.Linq; using System.Threading; namespace OnlineStore.Repositories.EntityFramework { // IEntityFrameworkRepositoryContext接口的实现 public class EntityFrameworkRepositoryContext : IEntityFrameworkRepositoryContext { // ThreadLocal代表线程本地存储,主要相当于一个静态变量 // 但静态变量在多线程访问时需要显式使用线程同步技术。 // 使用ThreadLocal变量,每个线程都会一个拷贝,从而避免了线程同步带来的性能开销 private readonly ThreadLocal _localCtx = new ThreadLocal(() => new OnlineStoreDbContext()); public OnlineStoreDbContext DbContex { get { return _localCtx.Value; } } private readonly Guid _id = Guid.NewGuid(); #region IRepositoryContext Members public Guid Id { get { return _id; } } public void RegisterNew(TAggregateRoot entity) where TAggregateRoot : class, Domain.IAggregateRoot { _localCtx.Value.Set().Add(entity); } public void RegisterModified(TAggregateRoot entity) where TAggregateRoot : class, Domain.IAggregateRoot { _localCtx.Value.Entry(entity).State = EntityState.Modified; } public void RegisterDeleted(TAggregateRoot entity) where TAggregateRoot : class, Domain.IAggregateRoot { _localCtx.Value.Set().Remove(entity); } #endregion #region IUnitOfWork Members public void Commit() { var validationError = _localCtx.Value.GetValidationErrors(); _localCtx.Value.SaveChanges(); } #endregion } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/IEntityFrameworkRepositoryContext.cs ================================================ using OnlineStore.Domain.Repositories; namespace OnlineStore.Repositories.EntityFramework { public interface IEntityFrameworkRepositoryContext : IRepositoryContext { #region Properties OnlineStoreDbContext DbContex { get; } #endregion } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/ModelConfigurations/CategoryTypeConfiguration.cs ================================================ using System; using System.ComponentModel.DataAnnotations.Schema; using System.Data.Entity.ModelConfiguration; using OnlineStore.Domain.Model; namespace OnlineStore.Repositories.EntityFramework.ModelConfigurations { public class CategoryTypeConfiguration : EntityTypeConfiguration { public CategoryTypeConfiguration() { HasKey(c => c.Id); Property(c => c.Id) .IsRequired() .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); Property(c => c.Name) .IsRequired() .HasMaxLength(25); } } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/ModelConfigurations/OrderItemTypeConfiguration.cs ================================================ using System; using System.ComponentModel.DataAnnotations.Schema; using System.Data.Entity.ModelConfiguration; using OnlineStore.Domain.Model; namespace OnlineStore.Repositories.EntityFramework.ModelConfigurations { public class OrderItemTypeConfiguration : EntityTypeConfiguration { public OrderItemTypeConfiguration() { HasKey(s => s.Id); Property(p => p.Id) .IsRequired() .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); HasRequired(p => p.Order) .WithMany(p => p.OrderItems); Ignore(p => p.ItemAmout); } } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/ModelConfigurations/OrderTypeConfiguration.cs ================================================ using System; using System.ComponentModel.DataAnnotations.Schema; using System.Data.Entity.ModelConfiguration; using OnlineStore.Domain.Model; namespace OnlineStore.Repositories.EntityFramework.ModelConfigurations { public class OrderTypeConfiguration : EntityTypeConfiguration { public OrderTypeConfiguration() { HasKey(s => s.Id); Property(s => s.Id) .IsRequired() .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); Ignore(p => p.Subtotal); } } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/ModelConfigurations/ProductCategorizationTypeConfiguration.cs ================================================ using System; using System.ComponentModel.DataAnnotations.Schema; using System.Data.Entity.ModelConfiguration; using OnlineStore.Domain.Model; namespace OnlineStore.Repositories.EntityFramework.ModelConfigurations { public class ProductCategorizationTypeConfiguration: EntityTypeConfiguration { public ProductCategorizationTypeConfiguration() { HasKey(c => c.Id); Property(c => c.Id) .IsRequired() .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); Property(c => c.ProductId) .IsRequired(); Property(c => c.CategoryId) .IsRequired(); } } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/ModelConfigurations/ProductTypeConfiguration.cs ================================================ using System; using System.ComponentModel.DataAnnotations.Schema; using System.Data.Entity.ModelConfiguration; using OnlineStore.Domain.Model; namespace OnlineStore.Repositories.EntityFramework.ModelConfigurations { public class ProductTypeConfiguration : EntityTypeConfiguration { #region Ctor public ProductTypeConfiguration() { HasKey(l => l.Id); Property(p => p.Id) .IsRequired() .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); Property(p => p.Description) .IsRequired(); Property(p => p.Name) .IsRequired() .HasMaxLength(40); Property(p => p.ImageUrl) .HasMaxLength(255); } #endregion } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/ModelConfigurations/RoleTypeConfiguration.cs ================================================ using System; using System.ComponentModel.DataAnnotations.Schema; using System.Data.Entity.ModelConfiguration; using OnlineStore.Domain.Model; namespace OnlineStore.Repositories.EntityFramework.ModelConfigurations { public class RoleTypeConfiguration : EntityTypeConfiguration { public RoleTypeConfiguration() { HasKey(c => c.Id); Property(c => c.Id) .IsRequired() .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); Property(c => c.Name) .IsRequired() .HasMaxLength(25); } } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/ModelConfigurations/ShoppingCartItemTypeConfiguration.cs ================================================ using System.ComponentModel.DataAnnotations.Schema; using System.Data.Entity.ModelConfiguration; using OnlineStore.Domain.Model; namespace OnlineStore.Repositories.EntityFramework.ModelConfigurations { public class ShoppingCartItemTypeConfiguration : EntityTypeConfiguration { public ShoppingCartItemTypeConfiguration() { HasKey(c => c.Id); Property(c => c.Id) .IsRequired() .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); Ignore(p => p.ItemAmount); } } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/ModelConfigurations/ShoppingCartTypeConfiguration.cs ================================================ using System.ComponentModel.DataAnnotations.Schema; using System.Data.Entity.ModelConfiguration; using OnlineStore.Domain.Model; namespace OnlineStore.Repositories.EntityFramework.ModelConfigurations { public class ShoppingCartTypeConfiguration : EntityTypeConfiguration { public ShoppingCartTypeConfiguration() { HasKey(c => c.Id); Property(c => c.Id) .IsRequired() .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); } } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/ModelConfigurations/UserRoleTypeConfiguration.cs ================================================ using System; using System.ComponentModel.DataAnnotations.Schema; using System.Data.Entity.ModelConfiguration; using OnlineStore.Domain.Model; namespace OnlineStore.Repositories.EntityFramework.ModelConfigurations { public class UserRoleTypeConfiguration : EntityTypeConfiguration { public UserRoleTypeConfiguration() { HasKey(ur => ur.Id); Property(ur => ur.Id) .IsRequired() .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); Property(ur => ur.RoleId) .IsRequired(); Property(ur => ur.UserId) .IsRequired(); } } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/ModelConfigurations/UserTypeConfiguration.cs ================================================ using System.ComponentModel.DataAnnotations.Schema; using System.Data.Entity.ModelConfiguration; using OnlineStore.Domain.Model; namespace OnlineStore.Repositories.EntityFramework.ModelConfigurations { public class UserTypeConfiguration : EntityTypeConfiguration { public UserTypeConfiguration() { HasKey(c => c.Id); Property(c => c.Id) .IsRequired() .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); Property(c => c.UserName) .IsRequired() .HasMaxLength(20); Property(c => c.Password) .IsRequired() .HasMaxLength(20); Property(c => c.Email) .IsRequired() .HasMaxLength(80); // 不加下面的配置,将会出现下面的错误,更多解决方案参考:http://www.tuicool.com/articles/M7RbAj // The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value. Property(c => c.RegisteredDate) .HasColumnType("datetime2") .HasPrecision(0); ToTable("Users"); } } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/OnlineStoreDbContext.cs ================================================ using System.Data.Entity; using OnlineStore.Domain.Model; using OnlineStore.Repositories.EntityFramework.ModelConfigurations; namespace OnlineStore.Repositories.EntityFramework { public sealed class OnlineStoreDbContext : DbContext { #region Ctor public OnlineStoreDbContext() : base("OnlineStore") { this.Configuration.AutoDetectChangesEnabled = true; this.Configuration.LazyLoadingEnabled = true; } #endregion #region Public Properties public DbSet Products { get { return this.Set(); } } public DbSet Categories { get { return this.Set(); } } public DbSet Users { get { return Set(); } } public DbSet ShoppingCarts { get { return Set(); } } public DbSet ProductCategorizations { get { return Set(); } } public DbSet UserRoles { get { return Set(); } } public DbSet Roles { get { return Set(); } } public DbSet Orders { get { return Set(); } } #endregion #region Protected Methods // // http://stackoverflow.com/questions/5270721/using-guid-as-pk-with-ef4-code-first protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder .Configurations .Add(new UserTypeConfiguration()) .Add(new ProductTypeConfiguration()) .Add(new CategoryTypeConfiguration()) .Add(new ProductCategorizationTypeConfiguration()) .Add(new OrderItemTypeConfiguration()) .Add(new OrderTypeConfiguration()) .Add(new ShoppingCartItemTypeConfiguration()) .Add(new ShoppingCartTypeConfiguration()) .Add(new RoleTypeConfiguration()) .Add(new UserRoleTypeConfiguration()); base.OnModelCreating(modelBuilder); } #endregion } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/OnlineStoreDbContextInitailizer.cs ================================================ using System.Data.Entity; namespace OnlineStore.Repositories.EntityFramework { // DropCreateDatabaseIfModelChanges: https://msdn.microsoft.com/zh-cn/library/gg679604(v=vs.113).aspx public sealed class OnlineStoreDbContextInitailizer : DropCreateDatabaseIfModelChanges { // 请在使用OnlineStoreDbContextInitailizer作为数据库初始化器(Database Initializer)时,去除以下代码行 // 的注释,以便在数据库重建时,相应的SQL脚本会被执行。对于已有数据库的情况,请直接注释掉以下代码行。 protected override void Seed(OnlineStoreDbContext context) { context.Database.ExecuteSqlCommand("CREATE UNIQUE INDEX IDX_CUSTOMER_USERNAME ON Users(UserName)"); context.Database.ExecuteSqlCommand("CREATE UNIQUE INDEX IDX_CUSTOMER_EMAIL ON Users(Email)"); context.Database.ExecuteSqlCommand("CREATE UNIQUE INDEX IDX_LAPTOP_NAME ON Laptops(Name)"); base.Seed(context); } public static void Initialize() { Database.SetInitializer(null); } } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/OrderRepository.cs ================================================ using OnlineStore.Domain.Model; using OnlineStore.Domain.Repositories; namespace OnlineStore.Repositories.EntityFramework { // 订单仓储的实现类 public class OrderRepository : EntityFrameworkRepository, IOrderRepository { public OrderRepository(IRepositoryContext context) : base(context) { } } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/ProductCategorizationRepository.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using OnlineStore.Domain.Model; using OnlineStore.Domain.Repositories; using OnlineStore.Infrastructure; namespace OnlineStore.Repositories.EntityFramework { public class ProductCategorizationRepository : EntityFrameworkRepository, IProductCategorizationRepository { public ProductCategorizationRepository(IRepositoryContext context) : base(context) { } public IEnumerable GetProductsForCategory(Category category) { var context = EfContext.DbContex; if (context == null) throw new InvalidOperationException("指定的仓储上下文(Repository Context)无效."); var query = from product in context.Products from categorization in context.ProductCategorizations where product.Id == categorization.ProductId && categorization.CategoryId == category.Id select product; return query.ToList(); } public PagedResult GetProductsForCategoryWithPagination(Category category, int pageNumber, int pageSize) { var context = EfContext.DbContex; if (context == null) throw new InvalidOperationException("指定的仓储上下文(Repository Context)无效."); var skip = (pageNumber - 1)*pageSize; var take = pageSize; var query = from product in context.Products from categorization in context.ProductCategorizations where product.Id == categorization.ProductId && categorization.CategoryId == category.Id orderby product.Name ascending select product; var pagedQuery = query.Skip(skip).Take(take).GroupBy(p => new {Total = query.Count()}).FirstOrDefault(); return pagedQuery == null ? null : new PagedResult(pagedQuery.Key.Total, (pagedQuery.Key.Total + pageSize - 1) / pageSize, pageSize, pageNumber, pagedQuery.Select(p => p).ToList()); } public Category GetCategoryForProduct(Product product) { var context = EfContext.DbContex; if (context == null) throw new InvalidOperationException("指定的仓储上下文(Repository Context)无效。"); var query = from category in context.Categories from categorization in context.ProductCategorizations where categorization.ProductId == product.Id && categorization.CategoryId == category.Id select category; return query.FirstOrDefault(); } } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/ProductRepository.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using OnlineStore.Domain.Model; using OnlineStore.Domain.Repositories; namespace OnlineStore.Repositories.EntityFramework { // 商品仓储的实现 public class ProductRepository : EntityFrameworkRepository, IProductRepository { #region Ctor public ProductRepository(IRepositoryContext context) : base(context) { } #endregion // 获得最新方法 public IEnumerable GetNewProducts(int count = 0) { var ctx = this.EfContext.DbContex as OnlineStoreDbContext; if (ctx == null) return null; var query = from p in ctx.Products where p.IsNew == true select p; if (count == 0) return query.ToList(); else return query.Take(count).ToList(); } } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/RoleRepository.cs ================================================ using OnlineStore.Domain.Model; using OnlineStore.Domain.Repositories; namespace OnlineStore.Repositories.EntityFramework { public class RoleRepository : EntityFrameworkRepository, IRoleRepository { public RoleRepository(IRepositoryContext context) : base(context) { } } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/ShoppingCartItemRepository.cs ================================================ using OnlineStore.Domain.Model; using OnlineStore.Domain.Repositories; using OnlineStore.Domain.Specifications; namespace OnlineStore.Repositories.EntityFramework { public class ShoppingCartItemRepository : EntityFrameworkRepository, IShoppingCartItemRepository { public ShoppingCartItemRepository(IRepositoryContext context) : base(context) { } #region IShoppingCartItemRepository Members public ShoppingCartItem FindItem(ShoppingCart shoppingCart, Product product) { return GetBySpecification(Specification.Eval (sci => sci.ShoopingCart.Id == shoppingCart.Id && sci.Product.Id == product.Id), elp => elp.Product); } #endregion } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/ShoppingCartRepository.cs ================================================ using OnlineStore.Domain.Model; using OnlineStore.Domain.Repositories; namespace OnlineStore.Repositories.EntityFramework { public class ShoppingCartRepository : EntityFrameworkRepository, IShoppingCartRepository { public ShoppingCartRepository(IRepositoryContext context) : base(context) { } } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/SortByExtension.cs ================================================ using System; using System.Linq; using System.Linq.Expressions; using System.Reflection; using OnlineStore.Domain; using OnlineStore.Domain.Repositories; namespace OnlineStore.Repositories.EntityFramework { // 因为IQuerable中的OrderBy方法是强类型的 // 定义排序的扩展方式,实现动态排序 internal static class SortByExtension { #region Internal Methods internal static IOrderedQueryable SortBy(this IQueryable query, Expression> sortPredicate) where TAggregateRoot : class, IAggregateRoot { return InvokeSortBy(query, sortPredicate, SortOrder.Ascending); } internal static IOrderedQueryable SortByDescending(this IQueryable query, Expression> sortPredicate) where TAggregateRoot : class, IAggregateRoot { return InvokeSortBy(query, sortPredicate, SortOrder.Descending); } #endregion #region Private Methods private static IOrderedQueryable InvokeSortBy(IQueryable query, Expression> sortPredicate, SortOrder sortOrder) where TAggregateRoot : class, IAggregateRoot { var param = sortPredicate.Parameters[0]; string propertyName = null; Type propertyType = null; Expression bodyExpression = null; if (sortPredicate.Body is UnaryExpression) { var unaryExpression = sortPredicate.Body as UnaryExpression; bodyExpression = unaryExpression.Operand; } else if (sortPredicate.Body is MemberExpression) { bodyExpression = sortPredicate.Body; } else throw new ArgumentException(@"The body of the sort predicate expression should be either UnaryExpression or MemberExpression.", "sortPredicate"); var memberExpression = (MemberExpression)bodyExpression; propertyName = memberExpression.Member.Name; if (memberExpression.Member.MemberType == MemberTypes.Property) { var propertyInfo = memberExpression.Member as PropertyInfo; if (propertyInfo != null) propertyType = propertyInfo.PropertyType; } else throw new InvalidOperationException(@"Cannot evaluate the type of property since the member expression represented by the sort predicate expression does not contain a PropertyInfo object."); var funcType = typeof(Func<,>).MakeGenericType(typeof(TAggregateRoot), propertyType); var convertedExpression = Expression.Lambda(funcType, Expression.Convert(Expression.Property(param, propertyName), propertyType), param); var sortingMethods = typeof(Queryable).GetMethods(BindingFlags.Public | BindingFlags.Static); var sortingMethodName = GetSortingMethodName(sortOrder); var sortingMethod = sortingMethods.First(sm => sm.Name == sortingMethodName && sm.GetParameters().Length == 2); return (IOrderedQueryable)sortingMethod .MakeGenericMethod(typeof(TAggregateRoot), propertyType) .Invoke(null, new object[] { query, convertedExpression }); } private static string GetSortingMethodName(SortOrder sortOrder) { switch (sortOrder) { case SortOrder.Ascending: return "OrderBy"; case SortOrder.Descending: return "OrderByDescending"; default: throw new ArgumentException("Sort Order must be specified as either Ascending or Descending.", "sortOrder"); } } #endregion } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/UserRepository.cs ================================================ using System; using System.Linq.Expressions; using OnlineStore.Domain.Model; using OnlineStore.Domain.Repositories; using OnlineStore.Domain.Specifications; namespace OnlineStore.Repositories.EntityFramework { public class UserRepository : EntityFrameworkRepository, IUserRepository { public UserRepository(IRepositoryContext context) : base(context) { } public bool CheckPassword(string userName, string password) { Expression> userNameExpression = u => u.UserName == userName; Expression> passwordExpression = u => u.Password == password; return Exists(new ExpressionSpecification(userNameExpression.And(passwordExpression))); } } } ================================================ FILE: OnlineStore.Repositories/EntityFramework/UserRoleRepository.cs ================================================ using System; using System.Linq; using OnlineStore.Domain.Model; using OnlineStore.Domain.Repositories; namespace OnlineStore.Repositories.EntityFramework { public class UserRoleRepository :EntityFrameworkRepository, IUserRoleRepository { public UserRoleRepository(IRepositoryContext context) : base(context) { } public Role GetRoleForUser(User user) { var context = EfContext.DbContex as OnlineStoreDbContext; if (context != null) { var query = from role in context.Roles from userRole in context.UserRoles from usr in context.Users where role.Id == userRole.RoleId && usr.Id == userRole.UserId && usr.Id == user.Id select role; return query.FirstOrDefault(); } throw new InvalidOperationException("The provided repository context is invalid."); } } } ================================================ FILE: OnlineStore.Repositories/OnlineStore.Repositories.csproj ================================================  Debug AnyCPU {30AFAB37-57BE-459C-A36A-5A72BBF77529} Library Properties OnlineStore.Repositories OnlineStore.Repositories v4.5 512 ..\ true true full false bin\Debug\ DEBUG;TRACE prompt 4 pdbonly true bin\Release\ TRACE prompt 4 ..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll ..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.SqlServer.dll {1ae7732f-2faf-407e-89dd-bad81c4132e0} OnlineStore.Domain {9DDE33CC-CF3C-436E-8A5F-4E1F0F8B603E} OnlineStore.Infrastructure This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. ================================================ FILE: OnlineStore.Repositories/Properties/AssemblyInfo.cs ================================================ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("OnlineStore.Repositories")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Microsoft")] [assembly: AssemblyProduct("OnlineStore.Repositories")] [assembly: AssemblyCopyright("Copyright © Microsoft 2015")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("5d393469-4ea1-46d5-bc3d-390c31fc2a43")] // Version information for an assembly consists of the following four values: // // Major Version // Minor Version // Build Number // Revision // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] ================================================ FILE: OnlineStore.Repositories/packages.config ================================================  ================================================ FILE: OnlineStore.ServiceContract/IOrderService.cs ================================================ using System; using System.Collections.Generic; using System.ServiceModel; using OnlineStore.ServiceContracts.ModelDTOs; namespace OnlineStore.ServiceContracts { [ServiceContract] public interface IOrderService { // 获得指定用户的购物车中商品数量 [OperationContract] [FaultContract(typeof (FaultData))] int GetShoppingCartItemCount(Guid userId); // 将指定的商品添加到指定客户的购物车 [OperationContract] [FaultContract(typeof(FaultData))] void AddProductToCart(Guid customerId, Guid productId, int quantity); // 根据指定的客户获取客户的购物车信息 [OperationContract] [FaultContract(typeof(FaultData))] ShoppingCartDto GetShoppingCart(Guid customerId); // [OperationContract] [FaultContract(typeof(FaultData))] void UpdateShoppingCartItem(Guid shoppingCartItemId, int quantity); [OperationContract] [FaultContract(typeof(FaultData))] void DeleteShoppingCartItem(Guid shoppingCartItemId); [OperationContract] [FaultContract(typeof(FaultData))] OrderDto Checkout(Guid customerId); [OperationContract] [FaultContract(typeof (FaultData))] OrderDto GetOrder(Guid orderId); [OperationContract] [FaultContract(typeof(FaultData))] IList GetOrdersForUser(Guid userId); [OperationContract] [FaultContract(typeof(FaultData))] IList GetAllOrders(); // 销售订单确认。 [OperationContract] [FaultContract(typeof(FaultData))] void Confirm(Guid orderId); // 确认发货 [OperationContract] [FaultContract(typeof(FaultData))] void Dispatch(Guid orderId); } } ================================================ FILE: OnlineStore.ServiceContract/IProductService.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.ServiceModel; using System.Text; using System.Threading.Tasks; using OnlineStore.ServiceContracts.ModelDTOs; using OnlineStore.Infrastructure.Caching; namespace OnlineStore.ServiceContracts { // 商品服务契约的定义 [ServiceContract(Namespace="")] public interface IProductService { #region Methods [OperationContract] [FaultContract(typeof (FaultData))] // 因为创建了新商品后,缓存已失效了,所以需要移除相对应的缓存 [Cache(CachingMethod.Remove, "GetProductsForCategory", "GetProductsWithPagination", "GetProductsForCategoryWithPagination", "GetNewProducts", "GetProducts", "GetProductById")] List CreateProducts(List productsDtos); [OperationContract] [FaultContract(typeof(FaultData))] [Cache(CachingMethod.Remove, "GetCategories", "GetCategoryById")] List CreateCategories(List categoriDtos); [OperationContract] [FaultContract(typeof(FaultData))] [Cache(CachingMethod.Remove, "GetProductsForCategory", "GetProductsWithPagination", "GetProductsForCategoryWithPagination", "GetNewProducts", "GetProducts", "GetProductById")] List UpdateProducts(List productsDtos); [OperationContract] [FaultContract(typeof(FaultData))] [Cache(CachingMethod.Remove, "GetCategories", "GetCategoryById")] List UpdateCategories(List categoriDtos); [OperationContract] [FaultContract(typeof(FaultData))] [Cache(CachingMethod.Remove, "GetProductsForCategory", "GetProductsWithPagination", "GetProductsForCategoryWithPagination", "GetNewProducts", "GetProducts", "GetProductById")] void DeleteProducts(List produList); [OperationContract] [FaultContract(typeof(FaultData))] [Cache(CachingMethod.Remove, "GetCategories", "GetCategoryById")] void DeleteCategories(List categoryList); /// /// 设置商品分类 /// /// /// /// [OperationContract] [FaultContract(typeof(FaultData))] [Cache(CachingMethod.Remove, "GetProductsForCategory", "GetProductsForCategoryWithPagination")] ProductCategorizationDto CategorizeProduct(Guid productId, Guid categoryId); /// /// 取消商品分类 /// /// /// [OperationContract] [FaultContract(typeof(FaultData))] [Cache(CachingMethod.Remove, "GetProductsForCategory", "GetProductsForCategoryWithPagination")] void UncategorizeProduct(Guid productId); // 获得所有商品的契约方法 [OperationContract] [FaultContract(typeof(FaultData))] [Cache(CachingMethod.Get)] IEnumerable GetProducts(); [OperationContract] [FaultContract(typeof(FaultData))] [Cache(CachingMethod.Get)] ProductDtoWithPagination GetProductsWithPagination(Pagination pagination); [OperationContract] [FaultContract(typeof(FaultData))] [Cache(CachingMethod.Get)] IEnumerable GetProductsForCategory(Guid categoryId); [OperationContract] [FaultContract(typeof(FaultData))] [Cache(CachingMethod.Get)] ProductDtoWithPagination GetProductsForCategoryWithPagination(Guid categoryId, Pagination pagination); // 获得新上市的商品的契约方法 [OperationContract] [FaultContract(typeof(FaultData))] [Cache(CachingMethod.Get)] IEnumerable GetNewProducts(int count); // 获得所有类别的契约方法 [OperationContract] [FaultContract(typeof (FaultData))] [Cache(CachingMethod.Get)] CategoryDto GetCategoryById(Guid id); // 获得所有类别的契约方法 [OperationContract] [FaultContract(typeof(FaultData))] [Cache(CachingMethod.Get)] IEnumerable GetCategories(); // 根据商品Id来获得商品的契约方法 [OperationContract] [FaultContract(typeof(FaultData))] [Cache(CachingMethod.Get)] ProductDto GetProductById(Guid id); #endregion } } ================================================ FILE: OnlineStore.ServiceContract/IUserService.cs ================================================ using System; using System.Collections.Generic; using System.ServiceModel; using OnlineStore.Infrastructure.Caching; using OnlineStore.ServiceContracts.ModelDTOs; namespace OnlineStore.ServiceContracts { // 用户服务契约 [ServiceContract(Namespace = "")] public interface IUserService { #region Methods [OperationContract] [FaultContract(typeof (FaultData))] IList CreateUsers(List userDtos); [OperationContract] [FaultContract(typeof(FaultData))] bool ValidateUser(string userName, string password); [OperationContract] [FaultContract(typeof(FaultData))] bool DisableUser(UserDto userDto); [OperationContract] [FaultContract(typeof(FaultData))] bool EnableUser(UserDto userDto); [OperationContract] [FaultContract(typeof(FaultData))] void DeleteUsers(List userDtos); [OperationContract] [FaultContract(typeof(FaultData))] IList UpdateUsers(List userDataObjects); [OperationContract] [FaultContract(typeof (FaultData))] UserDto GetUserByKey(Guid id); [OperationContract] [FaultContract(typeof(FaultData))] UserDto GetUserByEmail(string email); [OperationContract] [FaultContract(typeof(FaultData))] UserDto GetUserByName(string userName); [OperationContract] [FaultContract(typeof(FaultData))] IList GetUsers(); [OperationContract] [FaultContract(typeof(FaultData))] IList GetRoles(); [FaultContract(typeof(FaultData))] RoleDto GetRoleByKey(Guid id); [OperationContract] [FaultContract(typeof(FaultData))] IList CreateRoles(List roleDataObjects); [OperationContract] [FaultContract(typeof(FaultData))] IList UpdateRoles(List roleDataObjects); [OperationContract] [FaultContract(typeof(FaultData))] void DeleteRoles(List roleList); [OperationContract] [FaultContract(typeof(FaultData))] [Cache(CachingMethod.Remove, "GetRoleByUserName")] void AssignRole(Guid userId, Guid roleId); [OperationContract] [FaultContract(typeof(FaultData))] [Cache(CachingMethod.Remove, "GetRoleByUserName")] void UnassignRole(Guid userId); [OperationContract] [FaultContract(typeof(FaultData))] [Cache(CachingMethod.Get)] RoleDto GetRoleByUserName(string userName); [OperationContract] [FaultContract(typeof(FaultData))] IList GetOrdersForUser(string userName); #endregion } } ================================================ FILE: OnlineStore.ServiceContract/ModelDTOs/AddressDto.cs ================================================ namespace OnlineStore.ServiceContracts.ModelDTOs { public class AddressDto { public string Country { get; set; } public string State { get; set; } public string City { get; set; } public string Street { get; set; } public string Zip { get; set; } } } ================================================ FILE: OnlineStore.ServiceContract/ModelDTOs/CategoryDto.cs ================================================ using System.Collections.Generic; namespace OnlineStore.ServiceContracts.ModelDTOs { public class CategoryDto { public string Id { get; set; } public string Name { get; set; } public string Description { get; set; } //public IEnumerable Products { get; set; } } } ================================================ FILE: OnlineStore.ServiceContract/ModelDTOs/FaultData.cs ================================================ using System; using System.Runtime.Serialization; using System.ServiceModel; namespace OnlineStore.ServiceContracts.ModelDTOs { // [DataContract] public class FaultData { #region Public Properties [DataMember(Order = 0)] public string Message { get; set; } [DataMember(Order = 1)] public string FullMessage { get; set; } [DataMember(Order = 2)] public string StackTrace { get; set; } #endregion #region Public Static Methods public static FaultData CreateFromException(Exception ex) { return new FaultData { Message = ex.Message, FullMessage = ex.ToString(), StackTrace = ex.StackTrace }; } public static FaultReason CreateFaultReason(Exception ex) { return new FaultReason(ex.Message); } #endregion } } ================================================ FILE: OnlineStore.ServiceContract/ModelDTOs/OrderDto.cs ================================================ using System; using System.Collections.Generic; namespace OnlineStore.ServiceContracts.ModelDTOs { public class OrderDto { public string Id { get; set; } public OrderStatusDto? Status { get; set; } public DateTime? CreatedDate { get; set; } public DateTime? DispatchedDate { get; set; } public DateTime? DeliveredDate { get; set; } public string UserId { get; set; } public string UserName { get; set; } public string UserContact { get; set; } public string UserPhone { get; set; } public string UserEmail { get; set; } public string UserAddressCountry { get; set; } public string UserAddressState { get; set; } public string UserAddressCity { get; set; } public string UserAddressStreet { get; set; } public string UserAddressZip { get; set; } public List OrderItems { get; set; } public decimal? Subtotal { get; set; } } } ================================================ FILE: OnlineStore.ServiceContract/ModelDTOs/OrderItemDto.cs ================================================ using System.Collections.Generic; namespace OnlineStore.ServiceContracts.ModelDTOs { public class OrderItemDto { public string Id { get; set; } public int? Quantity { get; set; } public string OrderId { get; set; } public ProductDto Product { get; set; } public decimal? ItemAmount { get; set; } } } ================================================ FILE: OnlineStore.ServiceContract/ModelDTOs/OrderStatusDto.cs ================================================ namespace OnlineStore.ServiceContracts.ModelDTOs { public enum OrderStatusDto : int { Created = 0, Paid = 1, Picked = 2, Dispatched = 3, Delivered = 4 } } ================================================ FILE: OnlineStore.ServiceContract/ModelDTOs/Pagination.cs ================================================ namespace OnlineStore.ServiceContracts.ModelDTOs { // 分页信息类 public class Pagination { public int PageNumber { get; set; } public int PageSize { get; set; } public int? TotalPages { get; set; } public override string ToString() { return string.Format("PageSize={0} PageNumber={1} TotalPages={2}", this.PageSize, this.PageNumber, this.TotalPages ?? 0); } } } ================================================ FILE: OnlineStore.ServiceContract/ModelDTOs/ProductCategorizationDto.cs ================================================ using System; namespace OnlineStore.ServiceContracts.ModelDTOs { public class ProductCategorizationDto { public string Id { get; set; } public Guid CategoryId { get; set; } public Guid ProductId { get; set; } } } ================================================ FILE: OnlineStore.ServiceContract/ModelDTOs/ProductDto.cs ================================================ namespace OnlineStore.ServiceContracts.ModelDTOs { public class ProductDto { public string Id { get; set; } public string Name { get; set; } public string Description { get; set; } public decimal? UnitPrice { get; set; } public string ImageUrl { get; set; } public bool? IsNew { get; set; } public CategoryDto Category { get; set; } } } ================================================ FILE: OnlineStore.ServiceContract/ModelDTOs/ProductDtoWithPagination.cs ================================================ using System.Collections.Generic; namespace OnlineStore.ServiceContracts.ModelDTOs { public class ProductDtoWithPagination { public Pagination Pagination { get; set; } public List ProductDtos { get; set; } } } ================================================ FILE: OnlineStore.ServiceContract/ModelDTOs/RoleDto.cs ================================================ namespace OnlineStore.ServiceContracts.ModelDTOs { public class RoleDto { public string Id { get; set; } public string Name { get; set; } public string Description { get; set; } } } ================================================ FILE: OnlineStore.ServiceContract/ModelDTOs/ShoppingCartDto.cs ================================================ using System.Collections.Generic; namespace OnlineStore.ServiceContracts.ModelDTOs { public class ShoppingCartDto { public string Id { get; set; } public string CustomerId { get; set; } public IList Items { get; set; } public decimal? Subtotal { get; set; } } } ================================================ FILE: OnlineStore.ServiceContract/ModelDTOs/ShoppingCartItemDto.cs ================================================ namespace OnlineStore.ServiceContracts.ModelDTOs { public class ShoppingCartItemDto { public string Id { get; set; } public int? Quantity { get; set; } public ProductDto Product { get; set; } public decimal? ItemAmount { get; set; } public string ShoppingCartId { get; set; } } } ================================================ FILE: OnlineStore.ServiceContract/ModelDTOs/UserDto.cs ================================================ using System; namespace OnlineStore.ServiceContracts.ModelDTOs { public class UserDto { public string Id { get; set; } public string UserName { get; set; } public string Password { get; set; } public string Email { get; set; } public bool? IsDisabled { get; set; } public DateTime? RegisteredDate { get; set; } public DateTime? LastLogonDate { get; set; } public string Contact { get; set; } public string PhoneNumber { get; set; } public AddressDto ContactAddress { get; set; } public AddressDto DeliveryAddress { get; set; } public RoleDto Role { get; set; } public override string ToString() { return this.UserName; } } } ================================================ FILE: OnlineStore.ServiceContract/OnlineStore.ServiceContracts.csproj ================================================  Debug AnyCPU {D46D13DD-1E1A-451B-AD17-42ED3FC54EAC} Library Properties OnlineStore.ServiceContracts OnlineStore.ServiceContracts v4.5 512 true full false bin\Debug\ DEBUG;TRACE prompt 4 pdbonly true bin\Release\ TRACE prompt 4 {9dde33cc-cf3c-436e-8a5f-4e1f0f8b603e} OnlineStore.Infrastructure ================================================ FILE: OnlineStore.ServiceContract/Properties/AssemblyInfo.cs ================================================ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("OnlineStore.ServiceContract")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Microsoft")] [assembly: AssemblyProduct("OnlineStore.ServiceContract")] [assembly: AssemblyCopyright("Copyright © Microsoft 2015")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("98362ec4-95a1-43e3-ba5d-b1fcd01703ba")] // Version information for an assembly consists of the following four values: // // Major Version // Minor Version // Build Number // Revision // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] ================================================ FILE: OnlineStore.ServiceContract/app.config ================================================  ================================================ FILE: OnlineStore.Web/App_Code/HtmlExtension.cs ================================================ using System; using System.Collections.Generic; using System.Globalization; using System.Web; using System.Web.Routing; using OnlineStore.Web.UserService; using System.Web.Mvc; namespace OnlineStore.Web { public enum ImageSize { Small, Medium, Large } public static class HtmlExtension { #region Image public static MvcHtmlString Image(this HtmlHelper helper, string rawFile) { var imgFile = UrlHelper.GenerateContentUrl(string.Format("~/Images/{0}", rawFile), helper.ViewContext.HttpContext); TagBuilder tb = new TagBuilder("img"); tb.MergeAttribute("src", imgFile); tb.MergeAttribute("border", "0"); return MvcHtmlString.Create(tb.ToString(TagRenderMode.SelfClosing)); } #endregion #region ProductImage public static MvcHtmlString ProductImage(this HtmlHelper helper, string rawFile, ImageSize size, bool noCaching, object htmlAttributes) { var imgSizeIndicator = System.Enum.GetName(typeof(ImageSize), size); var imgFile = UrlHelper.GenerateContentUrl(string.Format("~/Images/Products/{0}", rawFile), helper.ViewContext.HttpContext); TagBuilder tb = new TagBuilder("img"); if (noCaching) tb.MergeAttribute("src", imgFile + "?" + new Random().NextDouble().ToString(CultureInfo.InvariantCulture)); else tb.MergeAttribute("src", imgFile); tb.MergeAttribute("border", "0"); var sizeValue = 65; switch (size) { case ImageSize.Medium: sizeValue = 130; break; case ImageSize.Large: sizeValue = 195; break; default: break; } tb.MergeAttribute("width", sizeValue.ToString()); tb.MergeAttribute("height", sizeValue.ToString()); if (htmlAttributes != null) { IDictionary additionAttributes = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes); tb.MergeAttributes(additionAttributes); } return MvcHtmlString.Create(tb.ToString(TagRenderMode.SelfClosing)); } public static MvcHtmlString ProductImage(this HtmlHelper helper, string rawFile, bool noCaching, ImageSize size) { return ProductImage(helper, rawFile, size, noCaching, null); } public static MvcHtmlString ProductImage(this HtmlHelper helper, string rawFile, ImageSize size, object htmlAttributes) { return ProductImage(helper, rawFile, size, true, htmlAttributes); } public static MvcHtmlString ProductImage(this HtmlHelper helper, string rawFile, ImageSize size) { return ProductImage(helper, rawFile, size, true, null); } #endregion #region ImageSubmitButton public static MvcHtmlString ImageSubmitButton(this HtmlHelper helper, string formName, string imgSrc, string altText, string text) { TagBuilder imgTag = new TagBuilder("img"); imgTag.MergeAttribute("src", imgSrc); imgTag.MergeAttribute("alt", altText); imgTag.MergeAttribute("border", "0"); var img = imgTag.ToString(TagRenderMode.SelfClosing); TagBuilder aTag = new TagBuilder("a") { InnerHtml = img + HttpUtility.HtmlEncode(text) }; aTag.MergeAttribute("style", "cursor: pointer"); aTag.MergeAttribute("onclick", string.Format("javascript: $('#{0}').submit()", formName)); return MvcHtmlString.Create(aTag.ToString()); } #endregion #region ImageActionLink public static MvcHtmlString ImageActionLink(this HtmlHelper helper, string imgSrc, string altText, string text, string action, string controller, object routeValues, object htmlAttributes) { var url = UrlHelper.GenerateUrl(null, action, controller, new RouteValueDictionary(routeValues), helper.RouteCollection, helper.ViewContext.RequestContext, true); TagBuilder tbImg = new TagBuilder("img"); tbImg.MergeAttribute("src", imgSrc); tbImg.MergeAttribute("alt", altText); tbImg.MergeAttribute("border", "0"); tbImg.MergeAttribute("title", altText); var imgString = tbImg.ToString(TagRenderMode.SelfClosing); TagBuilder tbA = new TagBuilder("a") { InnerHtml = imgString }; if (!string.IsNullOrEmpty(text)) { tbA.InnerHtml += HttpUtility.HtmlEncode(text); } tbA.MergeAttribute("href", url); if (htmlAttributes != null) { IDictionary additionAttributes = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes); tbA.MergeAttributes(additionAttributes); } return MvcHtmlString.Create(tbA.ToString()); } public static MvcHtmlString ImageActionLink(this HtmlHelper helper, string imgSrc, string altText, string action, string controller, object routeValues, object htmlAttributes) { return ImageActionLink(helper, imgSrc, altText, null, action, controller, routeValues, htmlAttributes); } public static MvcHtmlString ImageActionLink(this HtmlHelper helper, string imgSrc, string altText, string action, string controller, object routeValues) { return ImageActionLink(helper, imgSrc, altText, action, controller, routeValues, null); } public static MvcHtmlString ImageActionLink(this HtmlHelper helper, string imgSrc, string altText, string text, string action, string controller, object routeValues) { return ImageActionLink(helper, imgSrc, altText, text, action, controller, routeValues, null); } public static MvcHtmlString ImageActionLink(this HtmlHelper helper, string imgSrc, string altText, string text, string action, string controller) { return ImageActionLink(helper, imgSrc, altText, text, action, controller, null); } #endregion #region ActionLinkWithPermission public static MvcHtmlString ActionLinkWithPermission(this HtmlHelper helper, string linkText, string action, string controller, PermissionKeys required) { if (helper == null || helper.ViewContext == null || helper.ViewContext.RequestContext == null || helper.ViewContext.RequestContext.HttpContext == null || helper.ViewContext.RequestContext.HttpContext.User == null || helper.ViewContext.RequestContext.HttpContext.User.Identity == null) return MvcHtmlString.Empty; using (var proxy = new UserServiceClient()) { var role = proxy.GetRoleByUserName(helper.ViewContext.RequestContext.HttpContext.User.Identity.Name); if (role == null) return MvcHtmlString.Empty; var keyName = role.Name; var permissionKey = (PermissionKeys)Enum.Parse(typeof(PermissionKeys), keyName); // 通过用户的角色和对应对应的权限进行与操作 // 与结果等于用户角色时,表示用户角色与所需要的权限一样,则创建对应权限的链接 return (permissionKey & required) == permissionKey ? MvcHtmlString.Create(HtmlHelper.GenerateLink(helper.ViewContext.RequestContext, helper.RouteCollection, linkText, null, action, controller, null, null)) : MvcHtmlString.Empty; } } #endregion } } ================================================ FILE: OnlineStore.Web/App_Code/PermissionKeys.cs ================================================ using System; namespace OnlineStore.Web { [Flags] public enum PermissionKeys { None = 0, Customers = 1, SalesReps = 2, Buyers = 4, Administrators = 8 } } ================================================ FILE: OnlineStore.Web/App_Code/UrlHelperExtension.cs ================================================ using System.Web.Mvc; namespace OnlineStore.Web { public static class UrlHelperExtension { public static string GetProductImagePath(UrlHelper helper) { return helper.Content("~/Images/Products/"); } public static MvcHtmlString ProductImagePath(this UrlHelper helper) { return MvcHtmlString.Create(GetProductImagePath(helper)); } } } ================================================ FILE: OnlineStore.Web/App_Start/AuthConfig.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Web.WebPages.OAuth; namespace OnlineStore.Web { public static class AuthConfig { public static void RegisterAuth() { // To let users of this site log in using their accounts from other sites such as Microsoft, Facebook, and Twitter, // you must update this site. For more information visit http://go.microsoft.com/fwlink/?LinkID=252166 //OAuthWebSecurity.RegisterMicrosoftClient( // clientId: "", // clientSecret: ""); //OAuthWebSecurity.RegisterTwitterClient( // consumerKey: "", // consumerSecret: ""); //OAuthWebSecurity.RegisterFacebookClient( // appId: "", // appSecret: ""); //OAuthWebSecurity.RegisterGoogleClient(); } } } ================================================ FILE: OnlineStore.Web/App_Start/BundleConfig.cs ================================================ using System.Web; using System.Web.Optimization; namespace OnlineStore.Web { public class BundleConfig { // For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725 public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-{version}.js")); bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include( "~/Scripts/jquery-ui-{version}.js")); bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include( "~/Scripts/jquery.unobtrusive*", "~/Scripts/jquery.validate*")); // Use the development version of Modernizr to develop with and learn from. Then, when you're // ready for production, use the build tool at http://modernizr.com to pick only the tests you need. bundles.Add(new ScriptBundle("~/bundles/modernizr").Include( "~/Scripts/modernizr-*")); bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css")); bundles.Add(new StyleBundle("~/Content/themes/base/css").Include( "~/Content/themes/base/jquery.ui.core.css", "~/Content/themes/base/jquery.ui.resizable.css", "~/Content/themes/base/jquery.ui.selectable.css", "~/Content/themes/base/jquery.ui.accordion.css", "~/Content/themes/base/jquery.ui.autocomplete.css", "~/Content/themes/base/jquery.ui.button.css", "~/Content/themes/base/jquery.ui.dialog.css", "~/Content/themes/base/jquery.ui.slider.css", "~/Content/themes/base/jquery.ui.tabs.css", "~/Content/themes/base/jquery.ui.datepicker.css", "~/Content/themes/base/jquery.ui.progressbar.css", "~/Content/themes/base/jquery.ui.theme.css")); } } } ================================================ FILE: OnlineStore.Web/App_Start/FilterConfig.cs ================================================ using System.Web; using System.Web.Mvc; namespace OnlineStore.Web { public class FilterConfig { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); } } } ================================================ FILE: OnlineStore.Web/App_Start/RouteConfig.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace OnlineStore.Web { public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } } } ================================================ FILE: OnlineStore.Web/App_Start/WebApiConfig.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Web.Http; namespace OnlineStore.Web { public static class WebApiConfig { public static void Register(HttpConfiguration config) { config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); } } } ================================================ FILE: OnlineStore.Web/Content/Site.css ================================================ body, td, th { /*font-family: Arial, Helvetica, sans-serif;*/ font-family: 'Microsoft YaHei', '微软雅黑', 'SimSun', '宋体'; font-size: 13px; color: #292525; } body { background-color: #FFFFFF; background-repeat: repeat-x; margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; padding: 0px; } a:link { color: #292525; text-decoration: none; } a:visited { color: #292525; } a:hover { color: #5e5e5e; } a:active { color: #292525; } .logo { background-color: #353535; background-image: url(/Images/onlinestore_logo.png); background-repeat: no-repeat; } .menu { background-color: #353535; vertical-align: middle; } .slide { background-image: url(/images/menu_beforelogo.jpg); } #white { color: #FFFFFF; } #whitetxt { color: #FFFFFF; text-decoration: none; } .style4 { font-size: 12px; font-weight: bold; } .style6 { font-size: 12px; font-weight: bold; color: #40728C; } .style7 { font-size: 12px; } .product_name { font-size: 12px; font-weight: bold; } .category { background-image: url(/images/category.jpg); background-repeat: no-repeat; width: 202px; height: 31px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; } .linkmenu { width: 202px; height: 20px; font-size: 12px; } .red { color: #FF0000; } .popular { background-image: url(/images/popular.jpg); background-repeat: no-repeat; } .popular_text { font-size: 14px; font-weight: bold; color: #FFFFFF; } .popular_center { background-image: url(/images/taling_center.jpg); background-repeat: repeat-y; } .newtovar { background-image: url(/images/newtovar.jpg); background-repeat: no-repeat; } .price { color: #FF0000; font-size: 16px; } #blue1 { font-size: 12px; color: #368DC5; } .login_label { text-align: right; color: #adadad; font-size: 12px; } .login_textbox { border-color: #242424; border-width: 1px; font-size: 12px; width: 100px; } .login_button { border-width: 1px; border-color: #242424; color: #333333; font-size: 12px; background-color: #CCCCCC; } .productleft_top { margin-left: 30px; margin-bottom: 20px; float: left; } .webgrid { font-family: Arial; font-size: 22px; width: 100%; background-color: #EAEAEA; } .webgrid-header { font-weight: bold; } .webgrid-footer { } .webgrid-row { background-color: #FDFDFD; } .webgrid-alternating-row { background-color: #EAEAEA; } .webgrid-guid { font-family: 'Segoe UI', 'Consolas', 'Courier New'; width: 130px; } .webgrid-numeric { text-align: right; } .webgrid-datetime { text-align: right; } .webgrid-center { text-align: center; } .webgrid-toolicon { width: 18px; } .editor-label { font-weight: bold; margin-top: 12px; } .text-box { font-size: 14px; width: 235px; } .field-validation-error { color: red; font-weight: bold; } .field-validation-valid { display: none; } .product-grid-img { width: 65px; text-align: center; vertical-align: middle; border: none; } .product-grid-name { width: 185px; } .product-grid-description { vertical-align: top; text-align: left; } .product-grid-category { width: 105px; text-align: center; } .product-grid-unitprice { width: 75px; font-size: x-small; text-align: right; } .loginPartial_ShoppingCartIcon { text-align: right; } .loginPartial_ShoppingCartItemNumber { color: #eadc36; font-weight: bold; } .loginPartial_Text { color: #adadad; } .loginPartial_ShoppingCartHint { vertical-align: top; text-align: left; color: #adadad; } .loginPartial_LogOffIcon { text-align: right; width: 40px; } .ShoppingCart_Count { font-size: 14px; color: maroon; font-weight: bold; } .loginPartialLink { width: 100%; border: 0; } .loginPartialLink a { text-decoration: none; font-family: 'Segoe UI'; font-size: 14px; color: #adadad; } .loginPartialLink a:hover, .loginPartialLink a:active { background: #353535; outline: 0; color: white; } #checkout { text-align: right; } #checkout a { text-decoration: none; font-size: 16px; font-size: 16px; color: #368DC5; font-weight: bold; } #checkout a:hover, #checkout a:active { color: #58AFE7; } #ShoppingCartTable { border: 0px; border-spacing: 1px; width: 100%; } #ShoppingCartTable thead { background-color: #adadad; } #ShoppingCartTable #CommandColumn { width: 30px; } #ShoppingCartTable #ImageColumn { width: 80px; } #ShoppingCartTable #NameColumn { width: 235px; } #ShoppingCartTable #UnitPriceColumn { width: 120px; } #ShoppingCartTable #QuantityColumn { width: 100px; } #ShoppingCartTable tfoot { background-color: #adadad; } .UpdateShoppingCartItemButton { border: 0px; cursor: pointer; } .DeleteShoppingCartItemButton { border: 0px; cursor: pointer; } #SalesLineTable { border: 0px; border-spacing: 1px; width: 100%; } #SalesLineTable thead { background-color: #adadad; } #SalesLineTable #CommandColumn { width: 30px; } #SalesLineTable #ImageColumn { width: 80px; } #SalesLineTable #NameColumn { width: 235px; } #SalesLineTable #UnitPriceColumn { width: 120px; } #SalesLineTable #QuantityColumn { width: 100px; } #SalesLineTable tfoot { background-color: #adadad; } /*** Super Fish **/ .sf-menu, .sf-menu * { margin: 0; padding: 0; list-style: none; } .sf-menu { line-height: 1.0; } .sf-menu ul { position: absolute; top: -999em; width: 12em; /* left offset of submenus need to match (see below) */ } .sf-menu ul li { width: 100%; } .sf-menu li:hover { visibility: inherit; /* fixes IE7 'sticky bug' */ } .sf-menu li { float: left; position: relative; } .sf-menu a { display: block; position: relative; } .sf-menu li:hover ul, .sf-menu li.sfHover ul { left: 0; top: 2.5em; /* match top ul list item height */ z-index: 99; } ul.sf-menu li:hover li ul, ul.sf-menu li.sfHover li ul { top: -999em; } ul.sf-menu li li:hover ul, ul.sf-menu li li.sfHover ul { left: 10em; /* match ul width */ top: 0; } ul.sf-menu li li:hover li ul, ul.sf-menu li li.sfHover li ul { top: -999em; } ul.sf-menu li li li:hover ul, ul.sf-menu li li li.sfHover ul { left: 10em; /* match ul width */ top: 0; } /*** DEMO SKIN ***/ .sf-menu { float: left; margin-bottom: 1em; } .sf-menu a { border-left: 1px solid #4d4d4d; border-top: 1px solid #353535; padding: .75em 1em; text-decoration: none; font-family: 'Segoe UI'; font-size: 14px; color: #adadad; } .sf-menu a, .sf-menu a:visited { /* visited pseudo selector so IE6 applies text colour*/ color: #adadad; } .sf-menu li { background: #353535; } .sf-menu li li { background: #353535; font-size: small; border-bottom: 1px solid #4d4d4d; } .sf-menu li li li { background: #353535; font-size: small; } .sf-menu li:hover, .sf-menu li.sfHover, .sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active { background: #353535; outline: 0; color: white; } .sf-menu a.sf-with-ul { padding-right: 2.25em; min-width: 1px; /* trigger IE7 hasLayout so spans position accurately */ } .sf-sub-indicator { position: absolute; display: block; right: .75em; top: 1.05em; /* IE6 only */ width: 10px; height: 10px; text-indent: -999em; overflow: hidden; background: url('/images/arrows-ffffff.png') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */ } a > .sf-sub-indicator { /* give all except IE6 the correct values */ top: .8em; background-position: 0 -99px; /* use translucent arrow for modern browsers*/ } /* apply hovers to modern browsers */ a:focus > .sf-sub-indicator, a:hover > .sf-sub-indicator, a:active > .sf-sub-indicator, li:hover > a > .sf-sub-indicator, li.sfHover > a > .sf-sub-indicator { background-position: -10px -99px; /* arrow hovers for modern browsers*/ } /* point right for anchors in subs */ .sf-menu ul .sf-sub-indicator { background-position: -10px 0; } .sf-menu ul a > .sf-sub-indicator { background-position: 0 0; } /* apply hovers to modern browsers */ .sf-menu ul a:focus > .sf-sub-indicator, .sf-menu ul a:hover > .sf-sub-indicator, .sf-menu ul a:active > .sf-sub-indicator, .sf-menu ul li:hover > a > .sf-sub-indicator, .sf-menu ul li.sfHover > a > .sf-sub-indicator { background-position: -10px 0; /* arrow hovers for modern browsers*/ } /*** shadows for all but IE6 ***/ .sf-shadow ul { background: url('/images/shadow.png') no-repeat bottom right; padding: 0 8px 9px 0; -moz-border-radius-bottomleft: 17px; -moz-border-radius-topright: 17px; -webkit-border-top-right-radius: 17px; -webkit-border-bottom-left-radius: 17px; } .sf-shadow ul.sf-shadow-off { background: transparent; } ================================================ FILE: OnlineStore.Web/Content/themes/base/jquery-ui.css ================================================ /*! jQuery UI - v1.8.20 - 2012-04-30 * https://github.com/jquery/jquery-ui * Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.tabs.css, jquery.ui.theme.css * Copyright (c) 2012 AUTHORS.txt; Licensed MIT */ /* Layout helpers ----------------------------------*/ .ui-helper-hidden { display: none; } .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } .ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; } .ui-helper-clearfix:after { clear: both; } .ui-helper-clearfix { zoom: 1; } .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } /* Interaction Cues ----------------------------------*/ .ui-state-disabled { cursor: default !important; } /* Icons ----------------------------------*/ /* states and images */ .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } /* Misc visuals ----------------------------------*/ /* Overlays */ .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } /* IE/Win - Fix animation bug - #4615 */ .ui-accordion { width: 100%; } .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } .ui-accordion .ui-accordion-li-fix { display: inline; } .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } .ui-accordion .ui-accordion-content-active { display: block; } .ui-autocomplete { position: absolute; cursor: default; } /* workarounds */ * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ /* * jQuery UI Menu 1.8.20 * * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * http://docs.jquery.com/UI/Menu#theming */ .ui-menu { list-style:none; padding: 2px; margin: 0; display:block; float: left; } .ui-menu .ui-menu { margin-top: -3px; } .ui-menu .ui-menu-item { margin:0; padding: 0; zoom: 1; float: left; clear: left; width: 100%; } .ui-menu .ui-menu-item a { text-decoration:none; display:block; padding:.2em .4em; line-height:1.5; zoom:1; } .ui-menu .ui-menu-item a.ui-state-hover, .ui-menu .ui-menu-item a.ui-state-active { font-weight: normal; margin: -1px; } .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ .ui-button-icons-only { width: 3.4em; } button.ui-button-icons-only { width: 3.7em; } /*button text element */ .ui-button .ui-button-text { display: block; line-height: 1.4; } .ui-button-text-only .ui-button-text { padding: .4em 1em; } .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } /* no icon support for input elements, provide padding by default */ input.ui-button { padding: .4em 1em; } /*button icon element(s) */ .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } /*button sets*/ .ui-buttonset { margin-right: 7px; } .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } /* workarounds */ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } .ui-datepicker .ui-datepicker-prev { left:2px; } .ui-datepicker .ui-datepicker-next { right:2px; } .ui-datepicker .ui-datepicker-prev-hover { left:1px; } .ui-datepicker .ui-datepicker-next-hover { right:1px; } .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } .ui-datepicker select.ui-datepicker-month-year {width: 100%;} .ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year { width: 49%;} .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } .ui-datepicker td { border: 0; padding: 1px; } .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } /* with multiple calendars */ .ui-datepicker.ui-datepicker-multi { width:auto; } .ui-datepicker-multi .ui-datepicker-group { float:left; } .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; } /* RTL support */ .ui-datepicker-rtl { direction: rtl; } .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } .ui-datepicker-rtl .ui-datepicker-group { float:right; } .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ .ui-datepicker-cover { display: none; /*sorry for IE5*/ display/**/: block; /*sorry for IE5*/ position: absolute; /*must have*/ z-index: -1; /*must have*/ filter: mask(); /*must have*/ top: -4px; /*must have*/ left: -4px; /*must have*/ width: 200px; /*must have*/ height: 200px; /*must have*/ } .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } .ui-draggable .ui-dialog-titlebar { cursor: move; } .ui-progressbar { height:2em; text-align: left; overflow: hidden; } .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } .ui-resizable { position: relative;} .ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; } .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;} .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } .ui-slider { position: relative; text-align: left; } .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } .ui-slider-horizontal { height: .8em; } .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } .ui-slider-horizontal .ui-slider-range-min { left: 0; } .ui-slider-horizontal .ui-slider-range-max { right: 0; } .ui-slider-vertical { width: .8em; height: 100px; } .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } .ui-slider-vertical .ui-slider-range-min { bottom: 0; } .ui-slider-vertical .ui-slider-range-max { top: 0; } .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } .ui-tabs .ui-tabs-hide { display: none !important; } /* Component containers ----------------------------------*/ .ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; } .ui-widget .ui-widget { font-size: 1em; } .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; } .ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(images/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; } .ui-widget-content a { color: #222222/*{fcContent}*/; } .ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; } .ui-widget-header a { color: #222222/*{fcHeader}*/; } /* Interaction states ----------------------------------*/ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; } .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; text-decoration: none; } .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(images/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; } .ui-state-hover a, .ui-state-hover a:hover { color: #212121/*{fcHover}*/; text-decoration: none; } .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(images/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; } .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; text-decoration: none; } .ui-widget :active { outline: none; } /* Interaction Cues ----------------------------------*/ .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; } .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636/*{fcHighlight}*/; } .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; } .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a/*{fcError}*/; } .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a/*{fcError}*/; } .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } /* Icons ----------------------------------*/ /* states and images */ .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } .ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsHeader}*/; } .ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/; } .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsHover}*/; } .ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsActive}*/; } .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png)/*{iconsHighlight}*/; } .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; } /* positioning */ .ui-icon-carat-1-n { background-position: 0 0; } .ui-icon-carat-1-ne { background-position: -16px 0; } .ui-icon-carat-1-e { background-position: -32px 0; } .ui-icon-carat-1-se { background-position: -48px 0; } .ui-icon-carat-1-s { background-position: -64px 0; } .ui-icon-carat-1-sw { background-position: -80px 0; } .ui-icon-carat-1-w { background-position: -96px 0; } .ui-icon-carat-1-nw { background-position: -112px 0; } .ui-icon-carat-2-n-s { background-position: -128px 0; } .ui-icon-carat-2-e-w { background-position: -144px 0; } .ui-icon-triangle-1-n { background-position: 0 -16px; } .ui-icon-triangle-1-ne { background-position: -16px -16px; } .ui-icon-triangle-1-e { background-position: -32px -16px; } .ui-icon-triangle-1-se { background-position: -48px -16px; } .ui-icon-triangle-1-s { background-position: -64px -16px; } .ui-icon-triangle-1-sw { background-position: -80px -16px; } .ui-icon-triangle-1-w { background-position: -96px -16px; } .ui-icon-triangle-1-nw { background-position: -112px -16px; } .ui-icon-triangle-2-n-s { background-position: -128px -16px; } .ui-icon-triangle-2-e-w { background-position: -144px -16px; } .ui-icon-arrow-1-n { background-position: 0 -32px; } .ui-icon-arrow-1-ne { background-position: -16px -32px; } .ui-icon-arrow-1-e { background-position: -32px -32px; } .ui-icon-arrow-1-se { background-position: -48px -32px; } .ui-icon-arrow-1-s { background-position: -64px -32px; } .ui-icon-arrow-1-sw { background-position: -80px -32px; } .ui-icon-arrow-1-w { background-position: -96px -32px; } .ui-icon-arrow-1-nw { background-position: -112px -32px; } .ui-icon-arrow-2-n-s { background-position: -128px -32px; } .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } .ui-icon-arrow-2-e-w { background-position: -160px -32px; } .ui-icon-arrow-2-se-nw { background-position: -176px -32px; } .ui-icon-arrowstop-1-n { background-position: -192px -32px; } .ui-icon-arrowstop-1-e { background-position: -208px -32px; } .ui-icon-arrowstop-1-s { background-position: -224px -32px; } .ui-icon-arrowstop-1-w { background-position: -240px -32px; } .ui-icon-arrowthick-1-n { background-position: 0 -48px; } .ui-icon-arrowthick-1-ne { background-position: -16px -48px; } .ui-icon-arrowthick-1-e { background-position: -32px -48px; } .ui-icon-arrowthick-1-se { background-position: -48px -48px; } .ui-icon-arrowthick-1-s { background-position: -64px -48px; } .ui-icon-arrowthick-1-sw { background-position: -80px -48px; } .ui-icon-arrowthick-1-w { background-position: -96px -48px; } .ui-icon-arrowthick-1-nw { background-position: -112px -48px; } .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } .ui-icon-arrowreturn-1-w { background-position: -64px -64px; } .ui-icon-arrowreturn-1-n { background-position: -80px -64px; } .ui-icon-arrowreturn-1-e { background-position: -96px -64px; } .ui-icon-arrowreturn-1-s { background-position: -112px -64px; } .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } .ui-icon-arrow-4 { background-position: 0 -80px; } .ui-icon-arrow-4-diag { background-position: -16px -80px; } .ui-icon-extlink { background-position: -32px -80px; } .ui-icon-newwin { background-position: -48px -80px; } .ui-icon-refresh { background-position: -64px -80px; } .ui-icon-shuffle { background-position: -80px -80px; } .ui-icon-transfer-e-w { background-position: -96px -80px; } .ui-icon-transferthick-e-w { background-position: -112px -80px; } .ui-icon-folder-collapsed { background-position: 0 -96px; } .ui-icon-folder-open { background-position: -16px -96px; } .ui-icon-document { background-position: -32px -96px; } .ui-icon-document-b { background-position: -48px -96px; } .ui-icon-note { background-position: -64px -96px; } .ui-icon-mail-closed { background-position: -80px -96px; } .ui-icon-mail-open { background-position: -96px -96px; } .ui-icon-suitcase { background-position: -112px -96px; } .ui-icon-comment { background-position: -128px -96px; } .ui-icon-person { background-position: -144px -96px; } .ui-icon-print { background-position: -160px -96px; } .ui-icon-trash { background-position: -176px -96px; } .ui-icon-locked { background-position: -192px -96px; } .ui-icon-unlocked { background-position: -208px -96px; } .ui-icon-bookmark { background-position: -224px -96px; } .ui-icon-tag { background-position: -240px -96px; } .ui-icon-home { background-position: 0 -112px; } .ui-icon-flag { background-position: -16px -112px; } .ui-icon-calendar { background-position: -32px -112px; } .ui-icon-cart { background-position: -48px -112px; } .ui-icon-pencil { background-position: -64px -112px; } .ui-icon-clock { background-position: -80px -112px; } .ui-icon-disk { background-position: -96px -112px; } .ui-icon-calculator { background-position: -112px -112px; } .ui-icon-zoomin { background-position: -128px -112px; } .ui-icon-zoomout { background-position: -144px -112px; } .ui-icon-search { background-position: -160px -112px; } .ui-icon-wrench { background-position: -176px -112px; } .ui-icon-gear { background-position: -192px -112px; } .ui-icon-heart { background-position: -208px -112px; } .ui-icon-star { background-position: -224px -112px; } .ui-icon-link { background-position: -240px -112px; } .ui-icon-cancel { background-position: 0 -128px; } .ui-icon-plus { background-position: -16px -128px; } .ui-icon-plusthick { background-position: -32px -128px; } .ui-icon-minus { background-position: -48px -128px; } .ui-icon-minusthick { background-position: -64px -128px; } .ui-icon-close { background-position: -80px -128px; } .ui-icon-closethick { background-position: -96px -128px; } .ui-icon-key { background-position: -112px -128px; } .ui-icon-lightbulb { background-position: -128px -128px; } .ui-icon-scissors { background-position: -144px -128px; } .ui-icon-clipboard { background-position: -160px -128px; } .ui-icon-copy { background-position: -176px -128px; } .ui-icon-contact { background-position: -192px -128px; } .ui-icon-image { background-position: -208px -128px; } .ui-icon-video { background-position: -224px -128px; } .ui-icon-script { background-position: -240px -128px; } .ui-icon-alert { background-position: 0 -144px; } .ui-icon-info { background-position: -16px -144px; } .ui-icon-notice { background-position: -32px -144px; } .ui-icon-help { background-position: -48px -144px; } .ui-icon-check { background-position: -64px -144px; } .ui-icon-bullet { background-position: -80px -144px; } .ui-icon-radio-off { background-position: -96px -144px; } .ui-icon-radio-on { background-position: -112px -144px; } .ui-icon-pin-w { background-position: -128px -144px; } .ui-icon-pin-s { background-position: -144px -144px; } .ui-icon-play { background-position: 0 -160px; } .ui-icon-pause { background-position: -16px -160px; } .ui-icon-seek-next { background-position: -32px -160px; } .ui-icon-seek-prev { background-position: -48px -160px; } .ui-icon-seek-end { background-position: -64px -160px; } .ui-icon-seek-start { background-position: -80px -160px; } /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ .ui-icon-seek-first { background-position: -80px -160px; } .ui-icon-stop { background-position: -96px -160px; } .ui-icon-eject { background-position: -112px -160px; } .ui-icon-volume-off { background-position: -128px -160px; } .ui-icon-volume-on { background-position: -144px -160px; } .ui-icon-power { background-position: 0 -176px; } .ui-icon-signal-diag { background-position: -16px -176px; } .ui-icon-signal { background-position: -32px -176px; } .ui-icon-battery-0 { background-position: -48px -176px; } .ui-icon-battery-1 { background-position: -64px -176px; } .ui-icon-battery-2 { background-position: -80px -176px; } .ui-icon-battery-3 { background-position: -96px -176px; } .ui-icon-circle-plus { background-position: 0 -192px; } .ui-icon-circle-minus { background-position: -16px -192px; } .ui-icon-circle-close { background-position: -32px -192px; } .ui-icon-circle-triangle-e { background-position: -48px -192px; } .ui-icon-circle-triangle-s { background-position: -64px -192px; } .ui-icon-circle-triangle-w { background-position: -80px -192px; } .ui-icon-circle-triangle-n { background-position: -96px -192px; } .ui-icon-circle-arrow-e { background-position: -112px -192px; } .ui-icon-circle-arrow-s { background-position: -128px -192px; } .ui-icon-circle-arrow-w { background-position: -144px -192px; } .ui-icon-circle-arrow-n { background-position: -160px -192px; } .ui-icon-circle-zoomin { background-position: -176px -192px; } .ui-icon-circle-zoomout { background-position: -192px -192px; } .ui-icon-circle-check { background-position: -208px -192px; } .ui-icon-circlesmall-plus { background-position: 0 -208px; } .ui-icon-circlesmall-minus { background-position: -16px -208px; } .ui-icon-circlesmall-close { background-position: -32px -208px; } .ui-icon-squaresmall-plus { background-position: -48px -208px; } .ui-icon-squaresmall-minus { background-position: -64px -208px; } .ui-icon-squaresmall-close { background-position: -80px -208px; } .ui-icon-grip-dotted-vertical { background-position: 0 -224px; } .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } .ui-icon-grip-solid-vertical { background-position: -32px -224px; } .ui-icon-grip-solid-horizontal { background-position: -48px -224px; } .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } .ui-icon-grip-diagonal-se { background-position: -80px -224px; } /* Misc visuals ----------------------------------*/ /* Corner radius */ .ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; -khtml-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; } .ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; -khtml-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; } .ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; } .ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; } /* Overlays */ .ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; } .ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityShadow}*/; -moz-border-radius: 8px/*{cornerRadiusShadow}*/; -khtml-border-radius: 8px/*{cornerRadiusShadow}*/; -webkit-border-radius: 8px/*{cornerRadiusShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; } ================================================ FILE: OnlineStore.Web/Content/themes/base/jquery.ui.accordion.css ================================================ /*! * jQuery UI Accordion 1.8.20 * * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) * Licensed under the MIT license. * http://jquery.org/license * * http://docs.jquery.com/UI/Accordion#theming */ /* IE/Win - Fix animation bug - #4615 */ .ui-accordion { width: 100%; } .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } .ui-accordion .ui-accordion-li-fix { display: inline; } .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } .ui-accordion .ui-accordion-content-active { display: block; } ================================================ FILE: OnlineStore.Web/Content/themes/base/jquery.ui.all.css ================================================ /*! * jQuery UI CSS Framework 1.8.20 * * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) * Licensed under the MIT license. * http://jquery.org/license * * http://docs.jquery.com/UI/Theming */ @import "jquery.ui.base.css"; @import "jquery.ui.theme.css"; ================================================ FILE: OnlineStore.Web/Content/themes/base/jquery.ui.autocomplete.css ================================================ /*! * jQuery UI Autocomplete 1.8.20 * * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) * Licensed under the MIT license. * http://jquery.org/license * * http://docs.jquery.com/UI/Autocomplete#theming */ .ui-autocomplete { position: absolute; cursor: default; } /* workarounds */ * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ /* * jQuery UI Menu 1.8.20 * * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) * Licensed under the MIT license. * http://jquery.org/license * * http://docs.jquery.com/UI/Menu#theming */ .ui-menu { list-style:none; padding: 2px; margin: 0; display:block; float: left; } .ui-menu .ui-menu { margin-top: -3px; } .ui-menu .ui-menu-item { margin:0; padding: 0; zoom: 1; float: left; clear: left; width: 100%; } .ui-menu .ui-menu-item a { text-decoration:none; display:block; padding:.2em .4em; line-height:1.5; zoom:1; } .ui-menu .ui-menu-item a.ui-state-hover, .ui-menu .ui-menu-item a.ui-state-active { font-weight: normal; margin: -1px; } ================================================ FILE: OnlineStore.Web/Content/themes/base/jquery.ui.base.css ================================================ /*! * jQuery UI CSS Framework 1.8.20 * * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) * Licensed under the MIT license. * http://jquery.org/license * * http://docs.jquery.com/UI/Theming */ @import url("jquery.ui.core.css"); @import url("jquery.ui.accordion.css"); @import url("jquery.ui.autocomplete.css"); @import url("jquery.ui.button.css"); @import url("jquery.ui.datepicker.css"); @import url("jquery.ui.dialog.css"); @import url("jquery.ui.progressbar.css"); @import url("jquery.ui.resizable.css"); @import url("jquery.ui.selectable.css"); @import url("jquery.ui.slider.css"); @import url("jquery.ui.tabs.css"); ================================================ FILE: OnlineStore.Web/Content/themes/base/jquery.ui.button.css ================================================ /*! * jQuery UI Button 1.8.20 * * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) * Licensed under the MIT license. * http://jquery.org/license * * http://docs.jquery.com/UI/Button#theming */ .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ .ui-button-icons-only { width: 3.4em; } button.ui-button-icons-only { width: 3.7em; } /*button text element */ .ui-button .ui-button-text { display: block; line-height: 1.4; } .ui-button-text-only .ui-button-text { padding: .4em 1em; } .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } /* no icon support for input elements, provide padding by default */ input.ui-button { padding: .4em 1em; } /*button icon element(s) */ .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } /*button sets*/ .ui-buttonset { margin-right: 7px; } .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } /* workarounds */ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ ================================================ FILE: OnlineStore.Web/Content/themes/base/jquery.ui.core.css ================================================ /*! * jQuery UI CSS Framework 1.8.20 * * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) * Licensed under the MIT license. * http://jquery.org/license * * http://docs.jquery.com/UI/Theming/API */ /* Layout helpers ----------------------------------*/ .ui-helper-hidden { display: none; } .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } .ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; } .ui-helper-clearfix:after { clear: both; } .ui-helper-clearfix { zoom: 1; } .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } /* Interaction Cues ----------------------------------*/ .ui-state-disabled { cursor: default !important; } /* Icons ----------------------------------*/ /* states and images */ .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } /* Misc visuals ----------------------------------*/ /* Overlays */ .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } ================================================ FILE: OnlineStore.Web/Content/themes/base/jquery.ui.datepicker.css ================================================ /*! * jQuery UI Datepicker 1.8.20 * * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) * Licensed under the MIT license. * http://jquery.org/license * * http://docs.jquery.com/UI/Datepicker#theming */ .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } .ui-datepicker .ui-datepicker-prev { left:2px; } .ui-datepicker .ui-datepicker-next { right:2px; } .ui-datepicker .ui-datepicker-prev-hover { left:1px; } .ui-datepicker .ui-datepicker-next-hover { right:1px; } .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } .ui-datepicker select.ui-datepicker-month-year {width: 100%;} .ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year { width: 49%;} .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } .ui-datepicker td { border: 0; padding: 1px; } .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } /* with multiple calendars */ .ui-datepicker.ui-datepicker-multi { width:auto; } .ui-datepicker-multi .ui-datepicker-group { float:left; } .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; } /* RTL support */ .ui-datepicker-rtl { direction: rtl; } .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } .ui-datepicker-rtl .ui-datepicker-group { float:right; } .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ .ui-datepicker-cover { display: none; /*sorry for IE5*/ display/**/: block; /*sorry for IE5*/ position: absolute; /*must have*/ z-index: -1; /*must have*/ filter: mask(); /*must have*/ top: -4px; /*must have*/ left: -4px; /*must have*/ width: 200px; /*must have*/ height: 200px; /*must have*/ } ================================================ FILE: OnlineStore.Web/Content/themes/base/jquery.ui.dialog.css ================================================ /*! * jQuery UI Dialog 1.8.20 * * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) * Licensed under the MIT license. * http://jquery.org/license * * http://docs.jquery.com/UI/Dialog#theming */ .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } .ui-draggable .ui-dialog-titlebar { cursor: move; } ================================================ FILE: OnlineStore.Web/Content/themes/base/jquery.ui.progressbar.css ================================================ /*! * jQuery UI Progressbar 1.8.20 * * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) * Licensed under the MIT license. * http://jquery.org/license * * http://docs.jquery.com/UI/Progressbar#theming */ .ui-progressbar { height:2em; text-align: left; overflow: hidden; } .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } ================================================ FILE: OnlineStore.Web/Content/themes/base/jquery.ui.resizable.css ================================================ /*! * jQuery UI Resizable 1.8.20 * * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) * Licensed under the MIT license. * http://jquery.org/license * * http://docs.jquery.com/UI/Resizable#theming */ .ui-resizable { position: relative;} .ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; } .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;} ================================================ FILE: OnlineStore.Web/Content/themes/base/jquery.ui.selectable.css ================================================ /*! * jQuery UI Selectable 1.8.20 * * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) * Licensed under the MIT license. * http://jquery.org/license * * http://docs.jquery.com/UI/Selectable#theming */ .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } ================================================ FILE: OnlineStore.Web/Content/themes/base/jquery.ui.slider.css ================================================ /*! * jQuery UI Slider 1.8.20 * * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) * Licensed under the MIT license. * http://jquery.org/license * * http://docs.jquery.com/UI/Slider#theming */ .ui-slider { position: relative; text-align: left; } .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } .ui-slider-horizontal { height: .8em; } .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } .ui-slider-horizontal .ui-slider-range-min { left: 0; } .ui-slider-horizontal .ui-slider-range-max { right: 0; } .ui-slider-vertical { width: .8em; height: 100px; } .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } .ui-slider-vertical .ui-slider-range-min { bottom: 0; } .ui-slider-vertical .ui-slider-range-max { top: 0; } ================================================ FILE: OnlineStore.Web/Content/themes/base/jquery.ui.tabs.css ================================================ /*! * jQuery UI Tabs 1.8.20 * * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) * Licensed under the MIT license. * http://jquery.org/license * * http://docs.jquery.com/UI/Tabs#theming */ .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } .ui-tabs .ui-tabs-hide { display: none !important; } ================================================ FILE: OnlineStore.Web/Content/themes/base/jquery.ui.theme.css ================================================ /*! * jQuery UI CSS Framework 1.8.20 * * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) * Licensed under the MIT license. * http://jquery.org/license * * http://docs.jquery.com/UI/Theming/API * * To view and modify this theme, visit http://jqueryui.com/themeroller/ */ /* Component containers ----------------------------------*/ .ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; } .ui-widget .ui-widget { font-size: 1em; } .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; } .ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(images/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; } .ui-widget-content a { color: #222222/*{fcContent}*/; } .ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; } .ui-widget-header a { color: #222222/*{fcHeader}*/; } /* Interaction states ----------------------------------*/ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; } .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; text-decoration: none; } .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(images/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; } .ui-state-hover a, .ui-state-hover a:hover { color: #212121/*{fcHover}*/; text-decoration: none; } .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(images/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; } .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; text-decoration: none; } .ui-widget :active { outline: none; } /* Interaction Cues ----------------------------------*/ .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; } .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636/*{fcHighlight}*/; } .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; } .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a/*{fcError}*/; } .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a/*{fcError}*/; } .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } /* Icons ----------------------------------*/ /* states and images */ .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } .ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsHeader}*/; } .ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/; } .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsHover}*/; } .ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsActive}*/; } .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png)/*{iconsHighlight}*/; } .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; } /* positioning */ .ui-icon-carat-1-n { background-position: 0 0; } .ui-icon-carat-1-ne { background-position: -16px 0; } .ui-icon-carat-1-e { background-position: -32px 0; } .ui-icon-carat-1-se { background-position: -48px 0; } .ui-icon-carat-1-s { background-position: -64px 0; } .ui-icon-carat-1-sw { background-position: -80px 0; } .ui-icon-carat-1-w { background-position: -96px 0; } .ui-icon-carat-1-nw { background-position: -112px 0; } .ui-icon-carat-2-n-s { background-position: -128px 0; } .ui-icon-carat-2-e-w { background-position: -144px 0; } .ui-icon-triangle-1-n { background-position: 0 -16px; } .ui-icon-triangle-1-ne { background-position: -16px -16px; } .ui-icon-triangle-1-e { background-position: -32px -16px; } .ui-icon-triangle-1-se { background-position: -48px -16px; } .ui-icon-triangle-1-s { background-position: -64px -16px; } .ui-icon-triangle-1-sw { background-position: -80px -16px; } .ui-icon-triangle-1-w { background-position: -96px -16px; } .ui-icon-triangle-1-nw { background-position: -112px -16px; } .ui-icon-triangle-2-n-s { background-position: -128px -16px; } .ui-icon-triangle-2-e-w { background-position: -144px -16px; } .ui-icon-arrow-1-n { background-position: 0 -32px; } .ui-icon-arrow-1-ne { background-position: -16px -32px; } .ui-icon-arrow-1-e { background-position: -32px -32px; } .ui-icon-arrow-1-se { background-position: -48px -32px; } .ui-icon-arrow-1-s { background-position: -64px -32px; } .ui-icon-arrow-1-sw { background-position: -80px -32px; } .ui-icon-arrow-1-w { background-position: -96px -32px; } .ui-icon-arrow-1-nw { background-position: -112px -32px; } .ui-icon-arrow-2-n-s { background-position: -128px -32px; } .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } .ui-icon-arrow-2-e-w { background-position: -160px -32px; } .ui-icon-arrow-2-se-nw { background-position: -176px -32px; } .ui-icon-arrowstop-1-n { background-position: -192px -32px; } .ui-icon-arrowstop-1-e { background-position: -208px -32px; } .ui-icon-arrowstop-1-s { background-position: -224px -32px; } .ui-icon-arrowstop-1-w { background-position: -240px -32px; } .ui-icon-arrowthick-1-n { background-position: 0 -48px; } .ui-icon-arrowthick-1-ne { background-position: -16px -48px; } .ui-icon-arrowthick-1-e { background-position: -32px -48px; } .ui-icon-arrowthick-1-se { background-position: -48px -48px; } .ui-icon-arrowthick-1-s { background-position: -64px -48px; } .ui-icon-arrowthick-1-sw { background-position: -80px -48px; } .ui-icon-arrowthick-1-w { background-position: -96px -48px; } .ui-icon-arrowthick-1-nw { background-position: -112px -48px; } .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } .ui-icon-arrowreturn-1-w { background-position: -64px -64px; } .ui-icon-arrowreturn-1-n { background-position: -80px -64px; } .ui-icon-arrowreturn-1-e { background-position: -96px -64px; } .ui-icon-arrowreturn-1-s { background-position: -112px -64px; } .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } .ui-icon-arrow-4 { background-position: 0 -80px; } .ui-icon-arrow-4-diag { background-position: -16px -80px; } .ui-icon-extlink { background-position: -32px -80px; } .ui-icon-newwin { background-position: -48px -80px; } .ui-icon-refresh { background-position: -64px -80px; } .ui-icon-shuffle { background-position: -80px -80px; } .ui-icon-transfer-e-w { background-position: -96px -80px; } .ui-icon-transferthick-e-w { background-position: -112px -80px; } .ui-icon-folder-collapsed { background-position: 0 -96px; } .ui-icon-folder-open { background-position: -16px -96px; } .ui-icon-document { background-position: -32px -96px; } .ui-icon-document-b { background-position: -48px -96px; } .ui-icon-note { background-position: -64px -96px; } .ui-icon-mail-closed { background-position: -80px -96px; } .ui-icon-mail-open { background-position: -96px -96px; } .ui-icon-suitcase { background-position: -112px -96px; } .ui-icon-comment { background-position: -128px -96px; } .ui-icon-person { background-position: -144px -96px; } .ui-icon-print { background-position: -160px -96px; } .ui-icon-trash { background-position: -176px -96px; } .ui-icon-locked { background-position: -192px -96px; } .ui-icon-unlocked { background-position: -208px -96px; } .ui-icon-bookmark { background-position: -224px -96px; } .ui-icon-tag { background-position: -240px -96px; } .ui-icon-home { background-position: 0 -112px; } .ui-icon-flag { background-position: -16px -112px; } .ui-icon-calendar { background-position: -32px -112px; } .ui-icon-cart { background-position: -48px -112px; } .ui-icon-pencil { background-position: -64px -112px; } .ui-icon-clock { background-position: -80px -112px; } .ui-icon-disk { background-position: -96px -112px; } .ui-icon-calculator { background-position: -112px -112px; } .ui-icon-zoomin { background-position: -128px -112px; } .ui-icon-zoomout { background-position: -144px -112px; } .ui-icon-search { background-position: -160px -112px; } .ui-icon-wrench { background-position: -176px -112px; } .ui-icon-gear { background-position: -192px -112px; } .ui-icon-heart { background-position: -208px -112px; } .ui-icon-star { background-position: -224px -112px; } .ui-icon-link { background-position: -240px -112px; } .ui-icon-cancel { background-position: 0 -128px; } .ui-icon-plus { background-position: -16px -128px; } .ui-icon-plusthick { background-position: -32px -128px; } .ui-icon-minus { background-position: -48px -128px; } .ui-icon-minusthick { background-position: -64px -128px; } .ui-icon-close { background-position: -80px -128px; } .ui-icon-closethick { background-position: -96px -128px; } .ui-icon-key { background-position: -112px -128px; } .ui-icon-lightbulb { background-position: -128px -128px; } .ui-icon-scissors { background-position: -144px -128px; } .ui-icon-clipboard { background-position: -160px -128px; } .ui-icon-copy { background-position: -176px -128px; } .ui-icon-contact { background-position: -192px -128px; } .ui-icon-image { background-position: -208px -128px; } .ui-icon-video { background-position: -224px -128px; } .ui-icon-script { background-position: -240px -128px; } .ui-icon-alert { background-position: 0 -144px; } .ui-icon-info { background-position: -16px -144px; } .ui-icon-notice { background-position: -32px -144px; } .ui-icon-help { background-position: -48px -144px; } .ui-icon-check { background-position: -64px -144px; } .ui-icon-bullet { background-position: -80px -144px; } .ui-icon-radio-off { background-position: -96px -144px; } .ui-icon-radio-on { background-position: -112px -144px; } .ui-icon-pin-w { background-position: -128px -144px; } .ui-icon-pin-s { background-position: -144px -144px; } .ui-icon-play { background-position: 0 -160px; } .ui-icon-pause { background-position: -16px -160px; } .ui-icon-seek-next { background-position: -32px -160px; } .ui-icon-seek-prev { background-position: -48px -160px; } .ui-icon-seek-end { background-position: -64px -160px; } .ui-icon-seek-start { background-position: -80px -160px; } /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ .ui-icon-seek-first { background-position: -80px -160px; } .ui-icon-stop { background-position: -96px -160px; } .ui-icon-eject { background-position: -112px -160px; } .ui-icon-volume-off { background-position: -128px -160px; } .ui-icon-volume-on { background-position: -144px -160px; } .ui-icon-power { background-position: 0 -176px; } .ui-icon-signal-diag { background-position: -16px -176px; } .ui-icon-signal { background-position: -32px -176px; } .ui-icon-battery-0 { background-position: -48px -176px; } .ui-icon-battery-1 { background-position: -64px -176px; } .ui-icon-battery-2 { background-position: -80px -176px; } .ui-icon-battery-3 { background-position: -96px -176px; } .ui-icon-circle-plus { background-position: 0 -192px; } .ui-icon-circle-minus { background-position: -16px -192px; } .ui-icon-circle-close { background-position: -32px -192px; } .ui-icon-circle-triangle-e { background-position: -48px -192px; } .ui-icon-circle-triangle-s { background-position: -64px -192px; } .ui-icon-circle-triangle-w { background-position: -80px -192px; } .ui-icon-circle-triangle-n { background-position: -96px -192px; } .ui-icon-circle-arrow-e { background-position: -112px -192px; } .ui-icon-circle-arrow-s { background-position: -128px -192px; } .ui-icon-circle-arrow-w { background-position: -144px -192px; } .ui-icon-circle-arrow-n { background-position: -160px -192px; } .ui-icon-circle-zoomin { background-position: -176px -192px; } .ui-icon-circle-zoomout { background-position: -192px -192px; } .ui-icon-circle-check { background-position: -208px -192px; } .ui-icon-circlesmall-plus { background-position: 0 -208px; } .ui-icon-circlesmall-minus { background-position: -16px -208px; } .ui-icon-circlesmall-close { background-position: -32px -208px; } .ui-icon-squaresmall-plus { background-position: -48px -208px; } .ui-icon-squaresmall-minus { background-position: -64px -208px; } .ui-icon-squaresmall-close { background-position: -80px -208px; } .ui-icon-grip-dotted-vertical { background-position: 0 -224px; } .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } .ui-icon-grip-solid-vertical { background-position: -32px -224px; } .ui-icon-grip-solid-horizontal { background-position: -48px -224px; } .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } .ui-icon-grip-diagonal-se { background-position: -80px -224px; } /* Misc visuals ----------------------------------*/ /* Corner radius */ .ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; -khtml-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; } .ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; -khtml-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; } .ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; } .ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; } /* Overlays */ .ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; } .ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityShadow}*/; -moz-border-radius: 8px/*{cornerRadiusShadow}*/; -khtml-border-radius: 8px/*{cornerRadiusShadow}*/; -webkit-border-radius: 8px/*{cornerRadiusShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; } ================================================ FILE: OnlineStore.Web/Content/uploadify.css ================================================ /* Uploadify Copyright (c) 2012 Reactive Apps, Ronnie Garcia Released under the MIT License */ .uploadify { position: relative; margin-bottom: 1em; } .uploadify-button { background-color: #505050; background-image: linear-gradient(bottom, #505050 0%, #707070 100%); background-image: -o-linear-gradient(bottom, #505050 0%, #707070 100%); background-image: -moz-linear-gradient(bottom, #505050 0%, #707070 100%); background-image: -webkit-linear-gradient(bottom, #505050 0%, #707070 100%); background-image: -ms-linear-gradient(bottom, #505050 0%, #707070 100%); background-image: -webkit-gradient( linear, left bottom, left top, color-stop(0, #505050), color-stop(1, #707070) ); background-position: center top; background-repeat: no-repeat; -webkit-border-radius: 30px; -moz-border-radius: 30px; border-radius: 30px; border: 2px solid #808080; color: #FFF; font: bold 12px Arial, Helvetica, sans-serif; text-align: center; text-shadow: 0 -1px 0 rgba(0,0,0,0.25); width: 100%; } .uploadify:hover .uploadify-button { background-color: #606060; background-image: linear-gradient(top, #606060 0%, #808080 100%); background-image: -o-linear-gradient(top, #606060 0%, #808080 100%); background-image: -moz-linear-gradient(top, #606060 0%, #808080 100%); background-image: -webkit-linear-gradient(top, #606060 0%, #808080 100%); background-image: -ms-linear-gradient(top, #606060 0%, #808080 100%); background-image: -webkit-gradient( linear, left bottom, left top, color-stop(0, #606060), color-stop(1, #808080) ); background-position: center bottom; } .uploadify-button.disabled { background-color: #D0D0D0; color: #808080; } .uploadify-queue { margin-bottom: 1em; } .uploadify-queue-item { background-color: #F5F5F5; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; font: 11px Verdana, Geneva, sans-serif; margin-top: 5px; max-width: 350px; padding: 10px; } .uploadify-error { background-color: #FDE5DD !important; } .uploadify-queue-item .cancel a { background: url('../img/uploadify-cancel.png') 0 0 no-repeat; float: right; height: 16px; text-indent: -9999px; width: 16px; } .uploadify-queue-item.completed { background-color: #E5E5E5; } .uploadify-progress { background-color: #E5E5E5; margin-top: 10px; width: 100%; } .uploadify-progress-bar { background-color: #0099FF; height: 3px; width: 1px; } ================================================ FILE: OnlineStore.Web/Controllers/AccountController.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Transactions; using System.Web; using System.Web.Mvc; using System.Web.Security; using DotNetOpenAuth.AspNet; using Microsoft.Web.WebPages.OAuth; using WebMatrix.WebData; using OnlineStore.Web.UserService; using OnlineStore.Web.ViewModels; // ReSharper disable All namespace OnlineStore.Web.Controllers { [Authorize] [HandleError] public class AccountController : ControllerBase { // 获取当前登录用户的ID值。 // 为了代码复用,把UserId封装到ControllerBase抽象类中去 //protected Guid UserId //{ // get // { // if (Session["UserId"] != null) // return (Guid)Session["UserId"]; // else // { // var id = new Guid(Membership.GetUser().ProviderUserKey.ToString()); // Session["UserId"] = id; // return id; // } // } //} // // GET: /Account/Login [AllowAnonymous] public ActionResult Login(string returnUrl) { ViewBag.ReturnUrl = returnUrl; return View(); } // // POST: /Account/Login [HttpPost] [AllowAnonymous] public ActionResult Login(LoginViewModel model, string returnUrl) { if (ModelState.IsValid) { if (Membership.ValidateUser(model.UserName, model.Password)) { FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe); if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/") && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\")) { return Redirect(returnUrl); } else { return RedirectToAction("Index", "Home"); } } else { ModelState.AddModelError("", "用户名或密码不正确!"); } } return View(); } // // POST: /Account/LogOff [HttpPost] public ActionResult LogOff() { FormsAuthentication.SignOut(); Session["UserId"] = null; return RedirectToAction("Index", "Home"); } // // GET: /Account/Register [AllowAnonymous] public ActionResult Register() { return View(); } // // POST: /Account/Register [HttpPost] [AllowAnonymous] public ActionResult Register(UserAccountModel model) { if (!ModelState.IsValid) return View(model); try { MembershipCreateStatus createStatus = MembershipCreateStatus.ProviderError; var onlineStoreMembershipProvider = Membership.Provider as OnlineStoreMembershipProvider; if (onlineStoreMembershipProvider != null) onlineStoreMembershipProvider.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, model.Contact, model.PhoneNumber, new AddressDto { Country = model.ContactAddressCountry, State = model.ContactAddressState, City = model.ContactAddressCity, Street = model.ContactAddressStreet, Zip = model.ContactAddressZip }, new AddressDto { Country = model.DeliveryAddressCountry, State = model.DeliveryAddressState, City = model.DeliveryAddressCity, Street = model.DeliveryAddressStreet, Zip = model.DeliveryAddressZip }, out createStatus); if (createStatus == MembershipCreateStatus.Success) { FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */); return RedirectToAction("Index", "Home"); } else ModelState.AddModelError("", ErrorCodeToString(createStatus)); } catch (MembershipCreateUserException e) { ModelState.AddModelError("", ErrorCodeToString(e.StatusCode)); } return View(model); } // // GET: /Account/Manage [Authorize] public ActionResult Manage() { using (var proxy = new UserServiceClient()) { var userDto = proxy.GetUserByKey(UserId); return View(UserAccountModel.CreateFromDto(userDto)); } } // // POST: /Account/Manage [HttpPost] [Authorize] public ActionResult Manage(UserAccountModel model) { using(var proxy = new UserServiceClient()) { var userDto = model.ConvertToDto(); proxy.UpdateUsers(new List() { userDto }.ToArray()); return RedirectToSuccess("更新账户信息成功!", "Account", "Account"); } } #region Helpers private static string ErrorCodeToString(MembershipCreateStatus createStatus) { // See http://go.microsoft.com/fwlink/?LinkID=177550 for // a full list of status codes. switch (createStatus) { case MembershipCreateStatus.DuplicateUserName: return "用户名已存在,请选择另一个用户名。"; case MembershipCreateStatus.DuplicateEmail: return "电子邮件地址已存在,请选择另一个电子邮件地址。"; case MembershipCreateStatus.InvalidPassword: return "输入的密码不正确,请重新输入正确的密码。"; case MembershipCreateStatus.InvalidEmail: return "输入的电子邮件地址不正确,请输入正确的电子邮件地址。"; case MembershipCreateStatus.InvalidAnswer: return "The password retrieval answer provided is invalid. Please check the value and try again."; case MembershipCreateStatus.InvalidQuestion: return "The password retrieval question provided is invalid. Please check the value and try again."; case MembershipCreateStatus.InvalidUserName: return "输入的用户名不正确,请输入正确的用户名。"; case MembershipCreateStatus.ProviderError: return "The authentication provider returned an error. Please verify your entry and try again. If the problem persists, please contact your system administrator."; case MembershipCreateStatus.UserRejected: return "The user creation request has been canceled. Please verify your entry and try again. If the problem persists, please contact your system administrator."; default: return "An unknown error occurred. Please verify your entry and try again. If the problem persists, please contact your system administrator."; } } #endregion } } ================================================ FILE: OnlineStore.Web/Controllers/AdminController.cs ================================================ using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web; using System.Web.Mvc; using OnlineStore.Web.OrderService; using OnlineStore.Web.ProductService; using OnlineStore.Web.UserService; using OnlineStore.Web.ViewModels; using CategoryDto = OnlineStore.Web.ProductService.CategoryDto; using ProductDto = OnlineStore.Web.ProductService.ProductDto; namespace OnlineStore.Web.Controllers { [HandleError] public class AdminController : ControllerBase { #region Common Utility Actions // 保存图片到服务器指定目录下 [NonAction] private void SaveFile(HttpPostedFileBase postedFile, string filePath, string saveName) { string phyPath = Request.MapPath("~" + filePath); if (!Directory.Exists(phyPath)) { Directory.CreateDirectory(phyPath); } try { postedFile.SaveAs(phyPath + saveName); } catch (Exception e) { throw new ApplicationException(e.Message); } } // 图片上传功能的实现 [HttpPost] public ActionResult Upload(HttpPostedFileBase fileData, string folder) { var result = string.Empty; if (fileData != null) { string ext = Path.GetExtension(fileData.FileName); result = Guid.NewGuid()+ ext; SaveFile(fileData, Url.Content("~/Images/Products/"), result); } return Content(result); } #endregion #region Administration [Authorize] public ActionResult Administration() { ViewBag.Message = "Please select the administration task below."; return View(); } #endregion #region Categories [Authorize] public ActionResult Categories() { using (var proxy = new ProductServiceClient()) { var categories = proxy.GetCategories(); return View(categories); } } public ActionResult EditCategory(string id) { using (var proxy = new ProductServiceClient()) { var category = proxy.GetCategoryById(new Guid(id)); return View(category); } } [HttpPost] [Authorize] public ActionResult EditCategory(CategoryDto category) { using (var proxy = new ProductServiceClient()) { var categoryList = new List() {category}; proxy.UpdateCategories(categoryList.ToArray()); return RedirectToSuccess("更新商品分类成功!", "Categories","Admin"); } } [Authorize] public ActionResult DeleteCategory(string id) { using (var proxy = new ProductServiceClient()) { proxy.DeleteCategories(new List { id }.ToArray()); return RedirectToSuccess("删除商品分类成功!", "Categories", "Admin"); } } [Authorize] public ActionResult AddCategory() { return View(); } [HttpPost] [Authorize] public ActionResult AddCategory(CategoryDto category) { using (var proxy = new ProductServiceClient()) { proxy.CreateCategories(new List { category }.ToArray()); return RedirectToSuccess("添加商品分类成功!", "Categories", "Admin"); } } #endregion #region Products [Authorize] public ActionResult Products() { using (var proxy = new ProductServiceClient()) { var model = proxy.GetProducts(); return View(model); } } [Authorize] public ActionResult EditProduct(string id) { using (var proxy = new ProductServiceClient()) { var model = proxy.GetProductById(new Guid(id)); var categories = proxy.GetCategories(); categories.ToList().Insert(0, new CategoryDto(){ Id = Guid.Empty.ToString(), Name = "(未分类)", Description = "(未分类)" }); if (model.Category != null) ViewData["categories"] = new SelectList(categories, "Id", "Name", model.Category.Id); else ViewData["categories"] = new SelectList(categories, "Id", "Name", Guid.Empty.ToString()); return View(model); } } [HttpPost] [Authorize] public ActionResult EditProduct(ProductDto product) { using (var proxy = new ProductServiceClient()) { proxy.UpdateProducts(new List { product }.ToArray()); if (product.Category.Id != Guid.Empty.ToString()) proxy.CategorizeProduct(new Guid(product.Id), new Guid(product.Category.Id)); else proxy.UncategorizeProduct(new Guid(product.Id)); return RedirectToSuccess("更新商品信息成功!", "Products", "Admin"); } } [Authorize] public ActionResult AddProduct() { using (var proxy = new ProductServiceClient()) { var categories = proxy.GetCategories(); categories.ToList().Insert(0, new CategoryDto() { Id = Guid.Empty.ToString(), Name = "(未分类)", Description = "(未分类)" }); ViewData["categories"] = new SelectList(categories, "Id", "Name", Guid.Empty.ToString()); return View(); } } [HttpPost] [Authorize] public ActionResult AddProduct(ProductDto product) { using (var proxy = new ProductServiceClient()) { if (string.IsNullOrEmpty(product.ImageUrl)) { var fileName = Guid.NewGuid() + ".png"; System.IO.File.Copy(Server.MapPath("~/Images/Products/ProductImage.png"), Server.MapPath(string.Format("~/Images/Products/{0}", fileName))); product.ImageUrl = fileName; } var addedProducts = proxy.CreateProducts(new List { product }.ToArray()); if (product.Category != null && product.Category.Id != Guid.Empty.ToString()) proxy.CategorizeProduct(new Guid(addedProducts[0].Id), new Guid(product.Category.Id)); return RedirectToSuccess("添加商品信息成功!", "Products", "Admin"); } } [Authorize] public ActionResult DeleteProduct(string id) { using (var proxy = new ProductServiceClient()) { proxy.DeleteProducts(new List { id }.ToArray()); return RedirectToSuccess("删除商品信息成功!", "Products", "Admin"); } } #endregion #region User Accounts [Authorize] public ActionResult UserAccounts() { using (var proxy = new UserServiceClient()) { var users = proxy.GetUsers(); var model = new List(); users.ToList().ForEach(u => model.Add(UserAccountModel.CreateFromDto(u))); return View(model); } } [Authorize] public ActionResult AddUserAccount() { using (var proxy = new UserServiceClient()) { var roles = proxy.GetRoles() ?? new List().ToArray(); roles.ToList().Insert(0, new RoleDto(){ Id = Guid.Empty.ToString(), Name = "(未指定)", Description = "(未指定)" }); ViewData["roles"] = new SelectList(roles, "Id", "Name", Guid.Empty.ToString()); return View(); } } [HttpPost] [Authorize] public ActionResult AddUserAccount(UserAccountModel model) { using (var proxy = new UserServiceClient()) { var user = model.ConvertToDto(); var createdUsers = proxy.CreateUsers(new List { user }.ToArray()); if (model.Role.Id != Guid.Empty.ToString()) proxy.AssignRole(new Guid(createdUsers[0].Id), new Guid(model.Role.Id)); return RedirectToSuccess("创建用户账户成功!", "UserAccounts", "Admin"); } } [Authorize] public ActionResult EditUserAccount(string id) { using (var proxy = new UserServiceClient()) { var user = proxy.GetUserByKey(new Guid(id)); var model = UserAccountModel.CreateFromDto(user); var roles = proxy.GetRoles(); if (roles == null) roles = new List().ToArray(); roles.ToList().Insert(0, new RoleDto() { Id = Guid.Empty.ToString(), Name = "(未指定)", Description = "(未指定)" }); if (model.Role != null) ViewData["roles"] = new SelectList(roles, "Id", "Name", model.Role.Id); else ViewData["roles"] = new SelectList(roles, "Id", "Name", Guid.Empty.ToString()); return View(model); } } [HttpPost] [Authorize] public ActionResult EditUserAccount(UserAccountModel model) { using (var proxy = new UserServiceClient()) { var user = model.ConvertToDto(); proxy.UpdateUsers(new List { user }.ToArray()); if (model.Role.Id != Guid.Empty.ToString()) proxy.AssignRole(new Guid(model.Id), new Guid(model.Role.Id)); else proxy.UnassignRole(new Guid(model.Id)); return RedirectToSuccess("更新用户账户成功!", "UserAccounts", "Admin"); } } [Authorize] public ActionResult DisableUserAccount(string id) { using (var proxy = new UserServiceClient()) { proxy.DisableUser(new UserDto() { Id = id }); return RedirectToAction("UserAccounts"); } } [Authorize] public ActionResult EnableUserAccount(string id) { using (var proxy = new UserServiceClient()) { proxy.EnableUser(new UserDto() { Id = id }); return RedirectToAction("UserAccounts"); } } [Authorize] public ActionResult DeleteUserAccount(string id) { using (var proxy = new UserServiceClient()) { proxy.DeleteUsers(new List { new UserDto() { Id = id }}.ToArray()); return RedirectToSuccess("删除用户账户成功!", "UserAccounts", "Admin"); } } #endregion #region Roles [Authorize] public ActionResult Roles() { using (var proxy = new UserServiceClient()) { var model = proxy.GetRoles(); return View(model); } } [Authorize] public ActionResult EditRole(string id) { using (var proxy = new UserServiceClient()) { var model = proxy.GetUserByKey(new Guid(id)); return View(model); } } [HttpPost] public ActionResult EditRole(RoleDto model) { using (var proxy = new UserServiceClient()) { proxy.UpdateRoles(new List { model }.ToArray()); return RedirectToSuccess("更新账户角色成功!", "Roles", "Admin"); } } public ActionResult DeleteRole(string id) { using (var proxy = new UserServiceClient()) { proxy.DeleteRoles(new List { id }.ToArray()); return RedirectToSuccess("删除账户角色成功!", "Roles", "Admin"); } } public ActionResult AddRole() { return View(); } [HttpPost] public ActionResult AddRole(RoleDto model) { using (var proxy = new UserServiceClient()) { proxy.CreateRoles(new List { model }.ToArray()); return RedirectToSuccess("添加账户角色成功!", "Roles", "Admin"); } } #endregion #region Orders public ActionResult Orders() { using(var proxy = new OrderServiceClient()) { var model = proxy.GetAllOrders(); return View(model); } } public ActionResult Order(string id) { using (var proxy = new OrderServiceClient()) { var model = proxy.GetOrder(new Guid(id)); return View(model); } } public ActionResult DispatchOrder(string id) { using (var proxy = new OrderServiceClient()) { proxy.Dispatch(new Guid(id)); return RedirectToSuccess(string.Format("订单 {0} 已成功发货!", id.ToUpper()), "Orders", "Admin"); } } #endregion } } ================================================ FILE: OnlineStore.Web/Controllers/ControllerBase.cs ================================================ using System; using System.Web.Mvc; using System.Web.Security; namespace OnlineStore.Web.Controllers { public class ControllerBase : Controller { protected Guid UserId { get { if (Session["UserId"] != null) return (Guid)Session["UserId"]; else { var id = new Guid(Membership.GetUser().ProviderUserKey.ToString()); Session["UserId"] = id; return id; } } } protected ActionResult RedirectToSuccess(string pageTitle, string action = "Index", string controller = "Home", int waitSeconds = 3) { return this.RedirectToAction("SuccessPage", "Home", new { pageTitle = pageTitle, retAction = action, retController = controller, waitSeconds = waitSeconds }); } } } ================================================ FILE: OnlineStore.Web/Controllers/HomeController.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Security; using OnlineStore.Web.OrderService; using OnlineStore.Web.ProductService; // ReSharper disable PossibleNullReferenceException namespace OnlineStore.Web.Controllers { public class HomeController : ControllerBase { #region Protected Properties protected Guid UserId { get { if (Session["UserId"] != null) { return (Guid) Session["UserId"]; } else { var id = new Guid(Membership.GetUser().ProviderUserKey.ToString()); Session["UserId"] = id; return id; } } } #endregion public ActionResult Index(string categoryId = null, int pageNumber = 1) { return View(); } public ActionResult Category(string categoryId = null, int pageNumber = 1) { ViewData["CategoryId"] = categoryId; ViewData["FromIndexPage"] = false; return View(); } public ActionResult ProductDetail(string id) { using (var proxy = new ProductServiceClient()) { var product = proxy.GetProductById(new Guid(id)); return View(product); } } [Authorize] public ActionResult AddToCart(string productId, string items) { using (var proxy = new OrderServiceClient()) { int quantity = 0; if (!int.TryParse(items, out quantity)) quantity = 1; proxy.AddProductToCart(UserId, new Guid(productId), quantity); return RedirectToAction("ShoppingCart"); } } [Authorize] public ActionResult ShoppingCart() { using (var proxy = new OrderServiceClient()) { var model = proxy.GetShoppingCart(UserId); return View(model); } } [Authorize] public ActionResult UpdateShoppingCartItem(string shoppingCartItemId, int quantity) { using (var proxy = new OrderServiceClient()) { proxy.UpdateShoppingCartItem(new Guid(shoppingCartItemId), quantity); return Json(null); } } [Authorize] public ActionResult DeleteShoppingCartItem(string shoppingCartItemId) { using (var proxy = new OrderServiceClient()) { proxy.DeleteShoppingCartItem(new Guid(shoppingCartItemId)); return Json(null); } } /// /// 结算操作 /// /// [Authorize] public ActionResult Checkout() { using (var proxy = new OrderServiceClient()) { var model = proxy.Checkout(this.UserId); return View(model); } } [Authorize] public ActionResult Orders() { using (var proxy = new OrderServiceClient()) { var model = proxy.GetOrdersForUser(this.UserId); return View(model); } } [Authorize] public ActionResult Order(string id) { using (var proxy = new OrderServiceClient()) { var model = proxy.GetOrder(new Guid(id)); return View(model); } } [Authorize] public ActionResult Confirm(string id) { using (var proxy = new OrderServiceClient()) { proxy.Confirm(new Guid(id)); return RedirectToSuccess("确认收货成功!", "Orders", "Home"); } } public ActionResult About() { ViewBag.Message = "Your app description page."; return View(); } public ActionResult Contact() { ViewBag.Message = "Your contact page."; return View(); } public ActionResult SuccessPage(string pageTitle, string pageMessage = null, string retAction = "Index", string retController = "Home", int waitSeconds = 5) { ViewBag.PageTitle = pageTitle; ViewBag.PageMessage = pageMessage; ViewBag.RetAction = retAction; ViewBag.RetController = retController; ViewBag.WaitSeconds = waitSeconds; return View(); } } } ================================================ FILE: OnlineStore.Web/Controllers/LayoutController.cs ================================================ using System; using System.Collections; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Security; using OnlineStore.Web.OrderService; using OnlineStore.Web.ProductService; using ProductDto = OnlineStore.Web.ProductService.ProductDto; // ReSharper disable PossibleNullReferenceException namespace OnlineStore.Web.Controllers { public class LayoutController : ControllerBase { #region Shared Layout Partial view Actions public ActionResult _LoginPartial() { if (User.Identity.IsAuthenticated) { using (var proxy = new OrderServiceClient()) { ViewBag.ShoppingCartItems = proxy.GetShoppingCartItemCount(UserId); } } return PartialView(); } public ActionResult CategoriesPartial() { using (var proxy = new ProductServiceClient()) { var categories = proxy.GetCategories(); return PartialView(categories); } } public ActionResult NewProductsPartial() { using (var proxy = new ProductServiceClient()) { var newProducts = proxy.GetNewProducts(4); return PartialView(newProducts); } } //public ActionResult ProductsPartial(string categoryId = null) //{ // using (var proxy = new ProductServiceClient()) // { // IEnumerable products = null; // products = string.IsNullOrEmpty((categoryId)) ? proxy.GetProducts() : proxy.GetProductsForCategory(new Guid(categoryId)); // if (string.IsNullOrEmpty(categoryId)) // ViewBag.CategoryName = "所有商品"; // else // { // var category = proxy.GetCategoryById(new Guid(categoryId)); // ViewBag.CategoryName = category.Name; // } // ViewBag.CategoryId = categoryId; // return PartialView(products); // } //} /// /// 商品页面的分页支持 /// /// 类别Id /// 是否来源首页点击 /// 页数 /// public ActionResult ProductsPartial(string categoryId = null, bool? fromIndexPage = null, int pageNumber =1) { using (var proxy = new ProductServiceClient()) { var numberOfProductsPerPage = int.Parse(ConfigurationManager.AppSettings["productsPerPage"]); var pagination = new Pagination { PageSize = numberOfProductsPerPage, PageNumber = pageNumber }; ProductDtoWithPagination productsDtoWithPagination = null; productsDtoWithPagination = string.IsNullOrEmpty((categoryId)) ? proxy.GetProductsWithPagination(pagination) : proxy.GetProductsForCategoryWithPagination(new Guid(categoryId), pagination); if (string.IsNullOrEmpty(categoryId)) ViewBag.CategoryName = "所有商品"; else { var category = proxy.GetCategoryById(new Guid(categoryId)); ViewBag.CategoryName = category.Name; } ViewBag.CategoryId = categoryId; ViewBag.FromIndexPage = fromIndexPage; if (fromIndexPage == null || fromIndexPage.Value) ViewBag.Action = "Index"; else ViewBag.Action = "Category"; ViewBag.IsFirstPage = productsDtoWithPagination.Pagination.PageNumber == 1; ViewBag.IsLastPage = productsDtoWithPagination.Pagination.PageNumber == productsDtoWithPagination.Pagination.TotalPages; return PartialView(productsDtoWithPagination); } } #endregion } } ================================================ FILE: OnlineStore.Web/Global.asax ================================================ <%@ Application Codebehind="Global.asax.cs" Inherits="OnlineStore.Web.MvcApplication" Language="C#" %> ================================================ FILE: OnlineStore.Web/Global.asax.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Http; using System.Web.Mvc; using System.Web.Optimization; using System.Web.Routing; namespace OnlineStore.Web { // Note: For instructions on enabling IIS6 or IIS7 classic mode, // visit http://go.microsoft.com/?LinkId=9394801 public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); //WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); //AuthConfig.RegisterAuth(); } } } ================================================ FILE: OnlineStore.Web/Membership/OnlineStoreMembershipProvider.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Web.Hosting; using System.Web.Security; using OnlineStore.Web.UserService; // ReSharper disable All namespace OnlineStore.Web { public class OnlineStoreMembershipProvider : MembershipProvider { private string applicationName; private bool enablePasswordReset; private bool enablePasswordRetrieval = false; private bool requireQuestionAndAnswer = false; private bool requireUniqueEmail = true; private int maxInvalidPasswordAttempts; private int passwordAttemptWindow; private int minRequiredPasswordLength; private int minRequiredNonalphanumericCharacters; private string passwordStrengthRegularExpression; private MembershipPasswordFormat passwordFormat = MembershipPasswordFormat.Clear; private OnlineStoreMembershipUser ConvertFrom(UserDto userDto) { if (userDto == null) return null; var user = new OnlineStoreMembershipUser("OnlineStoreMembershipProvider", userDto.UserName, userDto.Id, userDto.Email, "", "", true, userDto.IsDisabled ?? true, userDto.RegisteredDate ?? DateTime.MinValue, userDto.LastLogonDate ?? DateTime.MinValue, DateTime.MinValue, DateTime.MinValue, DateTime.MinValue, userDto.Contact, userDto.PhoneNumber, userDto.ContactAddress, userDto.DeliveryAddress); return user; } private string GetConfigValue(string configValue, string defaultValue) { if (string.IsNullOrEmpty(configValue)) return defaultValue; return configValue; } public OnlineStoreMembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, string contact, string phoneNumber, AddressDto contactAddress, AddressDto deliveryAddress, out MembershipCreateStatus status) { var args = new ValidatePasswordEventArgs(username, password, true); OnValidatingPassword(args); if (args.Cancel) { status = MembershipCreateStatus.InvalidPassword; return null; } if (RequiresUniqueEmail && !string.IsNullOrEmpty(GetUserNameByEmail(email))) { status = MembershipCreateStatus.DuplicateEmail; return null; } var user = GetUser(username, true) as OnlineStoreMembershipUser; if (user == null) { using (var proxy = new UserServiceClient()) { List userDtos = new List { new UserDto { UserName = username, Password = password, Contact = contact, LastLogonDate = null, RegisteredDate = DateTime.Now, Email = email, IsDisabled = false, PhoneNumber = phoneNumber, ContactAddress = contactAddress, DeliveryAddress = deliveryAddress } }; proxy.CreateUsers(userDtos.ToArray()); } status = MembershipCreateStatus.Success; return GetUser(username, true) as OnlineStoreMembershipUser; } else { status = MembershipCreateStatus.DuplicateUserName; return null; } } #region MembershipProvider Members public override string ApplicationName { get { return applicationName; } set { applicationName = value; } } public override void Initialize(string name, NameValueCollection config) { if (config == null) throw new ArgumentNullException("config"); if (string.IsNullOrEmpty(name)) name = "OnlineStoreMembershipProvider"; if (String.IsNullOrEmpty(config["description"])) { config.Remove("description"); config.Add("description", "Membership Provider for OnlineStore"); } base.Initialize(name, config); ApplicationName = GetConfigValue(config["applicationName"], HostingEnvironment.ApplicationVirtualPath); maxInvalidPasswordAttempts = Convert.ToInt32(GetConfigValue(config["maxInvalidPasswordAttempts"], "5")); passwordAttemptWindow = Convert.ToInt32(GetConfigValue(config["passwordAttemptWindow"], "10")); minRequiredNonalphanumericCharacters = Convert.ToInt32(GetConfigValue(config["minRequiredNonalphanumericCharacters"], "1")); minRequiredPasswordLength = Convert.ToInt32(GetConfigValue(config["minRequiredPasswordLength"], "6")); enablePasswordReset = Convert.ToBoolean(GetConfigValue(config["enablePasswordReset"], "true")); passwordStrengthRegularExpression = Convert.ToString(GetConfigValue(config["passwordStrengthRegularExpression"], "")); } public override bool ChangePassword(string username, string oldPassword, string newPassword) { throw new NotSupportedException(); } public override bool ChangePasswordQuestionAndAnswer(string username, string password, string newPasswordQuestion, string newPasswordAnswer) { return false; } public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status) { return CreateUser(username, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey, null, null, null, null, out status); } public override bool DeleteUser(string username, bool deleteAllRelatedData) { throw new System.NotImplementedException(); } public override bool EnablePasswordReset { get { return enablePasswordReset; } } public override bool EnablePasswordRetrieval { get { return enablePasswordRetrieval; } } public override MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords) { throw new System.NotImplementedException(); } public override MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords) { throw new System.NotImplementedException(); } public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords) { throw new System.NotImplementedException(); } public override int GetNumberOfUsersOnline() { return 0; } public override string GetPassword(string username, string answer) { throw new System.NotImplementedException(); } public override MembershipUser GetUser(string username, bool userIsOnline) { using (var proxy = new UserServiceClient()) { var userDto = proxy.GetUserByName(username); if (userDto == null) return null; return ConvertFrom(userDto); } } public override MembershipUser GetUser(object providerUserKey, bool userIsOnline) { using (var proxy = new UserServiceClient()) { var userDto = proxy.GetUserByKey((Guid) providerUserKey); if (userDto == null) return null; return ConvertFrom(userDto); } } public override string GetUserNameByEmail(string email) { using (var proxy = new UserServiceClient()) { var userDto = proxy.GetUserByEmail(email); if(userDto == null) return null; return userDto.UserName; } } public override int MaxInvalidPasswordAttempts { get { return maxInvalidPasswordAttempts;} } public override int MinRequiredNonAlphanumericCharacters { get { return minRequiredNonalphanumericCharacters; } } public override int MinRequiredPasswordLength { get { return minRequiredPasswordLength; } } public override int PasswordAttemptWindow { get { return passwordAttemptWindow; } } public override MembershipPasswordFormat PasswordFormat { get { return this.passwordFormat; } } public override string PasswordStrengthRegularExpression { get { return this.passwordStrengthRegularExpression; } } public override bool RequiresQuestionAndAnswer { get { return this.requireQuestionAndAnswer; } } public override bool RequiresUniqueEmail { get { return requireUniqueEmail; } } public override string ResetPassword(string username, string answer) { throw new NotSupportedException(); } public override bool UnlockUser(string userName) { throw new NotSupportedException(); } public override void UpdateUser(MembershipUser user) { throw new NotSupportedException(); } public override bool ValidateUser(string username, string password) { using (var proxy = new UserServiceClient()) { return proxy.ValidateUser(username, password); } } #endregion } } ================================================ FILE: OnlineStore.Web/Membership/OnlineStoreMembershipUser.cs ================================================ using System; using System.Web.Security; using OnlineStore.Web.UserService; // ReSharper disable All namespace OnlineStore.Web { public class OnlineStoreMembershipUser : MembershipUser { #region Public Properties public string Contact { get; set; } public string PhoneNumber { get; set; } public string ContactAddressCountry { get; set; } public string ContactAddressState { get; set; } public string ContactAddressCity { get; set; } public string ContactAddressStreet { get; set; } public string ContactAddressZip { get; set; } public string DeliveryAddressCountry { get; set; } public string DeliveryAddressState { get; set; } public string DeliveryAddressCity { get; set; } public string DeliveryAddressStreet { get; set; } public string DeliveryAddressZip { get; set; } #endregion #region Ctor public OnlineStoreMembershipUser(string providerName, string name, object providerUserKey, string email, string passwordQuestion, string comment, bool isApproved, bool isLockedOut, DateTime creationDate, DateTime lastLoginDate, DateTime lastActivityDate, DateTime lastPasswordChangedDate, DateTime lastLockoutDate, string contact, string phoneNumber, string contactAddressCountry, string contactAddressState, string contactAddressCity, string contactAddressStreet, string contactAddressZip, string deliveryAddressCountry, string deliveryAddressState, string deliveryAddressCity, string deliveryAddressStreet, string deliveryAddressZip) : base( providerName, name, providerUserKey, email, passwordQuestion, comment, isApproved, isLockedOut, creationDate, lastLoginDate, lastActivityDate, lastPasswordChangedDate, lastLockoutDate) { this.Contact = contact; this.PhoneNumber = phoneNumber; this.ContactAddressCity = contactAddressCity; this.ContactAddressCountry = contactAddressCountry; this.ContactAddressState = contactAddressState; this.ContactAddressStreet = contactAddressStreet; this.ContactAddressZip = contactAddressZip; this.DeliveryAddressCity = deliveryAddressCity; this.DeliveryAddressCountry = deliveryAddressCountry; this.DeliveryAddressState = deliveryAddressState; this.DeliveryAddressStreet = deliveryAddressStreet; this.DeliveryAddressZip = deliveryAddressZip; } public OnlineStoreMembershipUser(string providerName, string name, object providerUserKey, string email, string passwordQuestion, string comment, bool isApproved, bool isLockedOut, DateTime creationDate, DateTime lastLoginDate, DateTime lastActivityDate, DateTime lastPasswordChangedDate, DateTime lastLockoutDate, string contact, string phoneNumber, AddressDto contactAddress, AddressDto deliveryAddress) : this( providerName, name, providerUserKey, email, passwordQuestion, comment, isApproved, isLockedOut, creationDate, lastLoginDate, lastActivityDate, lastPasswordChangedDate, lastLockoutDate, contact, phoneNumber, contactAddress == null ? null : contactAddress.Country, contactAddress == null ? null : contactAddress.State, contactAddress == null ? null : contactAddress.City, contactAddress == null ? null : contactAddress.Street, contactAddress == null ? null : contactAddress.Zip, deliveryAddress == null ? null : deliveryAddress.Country, deliveryAddress == null ? null : deliveryAddress.State, deliveryAddress == null ? null : deliveryAddress.City, deliveryAddress == null ? null : deliveryAddress.Street, deliveryAddress == null ? null : deliveryAddress.Zip) { } #endregion } } ================================================ FILE: OnlineStore.Web/MvcSiteMap.cs ================================================ using System; using System.Collections.Generic; using System.Text; using System.Web; using System.Web.Mvc; using System.Xml.Linq; namespace OnlineStore.Web { public class MvcSiteMap { private static readonly MvcSiteMap _instance = new MvcSiteMap(); private static readonly XDocument Doc = XDocument.Load(HttpContext.Current.Server.MapPath(@"~/SiteMap.xml")); private UrlHelper _url = null; private string _currentUrl; public static MvcSiteMap Instance { get { return _instance;} } private MvcSiteMap() { } public MvcHtmlString Navigator() { // 获得当前请求的路由信息 _url = new UrlHelper(HttpContext.Current.Request.RequestContext); var routeUrl = _url.RouteUrl(HttpContext.Current.Request.RequestContext.RouteData.Values); if (routeUrl != null) _currentUrl = routeUrl.ToLower(); // 从配置的站点Xml文件中找到当前请求的Url相同的节点 var c = FindNode(Doc.Root); var temp = GetPath(c); return MvcHtmlString.Create(BuildPathString(temp)); } // 从SitMap配置文件中找到当前请求匹配的节点 private XElement FindNode(XElement node) { // 如果xml节点对应的url是否与当前请求的节点相同,如果相同则直接返回xml对应的节点 // 如果不同开始递归子节点 return IsUrlEqual(node) == true ? node : RecursiveNode(node); } // 判断xml节点对应的url是否与当前请求的url一样 private bool IsUrlEqual(XElement c) { var a = GetNodeUrl(c).ToLower(); return a == _currentUrl; } // 递归Xml节点 private XElement RecursiveNode(XElement node) { foreach (var c in node.Elements()) { if (IsUrlEqual(c) == true) { return c; } else { var x = RecursiveNode(c); if (x != null) { return x; } } } return null; } // 获得xml节点对应的请求url private string GetNodeUrl(XElement c) { return _url.Action(c.Attribute("action").Value, c.Attribute("controller").Value, new {area = c.Attribute("area").Value}); } // 根据对应请求url对应的Xml节点获得其在Xml中的路径,即获得其父节点有什么 // SiteMap.xml 中节点的父子节点一定要配置对 private Stack GetPath(XElement c) { var temp = new Stack(); while (c != null) { temp.Push(c); c = c.Parent; } return temp; } // 根据节点的路径来拼接带标签的字符串 private string BuildPathString(Stack m) { var sb = new StringBuilder(); var tc = new TagBuilder("span"); tc.SetInnerText(">"); var sp = tc.ToString(); var count = m.Count; for (var x = 1; x <= count; x++) { var c = m.Pop(); TagBuilder tb; if (x == count) { tb = new TagBuilder("span"); } else { tb = new TagBuilder("a"); tb.MergeAttribute("href", GetNodeUrl(c)); } tb.SetInnerText(c.Attribute("title").Value); sb.Append(tb); sb.Append(sp); } return sb.ToString(); } } } ================================================ FILE: OnlineStore.Web/OnlineStore.Web.csproj ================================================  Debug AnyCPU 2.0 {4EDD833D-E745-4A23-B244-447EA946B112} {E3E379DF-F4C6-4180-9B81-6769533ABE47};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} Library Properties OnlineStore.Web OnlineStore.Web v4.5 false true ..\ true true full false bin\ DEBUG;TRACE prompt 4 pdbonly true bin\ TRACE prompt 4 ..\packages\Microsoft.AspNet.WebPages.2.0.20710.0\lib\net40\System.Web.Helpers.dll True ..\packages\Microsoft.AspNet.Mvc.4.0.20710.0\lib\net40\System.Web.Mvc.dll True ..\packages\Microsoft.AspNet.Razor.2.0.20710.0\lib\net40\System.Web.Razor.dll True ..\packages\Microsoft.AspNet.WebPages.2.0.20710.0\lib\net40\System.Web.WebPages.dll True ..\packages\Microsoft.AspNet.WebPages.2.0.20710.0\lib\net40\System.Web.WebPages.Deployment.dll True ..\packages\Microsoft.AspNet.WebPages.2.0.20710.0\lib\net40\System.Web.WebPages.Razor.dll True ..\packages\EntityFramework.5.0.0\lib\net45\EntityFramework.dll True ..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll ..\packages\Newtonsoft.Json.4.5.6\lib\net40\Newtonsoft.Json.dll ..\packages\Microsoft.AspNet.WebApi.Client.4.0.20710.0\lib\net40\System.Net.Http.Formatting.dll ..\packages\Microsoft.AspNet.WebApi.Core.4.0.20710.0\lib\net40\System.Web.Http.dll ..\packages\Microsoft.AspNet.WebApi.WebHost.4.0.20710.0\lib\net40\System.Web.Http.WebHost.dll ..\packages\Microsoft.AspNet.Web.Optimization.1.0.0\lib\net40\System.Web.Optimization.dll True ..\packages\Microsoft.AspNet.WebPages.Data.2.0.20710.0\lib\net40\WebMatrix.Data.dll True ..\packages\Microsoft.AspNet.WebPages.OAuth.2.0.20710.0\lib\net40\Microsoft.Web.WebPages.OAuth.dll True ..\packages\Microsoft.AspNet.WebPages.WebData.2.0.20710.0\lib\net40\WebMatrix.WebData.dll True ..\packages\DotNetOpenAuth.AspNet.4.0.3.12153\lib\net40-full\DotNetOpenAuth.AspNet.dll True ..\packages\DotNetOpenAuth.Core.4.0.3.12153\lib\net40-full\DotNetOpenAuth.Core.dll True ..\packages\DotNetOpenAuth.OAuth.Consumer.4.0.3.12153\lib\net40-full\DotNetOpenAuth.OAuth.Consumer.dll True ..\packages\DotNetOpenAuth.OAuth.Core.4.0.3.12153\lib\net40-full\DotNetOpenAuth.OAuth.dll True ..\packages\DotNetOpenAuth.OpenId.Core.4.0.3.12153\lib\net40-full\DotNetOpenAuth.OpenId.dll True ..\packages\DotNetOpenAuth.OpenId.RelyingParty.4.0.3.12153\lib\net40-full\DotNetOpenAuth.OpenId.RelyingParty.dll True ..\packages\WebGrease.1.1.0\lib\WebGrease.dll True ..\packages\WebGrease.1.1.0\lib\Antlr3.Runtime.dll True True Reference.svcmap True True Reference.svcmap Global.asax True True Reference.svcmap Reference.svcmap Reference.svcmap WCF Proxy Generator Reference.cs Reference.svcmap Reference.svcmap Reference.svcmap Reference.svcmap WCF Proxy Generator Reference.cs Reference.svcmap Reference.svcmap Reference.svcmap Designer Designer Designer Designer WCF Proxy Generator Reference.cs Web.config Web.config Designer Designer Designer Designer Designer Designer Designer 10.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) True True 4135 / http://localhost:53465/ False False False This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. ================================================ FILE: OnlineStore.Web/OnlineStore.Web.csproj.DotSettings ================================================  True ================================================ FILE: OnlineStore.Web/Properties/AssemblyInfo.cs ================================================ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("OnlineStore.Web")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Microsoft")] [assembly: AssemblyProduct("OnlineStore.Web")] [assembly: AssemblyCopyright("Copyright © Microsoft 2015")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("edf1090a-2727-4dc4-9716-f97fe7bdf1d5")] // Version information for an assembly consists of the following four values: // // Major Version // Minor Version // Build Number // Revision // // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] ================================================ FILE: OnlineStore.Web/Scripts/hoverIntent.js ================================================ (function($){ /* hoverIntent by Brian Cherne */ $.fn.hoverIntent = function(f,g) { // default configuration options var cfg = { sensitivity: 7, interval: 100, timeout: 0 }; // override configuration options with user supplied object cfg = $.extend(cfg, g ? { over: f, out: g } : f ); // instantiate variables // cX, cY = current X and Y position of mouse, updated by mousemove event // pX, pY = previous X and Y position of mouse, set by mouseover and polling interval var cX, cY, pX, pY; // A private function for getting mouse position var track = function(ev) { cX = ev.pageX; cY = ev.pageY; }; // A private function for comparing current and previous mouse position var compare = function(ev,ob) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); // compare mouse positions to see if they've crossed the threshold if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) { $(ob).unbind("mousemove",track); // set hoverIntent state to true (so mouseOut can be called) ob.hoverIntent_s = 1; return cfg.over.apply(ob,[ev]); } else { // set previous coordinates for next time pX = cX; pY = cY; // use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs) ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval ); } }; // A private function for delaying the mouseOut function var delay = function(ev,ob) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); ob.hoverIntent_s = 0; return cfg.out.apply(ob,[ev]); }; // A private function for handling mouse 'hovering' var handleHover = function(e) { // next three lines copied from jQuery.hover, ignore children onMouseOver/onMouseOut var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget; while ( p && p != this ) { try { p = p.parentNode; } catch(e) { p = this; } } if ( p == this ) { return false; } // copy objects to be passed into t (required for event object to be passed in IE) var ev = jQuery.extend({},e); var ob = this; // cancel hoverIntent timer if it exists if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); } // else e.type == "onmouseover" if (e.type == "mouseover") { // set "previous" X and Y position based on initial entry point pX = ev.pageX; pY = ev.pageY; // update "current" X and Y position based on mousemove $(ob).bind("mousemove",track); // start polling interval (self-calling timeout) to compare mouse coordinates over time if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );} // else e.type == "onmouseout" } else { // unbind expensive mousemove event $(ob).unbind("mousemove",track); // if hoverIntent state is true, then call the mouseOut function after the specified delay if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );} } }; // bind the function to the two event listeners return this.mouseover(handleHover).mouseout(handleHover); }; })(jQuery); ================================================ FILE: OnlineStore.Web/Scripts/jquery-1.7.1.intellisense.js ================================================ /*! * Documentation Content * Copyright (c) 2009 Packt Publishing, http://packtpub.com/ * Copyright (c) 2012 jQuery Foundation, http://jquery.org/ * * This software consists of voluntary contributions made by many * individuals. For exact contribution history, see the revision history * and logs, available at http://github.com/jquery/api.jquery.com * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ intellisense.annotate(jQuery, { 'ajax': function() { /// /// Perform an asynchronous HTTP (Ajax) request. /// A string containing the URL to which the request is sent. /// A set of key/value pairs that configure the Ajax request. All settings are optional. A default can be set for any option with $.ajaxSetup(). See jQuery.ajax( settings ) below for a complete list of all settings. /// /// /// /// Perform an asynchronous HTTP (Ajax) request. /// A set of key/value pairs that configure the Ajax request. All settings are optional. A default can be set for any option with $.ajaxSetup(). /// /// }, 'ajaxPrefilter': function() { /// /// Handle custom Ajax options or modify existing options before each request is sent and before they are processed by $.ajax(). /// An optional string containing one or more space-separated dataTypes /// A handler to set default values for future Ajax requests. /// }, 'ajaxSetup': function() { /// /// Set default values for future Ajax requests. /// A set of key/value pairs that configure the default Ajax request. All options are optional. /// }, 'boxModel': function() { /// Deprecated in jQuery 1.3 (see jQuery.support). States if the current page, in the user's browser, is being rendered using the W3C CSS Box Model. /// }, 'browser': function() { /// Contains flags for the useragent, read from navigator.userAgent. We recommend against using this property; please try to use feature detection instead (see jQuery.support). jQuery.browser may be moved to a plugin in a future release of jQuery. /// }, 'browser.version': function() { /// The version number of the rendering engine for the user's browser. /// }, 'Callbacks': function() { /// /// A multi-purpose callbacks list object that provides a powerful way to manage callback lists. /// An optional list of space-separated flags that change how the callback list behaves. /// }, 'contains': function() { /// /// Check to see if a DOM element is within another DOM element. /// The DOM element that may contain the other element. /// The DOM element that may be contained by the other element. /// /// }, 'cssHooks': function() { /// Hook directly into jQuery to override how particular CSS properties are retrieved or set, normalize CSS property naming, or create custom properties. /// }, 'data': function() { /// /// Returns value at named data store for the element, as set by jQuery.data(element, name, value), or the full data store for the element. /// The DOM element to query for the data. /// Name of the data stored. /// /// /// /// Returns value at named data store for the element, as set by jQuery.data(element, name, value), or the full data store for the element. /// The DOM element to query for the data. /// /// }, 'dequeue': function() { /// /// Execute the next function on the queue for the matched element. /// A DOM element from which to remove and execute a queued function. /// A string containing the name of the queue. Defaults to fx, the standard effects queue. /// /// }, 'each': function() { /// /// A generic iterator function, which can be used to seamlessly iterate over both objects and arrays. Arrays and array-like objects with a length property (such as a function's arguments object) are iterated by numeric index, from 0 to length-1. Other objects are iterated via their named properties. /// The object or array to iterate over. /// The function that will be executed on every object. /// /// }, 'error': function() { /// /// Takes a string and throws an exception containing it. /// The message to send out. /// }, 'extend': function() { /// /// Merge the contents of two or more objects together into the first object. /// An object that will receive the new properties if additional objects are passed in or that will extend the jQuery namespace if it is the sole argument. /// An object containing additional properties to merge in. /// Additional objects containing properties to merge in. /// /// /// /// Merge the contents of two or more objects together into the first object. /// If true, the merge becomes recursive (aka. deep copy). /// The object to extend. It will receive the new properties. /// An object containing additional properties to merge in. /// Additional objects containing properties to merge in. /// /// }, 'get': function() { /// /// Load data from the server using a HTTP GET request. /// A string containing the URL to which the request is sent. /// A map or string that is sent to the server with the request. /// A callback function that is executed if the request succeeds. /// The type of data expected from the server. Default: Intelligent Guess (xml, json, script, or html). /// /// }, 'getJSON': function() { /// /// Load JSON-encoded data from the server using a GET HTTP request. /// A string containing the URL to which the request is sent. /// A map or string that is sent to the server with the request. /// A callback function that is executed if the request succeeds. /// /// }, 'getScript': function() { /// /// Load a JavaScript file from the server using a GET HTTP request, then execute it. /// A string containing the URL to which the request is sent. /// A callback function that is executed if the request succeeds. /// /// }, 'globalEval': function() { /// /// Execute some JavaScript code globally. /// The JavaScript code to execute. /// }, 'grep': function() { /// /// Finds the elements of an array which satisfy a filter function. The original array is not affected. /// The array to search through. /// The function to process each item against. The first argument to the function is the item, and the second argument is the index. The function should return a Boolean value. this will be the global window object. /// If "invert" is false, or not provided, then the function returns an array consisting of all elements for which "callback" returns true. If "invert" is true, then the function returns an array consisting of all elements for which "callback" returns false. /// /// }, 'hasData': function() { /// /// Determine whether an element has any jQuery data associated with it. /// A DOM element to be checked for data. /// /// }, 'holdReady': function() { /// /// Holds or releases the execution of jQuery's ready event. /// Indicates whether the ready hold is being requested or released /// }, 'inArray': function() { /// /// Search for a specified value within an array and return its index (or -1 if not found). /// The value to search for. /// An array through which to search. /// The index of the array at which to begin the search. The default is 0, which will search the whole array. /// /// }, 'isArray': function() { /// /// Determine whether the argument is an array. /// Object to test whether or not it is an array. /// /// }, 'isEmptyObject': function() { /// /// Check to see if an object is empty (contains no properties). /// The object that will be checked to see if it's empty. /// /// }, 'isFunction': function() { /// /// Determine if the argument passed is a Javascript function object. /// Object to test whether or not it is a function. /// /// }, 'isNumeric': function() { /// /// Determines whether its argument is a number. /// The value to be tested. /// /// }, 'isPlainObject': function() { /// /// Check to see if an object is a plain object (created using "{}" or "new Object"). /// The object that will be checked to see if it's a plain object. /// /// }, 'isWindow': function() { /// /// Determine whether the argument is a window. /// Object to test whether or not it is a window. /// /// }, 'isXMLDoc': function() { /// /// Check to see if a DOM node is within an XML document (or is an XML document). /// The DOM node that will be checked to see if it's in an XML document. /// /// }, 'makeArray': function() { /// /// Convert an array-like object into a true JavaScript array. /// Any object to turn into a native Array. /// /// }, 'map': function() { /// /// Translate all items in an array or object to new array of items. /// The Array to translate. /// The function to process each item against. The first argument to the function is the array item, the second argument is the index in array The function can return any value. Within the function, this refers to the global (window) object. /// /// /// /// Translate all items in an array or object to new array of items. /// The Array or Object to translate. /// The function to process each item against. The first argument to the function is the value; the second argument is the index or key of the array or object property. The function can return any value to add to the array. A returned array will be flattened into the resulting array. Within the function, this refers to the global (window) object. /// /// }, 'merge': function() { /// /// Merge the contents of two arrays together into the first array. /// The first array to merge, the elements of second added. /// The second array to merge into the first, unaltered. /// /// }, 'noConflict': function() { /// /// Relinquish jQuery's control of the $ variable. /// A Boolean indicating whether to remove all jQuery variables from the global scope (including jQuery itself). /// /// }, 'noop': function() { /// An empty function. /// }, 'now': function() { /// Return a number representing the current time. /// }, 'param': function() { /// /// Create a serialized representation of an array or object, suitable for use in a URL query string or Ajax request. /// An array or object to serialize. /// /// /// /// Create a serialized representation of an array or object, suitable for use in a URL query string or Ajax request. /// An array or object to serialize. /// A Boolean indicating whether to perform a traditional "shallow" serialization. /// /// }, 'parseJSON': function() { /// /// Takes a well-formed JSON string and returns the resulting JavaScript object. /// The JSON string to parse. /// /// }, 'parseXML': function() { /// /// Parses a string into an XML document. /// a well-formed XML string to be parsed /// /// }, 'post': function() { /// /// Load data from the server using a HTTP POST request. /// A string containing the URL to which the request is sent. /// A map or string that is sent to the server with the request. /// A callback function that is executed if the request succeeds. /// The type of data expected from the server. Default: Intelligent Guess (xml, json, script, text, html). /// /// }, 'proxy': function() { /// /// Takes a function and returns a new one that will always have a particular context. /// The function whose context will be changed. /// The object to which the context (this) of the function should be set. /// /// /// /// Takes a function and returns a new one that will always have a particular context. /// The object to which the context of the function should be set. /// The name of the function whose context will be changed (should be a property of the context object). /// /// }, 'queue': function() { /// /// Manipulate the queue of functions to be executed on the matched element. /// A DOM element where the array of queued functions is attached. /// A string containing the name of the queue. Defaults to fx, the standard effects queue. /// An array of functions to replace the current queue contents. /// /// /// /// Manipulate the queue of functions to be executed on the matched element. /// A DOM element on which to add a queued function. /// A string containing the name of the queue. Defaults to fx, the standard effects queue. /// The new function to add to the queue. /// /// }, 'removeData': function() { /// /// Remove a previously-stored piece of data. /// A DOM element from which to remove data. /// A string naming the piece of data to remove. /// /// }, 'sub': function() { /// Creates a new copy of jQuery whose properties and methods can be modified without affecting the original jQuery object. /// }, 'support': function() { /// A collection of properties that represent the presence of different browser features or bugs. Primarily intended for jQuery's internal use; specific properties may be removed when they are no longer needed internally to improve page startup performance. /// }, 'trim': function() { /// /// Remove the whitespace from the beginning and end of a string. /// The string to trim. /// /// }, 'type': function() { /// /// Determine the internal JavaScript [[Class]] of an object. /// Object to get the internal JavaScript [[Class]] of. /// /// }, 'unique': function() { /// /// Sorts an array of DOM elements, in place, with the duplicates removed. Note that this only works on arrays of DOM elements, not strings or numbers. /// The Array of DOM elements. /// /// }, 'when': function() { /// /// Provides a way to execute callback functions based on one or more objects, usually Deferred objects that represent asynchronous events. /// One or more Deferred objects, or plain JavaScript objects. /// /// }, }); var _1228819969 = jQuery.Callbacks; jQuery.Callbacks = function(flags) { var _object = _1228819969(flags); intellisense.annotate(_object, { 'add': function() { /// /// Add a callback or a collection of callbacks to a callback list. /// A function, or array of functions, that are to be added to the callback list. /// }, 'disable': function() { /// Disable a callback list from doing anything more. }, 'empty': function() { /// Remove all of the callbacks from a list. }, 'fire': function() { /// /// Call all of the callbacks with the given arguments /// The argument or list of arguments to pass back to the callback list. /// }, 'fired': function() { /// Determine if the callbacks have already been called at least once. /// }, 'fireWith': function() { /// /// Call all callbacks in a list with the given context and arguments. /// A reference to the context in which the callbacks in the list should be fired. /// An argument, or array of arguments, to pass to the callbacks in the list. /// }, 'has': function() { /// /// Determine whether a supplied callback is in a list /// The callback to search for. /// /// }, 'lock': function() { /// Lock a callback list in its current state. }, 'locked': function() { /// Determine if the callbacks list has been locked. /// }, 'remove': function() { /// /// Remove a callback or a collection of callbacks from a callback list. /// A function, or array of functions, that are to be removed from the callback list. /// }, }); return _object; }; var _731531622 = jQuery.Deferred; jQuery.Deferred = function(func) { var _object = _731531622(func); intellisense.annotate(_object, { 'always': function() { /// /// Add handlers to be called when the Deferred object is either resolved or rejected. /// A function, or array of functions, that is called when the Deferred is resolved or rejected. /// Optional additional functions, or arrays of functions, that are called when the Deferred is resolved or rejected. /// /// }, 'done': function() { /// /// Add handlers to be called when the Deferred object is resolved. /// A function, or array of functions, that are called when the Deferred is resolved. /// Optional additional functions, or arrays of functions, that are called when the Deferred is resolved. /// /// }, 'fail': function() { /// /// Add handlers to be called when the Deferred object is rejected. /// A function, or array of functions, that are called when the Deferred is rejected. /// Optional additional functions, or arrays of functions, that are called when the Deferred is rejected. /// /// }, 'isRejected': function() { /// Determine whether a Deferred object has been rejected. /// }, 'isResolved': function() { /// Determine whether a Deferred object has been resolved. /// }, 'notify': function() { /// /// Call the progressCallbacks on a Deferred object with the given args. /// Optional arguments that are passed to the progressCallbacks. /// /// }, 'notifyWith': function() { /// /// Call the progressCallbacks on a Deferred object with the given context and args. /// Context passed to the progressCallbacks as the this object. /// Optional arguments that are passed to the progressCallbacks. /// /// }, 'pipe': function() { /// /// Utility method to filter and/or chain Deferreds. /// An optional function that is called when the Deferred is resolved. /// An optional function that is called when the Deferred is rejected. /// /// /// /// Utility method to filter and/or chain Deferreds. /// An optional function that is called when the Deferred is resolved. /// An optional function that is called when the Deferred is rejected. /// An optional function that is called when progress notifications are sent to the Deferred. /// /// }, 'progress': function() { /// /// Add handlers to be called when the Deferred object generates progress notifications. /// A function, or array of functions, that is called when the Deferred generates progress notifications. /// /// }, 'promise': function() { /// /// Return a Deferred's Promise object. /// Object onto which the promise methods have to be attached /// /// }, 'reject': function() { /// /// Reject a Deferred object and call any failCallbacks with the given args. /// Optional arguments that are passed to the failCallbacks. /// /// }, 'rejectWith': function() { /// /// Reject a Deferred object and call any failCallbacks with the given context and args. /// Context passed to the failCallbacks as the this object. /// An optional array of arguments that are passed to the failCallbacks. /// /// }, 'resolve': function() { /// /// Resolve a Deferred object and call any doneCallbacks with the given args. /// Optional arguments that are passed to the doneCallbacks. /// /// }, 'resolveWith': function() { /// /// Resolve a Deferred object and call any doneCallbacks with the given context and args. /// Context passed to the doneCallbacks as the this object. /// An optional array of arguments that are passed to the doneCallbacks. /// /// }, 'state': function() { /// Determine the current state of a Deferred object. /// }, 'then': function() { /// /// Add handlers to be called when the Deferred object is resolved or rejected. /// A function, or array of functions, called when the Deferred is resolved. /// A function, or array of functions, called when the Deferred is rejected. /// /// /// /// Add handlers to be called when the Deferred object is resolved or rejected. /// A function, or array of functions, called when the Deferred is resolved. /// A function, or array of functions, called when the Deferred is rejected. /// A function, or array of functions, called when the Deferred notifies progress. /// /// }, }); return _object; }; intellisense.annotate(jQuery.Event.prototype, { 'currentTarget': function() { /// The current DOM element within the event bubbling phase. /// }, 'data': function() { /// An optional data map passed to an event method when the current executing handler is bound. }, 'delegateTarget': function() { /// The element where the currently-called jQuery event handler was attached. /// }, 'isDefaultPrevented': function() { /// Returns whether event.preventDefault() was ever called on this event object. /// }, 'isImmediatePropagationStopped': function() { /// Returns whether event.stopImmediatePropagation() was ever called on this event object. /// }, 'isPropagationStopped': function() { /// Returns whether event.stopPropagation() was ever called on this event object. /// }, 'namespace': function() { /// The namespace specified when the event was triggered. /// }, 'pageX': function() { /// The mouse position relative to the left edge of the document. /// }, 'pageY': function() { /// The mouse position relative to the top edge of the document. /// }, 'preventDefault': function() { /// If this method is called, the default action of the event will not be triggered. }, 'relatedTarget': function() { /// The other DOM element involved in the event, if any. /// }, 'result': function() { /// The last value returned by an event handler that was triggered by this event, unless the value was undefined. /// }, 'stopImmediatePropagation': function() { /// Keeps the rest of the handlers from being executed and prevents the event from bubbling up the DOM tree. }, 'stopPropagation': function() { /// Prevents the event from bubbling up the DOM tree, preventing any parent handlers from being notified of the event. }, 'target': function() { /// The DOM element that initiated the event. /// }, 'timeStamp': function() { /// The difference in milliseconds between the time the browser created the event and January 1, 1970. /// }, 'type': function() { /// Describes the nature of the event. /// }, 'which': function() { /// For key or mouse events, this property indicates the specific key or button that was pressed. /// }, }); intellisense.annotate(jQuery.fn, { 'add': function() { /// /// Add elements to the set of matched elements. /// A string representing a selector expression to find additional elements to add to the set of matched elements. /// /// /// /// Add elements to the set of matched elements. /// One or more elements to add to the set of matched elements. /// /// /// /// Add elements to the set of matched elements. /// An HTML fragment to add to the set of matched elements. /// /// /// /// Add elements to the set of matched elements. /// An existing jQuery object to add to the set of matched elements. /// /// /// /// Add elements to the set of matched elements. /// A string representing a selector expression to find additional elements to add to the set of matched elements. /// The point in the document at which the selector should begin matching; similar to the context argument of the $(selector, context) method. /// /// }, 'addClass': function() { /// /// Adds the specified class(es) to each of the set of matched elements. /// One or more class names to be added to the class attribute of each matched element. /// /// /// /// Adds the specified class(es) to each of the set of matched elements. /// A function returning one or more space-separated class names to be added to the existing class name(s). Receives the index position of the element in the set and the existing class name(s) as arguments. Within the function, this refers to the current element in the set. /// /// }, 'after': function() { /// /// Insert content, specified by the parameter, after each element in the set of matched elements. /// HTML string, DOM element, or jQuery object to insert after each element in the set of matched elements. /// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert after each element in the set of matched elements. /// /// /// /// Insert content, specified by the parameter, after each element in the set of matched elements. /// A function that returns an HTML string, DOM element(s), or jQuery object to insert after each element in the set of matched elements. Receives the index position of the element in the set as an argument. Within the function, this refers to the current element in the set. /// /// }, 'ajaxComplete': function() { /// /// Register a handler to be called when Ajax requests complete. This is an Ajax Event. /// The function to be invoked. /// /// }, 'ajaxError': function() { /// /// Register a handler to be called when Ajax requests complete with an error. This is an Ajax Event. /// The function to be invoked. /// /// }, 'ajaxSend': function() { /// /// Attach a function to be executed before an Ajax request is sent. This is an Ajax Event. /// The function to be invoked. /// /// }, 'ajaxStart': function() { /// /// Register a handler to be called when the first Ajax request begins. This is an Ajax Event. /// The function to be invoked. /// /// }, 'ajaxStop': function() { /// /// Register a handler to be called when all Ajax requests have completed. This is an Ajax Event. /// The function to be invoked. /// /// }, 'ajaxSuccess': function() { /// /// Attach a function to be executed whenever an Ajax request completes successfully. This is an Ajax Event. /// The function to be invoked. /// /// }, 'all': function() { /// Selects all elements. }, 'andSelf': function() { /// Add the previous set of elements on the stack to the current set. /// }, 'animate': function() { /// /// Perform a custom animation of a set of CSS properties. /// A map of CSS properties that the animation will move toward. /// A string or number determining how long the animation will run. /// A string indicating which easing function to use for the transition. /// A function to call once the animation is complete. /// /// /// /// Perform a custom animation of a set of CSS properties. /// A map of CSS properties that the animation will move toward. /// A map of additional options to pass to the method. Supported keys: duration: A string or number determining how long the animation will run.easing: A string indicating which easing function to use for the transition.complete: A function to call once the animation is complete.step: A function to be called after each step of the animation.queue: A Boolean indicating whether to place the animation in the effects queue. If false, the animation will begin immediately. As of jQuery 1.7, the queue option can also accept a string, in which case the animation is added to the queue represented by that string.specialEasing: A map of one or more of the CSS properties defined by the properties argument and their corresponding easing functions (added 1.4). /// /// }, 'animated': function() { /// Select all elements that are in the progress of an animation at the time the selector is run. }, 'append': function() { /// /// Insert content, specified by the parameter, to the end of each element in the set of matched elements. /// DOM element, HTML string, or jQuery object to insert at the end of each element in the set of matched elements. /// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert at the end of each element in the set of matched elements. /// /// /// /// Insert content, specified by the parameter, to the end of each element in the set of matched elements. /// A function that returns an HTML string, DOM element(s), or jQuery object to insert at the end of each element in the set of matched elements. Receives the index position of the element in the set and the old HTML value of the element as arguments. Within the function, this refers to the current element in the set. /// /// }, 'appendTo': function() { /// /// Insert every element in the set of matched elements to the end of the target. /// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted at the end of the element(s) specified by this parameter. /// /// }, 'attr': function() { /// /// Set one or more attributes for the set of matched elements. /// The name of the attribute to set. /// A value to set for the attribute. /// /// /// /// Set one or more attributes for the set of matched elements. /// A map of attribute-value pairs to set. /// /// /// /// Set one or more attributes for the set of matched elements. /// The name of the attribute to set. /// A function returning the value to set. this is the current element. Receives the index position of the element in the set and the old attribute value as arguments. /// /// }, 'attributeContains': function() { /// /// Selects elements that have the specified attribute with a value containing the a given substring. /// An attribute name. /// An attribute value. Can be either an unquoted single word or a quoted string. /// }, 'attributeContainsPrefix': function() { /// /// Selects elements that have the specified attribute with a value either equal to a given string or starting with that string followed by a hyphen (-). /// An attribute name. /// An attribute value. Can be either an unquoted single word or a quoted string. /// }, 'attributeContainsWord': function() { /// /// Selects elements that have the specified attribute with a value containing a given word, delimited by spaces. /// An attribute name. /// An attribute value. Can be either an unquoted single word or a quoted string. /// }, 'attributeEndsWith': function() { /// /// Selects elements that have the specified attribute with a value ending exactly with a given string. The comparison is case sensitive. /// An attribute name. /// An attribute value. Can be either an unquoted single word or a quoted string. /// }, 'attributeEquals': function() { /// /// Selects elements that have the specified attribute with a value exactly equal to a certain value. /// An attribute name. /// An attribute value. Can be either an unquoted single word or a quoted string. /// }, 'attributeHas': function() { /// /// Selects elements that have the specified attribute, with any value. /// An attribute name. /// }, 'attributeMultiple': function() { /// /// Matches elements that match all of the specified attribute filters. /// An attribute filter. /// Another attribute filter, reducing the selection even more /// As many more attribute filters as necessary /// }, 'attributeNotEqual': function() { /// /// Select elements that either don't have the specified attribute, or do have the specified attribute but not with a certain value. /// An attribute name. /// An attribute value. Can be either an unquoted single word or a quoted string. /// }, 'attributeStartsWith': function() { /// /// Selects elements that have the specified attribute with a value beginning exactly with a given string. /// An attribute name. /// An attribute value. Can be either an unquoted single word or a quoted string. /// }, 'before': function() { /// /// Insert content, specified by the parameter, before each element in the set of matched elements. /// HTML string, DOM element, or jQuery object to insert before each element in the set of matched elements. /// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert before each element in the set of matched elements. /// /// /// /// Insert content, specified by the parameter, before each element in the set of matched elements. /// A function that returns an HTML string, DOM element(s), or jQuery object to insert before each element in the set of matched elements. Receives the index position of the element in the set as an argument. Within the function, this refers to the current element in the set. /// /// }, 'bind': function() { /// /// Attach a handler to an event for the elements. /// A string containing one or more DOM event types, such as "click" or "submit," or custom event names. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// /// /// Attach a handler to an event for the elements. /// A string containing one or more DOM event types, such as "click" or "submit," or custom event names. /// A map of data that will be passed to the event handler. /// Setting the third argument to false will attach a function that prevents the default action from occurring and stops the event from bubbling. The default is true. /// /// /// /// Attach a handler to an event for the elements. /// A map of one or more DOM event types and functions to execute for them. /// /// }, 'blur': function() { /// /// Bind an event handler to the "blur" JavaScript event, or trigger that event on an element. /// A function to execute each time the event is triggered. /// /// /// /// Bind an event handler to the "blur" JavaScript event, or trigger that event on an element. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'button': function() { /// Selects all button elements and elements of type button. }, 'change': function() { /// /// Bind an event handler to the "change" JavaScript event, or trigger that event on an element. /// A function to execute each time the event is triggered. /// /// /// /// Bind an event handler to the "change" JavaScript event, or trigger that event on an element. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'checkbox': function() { /// Selects all elements of type checkbox. }, 'checked': function() { /// Matches all elements that are checked. }, 'child': function() { /// /// Selects all direct child elements specified by "child" of elements specified by "parent". /// Any valid selector. /// A selector to filter the child elements. /// }, 'children': function() { /// /// Get the children of each element in the set of matched elements, optionally filtered by a selector. /// A string containing a selector expression to match elements against. /// /// }, 'class': function() { /// /// Selects all elements with the given class. /// A class to search for. An element can have multiple classes; only one of them must match. /// }, 'clearQueue': function() { /// /// Remove from the queue all items that have not yet been run. /// A string containing the name of the queue. Defaults to fx, the standard effects queue. /// /// }, 'click': function() { /// /// Bind an event handler to the "click" JavaScript event, or trigger that event on an element. /// A function to execute each time the event is triggered. /// /// /// /// Bind an event handler to the "click" JavaScript event, or trigger that event on an element. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'clone': function() { /// /// Create a deep copy of the set of matched elements. /// A Boolean indicating whether event handlers should be copied along with the elements. As of jQuery 1.4, element data will be copied as well. /// /// /// /// Create a deep copy of the set of matched elements. /// A Boolean indicating whether event handlers and data should be copied along with the elements. The default value is false. *In jQuery 1.5.0 the default value was incorrectly true; it was changed back to false in 1.5.1 and up. /// A Boolean indicating whether event handlers and data for all children of the cloned element should be copied. By default its value matches the first argument's value (which defaults to false). /// /// }, 'closest': function() { /// /// Get the first element that matches the selector, beginning at the current element and progressing up through the DOM tree. /// A string containing a selector expression to match elements against. /// /// /// /// Get the first element that matches the selector, beginning at the current element and progressing up through the DOM tree. /// A string containing a selector expression to match elements against. /// A DOM element within which a matching element may be found. If no context is passed in then the context of the jQuery set will be used instead. /// /// /// /// Get the first element that matches the selector, beginning at the current element and progressing up through the DOM tree. /// A jQuery object to match elements against. /// /// /// /// Get the first element that matches the selector, beginning at the current element and progressing up through the DOM tree. /// An element to match elements against. /// /// }, 'contains': function() { /// /// Select all elements that contain the specified text. /// A string of text to look for. It's case sensitive. /// }, 'contents': function() { /// Get the children of each element in the set of matched elements, including text and comment nodes. /// }, 'context': function() { /// The DOM node context originally passed to jQuery(); if none was passed then context will likely be the document. /// }, 'css': function() { /// /// Set one or more CSS properties for the set of matched elements. /// A CSS property name. /// A value to set for the property. /// /// /// /// Set one or more CSS properties for the set of matched elements. /// A CSS property name. /// A function returning the value to set. this is the current element. Receives the index position of the element in the set and the old value as arguments. /// /// /// /// Set one or more CSS properties for the set of matched elements. /// A map of property-value pairs to set. /// /// }, 'data': function() { /// /// Store arbitrary data associated with the matched elements. /// A string naming the piece of data to set. /// The new data value; it can be any Javascript type including Array or Object. /// /// /// /// Store arbitrary data associated with the matched elements. /// An object of key-value pairs of data to update. /// /// }, 'dblclick': function() { /// /// Bind an event handler to the "dblclick" JavaScript event, or trigger that event on an element. /// A function to execute each time the event is triggered. /// /// /// /// Bind an event handler to the "dblclick" JavaScript event, or trigger that event on an element. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'delay': function() { /// /// Set a timer to delay execution of subsequent items in the queue. /// An integer indicating the number of milliseconds to delay execution of the next item in the queue. /// A string containing the name of the queue. Defaults to fx, the standard effects queue. /// /// }, 'delegate': function() { /// /// Attach a handler to one or more events for all elements that match the selector, now or in the future, based on a specific set of root elements. /// A selector to filter the elements that trigger the event. /// A string containing one or more space-separated JavaScript event types, such as "click" or "keydown," or custom event names. /// A function to execute at the time the event is triggered. /// /// /// /// Attach a handler to one or more events for all elements that match the selector, now or in the future, based on a specific set of root elements. /// A selector to filter the elements that trigger the event. /// A string containing one or more space-separated JavaScript event types, such as "click" or "keydown," or custom event names. /// A map of data that will be passed to the event handler. /// A function to execute at the time the event is triggered. /// /// /// /// Attach a handler to one or more events for all elements that match the selector, now or in the future, based on a specific set of root elements. /// A selector to filter the elements that trigger the event. /// A map of one or more event types and functions to execute for them. /// /// }, 'dequeue': function() { /// /// Execute the next function on the queue for the matched elements. /// A string containing the name of the queue. Defaults to fx, the standard effects queue. /// /// }, 'descendant': function() { /// /// Selects all elements that are descendants of a given ancestor. /// Any valid selector. /// A selector to filter the descendant elements. /// }, 'detach': function() { /// /// Remove the set of matched elements from the DOM. /// A selector expression that filters the set of matched elements to be removed. /// /// }, 'die': function() { /// /// Remove an event handler previously attached using .live() from the elements. /// A string containing a JavaScript event type, such as click or keydown. /// The function that is no longer to be executed. /// /// /// /// Remove an event handler previously attached using .live() from the elements. /// A map of one or more event types, such as click or keydown and their corresponding functions that are no longer to be executed. /// /// }, 'disabled': function() { /// Selects all elements that are disabled. }, 'each': function() { /// /// Iterate over a jQuery object, executing a function for each matched element. /// A function to execute for each matched element. /// /// }, 'element': function() { /// /// Selects all elements with the given tag name. /// An element to search for. Refers to the tagName of DOM nodes. /// }, 'empty': function() { /// Select all elements that have no children (including text nodes). }, 'enabled': function() { /// Selects all elements that are enabled. }, 'end': function() { /// End the most recent filtering operation in the current chain and return the set of matched elements to its previous state. /// }, 'eq': function() { /// /// Reduce the set of matched elements to the one at the specified index. /// An integer indicating the 0-based position of the element. /// /// /// /// Reduce the set of matched elements to the one at the specified index. /// An integer indicating the position of the element, counting backwards from the last element in the set. /// /// }, 'error': function() { /// /// Bind an event handler to the "error" JavaScript event. /// A function to execute when the event is triggered. /// /// /// /// Bind an event handler to the "error" JavaScript event. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'even': function() { /// Selects even elements, zero-indexed. See also odd. }, 'fadeIn': function() { /// /// Display the matched elements by fading them to opaque. /// A string or number determining how long the animation will run. /// A function to call once the animation is complete. /// /// /// /// Display the matched elements by fading them to opaque. /// A string or number determining how long the animation will run. /// A string indicating which easing function to use for the transition. /// A function to call once the animation is complete. /// /// }, 'fadeOut': function() { /// /// Hide the matched elements by fading them to transparent. /// A string or number determining how long the animation will run. /// A function to call once the animation is complete. /// /// /// /// Hide the matched elements by fading them to transparent. /// A string or number determining how long the animation will run. /// A string indicating which easing function to use for the transition. /// A function to call once the animation is complete. /// /// }, 'fadeTo': function() { /// /// Adjust the opacity of the matched elements. /// A string or number determining how long the animation will run. /// A number between 0 and 1 denoting the target opacity. /// A function to call once the animation is complete. /// /// /// /// Adjust the opacity of the matched elements. /// A string or number determining how long the animation will run. /// A number between 0 and 1 denoting the target opacity. /// A string indicating which easing function to use for the transition. /// A function to call once the animation is complete. /// /// }, 'fadeToggle': function() { /// /// Display or hide the matched elements by animating their opacity. /// A string or number determining how long the animation will run. /// A string indicating which easing function to use for the transition. /// A function to call once the animation is complete. /// /// }, 'file': function() { /// Selects all elements of type file. }, 'filter': function() { /// /// Reduce the set of matched elements to those that match the selector or pass the function's test. /// A string containing a selector expression to match the current set of elements against. /// /// /// /// Reduce the set of matched elements to those that match the selector or pass the function's test. /// A function used as a test for each element in the set. this is the current DOM element. /// /// /// /// Reduce the set of matched elements to those that match the selector or pass the function's test. /// An element to match the current set of elements against. /// /// /// /// Reduce the set of matched elements to those that match the selector or pass the function's test. /// An existing jQuery object to match the current set of elements against. /// /// }, 'find': function() { /// /// Get the descendants of each element in the current set of matched elements, filtered by a selector, jQuery object, or element. /// A string containing a selector expression to match elements against. /// /// /// /// Get the descendants of each element in the current set of matched elements, filtered by a selector, jQuery object, or element. /// A jQuery object to match elements against. /// /// /// /// Get the descendants of each element in the current set of matched elements, filtered by a selector, jQuery object, or element. /// An element to match elements against. /// /// }, 'first': function() { /// Selects the first matched element. }, 'first-child': function() { /// Selects all elements that are the first child of their parent. }, 'focus': function() { /// /// Bind an event handler to the "focus" JavaScript event, or trigger that event on an element. /// A function to execute each time the event is triggered. /// /// /// /// Bind an event handler to the "focus" JavaScript event, or trigger that event on an element. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'focusin': function() { /// /// Bind an event handler to the "focusin" event. /// A function to execute each time the event is triggered. /// /// /// /// Bind an event handler to the "focusin" event. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'focusout': function() { /// /// Bind an event handler to the "focusout" JavaScript event. /// A function to execute each time the event is triggered. /// /// /// /// Bind an event handler to the "focusout" JavaScript event. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'get': function() { /// /// Retrieve the DOM elements matched by the jQuery object. /// A zero-based integer indicating which element to retrieve. /// /// }, 'gt': function() { /// /// Select all elements at an index greater than index within the matched set. /// Zero-based index. /// }, 'has': function() { /// /// Reduce the set of matched elements to those that have a descendant that matches the selector or DOM element. /// A string containing a selector expression to match elements against. /// /// /// /// Reduce the set of matched elements to those that have a descendant that matches the selector or DOM element. /// A DOM element to match elements against. /// /// }, 'hasClass': function() { /// /// Determine whether any of the matched elements are assigned the given class. /// The class name to search for. /// /// }, 'header': function() { /// Selects all elements that are headers, like h1, h2, h3 and so on. }, 'height': function() { /// /// Set the CSS height of every matched element. /// An integer representing the number of pixels, or an integer with an optional unit of measure appended (as a string). /// /// /// /// Set the CSS height of every matched element. /// A function returning the height to set. Receives the index position of the element in the set and the old height as arguments. Within the function, this refers to the current element in the set. /// /// }, 'hidden': function() { /// Selects all elements that are hidden. }, 'hide': function() { /// /// Hide the matched elements. /// A string or number determining how long the animation will run. /// A function to call once the animation is complete. /// /// /// /// Hide the matched elements. /// A string or number determining how long the animation will run. /// A string indicating which easing function to use for the transition. /// A function to call once the animation is complete. /// /// }, 'hover': function() { /// /// Bind two handlers to the matched elements, to be executed when the mouse pointer enters and leaves the elements. /// A function to execute when the mouse pointer enters the element. /// A function to execute when the mouse pointer leaves the element. /// /// }, 'html': function() { /// /// Set the HTML contents of each element in the set of matched elements. /// A string of HTML to set as the content of each matched element. /// /// /// /// Set the HTML contents of each element in the set of matched elements. /// A function returning the HTML content to set. Receives the index position of the element in the set and the old HTML value as arguments. jQuery empties the element before calling the function; use the oldhtml argument to reference the previous content. Within the function, this refers to the current element in the set. /// /// }, 'id': function() { /// /// Selects a single element with the given id attribute. /// An ID to search for, specified via the id attribute of an element. /// }, 'image': function() { /// Selects all elements of type image. }, 'index': function() { /// /// Search for a given element from among the matched elements. /// A selector representing a jQuery collection in which to look for an element. /// /// /// /// Search for a given element from among the matched elements. /// The DOM element or first element within the jQuery object to look for. /// /// }, 'init': function() { /// /// Accepts a string containing a CSS selector which is then used to match a set of elements. /// A string containing a selector expression /// A DOM Element, Document, or jQuery to use as context /// /// /// /// Accepts a string containing a CSS selector which is then used to match a set of elements. /// A DOM element to wrap in a jQuery object. /// /// /// /// Accepts a string containing a CSS selector which is then used to match a set of elements. /// A plain object to wrap in a jQuery object. /// /// /// /// Accepts a string containing a CSS selector which is then used to match a set of elements. /// An array containing a set of DOM elements to wrap in a jQuery object. /// /// /// /// Accepts a string containing a CSS selector which is then used to match a set of elements. /// An existing jQuery object to clone. /// /// }, 'innerHeight': function() { /// Get the current computed height for the first element in the set of matched elements, including padding but not border. /// }, 'innerWidth': function() { /// Get the current computed width for the first element in the set of matched elements, including padding but not border. /// }, 'input': function() { /// Selects all input, textarea, select and button elements. }, 'insertAfter': function() { /// /// Insert every element in the set of matched elements after the target. /// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted after the element(s) specified by this parameter. /// /// }, 'insertBefore': function() { /// /// Insert every element in the set of matched elements before the target. /// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted before the element(s) specified by this parameter. /// /// }, 'is': function() { /// /// Check the current matched set of elements against a selector, element, or jQuery object and return true if at least one of these elements matches the given arguments. /// A string containing a selector expression to match elements against. /// /// /// /// Check the current matched set of elements against a selector, element, or jQuery object and return true if at least one of these elements matches the given arguments. /// A function used as a test for the set of elements. It accepts one argument, index, which is the element's index in the jQuery collection.Within the function, this refers to the current DOM element. /// /// /// /// Check the current matched set of elements against a selector, element, or jQuery object and return true if at least one of these elements matches the given arguments. /// An existing jQuery object to match the current set of elements against. /// /// /// /// Check the current matched set of elements against a selector, element, or jQuery object and return true if at least one of these elements matches the given arguments. /// An element to match the current set of elements against. /// /// }, 'jquery': function() { /// A string containing the jQuery version number. /// }, 'keydown': function() { /// /// Bind an event handler to the "keydown" JavaScript event, or trigger that event on an element. /// A function to execute each time the event is triggered. /// /// /// /// Bind an event handler to the "keydown" JavaScript event, or trigger that event on an element. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'keypress': function() { /// /// Bind an event handler to the "keypress" JavaScript event, or trigger that event on an element. /// A function to execute each time the event is triggered. /// /// /// /// Bind an event handler to the "keypress" JavaScript event, or trigger that event on an element. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'keyup': function() { /// /// Bind an event handler to the "keyup" JavaScript event, or trigger that event on an element. /// A function to execute each time the event is triggered. /// /// /// /// Bind an event handler to the "keyup" JavaScript event, or trigger that event on an element. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'last': function() { /// Selects the last matched element. }, 'last-child': function() { /// Selects all elements that are the last child of their parent. }, 'length': function() { /// The number of elements in the jQuery object. /// }, 'live': function() { /// /// Attach an event handler for all elements which match the current selector, now and in the future. /// A string containing a JavaScript event type, such as "click" or "keydown." As of jQuery 1.4 the string can contain multiple, space-separated event types or custom event names. /// A function to execute at the time the event is triggered. /// /// /// /// Attach an event handler for all elements which match the current selector, now and in the future. /// A string containing a JavaScript event type, such as "click" or "keydown." As of jQuery 1.4 the string can contain multiple, space-separated event types or custom event names. /// A map of data that will be passed to the event handler. /// A function to execute at the time the event is triggered. /// /// /// /// Attach an event handler for all elements which match the current selector, now and in the future. /// A map of one or more JavaScript event types and functions to execute for them. /// /// }, 'load': function() { /// /// Bind an event handler to the "load" JavaScript event. /// A function to execute when the event is triggered. /// /// /// /// Bind an event handler to the "load" JavaScript event. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'lt': function() { /// /// Select all elements at an index less than index within the matched set. /// Zero-based index. /// }, 'map': function() { /// /// Pass each element in the current matched set through a function, producing a new jQuery object containing the return values. /// A function object that will be invoked for each element in the current set. /// /// }, 'mousedown': function() { /// /// Bind an event handler to the "mousedown" JavaScript event, or trigger that event on an element. /// A function to execute each time the event is triggered. /// /// /// /// Bind an event handler to the "mousedown" JavaScript event, or trigger that event on an element. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'mouseenter': function() { /// /// Bind an event handler to be fired when the mouse enters an element, or trigger that handler on an element. /// A function to execute each time the event is triggered. /// /// /// /// Bind an event handler to be fired when the mouse enters an element, or trigger that handler on an element. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'mouseleave': function() { /// /// Bind an event handler to be fired when the mouse leaves an element, or trigger that handler on an element. /// A function to execute each time the event is triggered. /// /// /// /// Bind an event handler to be fired when the mouse leaves an element, or trigger that handler on an element. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'mousemove': function() { /// /// Bind an event handler to the "mousemove" JavaScript event, or trigger that event on an element. /// A function to execute each time the event is triggered. /// /// /// /// Bind an event handler to the "mousemove" JavaScript event, or trigger that event on an element. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'mouseout': function() { /// /// Bind an event handler to the "mouseout" JavaScript event, or trigger that event on an element. /// A function to execute each time the event is triggered. /// /// /// /// Bind an event handler to the "mouseout" JavaScript event, or trigger that event on an element. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'mouseover': function() { /// /// Bind an event handler to the "mouseover" JavaScript event, or trigger that event on an element. /// A function to execute each time the event is triggered. /// /// /// /// Bind an event handler to the "mouseover" JavaScript event, or trigger that event on an element. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'mouseup': function() { /// /// Bind an event handler to the "mouseup" JavaScript event, or trigger that event on an element. /// A function to execute each time the event is triggered. /// /// /// /// Bind an event handler to the "mouseup" JavaScript event, or trigger that event on an element. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'multiple': function() { /// /// Selects the combined results of all the specified selectors. /// Any valid selector. /// Another valid selector. /// As many more valid selectors as you like. /// }, 'next': function() { /// /// Get the immediately following sibling of each element in the set of matched elements. If a selector is provided, it retrieves the next sibling only if it matches that selector. /// A string containing a selector expression to match elements against. /// /// }, 'next adjacent': function() { /// /// Selects all next elements matching "next" that are immediately preceded by a sibling "prev". /// Any valid selector. /// A selector to match the element that is next to the first selector. /// }, 'next siblings': function() { /// /// Selects all sibling elements that follow after the "prev" element, have the same parent, and match the filtering "siblings" selector. /// Any valid selector. /// A selector to filter elements that are the following siblings of the first selector. /// }, 'nextAll': function() { /// /// Get all following siblings of each element in the set of matched elements, optionally filtered by a selector. /// A string containing a selector expression to match elements against. /// /// }, 'nextUntil': function() { /// /// Get all following siblings of each element up to but not including the element matched by the selector, DOM node, or jQuery object passed. /// A string containing a selector expression to indicate where to stop matching following sibling elements. /// A string containing a selector expression to match elements against. /// /// /// /// Get all following siblings of each element up to but not including the element matched by the selector, DOM node, or jQuery object passed. /// A DOM node or jQuery object indicating where to stop matching following sibling elements. /// A string containing a selector expression to match elements against. /// /// }, 'not': function() { /// /// Remove elements from the set of matched elements. /// A string containing a selector expression to match elements against. /// /// /// /// Remove elements from the set of matched elements. /// One or more DOM elements to remove from the matched set. /// /// /// /// Remove elements from the set of matched elements. /// A function used as a test for each element in the set. this is the current DOM element. /// /// /// /// Remove elements from the set of matched elements. /// An existing jQuery object to match the current set of elements against. /// /// }, 'nth-child': function() { /// /// Selects all elements that are the nth-child of their parent. /// The index of each child to match, starting with 1, the string even or odd, or an equation ( eg. :nth-child(even), :nth-child(4n) ) /// }, 'odd': function() { /// Selects odd elements, zero-indexed. See also even. }, 'off': function() { /// /// Remove an event handler. /// One or more space-separated event types and optional namespaces, or just namespaces, such as "click", "keydown.myPlugin", or ".myPlugin". /// A selector which should match the one originally passed to .on() when attaching event handlers. /// A handler function previously attached for the event(s), or the special value false. /// /// /// /// Remove an event handler. /// A map where the string keys represent one or more space-separated event types and optional namespaces, and the values represent handler functions previously attached for the event(s). /// A selector which should match the one originally passed to .on() when attaching event handlers. /// /// }, 'offset': function() { /// /// Set the current coordinates of every element in the set of matched elements, relative to the document. /// An object containing the properties top and left, which are integers indicating the new top and left coordinates for the elements. /// /// /// /// Set the current coordinates of every element in the set of matched elements, relative to the document. /// A function to return the coordinates to set. Receives the index of the element in the collection as the first argument and the current coordinates as the second argument. The function should return an object with the new top and left properties. /// /// }, 'offsetParent': function() { /// Get the closest ancestor element that is positioned. /// }, 'on': function() { /// /// Attach an event handler function for one or more events to the selected elements. /// One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". /// A selector string to filter the descendants of the selected elements that trigger the event. If the selector is null or omitted, the event is always triggered when it reaches the selected element. /// Data to be passed to the handler in event.data when an event is triggered. /// A function to execute when the event is triggered. The value false is also allowed as a shorthand for a function that simply does return false. /// /// /// /// Attach an event handler function for one or more events to the selected elements. /// A map in which the string keys represent one or more space-separated event types and optional namespaces, and the values represent a handler function to be called for the event(s). /// A selector string to filter the descendants of the selected elements that will call the handler. If the selector is null or omitted, the handler is always called when it reaches the selected element. /// Data to be passed to the handler in event.data when an event occurs. /// /// }, 'one': function() { /// /// Attach a handler to an event for the elements. The handler is executed at most once per element. /// A string containing one or more JavaScript event types, such as "click" or "submit," or custom event names. /// A map of data that will be passed to the event handler. /// A function to execute at the time the event is triggered. /// /// /// /// Attach a handler to an event for the elements. The handler is executed at most once per element. /// One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". /// A selector string to filter the descendants of the selected elements that trigger the event. If the selector is null or omitted, the event is always triggered when it reaches the selected element. /// Data to be passed to the handler in event.data when an event is triggered. /// A function to execute when the event is triggered. The value false is also allowed as a shorthand for a function that simply does return false. /// /// /// /// Attach a handler to an event for the elements. The handler is executed at most once per element. /// A map in which the string keys represent one or more space-separated event types and optional namespaces, and the values represent a handler function to be called for the event(s). /// A selector string to filter the descendants of the selected elements that will call the handler. If the selector is null or omitted, the handler is always called when it reaches the selected element. /// Data to be passed to the handler in event.data when an event occurs. /// /// }, 'only-child': function() { /// Selects all elements that are the only child of their parent. }, 'outerHeight': function() { /// /// Get the current computed height for the first element in the set of matched elements, including padding, border, and optionally margin. Returns an integer (without "px") representation of the value or null if called on an empty set of elements. /// A Boolean indicating whether to include the element's margin in the calculation. /// /// }, 'outerWidth': function() { /// /// Get the current computed width for the first element in the set of matched elements, including padding and border. /// A Boolean indicating whether to include the element's margin in the calculation. /// /// }, 'parent': function() { /// /// Get the parent of each element in the current set of matched elements, optionally filtered by a selector. /// A string containing a selector expression to match elements against. /// /// }, 'parents': function() { /// /// Get the ancestors of each element in the current set of matched elements, optionally filtered by a selector. /// A string containing a selector expression to match elements against. /// /// }, 'parentsUntil': function() { /// /// Get the ancestors of each element in the current set of matched elements, up to but not including the element matched by the selector, DOM node, or jQuery object. /// A string containing a selector expression to indicate where to stop matching ancestor elements. /// A string containing a selector expression to match elements against. /// /// /// /// Get the ancestors of each element in the current set of matched elements, up to but not including the element matched by the selector, DOM node, or jQuery object. /// A DOM node or jQuery object indicating where to stop matching ancestor elements. /// A string containing a selector expression to match elements against. /// /// }, 'password': function() { /// Selects all elements of type password. }, 'position': function() { /// Get the current coordinates of the first element in the set of matched elements, relative to the offset parent. /// }, 'prepend': function() { /// /// Insert content, specified by the parameter, to the beginning of each element in the set of matched elements. /// DOM element, array of elements, HTML string, or jQuery object to insert at the beginning of each element in the set of matched elements. /// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert at the beginning of each element in the set of matched elements. /// /// /// /// Insert content, specified by the parameter, to the beginning of each element in the set of matched elements. /// A function that returns an HTML string, DOM element(s), or jQuery object to insert at the beginning of each element in the set of matched elements. Receives the index position of the element in the set and the old HTML value of the element as arguments. Within the function, this refers to the current element in the set. /// /// }, 'prependTo': function() { /// /// Insert every element in the set of matched elements to the beginning of the target. /// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted at the beginning of the element(s) specified by this parameter. /// /// }, 'prev': function() { /// /// Get the immediately preceding sibling of each element in the set of matched elements, optionally filtered by a selector. /// A string containing a selector expression to match elements against. /// /// }, 'prevAll': function() { /// /// Get all preceding siblings of each element in the set of matched elements, optionally filtered by a selector. /// A string containing a selector expression to match elements against. /// /// }, 'prevUntil': function() { /// /// Get all preceding siblings of each element up to but not including the element matched by the selector, DOM node, or jQuery object. /// A string containing a selector expression to indicate where to stop matching preceding sibling elements. /// A string containing a selector expression to match elements against. /// /// /// /// Get all preceding siblings of each element up to but not including the element matched by the selector, DOM node, or jQuery object. /// A DOM node or jQuery object indicating where to stop matching preceding sibling elements. /// A string containing a selector expression to match elements against. /// /// }, 'promise': function() { /// /// Return a Promise object to observe when all actions of a certain type bound to the collection, queued or not, have finished. /// The type of queue that needs to be observed. /// Object onto which the promise methods have to be attached /// /// }, 'prop': function() { /// /// Set one or more properties for the set of matched elements. /// The name of the property to set. /// A value to set for the property. /// /// /// /// Set one or more properties for the set of matched elements. /// A map of property-value pairs to set. /// /// /// /// Set one or more properties for the set of matched elements. /// The name of the property to set. /// A function returning the value to set. Receives the index position of the element in the set and the old property value as arguments. Within the function, the keyword this refers to the current element. /// /// }, 'pushStack': function() { /// /// Add a collection of DOM elements onto the jQuery stack. /// An array of elements to push onto the stack and make into a new jQuery object. /// /// /// /// Add a collection of DOM elements onto the jQuery stack. /// An array of elements to push onto the stack and make into a new jQuery object. /// The name of a jQuery method that generated the array of elements. /// The arguments that were passed in to the jQuery method (for serialization). /// /// }, 'queue': function() { /// /// Manipulate the queue of functions to be executed on the matched elements. /// A string containing the name of the queue. Defaults to fx, the standard effects queue. /// An array of functions to replace the current queue contents. /// /// /// /// Manipulate the queue of functions to be executed on the matched elements. /// A string containing the name of the queue. Defaults to fx, the standard effects queue. /// The new function to add to the queue, with a function to call that will dequeue the next item. /// /// }, 'radio': function() { /// Selects all elements of type radio. }, 'ready': function() { /// /// Specify a function to execute when the DOM is fully loaded. /// A function to execute after the DOM is ready. /// /// }, 'remove': function() { /// /// Remove the set of matched elements from the DOM. /// A selector expression that filters the set of matched elements to be removed. /// /// }, 'removeAttr': function() { /// /// Remove an attribute from each element in the set of matched elements. /// An attribute to remove; as of version 1.7, it can be a space-separated list of attributes. /// /// }, 'removeClass': function() { /// /// Remove a single class, multiple classes, or all classes from each element in the set of matched elements. /// One or more space-separated classes to be removed from the class attribute of each matched element. /// /// /// /// Remove a single class, multiple classes, or all classes from each element in the set of matched elements. /// A function returning one or more space-separated class names to be removed. Receives the index position of the element in the set and the old class value as arguments. /// /// }, 'removeData': function() { /// /// Remove a previously-stored piece of data. /// A string naming the piece of data to delete. /// /// /// /// Remove a previously-stored piece of data. /// An array or space-separated string naming the pieces of data to delete. /// /// }, 'removeProp': function() { /// /// Remove a property for the set of matched elements. /// The name of the property to set. /// /// }, 'replaceAll': function() { /// /// Replace each target element with the set of matched elements. /// A selector expression indicating which element(s) to replace. /// /// }, 'replaceWith': function() { /// /// Replace each element in the set of matched elements with the provided new content. /// The content to insert. May be an HTML string, DOM element, or jQuery object. /// /// /// /// Replace each element in the set of matched elements with the provided new content. /// A function that returns content with which to replace the set of matched elements. /// /// }, 'reset': function() { /// Selects all elements of type reset. }, 'resize': function() { /// /// Bind an event handler to the "resize" JavaScript event, or trigger that event on an element. /// A function to execute each time the event is triggered. /// /// /// /// Bind an event handler to the "resize" JavaScript event, or trigger that event on an element. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'scroll': function() { /// /// Bind an event handler to the "scroll" JavaScript event, or trigger that event on an element. /// A function to execute each time the event is triggered. /// /// /// /// Bind an event handler to the "scroll" JavaScript event, or trigger that event on an element. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'scrollLeft': function() { /// /// Set the current horizontal position of the scroll bar for each of the set of matched elements. /// An integer indicating the new position to set the scroll bar to. /// /// }, 'scrollTop': function() { /// /// Set the current vertical position of the scroll bar for each of the set of matched elements. /// An integer indicating the new position to set the scroll bar to. /// /// }, 'select': function() { /// /// Bind an event handler to the "select" JavaScript event, or trigger that event on an element. /// A function to execute each time the event is triggered. /// /// /// /// Bind an event handler to the "select" JavaScript event, or trigger that event on an element. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'selected': function() { /// Selects all elements that are selected. }, 'serialize': function() { /// Encode a set of form elements as a string for submission. /// }, 'serializeArray': function() { /// Encode a set of form elements as an array of names and values. /// }, 'show': function() { /// /// Display the matched elements. /// A string or number determining how long the animation will run. /// A function to call once the animation is complete. /// /// /// /// Display the matched elements. /// A string or number determining how long the animation will run. /// A string indicating which easing function to use for the transition. /// A function to call once the animation is complete. /// /// }, 'siblings': function() { /// /// Get the siblings of each element in the set of matched elements, optionally filtered by a selector. /// A string containing a selector expression to match elements against. /// /// }, 'size': function() { /// Return the number of elements in the jQuery object. /// }, 'slice': function() { /// /// Reduce the set of matched elements to a subset specified by a range of indices. /// An integer indicating the 0-based position at which the elements begin to be selected. If negative, it indicates an offset from the end of the set. /// An integer indicating the 0-based position at which the elements stop being selected. If negative, it indicates an offset from the end of the set. If omitted, the range continues until the end of the set. /// /// }, 'slideDown': function() { /// /// Display the matched elements with a sliding motion. /// A string or number determining how long the animation will run. /// A function to call once the animation is complete. /// /// /// /// Display the matched elements with a sliding motion. /// A string or number determining how long the animation will run. /// A string indicating which easing function to use for the transition. /// A function to call once the animation is complete. /// /// }, 'slideToggle': function() { /// /// Display or hide the matched elements with a sliding motion. /// A string or number determining how long the animation will run. /// A function to call once the animation is complete. /// /// /// /// Display or hide the matched elements with a sliding motion. /// A string or number determining how long the animation will run. /// A string indicating which easing function to use for the transition. /// A function to call once the animation is complete. /// /// }, 'slideUp': function() { /// /// Hide the matched elements with a sliding motion. /// A string or number determining how long the animation will run. /// A function to call once the animation is complete. /// /// /// /// Hide the matched elements with a sliding motion. /// A string or number determining how long the animation will run. /// A string indicating which easing function to use for the transition. /// A function to call once the animation is complete. /// /// }, 'stop': function() { /// /// Stop the currently-running animation on the matched elements. /// A Boolean indicating whether to remove queued animation as well. Defaults to false. /// A Boolean indicating whether to complete the current animation immediately. Defaults to false. /// /// /// /// Stop the currently-running animation on the matched elements. /// The name of the queue in which to stop animations. /// A Boolean indicating whether to remove queued animation as well. Defaults to false. /// A Boolean indicating whether to complete the current animation immediately. Defaults to false. /// /// }, 'submit': function() { /// /// Bind an event handler to the "submit" JavaScript event, or trigger that event on an element. /// A function to execute each time the event is triggered. /// /// /// /// Bind an event handler to the "submit" JavaScript event, or trigger that event on an element. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'text': function() { /// /// Set the content of each element in the set of matched elements to the specified text. /// A string of text to set as the content of each matched element. /// /// /// /// Set the content of each element in the set of matched elements to the specified text. /// A function returning the text content to set. Receives the index position of the element in the set and the old text value as arguments. /// /// }, 'toArray': function() { /// Retrieve all the DOM elements contained in the jQuery set, as an array. /// }, 'toggle': function() { /// /// Display or hide the matched elements. /// A string or number determining how long the animation will run. /// A function to call once the animation is complete. /// /// /// /// Display or hide the matched elements. /// A string or number determining how long the animation will run. /// A string indicating which easing function to use for the transition. /// A function to call once the animation is complete. /// /// /// /// Display or hide the matched elements. /// A Boolean indicating whether to show or hide the elements. /// /// }, 'toggleClass': function() { /// /// Add or remove one or more classes from each element in the set of matched elements, depending on either the class's presence or the value of the switch argument. /// One or more class names (separated by spaces) to be toggled for each element in the matched set. /// /// /// /// Add or remove one or more classes from each element in the set of matched elements, depending on either the class's presence or the value of the switch argument. /// One or more class names (separated by spaces) to be toggled for each element in the matched set. /// A Boolean (not just truthy/falsy) value to determine whether the class should be added or removed. /// /// /// /// Add or remove one or more classes from each element in the set of matched elements, depending on either the class's presence or the value of the switch argument. /// A boolean value to determine whether the class should be added or removed. /// /// /// /// Add or remove one or more classes from each element in the set of matched elements, depending on either the class's presence or the value of the switch argument. /// A function that returns class names to be toggled in the class attribute of each element in the matched set. Receives the index position of the element in the set, the old class value, and the switch as arguments. /// A boolean value to determine whether the class should be added or removed. /// /// }, 'trigger': function() { /// /// Execute all handlers and behaviors attached to the matched elements for the given event type. /// A string containing a JavaScript event type, such as click or submit. /// Additional parameters to pass along to the event handler. /// /// /// /// Execute all handlers and behaviors attached to the matched elements for the given event type. /// A jQuery.Event object. /// /// }, 'triggerHandler': function() { /// /// Execute all handlers attached to an element for an event. /// A string containing a JavaScript event type, such as click or submit. /// An array of additional parameters to pass along to the event handler. /// /// }, 'unbind': function() { /// /// Remove a previously-attached event handler from the elements. /// A string containing a JavaScript event type, such as click or submit. /// The function that is to be no longer executed. /// /// /// /// Remove a previously-attached event handler from the elements. /// A string containing a JavaScript event type, such as click or submit. /// Unbinds the corresponding 'return false' function that was bound using .bind( eventType, false ). /// /// /// /// Remove a previously-attached event handler from the elements. /// A JavaScript event object as passed to an event handler. /// /// }, 'undelegate': function() { /// /// Remove a handler from the event for all elements which match the current selector, based upon a specific set of root elements. /// A selector which will be used to filter the event results. /// A string containing a JavaScript event type, such as "click" or "keydown" /// /// /// /// Remove a handler from the event for all elements which match the current selector, based upon a specific set of root elements. /// A selector which will be used to filter the event results. /// A string containing a JavaScript event type, such as "click" or "keydown" /// A function to execute at the time the event is triggered. /// /// /// /// Remove a handler from the event for all elements which match the current selector, based upon a specific set of root elements. /// A selector which will be used to filter the event results. /// A map of one or more event types and previously bound functions to unbind from them. /// /// /// /// Remove a handler from the event for all elements which match the current selector, based upon a specific set of root elements. /// A string containing a namespace to unbind all events from. /// /// }, 'unload': function() { /// /// Bind an event handler to the "unload" JavaScript event. /// A function to execute when the event is triggered. /// /// /// /// Bind an event handler to the "unload" JavaScript event. /// A map of data that will be passed to the event handler. /// A function to execute each time the event is triggered. /// /// }, 'unwrap': function() { /// Remove the parents of the set of matched elements from the DOM, leaving the matched elements in their place. /// }, 'val': function() { /// /// Set the value of each element in the set of matched elements. /// A string of text or an array of strings corresponding to the value of each matched element to set as selected/checked. /// /// /// /// Set the value of each element in the set of matched elements. /// A function returning the value to set. this is the current element. Receives the index position of the element in the set and the old value as arguments. /// /// }, 'visible': function() { /// Selects all elements that are visible. }, 'width': function() { /// /// Set the CSS width of each element in the set of matched elements. /// An integer representing the number of pixels, or an integer along with an optional unit of measure appended (as a string). /// /// /// /// Set the CSS width of each element in the set of matched elements. /// A function returning the width to set. Receives the index position of the element in the set and the old width as arguments. Within the function, this refers to the current element in the set. /// /// }, 'wrap': function() { /// /// Wrap an HTML structure around each element in the set of matched elements. /// An HTML snippet, selector expression, jQuery object, or DOM element specifying the structure to wrap around the matched elements. /// /// /// /// Wrap an HTML structure around each element in the set of matched elements. /// A callback function returning the HTML content or jQuery object to wrap around the matched elements. Receives the index position of the element in the set as an argument. Within the function, this refers to the current element in the set. /// /// }, 'wrapAll': function() { /// /// Wrap an HTML structure around all elements in the set of matched elements. /// An HTML snippet, selector expression, jQuery object, or DOM element specifying the structure to wrap around the matched elements. /// /// }, 'wrapInner': function() { /// /// Wrap an HTML structure around the content of each element in the set of matched elements. /// An HTML snippet, selector expression, jQuery object, or DOM element specifying the structure to wrap around the content of the matched elements. /// /// /// /// Wrap an HTML structure around the content of each element in the set of matched elements. /// A callback function which generates a structure to wrap around the content of the matched elements. Receives the index position of the element in the set as an argument. Within the function, this refers to the current element in the set. /// /// }, }); intellisense.annotate(window, { '$': function() { /// /// Accepts a string containing a CSS selector which is then used to match a set of elements. /// A string containing a selector expression /// A DOM Element, Document, or jQuery to use as context /// /// /// /// Accepts a string containing a CSS selector which is then used to match a set of elements. /// A DOM element to wrap in a jQuery object. /// /// /// /// Accepts a string containing a CSS selector which is then used to match a set of elements. /// A plain object to wrap in a jQuery object. /// /// /// /// Accepts a string containing a CSS selector which is then used to match a set of elements. /// An array containing a set of DOM elements to wrap in a jQuery object. /// /// /// /// Accepts a string containing a CSS selector which is then used to match a set of elements. /// An existing jQuery object to clone. /// /// }, }); ================================================ FILE: OnlineStore.Web/Scripts/jquery-1.7.1.js ================================================ /*! * jQuery JavaScript Library v1.7.1 * http://jquery.com/ * * Copyright 2011, John Resig * Released under the the MIT License. * http://jquery.org/license * * Includes Sizzle.js * http://sizzlejs.com/ * Copyright 2011, The Dojo Foundation * Released under the MIT and BSD Licenses. * * Date: Mon Nov 21 21:11:03 2011 -0500 */ (function( window, undefined ) { // Use the correct document accordingly with window argument (sandbox) var document = window.document, navigator = window.navigator, location = window.location; var jQuery = (function() { // Define a local copy of jQuery var jQuery = function( selector, context ) { // The jQuery object is actually just the init constructor 'enhanced' return new jQuery.fn.init( selector, context, rootjQuery ); }, // Map over jQuery in case of overwrite _jQuery = window.jQuery, // Map over the $ in case of overwrite _$ = window.$, // A central reference to the root jQuery(document) rootjQuery, // A simple way to check for HTML strings or ID strings // Prioritize #id over to avoid XSS via location.hash (#9521) quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, // Check if a string has a non-whitespace character in it rnotwhite = /\S/, // Used for trimming whitespace trimLeft = /^\s+/, trimRight = /\s+$/, // Match a standalone tag rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, // JSON RegExp rvalidchars = /^[\],:{}\s]*$/, rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, // Useragent RegExp rwebkit = /(webkit)[ \/]([\w.]+)/, ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/, rmsie = /(msie) ([\w.]+)/, rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/, // Matches dashed string for camelizing rdashAlpha = /-([a-z]|[0-9])/ig, rmsPrefix = /^-ms-/, // Used by jQuery.camelCase as callback to replace() fcamelCase = function( all, letter ) { return ( letter + "" ).toUpperCase(); }, // Keep a UserAgent string for use with jQuery.browser userAgent = navigator.userAgent, // For matching the engine and version of the browser browserMatch, // The deferred used on DOM ready readyList, // The ready event handler DOMContentLoaded, // Save a reference to some core methods toString = Object.prototype.toString, hasOwn = Object.prototype.hasOwnProperty, push = Array.prototype.push, slice = Array.prototype.slice, trim = String.prototype.trim, indexOf = Array.prototype.indexOf, // [[Class]] -> type pairs class2type = {}; jQuery.fn = jQuery.prototype = { constructor: jQuery, init: function( selector, context, rootjQuery ) { var match, elem, ret, doc; // Handle $(""), $(null), or $(undefined) if ( !selector ) { return this; } // Handle $(DOMElement) if ( selector.nodeType ) { this.context = this[0] = selector; this.length = 1; return this; } // The body element only exists once, optimize finding it if ( selector === "body" && !context && document.body ) { this.context = document; this[0] = document.body; this.selector = selector; this.length = 1; return this; } // Handle HTML strings if ( typeof selector === "string" ) { // Are we dealing with HTML string or an ID? if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { // Assume that strings that start and end with <> are HTML and skip the regex check match = [ null, selector, null ]; } else { match = quickExpr.exec( selector ); } // Verify a match, and that no context was specified for #id if ( match && (match[1] || !context) ) { // HANDLE: $(html) -> $(array) if ( match[1] ) { context = context instanceof jQuery ? context[0] : context; doc = ( context ? context.ownerDocument || context : document ); // If a single string is passed in and it's a single tag // just do a createElement and skip the rest ret = rsingleTag.exec( selector ); if ( ret ) { if ( jQuery.isPlainObject( context ) ) { selector = [ document.createElement( ret[1] ) ]; jQuery.fn.attr.call( selector, context, true ); } else { selector = [ doc.createElement( ret[1] ) ]; } } else { ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); selector = ( ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment ).childNodes; } return jQuery.merge( this, selector ); // HANDLE: $("#id") } else { elem = document.getElementById( match[2] ); // Check parentNode to catch when Blackberry 4.6 returns // nodes that are no longer in the document #6963 if ( elem && elem.parentNode ) { // Handle the case where IE and Opera return items // by name instead of ID if ( elem.id !== match[2] ) { return rootjQuery.find( selector ); } // Otherwise, we inject the element directly into the jQuery object this.length = 1; this[0] = elem; } this.context = document; this.selector = selector; return this; } // HANDLE: $(expr, $(...)) } else if ( !context || context.jquery ) { return ( context || rootjQuery ).find( selector ); // HANDLE: $(expr, context) // (which is just equivalent to: $(context).find(expr) } else { return this.constructor( context ).find( selector ); } // HANDLE: $(function) // Shortcut for document ready } else if ( jQuery.isFunction( selector ) ) { return rootjQuery.ready( selector ); } if ( selector.selector !== undefined ) { this.selector = selector.selector; this.context = selector.context; } return jQuery.makeArray( selector, this ); }, // Start with an empty selector selector: "", // The current version of jQuery being used jquery: "1.7.1", // The default length of a jQuery object is 0 length: 0, // The number of elements contained in the matched element set size: function() { return this.length; }, toArray: function() { return slice.call( this, 0 ); }, // Get the Nth element in the matched element set OR // Get the whole matched element set as a clean array get: function( num ) { return num == null ? // Return a 'clean' array this.toArray() : // Return just the object ( num < 0 ? this[ this.length + num ] : this[ num ] ); }, // Take an array of elements and push it onto the stack // (returning the new matched element set) pushStack: function( elems, name, selector ) { // Build a new jQuery matched element set var ret = this.constructor(); if ( jQuery.isArray( elems ) ) { push.apply( ret, elems ); } else { jQuery.merge( ret, elems ); } // Add the old object onto the stack (as a reference) ret.prevObject = this; ret.context = this.context; if ( name === "find" ) { ret.selector = this.selector + ( this.selector ? " " : "" ) + selector; } else if ( name ) { ret.selector = this.selector + "." + name + "(" + selector + ")"; } // Return the newly-formed element set return ret; }, // Execute a callback for every element in the matched set. // (You can seed the arguments with an array of args, but this is // only used internally.) each: function( callback, args ) { return jQuery.each( this, callback, args ); }, ready: function( fn ) { // Attach the listeners jQuery.bindReady(); // Add the callback readyList.add( fn ); return this; }, eq: function( i ) { i = +i; return i === -1 ? this.slice( i ) : this.slice( i, i + 1 ); }, first: function() { return this.eq( 0 ); }, last: function() { return this.eq( -1 ); }, slice: function() { return this.pushStack( slice.apply( this, arguments ), "slice", slice.call(arguments).join(",") ); }, map: function( callback ) { return this.pushStack( jQuery.map(this, function( elem, i ) { return callback.call( elem, i, elem ); })); }, end: function() { return this.prevObject || this.constructor(null); }, // For internal use only. // Behaves like an Array's method, not like a jQuery method. push: push, sort: [].sort, splice: [].splice }; // Give the init function the jQuery prototype for later instantiation jQuery.fn.init.prototype = jQuery.fn; jQuery.extend = jQuery.fn.extend = function() { var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = false; // Handle a deep copy situation if ( typeof target === "boolean" ) { deep = target; target = arguments[1] || {}; // skip the boolean and the target i = 2; } // Handle case when target is a string or something (possible in deep copy) if ( typeof target !== "object" && !jQuery.isFunction(target) ) { target = {}; } // extend jQuery itself if only one argument is passed if ( length === i ) { target = this; --i; } for ( ; i < length; i++ ) { // Only deal with non-null/undefined values if ( (options = arguments[ i ]) != null ) { // Extend the base object for ( name in options ) { src = target[ name ]; copy = options[ name ]; // Prevent never-ending loop if ( target === copy ) { continue; } // Recurse if we're merging plain objects or arrays if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { if ( copyIsArray ) { copyIsArray = false; clone = src && jQuery.isArray(src) ? src : []; } else { clone = src && jQuery.isPlainObject(src) ? src : {}; } // Never move original objects, clone them target[ name ] = jQuery.extend( deep, clone, copy ); // Don't bring in undefined values } else if ( copy !== undefined ) { target[ name ] = copy; } } } } // Return the modified object return target; }; jQuery.extend({ noConflict: function( deep ) { if ( window.$ === jQuery ) { window.$ = _$; } if ( deep && window.jQuery === jQuery ) { window.jQuery = _jQuery; } return jQuery; }, // Is the DOM ready to be used? Set to true once it occurs. isReady: false, // A counter to track how many items to wait for before // the ready event fires. See #6781 readyWait: 1, // Hold (or release) the ready event holdReady: function( hold ) { if ( hold ) { jQuery.readyWait++; } else { jQuery.ready( true ); } }, // Handle when the DOM is ready ready: function( wait ) { // Either a released hold or an DOMready/load event and not yet ready if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) { // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). if ( !document.body ) { return setTimeout( jQuery.ready, 1 ); } // Remember that the DOM is ready jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be if ( wait !== true && --jQuery.readyWait > 0 ) { return; } // If there are functions bound, to execute readyList.fireWith( document, [ jQuery ] ); // Trigger any bound ready events if ( jQuery.fn.trigger ) { jQuery( document ).trigger( "ready" ).off( "ready" ); } } }, bindReady: function() { if ( readyList ) { return; } readyList = jQuery.Callbacks( "once memory" ); // Catch cases where $(document).ready() is called after the // browser event has already occurred. if ( document.readyState === "complete" ) { // Handle it asynchronously to allow scripts the opportunity to delay ready return setTimeout( jQuery.ready, 1 ); } // Mozilla, Opera and webkit nightlies currently support this event if ( document.addEventListener ) { // Use the handy event callback document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); // A fallback to window.onload, that will always work window.addEventListener( "load", jQuery.ready, false ); // If IE event model is used } else if ( document.attachEvent ) { // ensure firing before onload, // maybe late but safe also for iframes document.attachEvent( "onreadystatechange", DOMContentLoaded ); // A fallback to window.onload, that will always work window.attachEvent( "onload", jQuery.ready ); // If IE and not a frame // continually check to see if the document is ready var toplevel = false; try { toplevel = window.frameElement == null; } catch(e) {} if ( document.documentElement.doScroll && toplevel ) { doScrollCheck(); } } }, // See test/unit/core.js for details concerning isFunction. // Since version 1.3, DOM methods and functions like alert // aren't supported. They return false on IE (#2968). isFunction: function( obj ) { return jQuery.type(obj) === "function"; }, isArray: Array.isArray || function( obj ) { return jQuery.type(obj) === "array"; }, // A crude way of determining if an object is a window isWindow: function( obj ) { return obj && typeof obj === "object" && "setInterval" in obj; }, isNumeric: function( obj ) { return !isNaN( parseFloat(obj) ) && isFinite( obj ); }, type: function( obj ) { return obj == null ? String( obj ) : class2type[ toString.call(obj) ] || "object"; }, isPlainObject: function( obj ) { // Must be an Object. // Because of IE, we also have to check the presence of the constructor property. // Make sure that DOM nodes and window objects don't pass through, as well if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { return false; } try { // Not own constructor property must be Object if ( obj.constructor && !hasOwn.call(obj, "constructor") && !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { return false; } } catch ( e ) { // IE8,9 Will throw exceptions on certain host objects #9897 return false; } // Own properties are enumerated firstly, so to speed up, // if last one is own, then all properties are own. var key; for ( key in obj ) {} return key === undefined || hasOwn.call( obj, key ); }, isEmptyObject: function( obj ) { for ( var name in obj ) { return false; } return true; }, error: function( msg ) { throw new Error( msg ); }, parseJSON: function( data ) { if ( typeof data !== "string" || !data ) { return null; } // Make sure leading/trailing whitespace is removed (IE can't handle it) data = jQuery.trim( data ); // Attempt to parse using the native JSON parser first if ( window.JSON && window.JSON.parse ) { return window.JSON.parse( data ); } // Make sure the incoming data is actual JSON // Logic borrowed from http://json.org/json2.js if ( rvalidchars.test( data.replace( rvalidescape, "@" ) .replace( rvalidtokens, "]" ) .replace( rvalidbraces, "")) ) { return ( new Function( "return " + data ) )(); } jQuery.error( "Invalid JSON: " + data ); }, // Cross-browser xml parsing parseXML: function( data ) { var xml, tmp; try { if ( window.DOMParser ) { // Standard tmp = new DOMParser(); xml = tmp.parseFromString( data , "text/xml" ); } else { // IE xml = new ActiveXObject( "Microsoft.XMLDOM" ); xml.async = "false"; xml.loadXML( data ); } } catch( e ) { xml = undefined; } if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { jQuery.error( "Invalid XML: " + data ); } return xml; }, noop: function() {}, // Evaluates a script in a global context // Workarounds based on findings by Jim Driscoll // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context globalEval: function( data ) { if ( data && rnotwhite.test( data ) ) { // We use execScript on Internet Explorer // We use an anonymous function so that context is window // rather than jQuery in Firefox ( window.execScript || function( data ) { window[ "eval" ].call( window, data ); } )( data ); } }, // Convert dashed to camelCase; used by the css and data modules // Microsoft forgot to hump their vendor prefix (#9572) camelCase: function( string ) { return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); }, nodeName: function( elem, name ) { return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); }, // args is for internal usage only each: function( object, callback, args ) { var name, i = 0, length = object.length, isObj = length === undefined || jQuery.isFunction( object ); if ( args ) { if ( isObj ) { for ( name in object ) { if ( callback.apply( object[ name ], args ) === false ) { break; } } } else { for ( ; i < length; ) { if ( callback.apply( object[ i++ ], args ) === false ) { break; } } } // A special, fast, case for the most common use of each } else { if ( isObj ) { for ( name in object ) { if ( callback.call( object[ name ], name, object[ name ] ) === false ) { break; } } } else { for ( ; i < length; ) { if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { break; } } } } return object; }, // Use native String.trim function wherever possible trim: trim ? function( text ) { return text == null ? "" : trim.call( text ); } : // Otherwise use our own trimming functionality function( text ) { return text == null ? "" : text.toString().replace( trimLeft, "" ).replace( trimRight, "" ); }, // results is for internal usage only makeArray: function( array, results ) { var ret = results || []; if ( array != null ) { // The window, strings (and functions) also have 'length' // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 var type = jQuery.type( array ); if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { push.call( ret, array ); } else { jQuery.merge( ret, array ); } } return ret; }, inArray: function( elem, array, i ) { var len; if ( array ) { if ( indexOf ) { return indexOf.call( array, elem, i ); } len = array.length; i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; for ( ; i < len; i++ ) { // Skip accessing in sparse arrays if ( i in array && array[ i ] === elem ) { return i; } } } return -1; }, merge: function( first, second ) { var i = first.length, j = 0; if ( typeof second.length === "number" ) { for ( var l = second.length; j < l; j++ ) { first[ i++ ] = second[ j ]; } } else { while ( second[j] !== undefined ) { first[ i++ ] = second[ j++ ]; } } first.length = i; return first; }, grep: function( elems, callback, inv ) { var ret = [], retVal; inv = !!inv; // Go through the array, only saving the items // that pass the validator function for ( var i = 0, length = elems.length; i < length; i++ ) { retVal = !!callback( elems[ i ], i ); if ( inv !== retVal ) { ret.push( elems[ i ] ); } } return ret; }, // arg is for internal usage only map: function( elems, callback, arg ) { var value, key, ret = [], i = 0, length = elems.length, // jquery objects are treated as arrays isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ; // Go through the array, translating each of the items to their if ( isArray ) { for ( ; i < length; i++ ) { value = callback( elems[ i ], i, arg ); if ( value != null ) { ret[ ret.length ] = value; } } // Go through every key on the object, } else { for ( key in elems ) { value = callback( elems[ key ], key, arg ); if ( value != null ) { ret[ ret.length ] = value; } } } // Flatten any nested arrays return ret.concat.apply( [], ret ); }, // A global GUID counter for objects guid: 1, // Bind a function to a context, optionally partially applying any // arguments. proxy: function( fn, context ) { if ( typeof context === "string" ) { var tmp = fn[ context ]; context = fn; fn = tmp; } // Quick check to determine if target is callable, in the spec // this throws a TypeError, but we will just return undefined. if ( !jQuery.isFunction( fn ) ) { return undefined; } // Simulated bind var args = slice.call( arguments, 2 ), proxy = function() { return fn.apply( context, args.concat( slice.call( arguments ) ) ); }; // Set the guid of unique handler to the same of original handler, so it can be removed proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; return proxy; }, // Mutifunctional method to get and set values to a collection // The value/s can optionally be executed if it's a function access: function( elems, key, value, exec, fn, pass ) { var length = elems.length; // Setting many attributes if ( typeof key === "object" ) { for ( var k in key ) { jQuery.access( elems, k, key[k], exec, fn, value ); } return elems; } // Setting one attribute if ( value !== undefined ) { // Optionally, function values get executed if exec is true exec = !pass && exec && jQuery.isFunction(value); for ( var i = 0; i < length; i++ ) { fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); } return elems; } // Getting an attribute return length ? fn( elems[0], key ) : undefined; }, now: function() { return ( new Date() ).getTime(); }, // Use of jQuery.browser is frowned upon. // More details: http://docs.jquery.com/Utilities/jQuery.browser uaMatch: function( ua ) { ua = ua.toLowerCase(); var match = rwebkit.exec( ua ) || ropera.exec( ua ) || rmsie.exec( ua ) || ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) || []; return { browser: match[1] || "", version: match[2] || "0" }; }, sub: function() { function jQuerySub( selector, context ) { return new jQuerySub.fn.init( selector, context ); } jQuery.extend( true, jQuerySub, this ); jQuerySub.superclass = this; jQuerySub.fn = jQuerySub.prototype = this(); jQuerySub.fn.constructor = jQuerySub; jQuerySub.sub = this.sub; jQuerySub.fn.init = function init( selector, context ) { if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { context = jQuerySub( context ); } return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); }; jQuerySub.fn.init.prototype = jQuerySub.fn; var rootjQuerySub = jQuerySub(document); return jQuerySub; }, browser: {} }); // Populate the class2type map jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { class2type[ "[object " + name + "]" ] = name.toLowerCase(); }); browserMatch = jQuery.uaMatch( userAgent ); if ( browserMatch.browser ) { jQuery.browser[ browserMatch.browser ] = true; jQuery.browser.version = browserMatch.version; } // Deprecated, use jQuery.browser.webkit instead if ( jQuery.browser.webkit ) { jQuery.browser.safari = true; } // IE doesn't match non-breaking spaces with \s if ( rnotwhite.test( "\xA0" ) ) { trimLeft = /^[\s\xA0]+/; trimRight = /[\s\xA0]+$/; } // All jQuery objects should point back to these rootjQuery = jQuery(document); // Cleanup functions for the document ready method if ( document.addEventListener ) { DOMContentLoaded = function() { document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); jQuery.ready(); }; } else if ( document.attachEvent ) { DOMContentLoaded = function() { // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). if ( document.readyState === "complete" ) { document.detachEvent( "onreadystatechange", DOMContentLoaded ); jQuery.ready(); } }; } // The DOM ready check for Internet Explorer function doScrollCheck() { if ( jQuery.isReady ) { return; } try { // If IE is used, use the trick by Diego Perini // http://javascript.nwbox.com/IEContentLoaded/ document.documentElement.doScroll("left"); } catch(e) { setTimeout( doScrollCheck, 1 ); return; } // and execute any waiting functions jQuery.ready(); } return jQuery; })(); // String to Object flags format cache var flagsCache = {}; // Convert String-formatted flags into Object-formatted ones and store in cache function createFlags( flags ) { var object = flagsCache[ flags ] = {}, i, length; flags = flags.split( /\s+/ ); for ( i = 0, length = flags.length; i < length; i++ ) { object[ flags[i] ] = true; } return object; } /* * Create a callback list using the following parameters: * * flags: an optional list of space-separated flags that will change how * the callback list behaves * * By default a callback list will act like an event callback list and can be * "fired" multiple times. * * Possible flags: * * once: will ensure the callback list can only be fired once (like a Deferred) * * memory: will keep track of previous values and will call any callback added * after the list has been fired right away with the latest "memorized" * values (like a Deferred) * * unique: will ensure a callback can only be added once (no duplicate in the list) * * stopOnFalse: interrupt callings when a callback returns false * */ jQuery.Callbacks = function( flags ) { // Convert flags from String-formatted to Object-formatted // (we check in cache first) flags = flags ? ( flagsCache[ flags ] || createFlags( flags ) ) : {}; var // Actual callback list list = [], // Stack of fire calls for repeatable lists stack = [], // Last fire value (for non-forgettable lists) memory, // Flag to know if list is currently firing firing, // First callback to fire (used internally by add and fireWith) firingStart, // End of the loop when firing firingLength, // Index of currently firing callback (modified by remove if needed) firingIndex, // Add one or several callbacks to the list add = function( args ) { var i, length, elem, type, actual; for ( i = 0, length = args.length; i < length; i++ ) { elem = args[ i ]; type = jQuery.type( elem ); if ( type === "array" ) { // Inspect recursively add( elem ); } else if ( type === "function" ) { // Add if not in unique mode and callback is not in if ( !flags.unique || !self.has( elem ) ) { list.push( elem ); } } } }, // Fire callbacks fire = function( context, args ) { args = args || []; memory = !flags.memory || [ context, args ]; firing = true; firingIndex = firingStart || 0; firingStart = 0; firingLength = list.length; for ( ; list && firingIndex < firingLength; firingIndex++ ) { if ( list[ firingIndex ].apply( context, args ) === false && flags.stopOnFalse ) { memory = true; // Mark as halted break; } } firing = false; if ( list ) { if ( !flags.once ) { if ( stack && stack.length ) { memory = stack.shift(); self.fireWith( memory[ 0 ], memory[ 1 ] ); } } else if ( memory === true ) { self.disable(); } else { list = []; } } }, // Actual Callbacks object self = { // Add a callback or a collection of callbacks to the list add: function() { if ( list ) { var length = list.length; add( arguments ); // Do we need to add the callbacks to the // current firing batch? if ( firing ) { firingLength = list.length; // With memory, if we're not firing then // we should call right away, unless previous // firing was halted (stopOnFalse) } else if ( memory && memory !== true ) { firingStart = length; fire( memory[ 0 ], memory[ 1 ] ); } } return this; }, // Remove a callback from the list remove: function() { if ( list ) { var args = arguments, argIndex = 0, argLength = args.length; for ( ; argIndex < argLength ; argIndex++ ) { for ( var i = 0; i < list.length; i++ ) { if ( args[ argIndex ] === list[ i ] ) { // Handle firingIndex and firingLength if ( firing ) { if ( i <= firingLength ) { firingLength--; if ( i <= firingIndex ) { firingIndex--; } } } // Remove the element list.splice( i--, 1 ); // If we have some unicity property then // we only need to do this once if ( flags.unique ) { break; } } } } } return this; }, // Control if a given callback is in the list has: function( fn ) { if ( list ) { var i = 0, length = list.length; for ( ; i < length; i++ ) { if ( fn === list[ i ] ) { return true; } } } return false; }, // Remove all callbacks from the list empty: function() { list = []; return this; }, // Have the list do nothing anymore disable: function() { list = stack = memory = undefined; return this; }, // Is it disabled? disabled: function() { return !list; }, // Lock the list in its current state lock: function() { stack = undefined; if ( !memory || memory === true ) { self.disable(); } return this; }, // Is it locked? locked: function() { return !stack; }, // Call all callbacks with the given context and arguments fireWith: function( context, args ) { if ( stack ) { if ( firing ) { if ( !flags.once ) { stack.push( [ context, args ] ); } } else if ( !( flags.once && memory ) ) { fire( context, args ); } } return this; }, // Call all the callbacks with the given arguments fire: function() { self.fireWith( this, arguments ); return this; }, // To know if the callbacks have already been called at least once fired: function() { return !!memory; } }; return self; }; var // Static reference to slice sliceDeferred = [].slice; jQuery.extend({ Deferred: function( func ) { var doneList = jQuery.Callbacks( "once memory" ), failList = jQuery.Callbacks( "once memory" ), progressList = jQuery.Callbacks( "memory" ), state = "pending", lists = { resolve: doneList, reject: failList, notify: progressList }, promise = { done: doneList.add, fail: failList.add, progress: progressList.add, state: function() { return state; }, // Deprecated isResolved: doneList.fired, isRejected: failList.fired, then: function( doneCallbacks, failCallbacks, progressCallbacks ) { deferred.done( doneCallbacks ).fail( failCallbacks ).progress( progressCallbacks ); return this; }, always: function() { deferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments ); return this; }, pipe: function( fnDone, fnFail, fnProgress ) { return jQuery.Deferred(function( newDefer ) { jQuery.each( { done: [ fnDone, "resolve" ], fail: [ fnFail, "reject" ], progress: [ fnProgress, "notify" ] }, function( handler, data ) { var fn = data[ 0 ], action = data[ 1 ], returned; if ( jQuery.isFunction( fn ) ) { deferred[ handler ](function() { returned = fn.apply( this, arguments ); if ( returned && jQuery.isFunction( returned.promise ) ) { returned.promise().then( newDefer.resolve, newDefer.reject, newDefer.notify ); } else { newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] ); } }); } else { deferred[ handler ]( newDefer[ action ] ); } }); }).promise(); }, // Get a promise for this deferred // If obj is provided, the promise aspect is added to the object promise: function( obj ) { if ( obj == null ) { obj = promise; } else { for ( var key in promise ) { obj[ key ] = promise[ key ]; } } return obj; } }, deferred = promise.promise({}), key; for ( key in lists ) { deferred[ key ] = lists[ key ].fire; deferred[ key + "With" ] = lists[ key ].fireWith; } // Handle state deferred.done( function() { state = "resolved"; }, failList.disable, progressList.lock ).fail( function() { state = "rejected"; }, doneList.disable, progressList.lock ); // Call given func if any if ( func ) { func.call( deferred, deferred ); } // All done! return deferred; }, // Deferred helper when: function( firstParam ) { var args = sliceDeferred.call( arguments, 0 ), i = 0, length = args.length, pValues = new Array( length ), count = length, pCount = length, deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ? firstParam : jQuery.Deferred(), promise = deferred.promise(); function resolveFunc( i ) { return function( value ) { args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value; if ( !( --count ) ) { deferred.resolveWith( deferred, args ); } }; } function progressFunc( i ) { return function( value ) { pValues[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value; deferred.notifyWith( promise, pValues ); }; } if ( length > 1 ) { for ( ; i < length; i++ ) { if ( args[ i ] && args[ i ].promise && jQuery.isFunction( args[ i ].promise ) ) { args[ i ].promise().then( resolveFunc(i), deferred.reject, progressFunc(i) ); } else { --count; } } if ( !count ) { deferred.resolveWith( deferred, args ); } } else if ( deferred !== firstParam ) { deferred.resolveWith( deferred, length ? [ firstParam ] : [] ); } return promise; } }); jQuery.support = (function() { var support, all, a, select, opt, input, marginDiv, fragment, tds, events, eventName, i, isSupported, div = document.createElement( "div" ), documentElement = document.documentElement; // Preliminary tests div.setAttribute("className", "t"); div.innerHTML = "
a"; all = div.getElementsByTagName( "*" ); a = div.getElementsByTagName( "a" )[ 0 ]; // Can't get basic test support if ( !all || !all.length || !a ) { return {}; } // First batch of supports tests select = document.createElement( "select" ); opt = select.appendChild( document.createElement("option") ); input = div.getElementsByTagName( "input" )[ 0 ]; support = { // IE strips leading whitespace when .innerHTML is used leadingWhitespace: ( div.firstChild.nodeType === 3 ), // Make sure that tbody elements aren't automatically inserted // IE will insert them into empty tables tbody: !div.getElementsByTagName("tbody").length, // Make sure that link elements get serialized correctly by innerHTML // This requires a wrapper element in IE htmlSerialize: !!div.getElementsByTagName("link").length, // Get the style information from getAttribute // (IE uses .cssText instead) style: /top/.test( a.getAttribute("style") ), // Make sure that URLs aren't manipulated // (IE normalizes it by default) hrefNormalized: ( a.getAttribute("href") === "/a" ), // Make sure that element opacity exists // (IE uses filter instead) // Use a regex to work around a WebKit issue. See #5145 opacity: /^0.55/.test( a.style.opacity ), // Verify style float existence // (IE uses styleFloat instead of cssFloat) cssFloat: !!a.style.cssFloat, // Make sure that if no value is specified for a checkbox // that it defaults to "on". // (WebKit defaults to "" instead) checkOn: ( input.value === "on" ), // Make sure that a selected-by-default option has a working selected property. // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) optSelected: opt.selected, // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) getSetAttribute: div.className !== "t", // Tests for enctype support on a form(#6743) enctype: !!document.createElement("form").enctype, // Makes sure cloning an html5 element does not cause problems // Where outerHTML is undefined, this still works html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>", // Will be defined later submitBubbles: true, changeBubbles: true, focusinBubbles: false, deleteExpando: true, noCloneEvent: true, inlineBlockNeedsLayout: false, shrinkWrapBlocks: false, reliableMarginRight: true }; // Make sure checked status is properly cloned input.checked = true; support.noCloneChecked = input.cloneNode( true ).checked; // Make sure that the options inside disabled selects aren't marked as disabled // (WebKit marks them as disabled) select.disabled = true; support.optDisabled = !opt.disabled; // Test to see if it's possible to delete an expando from an element // Fails in Internet Explorer try { delete div.test; } catch( e ) { support.deleteExpando = false; } if ( !div.addEventListener && div.attachEvent && div.fireEvent ) { div.attachEvent( "onclick", function() { // Cloning a node shouldn't copy over any // bound event handlers (IE does this) support.noCloneEvent = false; }); div.cloneNode( true ).fireEvent( "onclick" ); } // Check if a radio maintains its value // after being appended to the DOM input = document.createElement("input"); input.value = "t"; input.setAttribute("type", "radio"); support.radioValue = input.value === "t"; input.setAttribute("checked", "checked"); div.appendChild( input ); fragment = document.createDocumentFragment(); fragment.appendChild( div.lastChild ); // WebKit doesn't clone checked state correctly in fragments support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; // Check if a disconnected checkbox will retain its checked // value of true after appended to the DOM (IE6/7) support.appendChecked = input.checked; fragment.removeChild( input ); fragment.appendChild( div ); div.innerHTML = ""; // Check if div with explicit width and no margin-right incorrectly // gets computed margin-right based on width of container. For more // info see bug #3333 // Fails in WebKit before Feb 2011 nightlies // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right if ( window.getComputedStyle ) { marginDiv = document.createElement( "div" ); marginDiv.style.width = "0"; marginDiv.style.marginRight = "0"; div.style.width = "2px"; div.appendChild( marginDiv ); support.reliableMarginRight = ( parseInt( ( window.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0; } // Technique from Juriy Zaytsev // http://perfectionkills.com/detecting-event-support-without-browser-sniffing/ // We only care about the case where non-standard event systems // are used, namely in IE. Short-circuiting here helps us to // avoid an eval call (in setAttribute) which can cause CSP // to go haywire. See: https://developer.mozilla.org/en/Security/CSP if ( div.attachEvent ) { for( i in { submit: 1, change: 1, focusin: 1 }) { eventName = "on" + i; isSupported = ( eventName in div ); if ( !isSupported ) { div.setAttribute( eventName, "return;" ); isSupported = ( typeof div[ eventName ] === "function" ); } support[ i + "Bubbles" ] = isSupported; } } fragment.removeChild( div ); // Null elements to avoid leaks in IE fragment = select = opt = marginDiv = div = input = null; // Run tests that need a body at doc ready jQuery(function() { var container, outer, inner, table, td, offsetSupport, conMarginTop, ptlm, vb, style, html, body = document.getElementsByTagName("body")[0]; if ( !body ) { // Return for frameset docs that don't have a body return; } conMarginTop = 1; ptlm = "position:absolute;top:0;left:0;width:1px;height:1px;margin:0;"; vb = "visibility:hidden;border:0;"; style = "style='" + ptlm + "border:5px solid #000;padding:0;'"; html = "
" + "" + "
"; container = document.createElement("div"); container.style.cssText = vb + "width:0;height:0;position:static;top:0;margin-top:" + conMarginTop + "px"; body.insertBefore( container, body.firstChild ); // Construct the test element div = document.createElement("div"); container.appendChild( div ); // Check if table cells still have offsetWidth/Height when they are set // to display:none and there are still other visible table cells in a // table row; if so, offsetWidth/Height are not reliable for use when // determining if an element has been hidden directly using // display:none (it is still safe to use offsets if a parent element is // hidden; don safety goggles and see bug #4512 for more information). // (only IE 8 fails this test) div.innerHTML = "
t
"; tds = div.getElementsByTagName( "td" ); isSupported = ( tds[ 0 ].offsetHeight === 0 ); tds[ 0 ].style.display = ""; tds[ 1 ].style.display = "none"; // Check if empty table cells still have offsetWidth/Height // (IE <= 8 fail this test) support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); // Figure out if the W3C box model works as expected div.innerHTML = ""; div.style.width = div.style.paddingLeft = "1px"; jQuery.boxModel = support.boxModel = div.offsetWidth === 2; if ( typeof div.style.zoom !== "undefined" ) { // Check if natively block-level elements act like inline-block // elements when setting their display to 'inline' and giving // them layout // (IE < 8 does this) div.style.display = "inline"; div.style.zoom = 1; support.inlineBlockNeedsLayout = ( div.offsetWidth === 2 ); // Check if elements with layout shrink-wrap their children // (IE 6 does this) div.style.display = ""; div.innerHTML = "
"; support.shrinkWrapBlocks = ( div.offsetWidth !== 2 ); } div.style.cssText = ptlm + vb; div.innerHTML = html; outer = div.firstChild; inner = outer.firstChild; td = outer.nextSibling.firstChild.firstChild; offsetSupport = { doesNotAddBorder: ( inner.offsetTop !== 5 ), doesAddBorderForTableAndCells: ( td.offsetTop === 5 ) }; inner.style.position = "fixed"; inner.style.top = "20px"; // safari subtracts parent border width here which is 5px offsetSupport.fixedPosition = ( inner.offsetTop === 20 || inner.offsetTop === 15 ); inner.style.position = inner.style.top = ""; outer.style.overflow = "hidden"; outer.style.position = "relative"; offsetSupport.subtractsBorderForOverflowNotVisible = ( inner.offsetTop === -5 ); offsetSupport.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== conMarginTop ); body.removeChild( container ); div = container = null; jQuery.extend( support, offsetSupport ); }); return support; })(); var rbrace = /^(?:\{.*\}|\[.*\])$/, rmultiDash = /([A-Z])/g; jQuery.extend({ cache: {}, // Please use with caution uuid: 0, // Unique for each copy of jQuery on the page // Non-digits removed to match rinlinejQuery expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ), // The following elements throw uncatchable exceptions if you // attempt to add expando properties to them. noData: { "embed": true, // Ban all objects except for Flash (which handle expandos) "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", "applet": true }, hasData: function( elem ) { elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; return !!elem && !isEmptyDataObject( elem ); }, data: function( elem, name, data, pvt /* Internal Use Only */ ) { if ( !jQuery.acceptData( elem ) ) { return; } var privateCache, thisCache, ret, internalKey = jQuery.expando, getByName = typeof name === "string", // We have to handle DOM nodes and JS objects differently because IE6-7 // can't GC object references properly across the DOM-JS boundary isNode = elem.nodeType, // Only DOM nodes need the global jQuery cache; JS object data is // attached directly to the object so GC can occur automatically cache = isNode ? jQuery.cache : elem, // Only defining an ID for JS objects if its cache already exists allows // the code to shortcut on the same path as a DOM node with no cache id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey, isEvents = name === "events"; // Avoid doing any more work than we need to when trying to get data on an // object that has no data at all if ( (!id || !cache[id] || (!isEvents && !pvt && !cache[id].data)) && getByName && data === undefined ) { return; } if ( !id ) { // Only DOM nodes need a new unique ID for each element since their data // ends up in the global cache if ( isNode ) { elem[ internalKey ] = id = ++jQuery.uuid; } else { id = internalKey; } } if ( !cache[ id ] ) { cache[ id ] = {}; // Avoids exposing jQuery metadata on plain JS objects when the object // is serialized using JSON.stringify if ( !isNode ) { cache[ id ].toJSON = jQuery.noop; } } // An object can be passed to jQuery.data instead of a key/value pair; this gets // shallow copied over onto the existing cache if ( typeof name === "object" || typeof name === "function" ) { if ( pvt ) { cache[ id ] = jQuery.extend( cache[ id ], name ); } else { cache[ id ].data = jQuery.extend( cache[ id ].data, name ); } } privateCache = thisCache = cache[ id ]; // jQuery data() is stored in a separate object inside the object's internal data // cache in order to avoid key collisions between internal data and user-defined // data. if ( !pvt ) { if ( !thisCache.data ) { thisCache.data = {}; } thisCache = thisCache.data; } if ( data !== undefined ) { thisCache[ jQuery.camelCase( name ) ] = data; } // Users should not attempt to inspect the internal events object using jQuery.data, // it is undocumented and subject to change. But does anyone listen? No. if ( isEvents && !thisCache[ name ] ) { return privateCache.events; } // Check for both converted-to-camel and non-converted data property names // If a data property was specified if ( getByName ) { // First Try to find as-is property data ret = thisCache[ name ]; // Test for null|undefined property data if ( ret == null ) { // Try to find the camelCased property ret = thisCache[ jQuery.camelCase( name ) ]; } } else { ret = thisCache; } return ret; }, removeData: function( elem, name, pvt /* Internal Use Only */ ) { if ( !jQuery.acceptData( elem ) ) { return; } var thisCache, i, l, // Reference to internal data cache key internalKey = jQuery.expando, isNode = elem.nodeType, // See jQuery.data for more information cache = isNode ? jQuery.cache : elem, // See jQuery.data for more information id = isNode ? elem[ internalKey ] : internalKey; // If there is already no cache entry for this object, there is no // purpose in continuing if ( !cache[ id ] ) { return; } if ( name ) { thisCache = pvt ? cache[ id ] : cache[ id ].data; if ( thisCache ) { // Support array or space separated string names for data keys if ( !jQuery.isArray( name ) ) { // try the string as a key before any manipulation if ( name in thisCache ) { name = [ name ]; } else { // split the camel cased version by spaces unless a key with the spaces exists name = jQuery.camelCase( name ); if ( name in thisCache ) { name = [ name ]; } else { name = name.split( " " ); } } } for ( i = 0, l = name.length; i < l; i++ ) { delete thisCache[ name[i] ]; } // If there is no data left in the cache, we want to continue // and let the cache object itself get destroyed if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) { return; } } } // See jQuery.data for more information if ( !pvt ) { delete cache[ id ].data; // Don't destroy the parent cache unless the internal data object // had been the only thing left in it if ( !isEmptyDataObject(cache[ id ]) ) { return; } } // Browsers that fail expando deletion also refuse to delete expandos on // the window, but it will allow it on all other JS objects; other browsers // don't care // Ensure that `cache` is not a window object #10080 if ( jQuery.support.deleteExpando || !cache.setInterval ) { delete cache[ id ]; } else { cache[ id ] = null; } // We destroyed the cache and need to eliminate the expando on the node to avoid // false lookups in the cache for entries that no longer exist if ( isNode ) { // IE does not allow us to delete expando properties from nodes, // nor does it have a removeAttribute function on Document nodes; // we must handle all of these cases if ( jQuery.support.deleteExpando ) { delete elem[ internalKey ]; } else if ( elem.removeAttribute ) { elem.removeAttribute( internalKey ); } else { elem[ internalKey ] = null; } } }, // For internal use only. _data: function( elem, name, data ) { return jQuery.data( elem, name, data, true ); }, // A method for determining if a DOM node can handle the data expando acceptData: function( elem ) { if ( elem.nodeName ) { var match = jQuery.noData[ elem.nodeName.toLowerCase() ]; if ( match ) { return !(match === true || elem.getAttribute("classid") !== match); } } return true; } }); jQuery.fn.extend({ data: function( key, value ) { var parts, attr, name, data = null; if ( typeof key === "undefined" ) { if ( this.length ) { data = jQuery.data( this[0] ); if ( this[0].nodeType === 1 && !jQuery._data( this[0], "parsedAttrs" ) ) { attr = this[0].attributes; for ( var i = 0, l = attr.length; i < l; i++ ) { name = attr[i].name; if ( name.indexOf( "data-" ) === 0 ) { name = jQuery.camelCase( name.substring(5) ); dataAttr( this[0], name, data[ name ] ); } } jQuery._data( this[0], "parsedAttrs", true ); } } return data; } else if ( typeof key === "object" ) { return this.each(function() { jQuery.data( this, key ); }); } parts = key.split("."); parts[1] = parts[1] ? "." + parts[1] : ""; if ( value === undefined ) { data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); // Try to fetch any internally stored data first if ( data === undefined && this.length ) { data = jQuery.data( this[0], key ); data = dataAttr( this[0], key, data ); } return data === undefined && parts[1] ? this.data( parts[0] ) : data; } else { return this.each(function() { var self = jQuery( this ), args = [ parts[0], value ]; self.triggerHandler( "setData" + parts[1] + "!", args ); jQuery.data( this, key, value ); self.triggerHandler( "changeData" + parts[1] + "!", args ); }); } }, removeData: function( key ) { return this.each(function() { jQuery.removeData( this, key ); }); } }); function dataAttr( elem, key, data ) { // If nothing was found internally, try to fetch any // data from the HTML5 data-* attribute if ( data === undefined && elem.nodeType === 1 ) { var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); data = elem.getAttribute( name ); if ( typeof data === "string" ) { try { data = data === "true" ? true : data === "false" ? false : data === "null" ? null : jQuery.isNumeric( data ) ? parseFloat( data ) : rbrace.test( data ) ? jQuery.parseJSON( data ) : data; } catch( e ) {} // Make sure we set the data so it isn't changed later jQuery.data( elem, key, data ); } else { data = undefined; } } return data; } // checks a cache object for emptiness function isEmptyDataObject( obj ) { for ( var name in obj ) { // if the public data object is empty, the private is still empty if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { continue; } if ( name !== "toJSON" ) { return false; } } return true; } function handleQueueMarkDefer( elem, type, src ) { var deferDataKey = type + "defer", queueDataKey = type + "queue", markDataKey = type + "mark", defer = jQuery._data( elem, deferDataKey ); if ( defer && ( src === "queue" || !jQuery._data(elem, queueDataKey) ) && ( src === "mark" || !jQuery._data(elem, markDataKey) ) ) { // Give room for hard-coded callbacks to fire first // and eventually mark/queue something else on the element setTimeout( function() { if ( !jQuery._data( elem, queueDataKey ) && !jQuery._data( elem, markDataKey ) ) { jQuery.removeData( elem, deferDataKey, true ); defer.fire(); } }, 0 ); } } jQuery.extend({ _mark: function( elem, type ) { if ( elem ) { type = ( type || "fx" ) + "mark"; jQuery._data( elem, type, (jQuery._data( elem, type ) || 0) + 1 ); } }, _unmark: function( force, elem, type ) { if ( force !== true ) { type = elem; elem = force; force = false; } if ( elem ) { type = type || "fx"; var key = type + "mark", count = force ? 0 : ( (jQuery._data( elem, key ) || 1) - 1 ); if ( count ) { jQuery._data( elem, key, count ); } else { jQuery.removeData( elem, key, true ); handleQueueMarkDefer( elem, type, "mark" ); } } }, queue: function( elem, type, data ) { var q; if ( elem ) { type = ( type || "fx" ) + "queue"; q = jQuery._data( elem, type ); // Speed up dequeue by getting out quickly if this is just a lookup if ( data ) { if ( !q || jQuery.isArray(data) ) { q = jQuery._data( elem, type, jQuery.makeArray(data) ); } else { q.push( data ); } } return q || []; } }, dequeue: function( elem, type ) { type = type || "fx"; var queue = jQuery.queue( elem, type ), fn = queue.shift(), hooks = {}; // If the fx queue is dequeued, always remove the progress sentinel if ( fn === "inprogress" ) { fn = queue.shift(); } if ( fn ) { // Add a progress sentinel to prevent the fx queue from being // automatically dequeued if ( type === "fx" ) { queue.unshift( "inprogress" ); } jQuery._data( elem, type + ".run", hooks ); fn.call( elem, function() { jQuery.dequeue( elem, type ); }, hooks ); } if ( !queue.length ) { jQuery.removeData( elem, type + "queue " + type + ".run", true ); handleQueueMarkDefer( elem, type, "queue" ); } } }); jQuery.fn.extend({ queue: function( type, data ) { if ( typeof type !== "string" ) { data = type; type = "fx"; } if ( data === undefined ) { return jQuery.queue( this[0], type ); } return this.each(function() { var queue = jQuery.queue( this, type, data ); if ( type === "fx" && queue[0] !== "inprogress" ) { jQuery.dequeue( this, type ); } }); }, dequeue: function( type ) { return this.each(function() { jQuery.dequeue( this, type ); }); }, // Based off of the plugin by Clint Helfers, with permission. // http://blindsignals.com/index.php/2009/07/jquery-delay/ delay: function( time, type ) { time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; type = type || "fx"; return this.queue( type, function( next, hooks ) { var timeout = setTimeout( next, time ); hooks.stop = function() { clearTimeout( timeout ); }; }); }, clearQueue: function( type ) { return this.queue( type || "fx", [] ); }, // Get a promise resolved when queues of a certain type // are emptied (fx is the type by default) promise: function( type, object ) { if ( typeof type !== "string" ) { object = type; type = undefined; } type = type || "fx"; var defer = jQuery.Deferred(), elements = this, i = elements.length, count = 1, deferDataKey = type + "defer", queueDataKey = type + "queue", markDataKey = type + "mark", tmp; function resolve() { if ( !( --count ) ) { defer.resolveWith( elements, [ elements ] ); } } while( i-- ) { if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) || ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) || jQuery.data( elements[ i ], markDataKey, undefined, true ) ) && jQuery.data( elements[ i ], deferDataKey, jQuery.Callbacks( "once memory" ), true ) )) { count++; tmp.add( resolve ); } } resolve(); return defer.promise(); } }); var rclass = /[\n\t\r]/g, rspace = /\s+/, rreturn = /\r/g, rtype = /^(?:button|input)$/i, rfocusable = /^(?:button|input|object|select|textarea)$/i, rclickable = /^a(?:rea)?$/i, rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, getSetAttribute = jQuery.support.getSetAttribute, nodeHook, boolHook, fixSpecified; jQuery.fn.extend({ attr: function( name, value ) { return jQuery.access( this, name, value, true, jQuery.attr ); }, removeAttr: function( name ) { return this.each(function() { jQuery.removeAttr( this, name ); }); }, prop: function( name, value ) { return jQuery.access( this, name, value, true, jQuery.prop ); }, removeProp: function( name ) { name = jQuery.propFix[ name ] || name; return this.each(function() { // try/catch handles cases where IE balks (such as removing a property on window) try { this[ name ] = undefined; delete this[ name ]; } catch( e ) {} }); }, addClass: function( value ) { var classNames, i, l, elem, setClass, c, cl; if ( jQuery.isFunction( value ) ) { return this.each(function( j ) { jQuery( this ).addClass( value.call(this, j, this.className) ); }); } if ( value && typeof value === "string" ) { classNames = value.split( rspace ); for ( i = 0, l = this.length; i < l; i++ ) { elem = this[ i ]; if ( elem.nodeType === 1 ) { if ( !elem.className && classNames.length === 1 ) { elem.className = value; } else { setClass = " " + elem.className + " "; for ( c = 0, cl = classNames.length; c < cl; c++ ) { if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) { setClass += classNames[ c ] + " "; } } elem.className = jQuery.trim( setClass ); } } } } return this; }, removeClass: function( value ) { var classNames, i, l, elem, className, c, cl; if ( jQuery.isFunction( value ) ) { return this.each(function( j ) { jQuery( this ).removeClass( value.call(this, j, this.className) ); }); } if ( (value && typeof value === "string") || value === undefined ) { classNames = ( value || "" ).split( rspace ); for ( i = 0, l = this.length; i < l; i++ ) { elem = this[ i ]; if ( elem.nodeType === 1 && elem.className ) { if ( value ) { className = (" " + elem.className + " ").replace( rclass, " " ); for ( c = 0, cl = classNames.length; c < cl; c++ ) { className = className.replace(" " + classNames[ c ] + " ", " "); } elem.className = jQuery.trim( className ); } else { elem.className = ""; } } } } return this; }, toggleClass: function( value, stateVal ) { var type = typeof value, isBool = typeof stateVal === "boolean"; if ( jQuery.isFunction( value ) ) { return this.each(function( i ) { jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); }); } return this.each(function() { if ( type === "string" ) { // toggle individual class names var className, i = 0, self = jQuery( this ), state = stateVal, classNames = value.split( rspace ); while ( (className = classNames[ i++ ]) ) { // check each className given, space seperated list state = isBool ? state : !self.hasClass( className ); self[ state ? "addClass" : "removeClass" ]( className ); } } else if ( type === "undefined" || type === "boolean" ) { if ( this.className ) { // store className if set jQuery._data( this, "__className__", this.className ); } // toggle whole className this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; } }); }, hasClass: function( selector ) { var className = " " + selector + " ", i = 0, l = this.length; for ( ; i < l; i++ ) { if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { return true; } } return false; }, val: function( value ) { var hooks, ret, isFunction, elem = this[0]; if ( !arguments.length ) { if ( elem ) { hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ]; if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { return ret; } ret = elem.value; return typeof ret === "string" ? // handle most common string cases ret.replace(rreturn, "") : // handle cases where value is null/undef or number ret == null ? "" : ret; } return; } isFunction = jQuery.isFunction( value ); return this.each(function( i ) { var self = jQuery(this), val; if ( this.nodeType !== 1 ) { return; } if ( isFunction ) { val = value.call( this, i, self.val() ); } else { val = value; } // Treat null/undefined as ""; convert numbers to string if ( val == null ) { val = ""; } else if ( typeof val === "number" ) { val += ""; } else if ( jQuery.isArray( val ) ) { val = jQuery.map(val, function ( value ) { return value == null ? "" : value + ""; }); } hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ]; // If set returns undefined, fall back to normal setting if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { this.value = val; } }); } }); jQuery.extend({ valHooks: { option: { get: function( elem ) { // attributes.value is undefined in Blackberry 4.7 but // uses .value. See #6932 var val = elem.attributes.value; return !val || val.specified ? elem.value : elem.text; } }, select: { get: function( elem ) { var value, i, max, option, index = elem.selectedIndex, values = [], options = elem.options, one = elem.type === "select-one"; // Nothing was selected if ( index < 0 ) { return null; } // Loop through all the selected options i = one ? index : 0; max = one ? index + 1 : options.length; for ( ; i < max; i++ ) { option = options[ i ]; // Don't return options that are disabled or in a disabled optgroup if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { // Get the specific value for the option value = jQuery( option ).val(); // We don't need an array for one selects if ( one ) { return value; } // Multi-Selects return an array values.push( value ); } } // Fixes Bug #2551 -- select.val() broken in IE after form.reset() if ( one && !values.length && options.length ) { return jQuery( options[ index ] ).val(); } return values; }, set: function( elem, value ) { var values = jQuery.makeArray( value ); jQuery(elem).find("option").each(function() { this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; }); if ( !values.length ) { elem.selectedIndex = -1; } return values; } } }, attrFn: { val: true, css: true, html: true, text: true, data: true, width: true, height: true, offset: true }, attr: function( elem, name, value, pass ) { var ret, hooks, notxml, nType = elem.nodeType; // don't get/set attributes on text, comment and attribute nodes if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { return; } if ( pass && name in jQuery.attrFn ) { return jQuery( elem )[ name ]( value ); } // Fallback to prop when attributes are not supported if ( typeof elem.getAttribute === "undefined" ) { return jQuery.prop( elem, name, value ); } notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); // All attributes are lowercase // Grab necessary hook if one is defined if ( notxml ) { name = name.toLowerCase(); hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook ); } if ( value !== undefined ) { if ( value === null ) { jQuery.removeAttr( elem, name ); return; } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) { return ret; } else { elem.setAttribute( name, "" + value ); return value; } } else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) { return ret; } else { ret = elem.getAttribute( name ); // Non-existent attributes return null, we normalize to undefined return ret === null ? undefined : ret; } }, removeAttr: function( elem, value ) { var propName, attrNames, name, l, i = 0; if ( value && elem.nodeType === 1 ) { attrNames = value.toLowerCase().split( rspace ); l = attrNames.length; for ( ; i < l; i++ ) { name = attrNames[ i ]; if ( name ) { propName = jQuery.propFix[ name ] || name; // See #9699 for explanation of this approach (setting first, then removal) jQuery.attr( elem, name, "" ); elem.removeAttribute( getSetAttribute ? name : propName ); // Set corresponding property to false for boolean attributes if ( rboolean.test( name ) && propName in elem ) { elem[ propName ] = false; } } } } }, attrHooks: { type: { set: function( elem, value ) { // We can't allow the type property to be changed (since it causes problems in IE) if ( rtype.test( elem.nodeName ) && elem.parentNode ) { jQuery.error( "type property can't be changed" ); } else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { // Setting the type on a radio button after the value resets the value in IE6-9 // Reset value to it's default in case type is set after value // This is for element creation var val = elem.value; elem.setAttribute( "type", value ); if ( val ) { elem.value = val; } return value; } } }, // Use the value property for back compat // Use the nodeHook for button elements in IE6/7 (#1954) value: { get: function( elem, name ) { if ( nodeHook && jQuery.nodeName( elem, "button" ) ) { return nodeHook.get( elem, name ); } return name in elem ? elem.value : null; }, set: function( elem, value, name ) { if ( nodeHook && jQuery.nodeName( elem, "button" ) ) { return nodeHook.set( elem, value, name ); } // Does not return so that setAttribute is also used elem.value = value; } } }, propFix: { tabindex: "tabIndex", readonly: "readOnly", "for": "htmlFor", "class": "className", maxlength: "maxLength", cellspacing: "cellSpacing", cellpadding: "cellPadding", rowspan: "rowSpan", colspan: "colSpan", usemap: "useMap", frameborder: "frameBorder", contenteditable: "contentEditable" }, prop: function( elem, name, value ) { var ret, hooks, notxml, nType = elem.nodeType; // don't get/set properties on text, comment and attribute nodes if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { return; } notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); if ( notxml ) { // Fix name and attach hooks name = jQuery.propFix[ name ] || name; hooks = jQuery.propHooks[ name ]; } if ( value !== undefined ) { if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { return ret; } else { return ( elem[ name ] = value ); } } else { if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { return ret; } else { return elem[ name ]; } } }, propHooks: { tabIndex: { get: function( elem ) { // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ var attributeNode = elem.getAttributeNode("tabindex"); return attributeNode && attributeNode.specified ? parseInt( attributeNode.value, 10 ) : rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? 0 : undefined; } } } }); // Add the tabIndex propHook to attrHooks for back-compat (different case is intentional) jQuery.attrHooks.tabindex = jQuery.propHooks.tabIndex; // Hook for boolean attributes boolHook = { get: function( elem, name ) { // Align boolean attributes with corresponding properties // Fall back to attribute presence where some booleans are not supported var attrNode, property = jQuery.prop( elem, name ); return property === true || typeof property !== "boolean" && ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ? name.toLowerCase() : undefined; }, set: function( elem, value, name ) { var propName; if ( value === false ) { // Remove boolean attributes when set to false jQuery.removeAttr( elem, name ); } else { // value is true since we know at this point it's type boolean and not false // Set boolean attributes to the same name and set the DOM property propName = jQuery.propFix[ name ] || name; if ( propName in elem ) { // Only set the IDL specifically if it already exists on the element elem[ propName ] = true; } elem.setAttribute( name, name.toLowerCase() ); } return name; } }; // IE6/7 do not support getting/setting some attributes with get/setAttribute if ( !getSetAttribute ) { fixSpecified = { name: true, id: true }; // Use this for any attribute in IE6/7 // This fixes almost every IE6/7 issue nodeHook = jQuery.valHooks.button = { get: function( elem, name ) { var ret; ret = elem.getAttributeNode( name ); return ret && ( fixSpecified[ name ] ? ret.nodeValue !== "" : ret.specified ) ? ret.nodeValue : undefined; }, set: function( elem, value, name ) { // Set the existing or create a new attribute node var ret = elem.getAttributeNode( name ); if ( !ret ) { ret = document.createAttribute( name ); elem.setAttributeNode( ret ); } return ( ret.nodeValue = value + "" ); } }; // Apply the nodeHook to tabindex jQuery.attrHooks.tabindex.set = nodeHook.set; // Set width and height to auto instead of 0 on empty string( Bug #8150 ) // This is for removals jQuery.each([ "width", "height" ], function( i, name ) { jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { set: function( elem, value ) { if ( value === "" ) { elem.setAttribute( name, "auto" ); return value; } } }); }); // Set contenteditable to false on removals(#10429) // Setting to empty string throws an error as an invalid value jQuery.attrHooks.contenteditable = { get: nodeHook.get, set: function( elem, value, name ) { if ( value === "" ) { value = "false"; } nodeHook.set( elem, value, name ); } }; } // Some attributes require a special call on IE if ( !jQuery.support.hrefNormalized ) { jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { get: function( elem ) { var ret = elem.getAttribute( name, 2 ); return ret === null ? undefined : ret; } }); }); } if ( !jQuery.support.style ) { jQuery.attrHooks.style = { get: function( elem ) { // Return undefined in the case of empty string // Normalize to lowercase since IE uppercases css property names return elem.style.cssText.toLowerCase() || undefined; }, set: function( elem, value ) { return ( elem.style.cssText = "" + value ); } }; } // Safari mis-reports the default selected property of an option // Accessing the parent's selectedIndex property fixes it if ( !jQuery.support.optSelected ) { jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { get: function( elem ) { var parent = elem.parentNode; if ( parent ) { parent.selectedIndex; // Make sure that it also works with optgroups, see #5701 if ( parent.parentNode ) { parent.parentNode.selectedIndex; } } return null; } }); } // IE6/7 call enctype encoding if ( !jQuery.support.enctype ) { jQuery.propFix.enctype = "encoding"; } // Radios and checkboxes getter/setter if ( !jQuery.support.checkOn ) { jQuery.each([ "radio", "checkbox" ], function() { jQuery.valHooks[ this ] = { get: function( elem ) { // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified return elem.getAttribute("value") === null ? "on" : elem.value; } }; }); } jQuery.each([ "radio", "checkbox" ], function() { jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { set: function( elem, value ) { if ( jQuery.isArray( value ) ) { return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); } } }); }); var rformElems = /^(?:textarea|input|select)$/i, rtypenamespace = /^([^\.]*)?(?:\.(.+))?$/, rhoverHack = /\bhover(\.\S+)?\b/, rkeyEvent = /^key/, rmouseEvent = /^(?:mouse|contextmenu)|click/, rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, rquickIs = /^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/, quickParse = function( selector ) { var quick = rquickIs.exec( selector ); if ( quick ) { // 0 1 2 3 // [ _, tag, id, class ] quick[1] = ( quick[1] || "" ).toLowerCase(); quick[3] = quick[3] && new RegExp( "(?:^|\\s)" + quick[3] + "(?:\\s|$)" ); } return quick; }, quickIs = function( elem, m ) { var attrs = elem.attributes || {}; return ( (!m[1] || elem.nodeName.toLowerCase() === m[1]) && (!m[2] || (attrs.id || {}).value === m[2]) && (!m[3] || m[3].test( (attrs[ "class" ] || {}).value )) ); }, hoverHack = function( events ) { return jQuery.event.special.hover ? events : events.replace( rhoverHack, "mouseenter$1 mouseleave$1" ); }; /* * Helper functions for managing events -- not part of the public interface. * Props to Dean Edwards' addEvent library for many of the ideas. */ jQuery.event = { add: function( elem, types, handler, data, selector ) { var elemData, eventHandle, events, t, tns, type, namespaces, handleObj, handleObjIn, quick, handlers, special; // Don't attach events to noData or text/comment nodes (allow plain objects tho) if ( elem.nodeType === 3 || elem.nodeType === 8 || !types || !handler || !(elemData = jQuery._data( elem )) ) { return; } // Caller can pass in an object of custom data in lieu of the handler if ( handler.handler ) { handleObjIn = handler; handler = handleObjIn.handler; } // Make sure that the handler has a unique ID, used to find/remove it later if ( !handler.guid ) { handler.guid = jQuery.guid++; } // Init the element's event structure and main handler, if this is the first events = elemData.events; if ( !events ) { elemData.events = events = {}; } eventHandle = elemData.handle; if ( !eventHandle ) { elemData.handle = eventHandle = function( e ) { // Discard the second event of a jQuery.event.trigger() and // when an event is called after a page has unloaded return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ? jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : undefined; }; // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events eventHandle.elem = elem; } // Handle multiple events separated by a space // jQuery(...).bind("mouseover mouseout", fn); types = jQuery.trim( hoverHack(types) ).split( " " ); for ( t = 0; t < types.length; t++ ) { tns = rtypenamespace.exec( types[t] ) || []; type = tns[1]; namespaces = ( tns[2] || "" ).split( "." ).sort(); // If event changes its type, use the special event handlers for the changed type special = jQuery.event.special[ type ] || {}; // If selector defined, determine special event api type, otherwise given type type = ( selector ? special.delegateType : special.bindType ) || type; // Update special based on newly reset type special = jQuery.event.special[ type ] || {}; // handleObj is passed to all event handlers handleObj = jQuery.extend({ type: type, origType: tns[1], data: data, handler: handler, guid: handler.guid, selector: selector, quick: quickParse( selector ), namespace: namespaces.join(".") }, handleObjIn ); // Init the event handler queue if we're the first handlers = events[ type ]; if ( !handlers ) { handlers = events[ type ] = []; handlers.delegateCount = 0; // Only use addEventListener/attachEvent if the special events handler returns false if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { // Bind the global event handler to the element if ( elem.addEventListener ) { elem.addEventListener( type, eventHandle, false ); } else if ( elem.attachEvent ) { elem.attachEvent( "on" + type, eventHandle ); } } } if ( special.add ) { special.add.call( elem, handleObj ); if ( !handleObj.handler.guid ) { handleObj.handler.guid = handler.guid; } } // Add to the element's handler list, delegates in front if ( selector ) { handlers.splice( handlers.delegateCount++, 0, handleObj ); } else { handlers.push( handleObj ); } // Keep track of which events have ever been used, for event optimization jQuery.event.global[ type ] = true; } // Nullify elem to prevent memory leaks in IE elem = null; }, global: {}, // Detach an event or set of events from an element remove: function( elem, types, handler, selector, mappedTypes ) { var elemData = jQuery.hasData( elem ) && jQuery._data( elem ), t, tns, type, origType, namespaces, origCount, j, events, special, handle, eventType, handleObj; if ( !elemData || !(events = elemData.events) ) { return; } // Once for each type.namespace in types; type may be omitted types = jQuery.trim( hoverHack( types || "" ) ).split(" "); for ( t = 0; t < types.length; t++ ) { tns = rtypenamespace.exec( types[t] ) || []; type = origType = tns[1]; namespaces = tns[2]; // Unbind all events (on this namespace, if provided) for the element if ( !type ) { for ( type in events ) { jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); } continue; } special = jQuery.event.special[ type ] || {}; type = ( selector? special.delegateType : special.bindType ) || type; eventType = events[ type ] || []; origCount = eventType.length; namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.)?") + "(\\.|$)") : null; // Remove matching events for ( j = 0; j < eventType.length; j++ ) { handleObj = eventType[ j ]; if ( ( mappedTypes || origType === handleObj.origType ) && ( !handler || handler.guid === handleObj.guid ) && ( !namespaces || namespaces.test( handleObj.namespace ) ) && ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { eventType.splice( j--, 1 ); if ( handleObj.selector ) { eventType.delegateCount--; } if ( special.remove ) { special.remove.call( elem, handleObj ); } } } // Remove generic event handler if we removed something and no more handlers exist // (avoids potential for endless recursion during removal of special event handlers) if ( eventType.length === 0 && origCount !== eventType.length ) { if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) { jQuery.removeEvent( elem, type, elemData.handle ); } delete events[ type ]; } } // Remove the expando if it's no longer used if ( jQuery.isEmptyObject( events ) ) { handle = elemData.handle; if ( handle ) { handle.elem = null; } // removeData also checks for emptiness and clears the expando if empty // so use it instead of delete jQuery.removeData( elem, [ "events", "handle" ], true ); } }, // Events that are safe to short-circuit if no handlers are attached. // Native DOM events should not be added, they may have inline handlers. customEvent: { "getData": true, "setData": true, "changeData": true }, trigger: function( event, data, elem, onlyHandlers ) { // Don't do events on text and comment nodes if ( elem && (elem.nodeType === 3 || elem.nodeType === 8) ) { return; } // Event object or event type var type = event.type || event, namespaces = [], cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType; // focus/blur morphs to focusin/out; ensure we're not firing them right now if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { return; } if ( type.indexOf( "!" ) >= 0 ) { // Exclusive events trigger only for the exact event (no namespaces) type = type.slice(0, -1); exclusive = true; } if ( type.indexOf( "." ) >= 0 ) { // Namespaced trigger; create a regexp to match event type in handle() namespaces = type.split("."); type = namespaces.shift(); namespaces.sort(); } if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) { // No jQuery handlers for this event type, and it can't have inline handlers return; } // Caller can pass in an Event, Object, or just an event type string event = typeof event === "object" ? // jQuery.Event object event[ jQuery.expando ] ? event : // Object literal new jQuery.Event( type, event ) : // Just the event type (string) new jQuery.Event( type ); event.type = type; event.isTrigger = true; event.exclusive = exclusive; event.namespace = namespaces.join( "." ); event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)") : null; ontype = type.indexOf( ":" ) < 0 ? "on" + type : ""; // Handle a global trigger if ( !elem ) { // TODO: Stop taunting the data cache; remove global events and always attach to document cache = jQuery.cache; for ( i in cache ) { if ( cache[ i ].events && cache[ i ].events[ type ] ) { jQuery.event.trigger( event, data, cache[ i ].handle.elem, true ); } } return; } // Clean up the event in case it is being reused event.result = undefined; if ( !event.target ) { event.target = elem; } // Clone any incoming data and prepend the event, creating the handler arg list data = data != null ? jQuery.makeArray( data ) : []; data.unshift( event ); // Allow special events to draw outside the lines special = jQuery.event.special[ type ] || {}; if ( special.trigger && special.trigger.apply( elem, data ) === false ) { return; } // Determine event propagation path in advance, per W3C events spec (#9951) // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) eventPath = [[ elem, special.bindType || type ]]; if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { bubbleType = special.delegateType || type; cur = rfocusMorph.test( bubbleType + type ) ? elem : elem.parentNode; old = null; for ( ; cur; cur = cur.parentNode ) { eventPath.push([ cur, bubbleType ]); old = cur; } // Only add window if we got to document (e.g., not plain obj or detached DOM) if ( old && old === elem.ownerDocument ) { eventPath.push([ old.defaultView || old.parentWindow || window, bubbleType ]); } } // Fire handlers on the event path for ( i = 0; i < eventPath.length && !event.isPropagationStopped(); i++ ) { cur = eventPath[i][0]; event.type = eventPath[i][1]; handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); } // Note that this is a bare JS function and not a jQuery handler handle = ontype && cur[ ontype ]; if ( handle && jQuery.acceptData( cur ) && handle.apply( cur, data ) === false ) { event.preventDefault(); } } event.type = type; // If nobody prevented the default action, do it now if ( !onlyHandlers && !event.isDefaultPrevented() ) { if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) && !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { // Call a native DOM method on the target with the same name name as the event. // Can't use an .isFunction() check here because IE6/7 fails that test. // Don't do default actions on window, that's where global variables be (#6170) // IE<9 dies on focus/blur to hidden element (#1486) if ( ontype && elem[ type ] && ((type !== "focus" && type !== "blur") || event.target.offsetWidth !== 0) && !jQuery.isWindow( elem ) ) { // Don't re-trigger an onFOO event when we call its FOO() method old = elem[ ontype ]; if ( old ) { elem[ ontype ] = null; } // Prevent re-triggering of the same event, since we already bubbled it above jQuery.event.triggered = type; elem[ type ](); jQuery.event.triggered = undefined; if ( old ) { elem[ ontype ] = old; } } } } return event.result; }, dispatch: function( event ) { // Make a writable jQuery.Event from the native event object event = jQuery.event.fix( event || window.event ); var handlers = ( (jQuery._data( this, "events" ) || {} )[ event.type ] || []), delegateCount = handlers.delegateCount, args = [].slice.call( arguments, 0 ), run_all = !event.exclusive && !event.namespace, handlerQueue = [], i, j, cur, jqcur, ret, selMatch, matched, matches, handleObj, sel, related; // Use the fix-ed jQuery.Event rather than the (read-only) native event args[0] = event; event.delegateTarget = this; // Determine handlers that should run if there are delegated events // Avoid disabled elements in IE (#6911) and non-left-click bubbling in Firefox (#3861) if ( delegateCount && !event.target.disabled && !(event.button && event.type === "click") ) { // Pregenerate a single jQuery object for reuse with .is() jqcur = jQuery(this); jqcur.context = this.ownerDocument || this; for ( cur = event.target; cur != this; cur = cur.parentNode || this ) { selMatch = {}; matches = []; jqcur[0] = cur; for ( i = 0; i < delegateCount; i++ ) { handleObj = handlers[ i ]; sel = handleObj.selector; if ( selMatch[ sel ] === undefined ) { selMatch[ sel ] = ( handleObj.quick ? quickIs( cur, handleObj.quick ) : jqcur.is( sel ) ); } if ( selMatch[ sel ] ) { matches.push( handleObj ); } } if ( matches.length ) { handlerQueue.push({ elem: cur, matches: matches }); } } } // Add the remaining (directly-bound) handlers if ( handlers.length > delegateCount ) { handlerQueue.push({ elem: this, matches: handlers.slice( delegateCount ) }); } // Run delegates first; they may want to stop propagation beneath us for ( i = 0; i < handlerQueue.length && !event.isPropagationStopped(); i++ ) { matched = handlerQueue[ i ]; event.currentTarget = matched.elem; for ( j = 0; j < matched.matches.length && !event.isImmediatePropagationStopped(); j++ ) { handleObj = matched.matches[ j ]; // Triggered event must either 1) be non-exclusive and have no namespace, or // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). if ( run_all || (!event.namespace && !handleObj.namespace) || event.namespace_re && event.namespace_re.test( handleObj.namespace ) ) { event.data = handleObj.data; event.handleObj = handleObj; ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) .apply( matched.elem, args ); if ( ret !== undefined ) { event.result = ret; if ( ret === false ) { event.preventDefault(); event.stopPropagation(); } } } } } return event.result; }, // Includes some event props shared by KeyEvent and MouseEvent // *** attrChange attrName relatedNode srcElement are not normalized, non-W3C, deprecated, will be removed in 1.8 *** props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), fixHooks: {}, keyHooks: { props: "char charCode key keyCode".split(" "), filter: function( event, original ) { // Add which for key events if ( event.which == null ) { event.which = original.charCode != null ? original.charCode : original.keyCode; } return event; } }, mouseHooks: { props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), filter: function( event, original ) { var eventDoc, doc, body, button = original.button, fromElement = original.fromElement; // Calculate pageX/Y if missing and clientX/Y available if ( event.pageX == null && original.clientX != null ) { eventDoc = event.target.ownerDocument || document; doc = eventDoc.documentElement; body = eventDoc.body; event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); } // Add relatedTarget, if necessary if ( !event.relatedTarget && fromElement ) { event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; } // Add which for click: 1 === left; 2 === middle; 3 === right // Note: button is not normalized, so don't use it if ( !event.which && button !== undefined ) { event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); } return event; } }, fix: function( event ) { if ( event[ jQuery.expando ] ) { return event; } // Create a writable copy of the event object and normalize some properties var i, prop, originalEvent = event, fixHook = jQuery.event.fixHooks[ event.type ] || {}, copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; event = jQuery.Event( originalEvent ); for ( i = copy.length; i; ) { prop = copy[ --i ]; event[ prop ] = originalEvent[ prop ]; } // Fix target property, if necessary (#1925, IE 6/7/8 & Safari2) if ( !event.target ) { event.target = originalEvent.srcElement || document; } // Target should not be a text node (#504, Safari) if ( event.target.nodeType === 3 ) { event.target = event.target.parentNode; } // For mouse/key events; add metaKey if it's not there (#3368, IE6/7/8) if ( event.metaKey === undefined ) { event.metaKey = event.ctrlKey; } return fixHook.filter? fixHook.filter( event, originalEvent ) : event; }, special: { ready: { // Make sure the ready event is setup setup: jQuery.bindReady }, load: { // Prevent triggered image.load events from bubbling to window.load noBubble: true }, focus: { delegateType: "focusin" }, blur: { delegateType: "focusout" }, beforeunload: { setup: function( data, namespaces, eventHandle ) { // We only want to do this special case on windows if ( jQuery.isWindow( this ) ) { this.onbeforeunload = eventHandle; } }, teardown: function( namespaces, eventHandle ) { if ( this.onbeforeunload === eventHandle ) { this.onbeforeunload = null; } } } }, simulate: function( type, elem, event, bubble ) { // Piggyback on a donor event to simulate a different one. // Fake originalEvent to avoid donor's stopPropagation, but if the // simulated event prevents default then we do the same on the donor. var e = jQuery.extend( new jQuery.Event(), event, { type: type, isSimulated: true, originalEvent: {} } ); if ( bubble ) { jQuery.event.trigger( e, null, elem ); } else { jQuery.event.dispatch.call( elem, e ); } if ( e.isDefaultPrevented() ) { event.preventDefault(); } } }; // Some plugins are using, but it's undocumented/deprecated and will be removed. // The 1.7 special event interface should provide all the hooks needed now. jQuery.event.handle = jQuery.event.dispatch; jQuery.removeEvent = document.removeEventListener ? function( elem, type, handle ) { if ( elem.removeEventListener ) { elem.removeEventListener( type, handle, false ); } } : function( elem, type, handle ) { if ( elem.detachEvent ) { elem.detachEvent( "on" + type, handle ); } }; jQuery.Event = function( src, props ) { // Allow instantiation without the 'new' keyword if ( !(this instanceof jQuery.Event) ) { return new jQuery.Event( src, props ); } // Event object if ( src && src.type ) { this.originalEvent = src; this.type = src.type; // Events bubbling up the document may have been marked as prevented // by a handler lower down the tree; reflect the correct value. this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; // Event type } else { this.type = src; } // Put explicitly provided properties onto the event object if ( props ) { jQuery.extend( this, props ); } // Create a timestamp if incoming event doesn't have one this.timeStamp = src && src.timeStamp || jQuery.now(); // Mark it as fixed this[ jQuery.expando ] = true; }; function returnFalse() { return false; } function returnTrue() { return true; } // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html jQuery.Event.prototype = { preventDefault: function() { this.isDefaultPrevented = returnTrue; var e = this.originalEvent; if ( !e ) { return; } // if preventDefault exists run it on the original event if ( e.preventDefault ) { e.preventDefault(); // otherwise set the returnValue property of the original event to false (IE) } else { e.returnValue = false; } }, stopPropagation: function() { this.isPropagationStopped = returnTrue; var e = this.originalEvent; if ( !e ) { return; } // if stopPropagation exists run it on the original event if ( e.stopPropagation ) { e.stopPropagation(); } // otherwise set the cancelBubble property of the original event to true (IE) e.cancelBubble = true; }, stopImmediatePropagation: function() { this.isImmediatePropagationStopped = returnTrue; this.stopPropagation(); }, isDefaultPrevented: returnFalse, isPropagationStopped: returnFalse, isImmediatePropagationStopped: returnFalse }; // Create mouseenter/leave events using mouseover/out and event-time checks jQuery.each({ mouseenter: "mouseover", mouseleave: "mouseout" }, function( orig, fix ) { jQuery.event.special[ orig ] = { delegateType: fix, bindType: fix, handle: function( event ) { var target = this, related = event.relatedTarget, handleObj = event.handleObj, selector = handleObj.selector, ret; // For mousenter/leave call the handler if related is outside the target. // NB: No relatedTarget if the mouse left/entered the browser window if ( !related || (related !== target && !jQuery.contains( target, related )) ) { event.type = handleObj.origType; ret = handleObj.handler.apply( this, arguments ); event.type = fix; } return ret; } }; }); // IE submit delegation if ( !jQuery.support.submitBubbles ) { jQuery.event.special.submit = { setup: function() { // Only need this for delegated form submit events if ( jQuery.nodeName( this, "form" ) ) { return false; } // Lazy-add a submit handler when a descendant form may potentially be submitted jQuery.event.add( this, "click._submit keypress._submit", function( e ) { // Node name check avoids a VML-related crash in IE (#9807) var elem = e.target, form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; if ( form && !form._submit_attached ) { jQuery.event.add( form, "submit._submit", function( event ) { // If form was submitted by the user, bubble the event up the tree if ( this.parentNode && !event.isTrigger ) { jQuery.event.simulate( "submit", this.parentNode, event, true ); } }); form._submit_attached = true; } }); // return undefined since we don't need an event listener }, teardown: function() { // Only need this for delegated form submit events if ( jQuery.nodeName( this, "form" ) ) { return false; } // Remove delegated handlers; cleanData eventually reaps submit handlers attached above jQuery.event.remove( this, "._submit" ); } }; } // IE change delegation and checkbox/radio fix if ( !jQuery.support.changeBubbles ) { jQuery.event.special.change = { setup: function() { if ( rformElems.test( this.nodeName ) ) { // IE doesn't fire change on a check/radio until blur; trigger it on click // after a propertychange. Eat the blur-change in special.change.handle. // This still fires onchange a second time for check/radio after blur. if ( this.type === "checkbox" || this.type === "radio" ) { jQuery.event.add( this, "propertychange._change", function( event ) { if ( event.originalEvent.propertyName === "checked" ) { this._just_changed = true; } }); jQuery.event.add( this, "click._change", function( event ) { if ( this._just_changed && !event.isTrigger ) { this._just_changed = false; jQuery.event.simulate( "change", this, event, true ); } }); } return false; } // Delegated event; lazy-add a change handler on descendant inputs jQuery.event.add( this, "beforeactivate._change", function( e ) { var elem = e.target; if ( rformElems.test( elem.nodeName ) && !elem._change_attached ) { jQuery.event.add( elem, "change._change", function( event ) { if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { jQuery.event.simulate( "change", this.parentNode, event, true ); } }); elem._change_attached = true; } }); }, handle: function( event ) { var elem = event.target; // Swallow native change events from checkbox/radio, we already triggered them above if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { return event.handleObj.handler.apply( this, arguments ); } }, teardown: function() { jQuery.event.remove( this, "._change" ); return rformElems.test( this.nodeName ); } }; } // Create "bubbling" focus and blur events if ( !jQuery.support.focusinBubbles ) { jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { // Attach a single capturing handler while someone wants focusin/focusout var attaches = 0, handler = function( event ) { jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); }; jQuery.event.special[ fix ] = { setup: function() { if ( attaches++ === 0 ) { document.addEventListener( orig, handler, true ); } }, teardown: function() { if ( --attaches === 0 ) { document.removeEventListener( orig, handler, true ); } } }; }); } jQuery.fn.extend({ on: function( types, selector, data, fn, /*INTERNAL*/ one ) { var origFn, type; // Types can be a map of types/handlers if ( typeof types === "object" ) { // ( types-Object, selector, data ) if ( typeof selector !== "string" ) { // ( types-Object, data ) data = selector; selector = undefined; } for ( type in types ) { this.on( type, selector, data, types[ type ], one ); } return this; } if ( data == null && fn == null ) { // ( types, fn ) fn = selector; data = selector = undefined; } else if ( fn == null ) { if ( typeof selector === "string" ) { // ( types, selector, fn ) fn = data; data = undefined; } else { // ( types, data, fn ) fn = data; data = selector; selector = undefined; } } if ( fn === false ) { fn = returnFalse; } else if ( !fn ) { return this; } if ( one === 1 ) { origFn = fn; fn = function( event ) { // Can use an empty set, since event contains the info jQuery().off( event ); return origFn.apply( this, arguments ); }; // Use same guid so caller can remove using origFn fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); } return this.each( function() { jQuery.event.add( this, types, fn, data, selector ); }); }, one: function( types, selector, data, fn ) { return this.on.call( this, types, selector, data, fn, 1 ); }, off: function( types, selector, fn ) { if ( types && types.preventDefault && types.handleObj ) { // ( event ) dispatched jQuery.Event var handleObj = types.handleObj; jQuery( types.delegateTarget ).off( handleObj.namespace? handleObj.type + "." + handleObj.namespace : handleObj.type, handleObj.selector, handleObj.handler ); return this; } if ( typeof types === "object" ) { // ( types-object [, selector] ) for ( var type in types ) { this.off( type, selector, types[ type ] ); } return this; } if ( selector === false || typeof selector === "function" ) { // ( types [, fn] ) fn = selector; selector = undefined; } if ( fn === false ) { fn = returnFalse; } return this.each(function() { jQuery.event.remove( this, types, fn, selector ); }); }, bind: function( types, data, fn ) { return this.on( types, null, data, fn ); }, unbind: function( types, fn ) { return this.off( types, null, fn ); }, live: function( types, data, fn ) { jQuery( this.context ).on( types, this.selector, data, fn ); return this; }, die: function( types, fn ) { jQuery( this.context ).off( types, this.selector || "**", fn ); return this; }, delegate: function( selector, types, data, fn ) { return this.on( types, selector, data, fn ); }, undelegate: function( selector, types, fn ) { // ( namespace ) or ( selector, types [, fn] ) return arguments.length == 1? this.off( selector, "**" ) : this.off( types, selector, fn ); }, trigger: function( type, data ) { return this.each(function() { jQuery.event.trigger( type, data, this ); }); }, triggerHandler: function( type, data ) { if ( this[0] ) { return jQuery.event.trigger( type, data, this[0], true ); } }, toggle: function( fn ) { // Save reference to arguments for access in closure var args = arguments, guid = fn.guid || jQuery.guid++, i = 0, toggler = function( event ) { // Figure out which function to execute var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i; jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 ); // Make sure that clicks stop event.preventDefault(); // and execute the function return args[ lastToggle ].apply( this, arguments ) || false; }; // link all the functions, so any of them can unbind this click handler toggler.guid = guid; while ( i < args.length ) { args[ i++ ].guid = guid; } return this.click( toggler ); }, hover: function( fnOver, fnOut ) { return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); } }); jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { // Handle event binding jQuery.fn[ name ] = function( data, fn ) { if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; if ( jQuery.attrFn ) { jQuery.attrFn[ name ] = true; } if ( rkeyEvent.test( name ) ) { jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks; } if ( rmouseEvent.test( name ) ) { jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks; } }); /*! * Sizzle CSS Selector Engine * Copyright 2011, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * More information: http://sizzlejs.com/ */ (function(){ var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, expando = "sizcache" + (Math.random() + '').replace('.', ''), done = 0, toString = Object.prototype.toString, hasDuplicate = false, baseHasDuplicate = true, rBackslash = /\\/g, rReturn = /\r\n/g, rNonWord = /\W/; // Here we check if the JavaScript engine is using some sort of // optimization where it does not always call our comparision // function. If that is the case, discard the hasDuplicate value. // Thus far that includes Google Chrome. [0, 0].sort(function() { baseHasDuplicate = false; return 0; }); var Sizzle = function( selector, context, results, seed ) { results = results || []; context = context || document; var origContext = context; if ( context.nodeType !== 1 && context.nodeType !== 9 ) { return []; } if ( !selector || typeof selector !== "string" ) { return results; } var m, set, checkSet, extra, ret, cur, pop, i, prune = true, contextXML = Sizzle.isXML( context ), parts = [], soFar = selector; // Reset the position of the chunker regexp (start from head) do { chunker.exec( "" ); m = chunker.exec( soFar ); if ( m ) { soFar = m[3]; parts.push( m[1] ); if ( m[2] ) { extra = m[3]; break; } } } while ( m ); if ( parts.length > 1 && origPOS.exec( selector ) ) { if ( parts.length === 2 && Expr.relative[ parts[0] ] ) { set = posProcess( parts[0] + parts[1], context, seed ); } else { set = Expr.relative[ parts[0] ] ? [ context ] : Sizzle( parts.shift(), context ); while ( parts.length ) { selector = parts.shift(); if ( Expr.relative[ selector ] ) { selector += parts.shift(); } set = posProcess( selector, set, seed ); } } } else { // Take a shortcut and set the context if the root selector is an ID // (but not if it'll be faster if the inner selector is an ID) if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML && Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) { ret = Sizzle.find( parts.shift(), context, contextXML ); context = ret.expr ? Sizzle.filter( ret.expr, ret.set )[0] : ret.set[0]; } if ( context ) { ret = seed ? { expr: parts.pop(), set: makeArray(seed) } : Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML ); set = ret.expr ? Sizzle.filter( ret.expr, ret.set ) : ret.set; if ( parts.length > 0 ) { checkSet = makeArray( set ); } else { prune = false; } while ( parts.length ) { cur = parts.pop(); pop = cur; if ( !Expr.relative[ cur ] ) { cur = ""; } else { pop = parts.pop(); } if ( pop == null ) { pop = context; } Expr.relative[ cur ]( checkSet, pop, contextXML ); } } else { checkSet = parts = []; } } if ( !checkSet ) { checkSet = set; } if ( !checkSet ) { Sizzle.error( cur || selector ); } if ( toString.call(checkSet) === "[object Array]" ) { if ( !prune ) { results.push.apply( results, checkSet ); } else if ( context && context.nodeType === 1 ) { for ( i = 0; checkSet[i] != null; i++ ) { if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) { results.push( set[i] ); } } } else { for ( i = 0; checkSet[i] != null; i++ ) { if ( checkSet[i] && checkSet[i].nodeType === 1 ) { results.push( set[i] ); } } } } else { makeArray( checkSet, results ); } if ( extra ) { Sizzle( extra, origContext, results, seed ); Sizzle.uniqueSort( results ); } return results; }; Sizzle.uniqueSort = function( results ) { if ( sortOrder ) { hasDuplicate = baseHasDuplicate; results.sort( sortOrder ); if ( hasDuplicate ) { for ( var i = 1; i < results.length; i++ ) { if ( results[i] === results[ i - 1 ] ) { results.splice( i--, 1 ); } } } } return results; }; Sizzle.matches = function( expr, set ) { return Sizzle( expr, null, null, set ); }; Sizzle.matchesSelector = function( node, expr ) { return Sizzle( expr, null, null, [node] ).length > 0; }; Sizzle.find = function( expr, context, isXML ) { var set, i, len, match, type, left; if ( !expr ) { return []; } for ( i = 0, len = Expr.order.length; i < len; i++ ) { type = Expr.order[i]; if ( (match = Expr.leftMatch[ type ].exec( expr )) ) { left = match[1]; match.splice( 1, 1 ); if ( left.substr( left.length - 1 ) !== "\\" ) { match[1] = (match[1] || "").replace( rBackslash, "" ); set = Expr.find[ type ]( match, context, isXML ); if ( set != null ) { expr = expr.replace( Expr.match[ type ], "" ); break; } } } } if ( !set ) { set = typeof context.getElementsByTagName !== "undefined" ? context.getElementsByTagName( "*" ) : []; } return { set: set, expr: expr }; }; Sizzle.filter = function( expr, set, inplace, not ) { var match, anyFound, type, found, item, filter, left, i, pass, old = expr, result = [], curLoop = set, isXMLFilter = set && set[0] && Sizzle.isXML( set[0] ); while ( expr && set.length ) { for ( type in Expr.filter ) { if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) { filter = Expr.filter[ type ]; left = match[1]; anyFound = false; match.splice(1,1); if ( left.substr( left.length - 1 ) === "\\" ) { continue; } if ( curLoop === result ) { result = []; } if ( Expr.preFilter[ type ] ) { match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter ); if ( !match ) { anyFound = found = true; } else if ( match === true ) { continue; } } if ( match ) { for ( i = 0; (item = curLoop[i]) != null; i++ ) { if ( item ) { found = filter( item, match, i, curLoop ); pass = not ^ found; if ( inplace && found != null ) { if ( pass ) { anyFound = true; } else { curLoop[i] = false; } } else if ( pass ) { result.push( item ); anyFound = true; } } } } if ( found !== undefined ) { if ( !inplace ) { curLoop = result; } expr = expr.replace( Expr.match[ type ], "" ); if ( !anyFound ) { return []; } break; } } } // Improper expression if ( expr === old ) { if ( anyFound == null ) { Sizzle.error( expr ); } else { break; } } old = expr; } return curLoop; }; Sizzle.error = function( msg ) { throw new Error( "Syntax error, unrecognized expression: " + msg ); }; /** * Utility function for retreiving the text value of an array of DOM nodes * @param {Array|Element} elem */ var getText = Sizzle.getText = function( elem ) { var i, node, nodeType = elem.nodeType, ret = ""; if ( nodeType ) { if ( nodeType === 1 || nodeType === 9 ) { // Use textContent || innerText for elements if ( typeof elem.textContent === 'string' ) { return elem.textContent; } else if ( typeof elem.innerText === 'string' ) { // Replace IE's carriage returns return elem.innerText.replace( rReturn, '' ); } else { // Traverse it's children for ( elem = elem.firstChild; elem; elem = elem.nextSibling) { ret += getText( elem ); } } } else if ( nodeType === 3 || nodeType === 4 ) { return elem.nodeValue; } } else { // If no nodeType, this is expected to be an array for ( i = 0; (node = elem[i]); i++ ) { // Do not traverse comment nodes if ( node.nodeType !== 8 ) { ret += getText( node ); } } } return ret; }; var Expr = Sizzle.selectors = { order: [ "ID", "NAME", "TAG" ], match: { ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ }, leftMatch: {}, attrMap: { "class": "className", "for": "htmlFor" }, attrHandle: { href: function( elem ) { return elem.getAttribute( "href" ); }, type: function( elem ) { return elem.getAttribute( "type" ); } }, relative: { "+": function(checkSet, part){ var isPartStr = typeof part === "string", isTag = isPartStr && !rNonWord.test( part ), isPartStrNotTag = isPartStr && !isTag; if ( isTag ) { part = part.toLowerCase(); } for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) { if ( (elem = checkSet[i]) ) { while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {} checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ? elem || false : elem === part; } } if ( isPartStrNotTag ) { Sizzle.filter( part, checkSet, true ); } }, ">": function( checkSet, part ) { var elem, isPartStr = typeof part === "string", i = 0, l = checkSet.length; if ( isPartStr && !rNonWord.test( part ) ) { part = part.toLowerCase(); for ( ; i < l; i++ ) { elem = checkSet[i]; if ( elem ) { var parent = elem.parentNode; checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false; } } } else { for ( ; i < l; i++ ) { elem = checkSet[i]; if ( elem ) { checkSet[i] = isPartStr ? elem.parentNode : elem.parentNode === part; } } if ( isPartStr ) { Sizzle.filter( part, checkSet, true ); } } }, "": function(checkSet, part, isXML){ var nodeCheck, doneName = done++, checkFn = dirCheck; if ( typeof part === "string" && !rNonWord.test( part ) ) { part = part.toLowerCase(); nodeCheck = part; checkFn = dirNodeCheck; } checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML ); }, "~": function( checkSet, part, isXML ) { var nodeCheck, doneName = done++, checkFn = dirCheck; if ( typeof part === "string" && !rNonWord.test( part ) ) { part = part.toLowerCase(); nodeCheck = part; checkFn = dirNodeCheck; } checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML ); } }, find: { ID: function( match, context, isXML ) { if ( typeof context.getElementById !== "undefined" && !isXML ) { var m = context.getElementById(match[1]); // Check parentNode to catch when Blackberry 4.6 returns // nodes that are no longer in the document #6963 return m && m.parentNode ? [m] : []; } }, NAME: function( match, context ) { if ( typeof context.getElementsByName !== "undefined" ) { var ret = [], results = context.getElementsByName( match[1] ); for ( var i = 0, l = results.length; i < l; i++ ) { if ( results[i].getAttribute("name") === match[1] ) { ret.push( results[i] ); } } return ret.length === 0 ? null : ret; } }, TAG: function( match, context ) { if ( typeof context.getElementsByTagName !== "undefined" ) { return context.getElementsByTagName( match[1] ); } } }, preFilter: { CLASS: function( match, curLoop, inplace, result, not, isXML ) { match = " " + match[1].replace( rBackslash, "" ) + " "; if ( isXML ) { return match; } for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { if ( elem ) { if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) { if ( !inplace ) { result.push( elem ); } } else if ( inplace ) { curLoop[i] = false; } } } return false; }, ID: function( match ) { return match[1].replace( rBackslash, "" ); }, TAG: function( match, curLoop ) { return match[1].replace( rBackslash, "" ).toLowerCase(); }, CHILD: function( match ) { if ( match[1] === "nth" ) { if ( !match[2] ) { Sizzle.error( match[0] ); } match[2] = match[2].replace(/^\+|\s*/g, ''); // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec( match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" || !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]); // calculate the numbers (first)n+(last) including if they are negative match[2] = (test[1] + (test[2] || 1)) - 0; match[3] = test[3] - 0; } else if ( match[2] ) { Sizzle.error( match[0] ); } // TODO: Move to normal caching system match[0] = done++; return match; }, ATTR: function( match, curLoop, inplace, result, not, isXML ) { var name = match[1] = match[1].replace( rBackslash, "" ); if ( !isXML && Expr.attrMap[name] ) { match[1] = Expr.attrMap[name]; } // Handle if an un-quoted value was used match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" ); if ( match[2] === "~=" ) { match[4] = " " + match[4] + " "; } return match; }, PSEUDO: function( match, curLoop, inplace, result, not ) { if ( match[1] === "not" ) { // If we're dealing with a complex expression, or a simple one if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) { match[3] = Sizzle(match[3], null, null, curLoop); } else { var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); if ( !inplace ) { result.push.apply( result, ret ); } return false; } } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { return true; } return match; }, POS: function( match ) { match.unshift( true ); return match; } }, filters: { enabled: function( elem ) { return elem.disabled === false && elem.type !== "hidden"; }, disabled: function( elem ) { return elem.disabled === true; }, checked: function( elem ) { return elem.checked === true; }, selected: function( elem ) { // Accessing this property makes selected-by-default // options in Safari work properly if ( elem.parentNode ) { elem.parentNode.selectedIndex; } return elem.selected === true; }, parent: function( elem ) { return !!elem.firstChild; }, empty: function( elem ) { return !elem.firstChild; }, has: function( elem, i, match ) { return !!Sizzle( match[3], elem ).length; }, header: function( elem ) { return (/h\d/i).test( elem.nodeName ); }, text: function( elem ) { var attr = elem.getAttribute( "type" ), type = elem.type; // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) // use getAttribute instead to test this case return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null ); }, radio: function( elem ) { return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type; }, checkbox: function( elem ) { return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type; }, file: function( elem ) { return elem.nodeName.toLowerCase() === "input" && "file" === elem.type; }, password: function( elem ) { return elem.nodeName.toLowerCase() === "input" && "password" === elem.type; }, submit: function( elem ) { var name = elem.nodeName.toLowerCase(); return (name === "input" || name === "button") && "submit" === elem.type; }, image: function( elem ) { return elem.nodeName.toLowerCase() === "input" && "image" === elem.type; }, reset: function( elem ) { var name = elem.nodeName.toLowerCase(); return (name === "input" || name === "button") && "reset" === elem.type; }, button: function( elem ) { var name = elem.nodeName.toLowerCase(); return name === "input" && "button" === elem.type || name === "button"; }, input: function( elem ) { return (/input|select|textarea|button/i).test( elem.nodeName ); }, focus: function( elem ) { return elem === elem.ownerDocument.activeElement; } }, setFilters: { first: function( elem, i ) { return i === 0; }, last: function( elem, i, match, array ) { return i === array.length - 1; }, even: function( elem, i ) { return i % 2 === 0; }, odd: function( elem, i ) { return i % 2 === 1; }, lt: function( elem, i, match ) { return i < match[3] - 0; }, gt: function( elem, i, match ) { return i > match[3] - 0; }, nth: function( elem, i, match ) { return match[3] - 0 === i; }, eq: function( elem, i, match ) { return match[3] - 0 === i; } }, filter: { PSEUDO: function( elem, match, i, array ) { var name = match[1], filter = Expr.filters[ name ]; if ( filter ) { return filter( elem, i, match, array ); } else if ( name === "contains" ) { return (elem.textContent || elem.innerText || getText([ elem ]) || "").indexOf(match[3]) >= 0; } else if ( name === "not" ) { var not = match[3]; for ( var j = 0, l = not.length; j < l; j++ ) { if ( not[j] === elem ) { return false; } } return true; } else { Sizzle.error( name ); } }, CHILD: function( elem, match ) { var first, last, doneName, parent, cache, count, diff, type = match[1], node = elem; switch ( type ) { case "only": case "first": while ( (node = node.previousSibling) ) { if ( node.nodeType === 1 ) { return false; } } if ( type === "first" ) { return true; } node = elem; case "last": while ( (node = node.nextSibling) ) { if ( node.nodeType === 1 ) { return false; } } return true; case "nth": first = match[2]; last = match[3]; if ( first === 1 && last === 0 ) { return true; } doneName = match[0]; parent = elem.parentNode; if ( parent && (parent[ expando ] !== doneName || !elem.nodeIndex) ) { count = 0; for ( node = parent.firstChild; node; node = node.nextSibling ) { if ( node.nodeType === 1 ) { node.nodeIndex = ++count; } } parent[ expando ] = doneName; } diff = elem.nodeIndex - last; if ( first === 0 ) { return diff === 0; } else { return ( diff % first === 0 && diff / first >= 0 ); } } }, ID: function( elem, match ) { return elem.nodeType === 1 && elem.getAttribute("id") === match; }, TAG: function( elem, match ) { return (match === "*" && elem.nodeType === 1) || !!elem.nodeName && elem.nodeName.toLowerCase() === match; }, CLASS: function( elem, match ) { return (" " + (elem.className || elem.getAttribute("class")) + " ") .indexOf( match ) > -1; }, ATTR: function( elem, match ) { var name = match[1], result = Sizzle.attr ? Sizzle.attr( elem, name ) : Expr.attrHandle[ name ] ? Expr.attrHandle[ name ]( elem ) : elem[ name ] != null ? elem[ name ] : elem.getAttribute( name ), value = result + "", type = match[2], check = match[4]; return result == null ? type === "!=" : !type && Sizzle.attr ? result != null : type === "=" ? value === check : type === "*=" ? value.indexOf(check) >= 0 : type === "~=" ? (" " + value + " ").indexOf(check) >= 0 : !check ? value && result !== false : type === "!=" ? value !== check : type === "^=" ? value.indexOf(check) === 0 : type === "$=" ? value.substr(value.length - check.length) === check : type === "|=" ? value === check || value.substr(0, check.length + 1) === check + "-" : false; }, POS: function( elem, match, i, array ) { var name = match[2], filter = Expr.setFilters[ name ]; if ( filter ) { return filter( elem, i, match, array ); } } } }; var origPOS = Expr.match.POS, fescape = function(all, num){ return "\\" + (num - 0 + 1); }; for ( var type in Expr.match ) { Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) ); Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) ); } var makeArray = function( array, results ) { array = Array.prototype.slice.call( array, 0 ); if ( results ) { results.push.apply( results, array ); return results; } return array; }; // Perform a simple check to determine if the browser is capable of // converting a NodeList to an array using builtin methods. // Also verifies that the returned array holds DOM nodes // (which is not the case in the Blackberry browser) try { Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType; // Provide a fallback method if it does not work } catch( e ) { makeArray = function( array, results ) { var i = 0, ret = results || []; if ( toString.call(array) === "[object Array]" ) { Array.prototype.push.apply( ret, array ); } else { if ( typeof array.length === "number" ) { for ( var l = array.length; i < l; i++ ) { ret.push( array[i] ); } } else { for ( ; array[i]; i++ ) { ret.push( array[i] ); } } } return ret; }; } var sortOrder, siblingCheck; if ( document.documentElement.compareDocumentPosition ) { sortOrder = function( a, b ) { if ( a === b ) { hasDuplicate = true; return 0; } if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) { return a.compareDocumentPosition ? -1 : 1; } return a.compareDocumentPosition(b) & 4 ? -1 : 1; }; } else { sortOrder = function( a, b ) { // The nodes are identical, we can exit early if ( a === b ) { hasDuplicate = true; return 0; // Fallback to using sourceIndex (in IE) if it's available on both nodes } else if ( a.sourceIndex && b.sourceIndex ) { return a.sourceIndex - b.sourceIndex; } var al, bl, ap = [], bp = [], aup = a.parentNode, bup = b.parentNode, cur = aup; // If the nodes are siblings (or identical) we can do a quick check if ( aup === bup ) { return siblingCheck( a, b ); // If no parents were found then the nodes are disconnected } else if ( !aup ) { return -1; } else if ( !bup ) { return 1; } // Otherwise they're somewhere else in the tree so we need // to build up a full list of the parentNodes for comparison while ( cur ) { ap.unshift( cur ); cur = cur.parentNode; } cur = bup; while ( cur ) { bp.unshift( cur ); cur = cur.parentNode; } al = ap.length; bl = bp.length; // Start walking down the tree looking for a discrepancy for ( var i = 0; i < al && i < bl; i++ ) { if ( ap[i] !== bp[i] ) { return siblingCheck( ap[i], bp[i] ); } } // We ended someplace up the tree so do a sibling check return i === al ? siblingCheck( a, bp[i], -1 ) : siblingCheck( ap[i], b, 1 ); }; siblingCheck = function( a, b, ret ) { if ( a === b ) { return ret; } var cur = a.nextSibling; while ( cur ) { if ( cur === b ) { return -1; } cur = cur.nextSibling; } return 1; }; } // Check to see if the browser returns elements by name when // querying by getElementById (and provide a workaround) (function(){ // We're going to inject a fake input element with a specified name var form = document.createElement("div"), id = "script" + (new Date()).getTime(), root = document.documentElement; form.innerHTML = ""; // Inject it into the root element, check its status, and remove it quickly root.insertBefore( form, root.firstChild ); // The workaround has to do additional checks after a getElementById // Which slows things down for other browsers (hence the branching) if ( document.getElementById( id ) ) { Expr.find.ID = function( match, context, isXML ) { if ( typeof context.getElementById !== "undefined" && !isXML ) { var m = context.getElementById(match[1]); return m ? m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? [m] : undefined : []; } }; Expr.filter.ID = function( elem, match ) { var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); return elem.nodeType === 1 && node && node.nodeValue === match; }; } root.removeChild( form ); // release memory in IE root = form = null; })(); (function(){ // Check to see if the browser returns only elements // when doing getElementsByTagName("*") // Create a fake element var div = document.createElement("div"); div.appendChild( document.createComment("") ); // Make sure no comments are found if ( div.getElementsByTagName("*").length > 0 ) { Expr.find.TAG = function( match, context ) { var results = context.getElementsByTagName( match[1] ); // Filter out possible comments if ( match[1] === "*" ) { var tmp = []; for ( var i = 0; results[i]; i++ ) { if ( results[i].nodeType === 1 ) { tmp.push( results[i] ); } } results = tmp; } return results; }; } // Check to see if an attribute returns normalized href attributes div.innerHTML = ""; if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" && div.firstChild.getAttribute("href") !== "#" ) { Expr.attrHandle.href = function( elem ) { return elem.getAttribute( "href", 2 ); }; } // release memory in IE div = null; })(); if ( document.querySelectorAll ) { (function(){ var oldSizzle = Sizzle, div = document.createElement("div"), id = "__sizzle__"; div.innerHTML = "

"; // Safari can't handle uppercase or unicode characters when // in quirks mode. if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { return; } Sizzle = function( query, context, extra, seed ) { context = context || document; // Only use querySelectorAll on non-XML documents // (ID selectors don't work in non-HTML documents) if ( !seed && !Sizzle.isXML(context) ) { // See if we find a selector to speed up var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query ); if ( match && (context.nodeType === 1 || context.nodeType === 9) ) { // Speed-up: Sizzle("TAG") if ( match[1] ) { return makeArray( context.getElementsByTagName( query ), extra ); // Speed-up: Sizzle(".CLASS") } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) { return makeArray( context.getElementsByClassName( match[2] ), extra ); } } if ( context.nodeType === 9 ) { // Speed-up: Sizzle("body") // The body element only exists once, optimize finding it if ( query === "body" && context.body ) { return makeArray( [ context.body ], extra ); // Speed-up: Sizzle("#ID") } else if ( match && match[3] ) { var elem = context.getElementById( match[3] ); // Check parentNode to catch when Blackberry 4.6 returns // nodes that are no longer in the document #6963 if ( elem && elem.parentNode ) { // Handle the case where IE and Opera return items // by name instead of ID if ( elem.id === match[3] ) { return makeArray( [ elem ], extra ); } } else { return makeArray( [], extra ); } } try { return makeArray( context.querySelectorAll(query), extra ); } catch(qsaError) {} // qSA works strangely on Element-rooted queries // We can work around this by specifying an extra ID on the root // and working up from there (Thanks to Andrew Dupont for the technique) // IE 8 doesn't work on object elements } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { var oldContext = context, old = context.getAttribute( "id" ), nid = old || id, hasParent = context.parentNode, relativeHierarchySelector = /^\s*[+~]/.test( query ); if ( !old ) { context.setAttribute( "id", nid ); } else { nid = nid.replace( /'/g, "\\$&" ); } if ( relativeHierarchySelector && hasParent ) { context = context.parentNode; } try { if ( !relativeHierarchySelector || hasParent ) { return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra ); } } catch(pseudoError) { } finally { if ( !old ) { oldContext.removeAttribute( "id" ); } } } } return oldSizzle(query, context, extra, seed); }; for ( var prop in oldSizzle ) { Sizzle[ prop ] = oldSizzle[ prop ]; } // release memory in IE div = null; })(); } (function(){ var html = document.documentElement, matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector; if ( matches ) { // Check to see if it's possible to do matchesSelector // on a disconnected node (IE 9 fails this) var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ), pseudoWorks = false; try { // This should fail with an exception // Gecko does not error, returns false instead matches.call( document.documentElement, "[test!='']:sizzle" ); } catch( pseudoError ) { pseudoWorks = true; } Sizzle.matchesSelector = function( node, expr ) { // Make sure that attribute selectors are quoted expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']"); if ( !Sizzle.isXML( node ) ) { try { if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) { var ret = matches.call( node, expr ); // IE 9's matchesSelector returns false on disconnected nodes if ( ret || !disconnectedMatch || // As well, disconnected nodes are said to be in a document // fragment in IE 9, so check for that node.document && node.document.nodeType !== 11 ) { return ret; } } } catch(e) {} } return Sizzle(expr, null, null, [node]).length > 0; }; } })(); (function(){ var div = document.createElement("div"); div.innerHTML = "
"; // Opera can't find a second classname (in 9.6) // Also, make sure that getElementsByClassName actually exists if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) { return; } // Safari caches class attributes, doesn't catch changes (in 3.2) div.lastChild.className = "e"; if ( div.getElementsByClassName("e").length === 1 ) { return; } Expr.order.splice(1, 0, "CLASS"); Expr.find.CLASS = function( match, context, isXML ) { if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { return context.getElementsByClassName(match[1]); } }; // release memory in IE div = null; })(); function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { for ( var i = 0, l = checkSet.length; i < l; i++ ) { var elem = checkSet[i]; if ( elem ) { var match = false; elem = elem[dir]; while ( elem ) { if ( elem[ expando ] === doneName ) { match = checkSet[elem.sizset]; break; } if ( elem.nodeType === 1 && !isXML ){ elem[ expando ] = doneName; elem.sizset = i; } if ( elem.nodeName.toLowerCase() === cur ) { match = elem; break; } elem = elem[dir]; } checkSet[i] = match; } } } function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { for ( var i = 0, l = checkSet.length; i < l; i++ ) { var elem = checkSet[i]; if ( elem ) { var match = false; elem = elem[dir]; while ( elem ) { if ( elem[ expando ] === doneName ) { match = checkSet[elem.sizset]; break; } if ( elem.nodeType === 1 ) { if ( !isXML ) { elem[ expando ] = doneName; elem.sizset = i; } if ( typeof cur !== "string" ) { if ( elem === cur ) { match = true; break; } } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) { match = elem; break; } } elem = elem[dir]; } checkSet[i] = match; } } } if ( document.documentElement.contains ) { Sizzle.contains = function( a, b ) { return a !== b && (a.contains ? a.contains(b) : true); }; } else if ( document.documentElement.compareDocumentPosition ) { Sizzle.contains = function( a, b ) { return !!(a.compareDocumentPosition(b) & 16); }; } else { Sizzle.contains = function() { return false; }; } Sizzle.isXML = function( elem ) { // documentElement is verified for cases where it doesn't yet exist // (such as loading iframes in IE - #4833) var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement; return documentElement ? documentElement.nodeName !== "HTML" : false; }; var posProcess = function( selector, context, seed ) { var match, tmpSet = [], later = "", root = context.nodeType ? [context] : context; // Position selectors must be done after the filter // And so must :not(positional) so we move all PSEUDOs to the end while ( (match = Expr.match.PSEUDO.exec( selector )) ) { later += match[0]; selector = selector.replace( Expr.match.PSEUDO, "" ); } selector = Expr.relative[selector] ? selector + "*" : selector; for ( var i = 0, l = root.length; i < l; i++ ) { Sizzle( selector, root[i], tmpSet, seed ); } return Sizzle.filter( later, tmpSet ); }; // EXPOSE // Override sizzle attribute retrieval Sizzle.attr = jQuery.attr; Sizzle.selectors.attrMap = {}; jQuery.find = Sizzle; jQuery.expr = Sizzle.selectors; jQuery.expr[":"] = jQuery.expr.filters; jQuery.unique = Sizzle.uniqueSort; jQuery.text = Sizzle.getText; jQuery.isXMLDoc = Sizzle.isXML; jQuery.contains = Sizzle.contains; })(); var runtil = /Until$/, rparentsprev = /^(?:parents|prevUntil|prevAll)/, // Note: This RegExp should be improved, or likely pulled from Sizzle rmultiselector = /,/, isSimple = /^.[^:#\[\.,]*$/, slice = Array.prototype.slice, POS = jQuery.expr.match.POS, // methods guaranteed to produce a unique set when starting from a unique set guaranteedUnique = { children: true, contents: true, next: true, prev: true }; jQuery.fn.extend({ find: function( selector ) { var self = this, i, l; if ( typeof selector !== "string" ) { return jQuery( selector ).filter(function() { for ( i = 0, l = self.length; i < l; i++ ) { if ( jQuery.contains( self[ i ], this ) ) { return true; } } }); } var ret = this.pushStack( "", "find", selector ), length, n, r; for ( i = 0, l = this.length; i < l; i++ ) { length = ret.length; jQuery.find( selector, this[i], ret ); if ( i > 0 ) { // Make sure that the results are unique for ( n = length; n < ret.length; n++ ) { for ( r = 0; r < length; r++ ) { if ( ret[r] === ret[n] ) { ret.splice(n--, 1); break; } } } } } return ret; }, has: function( target ) { var targets = jQuery( target ); return this.filter(function() { for ( var i = 0, l = targets.length; i < l; i++ ) { if ( jQuery.contains( this, targets[i] ) ) { return true; } } }); }, not: function( selector ) { return this.pushStack( winnow(this, selector, false), "not", selector); }, filter: function( selector ) { return this.pushStack( winnow(this, selector, true), "filter", selector ); }, is: function( selector ) { return !!selector && ( typeof selector === "string" ? // If this is a positional selector, check membership in the returned set // so $("p:first").is("p:last") won't return true for a doc with two "p". POS.test( selector ) ? jQuery( selector, this.context ).index( this[0] ) >= 0 : jQuery.filter( selector, this ).length > 0 : this.filter( selector ).length > 0 ); }, closest: function( selectors, context ) { var ret = [], i, l, cur = this[0]; // Array (deprecated as of jQuery 1.7) if ( jQuery.isArray( selectors ) ) { var level = 1; while ( cur && cur.ownerDocument && cur !== context ) { for ( i = 0; i < selectors.length; i++ ) { if ( jQuery( cur ).is( selectors[ i ] ) ) { ret.push({ selector: selectors[ i ], elem: cur, level: level }); } } cur = cur.parentNode; level++; } return ret; } // String var pos = POS.test( selectors ) || typeof selectors !== "string" ? jQuery( selectors, context || this.context ) : 0; for ( i = 0, l = this.length; i < l; i++ ) { cur = this[i]; while ( cur ) { if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { ret.push( cur ); break; } else { cur = cur.parentNode; if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) { break; } } } } ret = ret.length > 1 ? jQuery.unique( ret ) : ret; return this.pushStack( ret, "closest", selectors ); }, // Determine the position of an element within // the matched set of elements index: function( elem ) { // No argument, return index in parent if ( !elem ) { return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1; } // index in selector if ( typeof elem === "string" ) { return jQuery.inArray( this[0], jQuery( elem ) ); } // Locate the position of the desired element return jQuery.inArray( // If it receives a jQuery object, the first element is used elem.jquery ? elem[0] : elem, this ); }, add: function( selector, context ) { var set = typeof selector === "string" ? jQuery( selector, context ) : jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), all = jQuery.merge( this.get(), set ); return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? all : jQuery.unique( all ) ); }, andSelf: function() { return this.add( this.prevObject ); } }); // A painfully simple check to see if an element is disconnected // from a document (should be improved, where feasible). function isDisconnected( node ) { return !node || !node.parentNode || node.parentNode.nodeType === 11; } jQuery.each({ parent: function( elem ) { var parent = elem.parentNode; return parent && parent.nodeType !== 11 ? parent : null; }, parents: function( elem ) { return jQuery.dir( elem, "parentNode" ); }, parentsUntil: function( elem, i, until ) { return jQuery.dir( elem, "parentNode", until ); }, next: function( elem ) { return jQuery.nth( elem, 2, "nextSibling" ); }, prev: function( elem ) { return jQuery.nth( elem, 2, "previousSibling" ); }, nextAll: function( elem ) { return jQuery.dir( elem, "nextSibling" ); }, prevAll: function( elem ) { return jQuery.dir( elem, "previousSibling" ); }, nextUntil: function( elem, i, until ) { return jQuery.dir( elem, "nextSibling", until ); }, prevUntil: function( elem, i, until ) { return jQuery.dir( elem, "previousSibling", until ); }, siblings: function( elem ) { return jQuery.sibling( elem.parentNode.firstChild, elem ); }, children: function( elem ) { return jQuery.sibling( elem.firstChild ); }, contents: function( elem ) { return jQuery.nodeName( elem, "iframe" ) ? elem.contentDocument || elem.contentWindow.document : jQuery.makeArray( elem.childNodes ); } }, function( name, fn ) { jQuery.fn[ name ] = function( until, selector ) { var ret = jQuery.map( this, fn, until ); if ( !runtil.test( name ) ) { selector = until; } if ( selector && typeof selector === "string" ) { ret = jQuery.filter( selector, ret ); } ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { ret = ret.reverse(); } return this.pushStack( ret, name, slice.call( arguments ).join(",") ); }; }); jQuery.extend({ filter: function( expr, elems, not ) { if ( not ) { expr = ":not(" + expr + ")"; } return elems.length === 1 ? jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : jQuery.find.matches(expr, elems); }, dir: function( elem, dir, until ) { var matched = [], cur = elem[ dir ]; while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { if ( cur.nodeType === 1 ) { matched.push( cur ); } cur = cur[dir]; } return matched; }, nth: function( cur, result, dir, elem ) { result = result || 1; var num = 0; for ( ; cur; cur = cur[dir] ) { if ( cur.nodeType === 1 && ++num === result ) { break; } } return cur; }, sibling: function( n, elem ) { var r = []; for ( ; n; n = n.nextSibling ) { if ( n.nodeType === 1 && n !== elem ) { r.push( n ); } } return r; } }); // Implement the identical functionality for filter and not function winnow( elements, qualifier, keep ) { // Can't pass null or undefined to indexOf in Firefox 4 // Set to 0 to skip string check qualifier = qualifier || 0; if ( jQuery.isFunction( qualifier ) ) { return jQuery.grep(elements, function( elem, i ) { var retVal = !!qualifier.call( elem, i, elem ); return retVal === keep; }); } else if ( qualifier.nodeType ) { return jQuery.grep(elements, function( elem, i ) { return ( elem === qualifier ) === keep; }); } else if ( typeof qualifier === "string" ) { var filtered = jQuery.grep(elements, function( elem ) { return elem.nodeType === 1; }); if ( isSimple.test( qualifier ) ) { return jQuery.filter(qualifier, filtered, !keep); } else { qualifier = jQuery.filter( qualifier, filtered ); } } return jQuery.grep(elements, function( elem, i ) { return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep; }); } function createSafeFragment( document ) { var list = nodeNames.split( "|" ), safeFrag = document.createDocumentFragment(); if ( safeFrag.createElement ) { while ( list.length ) { safeFrag.createElement( list.pop() ); } } return safeFrag; } var nodeNames = "abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|" + "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, rleadingWhitespace = /^\s+/, rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, rtagName = /<([\w:]+)/, rtbody = /", "" ], legend: [ 1, "
", "
" ], thead: [ 1, "", "
" ], tr: [ 2, "", "
" ], td: [ 3, "", "
" ], col: [ 2, "", "
" ], area: [ 1, "", "" ], _default: [ 0, "", "" ] }, safeFragment = createSafeFragment( document ); wrapMap.optgroup = wrapMap.option; wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; wrapMap.th = wrapMap.td; // IE can't serialize and "); }; if (jQueryTmplVersion > 0) { jQuery['tmpl']['tag']['ko_code'] = { open: "__.push($1 || '');" }; jQuery['tmpl']['tag']['ko_with'] = { open: "with($1) {", close: "} " }; } }; ko.jqueryTmplTemplateEngine.prototype = new ko.templateEngine(); // Use this one by default *only if jquery.tmpl is referenced* var jqueryTmplTemplateEngineInstance = new ko.jqueryTmplTemplateEngine(); if (jqueryTmplTemplateEngineInstance.jQueryTmplVersion > 0) ko.setTemplateEngine(jqueryTmplTemplateEngineInstance); ko.exportSymbol('jqueryTmplTemplateEngine', ko.jqueryTmplTemplateEngine); })(); }); })(window,document,navigator); ================================================ FILE: OnlineStore.Web/Scripts/knockout-2.1.0.js ================================================ // Knockout JavaScript library v2.1.0 // (c) Steven Sanderson - http://knockoutjs.com/ // License: MIT (http://www.opensource.org/licenses/mit-license.php) (function(window,document,navigator,undefined){ function m(w){throw w;}var n=void 0,p=!0,s=null,t=!1;function A(w){return function(){return w}};function E(w){function B(b,c,d){d&&c!==a.k.r(b)&&a.k.S(b,c);c!==a.k.r(b)&&a.a.va(b,"change")}var a="undefined"!==typeof w?w:{};a.b=function(b,c){for(var d=b.split("."),f=a,g=0;g",c[0];);return 4a.a.j(c,b[e])&&c.push(b[e]);return c},T:function(a,b){for(var a=a||[],c=[], e=0,f=a.length;ea.length?t:a.substring(0,b.length)===b},eb:function(a,b){for(var c="return ("+a+")",e=0;e",""]||!d.indexOf("",""]||(!d.indexOf("",""]||[0,"",""];b="ignored
"+d[1]+b+d[2]+"
";for("function"==typeof window.innerShiv?c.appendChild(window.innerShiv(b)):c.innerHTML=b;d[0]--;)c=c.lastChild;c=a.a.L(c.lastChild.childNodes)}return c}; a.a.Y=function(b,c){a.a.ga(b);if(c!==s&&c!==n)if("string"!=typeof c&&(c=c.toString()),"undefined"!=typeof jQuery)jQuery(b).html(c);else for(var d=a.a.pa(c),f=0;f"},Va:function(a,b){var c=d[a];c===n&&m(Error("Couldn't find any memo with ID "+a+". Perhaps it's already been unmemoized."));try{return c.apply(s,b||[]),p}finally{delete d[a]}},Wa:function(b,d){var e=[];c(b,e);for(var h=0,j=e.length;hc;c++)b=b();return b})};a.toJSON=function(b,c,e){b=a.Ta(b);return a.a.sa(b,c,e)}})();a.b("toJS",a.Ta);a.b("toJSON",a.toJSON);(function(){a.k={r:function(b){switch(a.a.o(b)){case "option":return b.__ko__hasDomDataOptionValue__===p?a.a.f.get(b,a.c.options.oa):b.getAttribute("value");case "select":return 0<=b.selectedIndex?a.k.r(b.options[b.selectedIndex]):n;default:return b.value}},S:function(b,c){switch(a.a.o(b)){case "option":switch(typeof c){case "string":a.a.f.set(b,a.c.options.oa, n);"__ko__hasDomDataOptionValue__"in b&&delete b.__ko__hasDomDataOptionValue__;b.value=c;break;default:a.a.f.set(b,a.c.options.oa,c),b.__ko__hasDomDataOptionValue__=p,b.value="number"===typeof c?c:""}break;case "select":for(var d=b.options.length-1;0<=d;d--)if(a.k.r(b.options[d])==c){b.selectedIndex=d;break}break;default:if(c===s||c===n)c="";b.value=c}}}})();a.b("selectExtensions",a.k);a.b("selectExtensions.readValue",a.k.r);a.b("selectExtensions.writeValue",a.k.S);a.g=function(){function b(a,b){for(var d= s;a!=d;)d=a,a=a.replace(c,function(a,c){return b[c]});return a}var c=/\@ko_token_(\d+)\@/g,d=/^[\_$a-z][\_$a-z0-9]*(\[.*?\])*(\.[\_$a-z][\_$a-z0-9]*(\[.*?\])*)*$/i,f=["true","false"];return{D:[],W:function(c){var e=a.a.w(c);if(3>e.length)return[];"{"===e.charAt(0)&&(e=e.substring(1,e.length-1));for(var c=[],d=s,f,k=0;k$/: /^\s*ko\s+(.*\:.*)\s*$/,h=g?/^<\!--\s*\/ko\s*--\>$/:/^\s*\/ko\s*$/,j={ul:p,ol:p};a.e={C:{},childNodes:function(a){return b(a)?d(a):a.childNodes},ha:function(c){if(b(c))for(var c=a.e.childNodes(c),e=0,d=c.length;e"),t))}};a.c.uniqueName.gb=0;a.c.checked={init:function(b,c,d){a.a.n(b,"click",function(){var f;if("checkbox"==b.type)f=b.checked;else if("radio"==b.type&&b.checked)f=b.value;else return;var g=c();"checkbox"==b.type&&a.a.d(g)instanceof Array?(f=a.a.j(a.a.d(g),b.value), b.checked&&0>f?g.push(b.value):!b.checked&&0<=f&&g.splice(f,1)):a.g.$(g,d,"checked",f,p)});"radio"==b.type&&!b.name&&a.c.uniqueName.init(b,A(p))},update:function(b,c){var d=a.a.d(c());"checkbox"==b.type?b.checked=d instanceof Array?0<=a.a.j(d,b.value):d:"radio"==b.type&&(b.checked=b.value==d)}};var F={"class":"className","for":"htmlFor"};a.c.attr={update:function(b,c){var d=a.a.d(c())||{},f;for(f in d)if("string"==typeof f){var g=a.a.d(d[f]),e=g===t||g===s||g===n;e&&b.removeAttribute(f);8>=a.a.ja&& f in F?(f=F[f],e?b.removeAttribute(f):b[f]=g):e||b.setAttribute(f,g.toString())}}};a.c.hasfocus={init:function(b,c,d){function f(b){var e=c();a.g.$(e,d,"hasfocus",b,p)}a.a.n(b,"focus",function(){f(p)});a.a.n(b,"focusin",function(){f(p)});a.a.n(b,"blur",function(){f(t)});a.a.n(b,"focusout",function(){f(t)})},update:function(b,c){var d=a.a.d(c());d?b.focus():b.blur();a.a.va(b,d?"focusin":"focusout")}};a.c["with"]={p:function(b){return function(){var c=b();return{"if":c,data:c,templateEngine:a.q.K}}}, init:function(b,c){return a.c.template.init(b,a.c["with"].p(c))},update:function(b,c,d,f,g){return a.c.template.update(b,a.c["with"].p(c),d,f,g)}};a.g.D["with"]=t;a.e.C["with"]=p;a.c["if"]={p:function(b){return function(){return{"if":b(),templateEngine:a.q.K}}},init:function(b,c){return a.c.template.init(b,a.c["if"].p(c))},update:function(b,c,d,f,g){return a.c.template.update(b,a.c["if"].p(c),d,f,g)}};a.g.D["if"]=t;a.e.C["if"]=p;a.c.ifnot={p:function(b){return function(){return{ifnot:b(),templateEngine:a.q.K}}}, init:function(b,c){return a.c.template.init(b,a.c.ifnot.p(c))},update:function(b,c,d,f,g){return a.c.template.update(b,a.c.ifnot.p(c),d,f,g)}};a.g.D.ifnot=t;a.e.C.ifnot=p;a.c.foreach={p:function(b){return function(){var c=a.a.d(b());return!c||"number"==typeof c.length?{foreach:c,templateEngine:a.q.K}:{foreach:c.data,includeDestroyed:c.includeDestroyed,afterAdd:c.afterAdd,beforeRemove:c.beforeRemove,afterRender:c.afterRender,templateEngine:a.q.K}}},init:function(b,c){return a.c.template.init(b,a.c.foreach.p(c))}, update:function(b,c,d,f,g){return a.c.template.update(b,a.c.foreach.p(c),d,f,g)}};a.g.D.foreach=t;a.e.C.foreach=p;a.t=function(){};a.t.prototype.renderTemplateSource=function(){m(Error("Override renderTemplateSource"))};a.t.prototype.createJavaScriptEvaluatorBlock=function(){m(Error("Override createJavaScriptEvaluatorBlock"))};a.t.prototype.makeTemplateSource=function(b,c){if("string"==typeof b){var c=c||document,d=c.getElementById(b);d||m(Error("Cannot find template with ID "+b));return new a.l.i(d)}if(1== b.nodeType||8==b.nodeType)return new a.l.M(b);m(Error("Unknown template type: "+b))};a.t.prototype.renderTemplate=function(a,c,d,f){return this.renderTemplateSource(this.makeTemplateSource(a,f),c,d)};a.t.prototype.isTemplateRewritten=function(a,c){return this.allowTemplateRewriting===t||!(c&&c!=document)&&this.V&&this.V[a]?p:this.makeTemplateSource(a,c).data("isRewritten")};a.t.prototype.rewriteTemplate=function(a,c,d){var f=this.makeTemplateSource(a,d),c=c(f.text());f.text(c);f.data("isRewritten", p);!(d&&d!=document)&&"string"==typeof a&&(this.V=this.V||{},this.V[a]=p)};a.b("templateEngine",a.t);a.Z=function(){function b(b,c,e){for(var b=a.g.W(b),d=a.g.D,j=0;j/g;return{mb:function(b,c,e){c.isTemplateRewritten(b,e)||c.rewriteTemplate(b,function(b){return a.Z.zb(b,c)},e)},zb:function(a,g){return a.replace(c,function(a,c,d,f,i,l,q){return b(q,c,g)}).replace(d,function(a,c){return b(c,"<\!-- ko --\>",g)})},Za:function(b){return a.s.na(function(c, e){c.nextSibling&&a.ya(c.nextSibling,b,e)})}}}();a.b("templateRewriting",a.Z);a.b("templateRewriting.applyMemoizedBindingsToNextSibling",a.Z.Za);(function(){a.l={};a.l.i=function(a){this.i=a};a.l.i.prototype.text=function(){var b=a.a.o(this.i),b="script"===b?"text":"textarea"===b?"value":"innerHTML";if(0==arguments.length)return this.i[b];var c=arguments[0];"innerHTML"===b?a.a.Y(this.i,c):this.i[b]=c};a.l.i.prototype.data=function(b){if(1===arguments.length)return a.a.f.get(this.i,"templateSourceData_"+ b);a.a.f.set(this.i,"templateSourceData_"+b,arguments[1])};a.l.M=function(a){this.i=a};a.l.M.prototype=new a.l.i;a.l.M.prototype.text=function(){if(0==arguments.length){var b=a.a.f.get(this.i,"__ko_anon_template__")||{};b.ua===n&&b.da&&(b.ua=b.da.innerHTML);return b.ua}a.a.f.set(this.i,"__ko_anon_template__",{ua:arguments[0]})};a.l.i.prototype.nodes=function(){if(0==arguments.length)return(a.a.f.get(this.i,"__ko_anon_template__")||{}).da;a.a.f.set(this.i,"__ko_anon_template__",{da:arguments[0]})}; a.b("templateSources",a.l);a.b("templateSources.domElement",a.l.i);a.b("templateSources.anonymousTemplate",a.l.M)})();(function(){function b(b,c,d){for(var f,c=a.e.nextSibling(c);b&&(f=b)!==c;)b=a.e.nextSibling(f),(1===f.nodeType||8===f.nodeType)&&d(f)}function c(c,d){if(c.length){var f=c[0],g=c[c.length-1];b(f,g,function(b){a.xa(d,b)});b(f,g,function(b){a.s.Wa(b,[d])})}}function d(a){return a.nodeType?a:0a.a.ja)&&b.nodes?b.nodes():s; if(c)return a.a.L(c.cloneNode(p).childNodes);b=b.text();return a.a.pa(b)};a.q.K=new a.q;a.ra(a.q.K);a.b("nativeTemplateEngine",a.q);(function(){a.ma=function(){var a=this.vb=function(){if("undefined"==typeof jQuery||!jQuery.tmpl)return 0;try{if(0<=jQuery.tmpl.tag.tmpl.open.toString().indexOf("__"))return 2}catch(a){}return 1}();this.renderTemplateSource=function(b,f,g){g=g||{};2>a&&m(Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later."));var e=b.data("precompiled"); e||(e=b.text()||"",e=jQuery.template(s,"{{ko_with $item.koBindingContext}}"+e+"{{/ko_with}}"),b.data("precompiled",e));b=[f.$data];f=jQuery.extend({koBindingContext:f},g.templateOptions);f=jQuery.tmpl(e,b,f);f.appendTo(document.createElement("div"));jQuery.fragments={};return f};this.createJavaScriptEvaluatorBlock=function(a){return"{{ko_code ((function() { return "+a+" })()) }}"};this.addTemplate=function(a,b){document.write(" } ================================================ FILE: OnlineStore.Web/Views/Account/Manage.cshtml ================================================ @using OnlineStore.Web @model OnlineStore.Web.ViewModels.UserAccountModel @{ ViewBag.Title = "账户设置"; }

@Html.Image("User_32.png") @ViewBag.Title

@using (Html.BeginForm("Manage", "Account", FormMethod.Post, new { id = "UpdateAccountForm" })) { @Html.AntiForgeryToken() @Html.ValidationSummary(true) @Html.HiddenFor(model => model.Id)
@Html.LabelFor(model => model.UserName)
@Html.EditorFor(model => model.UserName) @Html.ValidationMessageFor(model => model.UserName)
@Html.LabelFor(model => model.Email)
@Html.EditorFor(model => model.Email) @Html.ValidationMessageFor(model => model.Email)
@Html.LabelFor(model => model.Contact)
@Html.EditorFor(model => model.Contact) @Html.ValidationMessageFor(model => model.Contact)
@Html.LabelFor(model => model.PhoneNumber)
@Html.EditorFor(model => model.PhoneNumber) @Html.ValidationMessageFor(model => model.PhoneNumber)

联系地址
@Html.LabelFor(model => model.ContactAddressCountry)
@Html.EditorFor(model => model.ContactAddressCountry) @Html.ValidationMessageFor(model => model.ContactAddressCountry)
@Html.LabelFor(model => model.ContactAddressState)
@Html.EditorFor(model => model.ContactAddressState) @Html.ValidationMessageFor(model => model.ContactAddressState)
@Html.LabelFor(model => model.ContactAddressCity)
@Html.EditorFor(model => model.ContactAddressCity) @Html.ValidationMessageFor(model => model.ContactAddressCity)
@Html.LabelFor(model => model.ContactAddressStreet)
@Html.EditorFor(model => model.ContactAddressStreet) @Html.ValidationMessageFor(model => model.ContactAddressStreet)
@Html.LabelFor(model => model.ContactAddressZip)
@Html.EditorFor(model => model.ContactAddressZip) @Html.ValidationMessageFor(model => model.ContactAddressZip)
将联系地址复制到收货地址
收货地址
@Html.LabelFor(model => model.DeliveryAddressCountry)
@Html.EditorFor(model => model.DeliveryAddressCountry) @Html.ValidationMessageFor(model => model.DeliveryAddressCountry)
@Html.LabelFor(model => model.DeliveryAddressState)
@Html.EditorFor(model => model.DeliveryAddressState) @Html.ValidationMessageFor(model => model.DeliveryAddressState)
@Html.LabelFor(model => model.DeliveryAddressCity)
@Html.EditorFor(model => model.DeliveryAddressCity) @Html.ValidationMessageFor(model => model.DeliveryAddressCity)
@Html.LabelFor(model => model.DeliveryAddressStreet)
@Html.EditorFor(model => model.DeliveryAddressStreet) @Html.ValidationMessageFor(model => model.DeliveryAddressStreet)
@Html.LabelFor(model => model.DeliveryAddressZip)
@Html.EditorFor(model => model.DeliveryAddressZip) @Html.ValidationMessageFor(model => model.DeliveryAddressZip)
}

@Html.ImageSubmitButton("UpdateAccountForm", Url.Content("~/Images/Save.png"), "保存", "保存更改")

@section scripts { } ================================================ FILE: OnlineStore.Web/Views/Account/Register.cshtml ================================================  @using OnlineStore.Web @model OnlineStore.Web.ViewModels.UserAccountModel @{ ViewBag.Title = "新用户注册"; }

@Html.Image("User_32.png") @ViewBag.Title

@using (Html.BeginForm("Register", "Account", FormMethod.Post, new { id = "RegisterAccountForm" })) { @Html.AntiForgeryToken() @Html.ValidationSummary(true)
@Html.LabelFor(model => model.UserName)
@Html.EditorFor(model => model.UserName) @Html.ValidationMessageFor(model => model.UserName)
@Html.LabelFor(model => model.Password)
@Html.EditorFor(model => model.Password) @Html.ValidationMessageFor(model => model.Password)
@Html.LabelFor(model => model.ConfirmPassword)
@Html.EditorFor(model => model.ConfirmPassword) @Html.ValidationMessageFor(model => model.ConfirmPassword)
@Html.LabelFor(model => model.Email)
@Html.EditorFor(model => model.Email) @Html.ValidationMessageFor(model => model.Email)
@Html.LabelFor(model => model.Contact)
@Html.EditorFor(model => model.Contact) @Html.ValidationMessageFor(model => model.Contact)
@Html.LabelFor(model => model.PhoneNumber)
@Html.EditorFor(model => model.PhoneNumber) @Html.ValidationMessageFor(model => model.PhoneNumber)

联系地址
@Html.LabelFor(model => model.ContactAddressCountry)
@Html.EditorFor(model => model.ContactAddressCountry) @Html.ValidationMessageFor(model => model.ContactAddressCountry)
@Html.LabelFor(model => model.ContactAddressState)
@Html.EditorFor(model => model.ContactAddressState) @Html.ValidationMessageFor(model => model.ContactAddressState)
@Html.LabelFor(model => model.ContactAddressCity)
@Html.EditorFor(model => model.ContactAddressCity) @Html.ValidationMessageFor(model => model.ContactAddressCity)
@Html.LabelFor(model => model.ContactAddressStreet)
@Html.EditorFor(model => model.ContactAddressStreet) @Html.ValidationMessageFor(model => model.ContactAddressStreet)
@Html.LabelFor(model => model.ContactAddressZip)
@Html.EditorFor(model => model.ContactAddressZip) @Html.ValidationMessageFor(model => model.ContactAddressZip)
将联系地址复制到收货地址
收货地址
@Html.LabelFor(model => model.DeliveryAddressCountry)
@Html.EditorFor(model => model.DeliveryAddressCountry) @Html.ValidationMessageFor(model => model.DeliveryAddressCountry)
@Html.LabelFor(model => model.DeliveryAddressState)
@Html.EditorFor(model => model.DeliveryAddressState) @Html.ValidationMessageFor(model => model.DeliveryAddressState)
@Html.LabelFor(model => model.DeliveryAddressCity)
@Html.EditorFor(model => model.DeliveryAddressCity) @Html.ValidationMessageFor(model => model.DeliveryAddressCity)
@Html.LabelFor(model => model.DeliveryAddressStreet)
@Html.EditorFor(model => model.DeliveryAddressStreet) @Html.ValidationMessageFor(model => model.DeliveryAddressStreet)
@Html.LabelFor(model => model.DeliveryAddressZip)
@Html.EditorFor(model => model.DeliveryAddressZip) @Html.ValidationMessageFor(model => model.DeliveryAddressZip)
}

@Html.ImageSubmitButton("RegisterAccountForm", Url.Content("~/Images/Save.png"), "注册", "立即注册")

@section scripts { } ================================================ FILE: OnlineStore.Web/Views/Admin/AddCategory.cshtml ================================================ @using OnlineStore.Web; @using OnlineStore.Web.ProductService; @model CategoryDto @{ ViewBag.Title = "添加商品分类"; }

@Html.Image("Category_32.png") @ViewBag.Title

@using (Html.BeginForm("AddCategory", "Admin", FormMethod.Post, new { id = "AddCategoryForm" })) { @Html.ValidationSummary(true)
@Html.LabelFor(model => model.NameText)
@Html.TextBoxFor(model => model.Name) @Html.ValidationMessageFor(model => model.NameText)
@Html.LabelFor(model => model.DescriptionText)
@Html.EditorFor(model => model.Description) @Html.ValidationMessageFor(model => model.DescriptionText)
}

@Html.ImageSubmitButton("AddCategoryForm", Url.Content("~/Images/Save.png"), "保存", "保存更改")   @Html.ImageActionLink(Url.Content("~/Images/Cancel.png"), "取消添加", "取消添加", "Categories", "Admin")

@section scripts { } ================================================ FILE: OnlineStore.Web/Views/Admin/AddProduct.cshtml ================================================ @using OnlineStore.Web; @using OnlineStore.Web.ProductService; @model ProductDto @{ ViewBag.Title = "添加商品信息"; }

@Html.Image("Product_32.png") @ViewBag.Title

@using (Html.BeginForm("AddProduct", "Admin", FormMethod.Post, new { id = "AddProductForm", enctype = "multipart/form-data" })) { @Html.ValidationSummary(true)
@Html.LabelFor(model => model.NameText)
@Html.EditorFor(model => model.Name) @Html.ValidationMessageFor(model => model.NameText)
@Html.LabelFor(model => model.DescriptionText)
@Html.EditorFor(model => model.Description) @Html.ValidationMessageFor(model => model.DescriptionText)
@Html.LabelFor(model => model.UnitPriceText)
@Html.EditorFor(model => model.UnitPrice) @Html.ValidationMessageFor(model => model.UnitPriceText)
@Html.LabelFor(model => model.Category.NameText)
@Html.DropDownListFor(model => model.Category.Id, (IEnumerable)ViewData["categories"])
@Html.LabelFor(model => model.ImageUrlText)
@Html.HiddenFor(model => model.ImageUrl, new { id = "productImageUrl" })
@Html.ProductImage("ProductImage.png", ImageSize.Medium, new { id = "productImage" })
@Html.LabelFor(model => model.IsNewText)
@Html.EditorFor(model => model.IsNew) @Html.ValidationMessageFor(model => model.IsNewText)
}

@Html.ImageSubmitButton("AddProductForm", Url.Content("~/Images/Save.png"), "保存", "保存更改")   @Html.ImageActionLink(Url.Content("~/Images/Cancel.png"), "取消编辑", "取消编辑", "Products", "Admin")

@section scripts { } ================================================ FILE: OnlineStore.Web/Views/Admin/AddRole.cshtml ================================================ @using OnlineStore.Web; @using OnlineStore.Web.UserService; @model RoleDto @{ ViewBag.Title = "添加账户角色"; }

@Html.Image("Role_32.png") @ViewBag.Title

@using (Html.BeginForm("AddRole", "Admin", FormMethod.Post, new { id = "AddRoleForm" })) { @Html.ValidationSummary(true)
@Html.LabelFor(model => model.Name)
@Html.EditorFor(model => model.Name) @Html.ValidationMessageFor(model => model.Name)
@Html.LabelFor(model => model.Description)
@Html.EditorFor(model => model.Description) @Html.ValidationMessageFor(model => model.Description)
}

@Html.ImageSubmitButton("AddRoleForm", Url.Content("~/Images/Save.png"), "保存", "保存更改")   @Html.ImageActionLink(Url.Content("~/Images/Cancel.png"), "取消编辑", "取消编辑", "Roles", "Admin")

@section scripts { } ================================================ FILE: OnlineStore.Web/Views/Admin/AddUserAccount.cshtml ================================================ @using OnlineStore.Web; @model OnlineStore.Web.ViewModels.UserAccountModel @{ ViewBag.Title = "添加用户账户"; }

@Html.Image("User_32.png") @ViewBag.Title

请注意:在此只能创建系统账户,客户账户的创建请使用系统的“注册”功能!

@using (Html.BeginForm("AddUserAccount", "Admin", FormMethod.Post, new { id = "AddUserAccountForm" })) { @Html.ValidationSummary(true)
@Html.LabelFor(model => model.UserName)
@Html.EditorFor(model => model.UserName) @Html.ValidationMessageFor(model => model.UserName)
@Html.LabelFor(model => model.Password)
@Html.EditorFor(model => model.Password) @Html.ValidationMessageFor(model => model.Password)
@Html.LabelFor(model => model.ConfirmPassword)
@Html.EditorFor(model => model.ConfirmPassword) @Html.ValidationMessageFor(model => model.ConfirmPassword)
@Html.LabelFor(model => model.Email)
@Html.EditorFor(model => model.Email) @Html.ValidationMessageFor(model => model.Email)
@Html.LabelFor(model => model.Role.Name)
@Html.DropDownListFor(model => model.Role.Id, (IEnumerable)ViewData["roles"])
@Html.LabelFor(model => model.IsDisabled)
@Html.EditorFor(model => model.IsDisabled) @Html.ValidationMessageFor(model => model.IsDisabled)
@Html.LabelFor(model => model.Contact)
@Html.EditorFor(model => model.Contact) @Html.ValidationMessageFor(model => model.Contact)
@Html.LabelFor(model => model.PhoneNumber)
@Html.EditorFor(model => model.PhoneNumber) @Html.ValidationMessageFor(model => model.PhoneNumber)

联系地址
@Html.LabelFor(model => model.ContactAddressCountry)
@Html.EditorFor(model => model.ContactAddressCountry) @Html.ValidationMessageFor(model => model.ContactAddressCountry)
@Html.LabelFor(model => model.ContactAddressState)
@Html.EditorFor(model => model.ContactAddressState) @Html.ValidationMessageFor(model => model.ContactAddressState)
@Html.LabelFor(model => model.ContactAddressCity)
@Html.EditorFor(model => model.ContactAddressCity) @Html.ValidationMessageFor(model => model.ContactAddressCity)
@Html.LabelFor(model => model.ContactAddressStreet)
@Html.EditorFor(model => model.ContactAddressStreet) @Html.ValidationMessageFor(model => model.ContactAddressStreet)
@Html.LabelFor(model => model.ContactAddressZip)
@Html.EditorFor(model => model.ContactAddressZip) @Html.ValidationMessageFor(model => model.ContactAddressZip)
将联系地址复制到收货地址
收货地址
@Html.LabelFor(model => model.DeliveryAddressCountry)
@Html.EditorFor(model => model.DeliveryAddressCountry) @Html.ValidationMessageFor(model => model.DeliveryAddressCountry)
@Html.LabelFor(model => model.DeliveryAddressState)
@Html.EditorFor(model => model.DeliveryAddressState) @Html.ValidationMessageFor(model => model.DeliveryAddressState)
@Html.LabelFor(model => model.DeliveryAddressCity)
@Html.EditorFor(model => model.DeliveryAddressCity) @Html.ValidationMessageFor(model => model.DeliveryAddressCity)
@Html.LabelFor(model => model.DeliveryAddressStreet)
@Html.EditorFor(model => model.DeliveryAddressStreet) @Html.ValidationMessageFor(model => model.DeliveryAddressStreet)
@Html.LabelFor(model => model.DeliveryAddressZip)
@Html.EditorFor(model => model.DeliveryAddressZip) @Html.ValidationMessageFor(model => model.DeliveryAddressZip)
}

@Html.ImageSubmitButton("AddUserAccountForm", Url.Content("~/Images/Save.png"), "保存", "保存更改")   @Html.ImageActionLink(Url.Content("~/Images/Cancel.png"), "取消编辑", "取消编辑", "UserAccounts", "Admin")

@section scripts { } ================================================ FILE: OnlineStore.Web/Views/Admin/Administration.cshtml ================================================ @using OnlineStore.Web; @{ ViewBag.Title = "站点管理"; }

@Html.Image("Admin_32.png") @ViewBag.Title

欢迎使用管理系统。请使用菜单栏目选择管理任务,对系统进行管理和设置。

================================================ FILE: OnlineStore.Web/Views/Admin/Categories.cshtml ================================================ @using OnlineStore.Web; @using OnlineStore.Web.ProductService; @model IEnumerable @{ ViewBag.Title = "商品分类管理"; }

@Html.Image("Category_32.png") @ViewBag.Title

请使用下面的工具按钮对商品分类进行增添、编辑或删除的管理操作。单击商品分类的名称同样可以打开该分类的编辑页面。

@if (Model.Any()) { var grid = new WebGrid(Model, defaultSort: "Name", selectionFieldName: "Id"); @grid.GetHtml(tableStyle:"webgrid", headerStyle:"webgrid-header", footerStyle:"webgrid-footer", rowStyle:"webgrid-row", alternatingRowStyle:"webgrid-alternating-row", columns: grid.Columns( grid.Column( format: @@Html.ActionLink((string)item.Name, "EditCategory", "Admin", new {id = item.Id}, null), columnName: "Name", header: "名称", canSort: true), grid.Column( columnName: "Description", header: "描述", canSort: false), grid.Column( style: "webgrid-toolicon", format: @@Html.ImageActionLink(Url.Content("/Images/Edit.png"), "编辑", "EditCategory", "Admin", new {id = item.Id}), header: "", canSort: false), grid.Column( style: "webgrid-toolicon", format: @@Html.ImageActionLink(Url.Content("/Images/Delete.png"), "删除", "DeleteCategory", "Admin", new { id = item.Id }, new { onclick = "return confirm('是否确定删除所选商品分类?');" }), header: "", canSort: false))) }

@Html.ImageActionLink(Url.Content("/Images/Add.png"), "添加", "添加商品分类", "AddCategory", "Admin")

================================================ FILE: OnlineStore.Web/Views/Admin/EditCategory.cshtml ================================================ @using OnlineStore.Web; @using OnlineStore.Web.ProductService; @model CategoryDto @{ ViewBag.Title = "编辑商品分类"; }

@Html.Image("Category_32.png") @ViewBag.Title

@using (Html.BeginForm("EditCategory", "Admin", FormMethod.Post, new { id="EditCategoryForm" })) { @Html.ValidationSummary(true) @Html.HiddenFor(model => model.Id)
@Html.LabelFor(model => model.Name)
@Html.EditorFor(model => model.Name) @Html.ValidationMessageFor(model => model.Name)
@Html.LabelFor(model => model.Description)
@Html.EditorFor(model => model.Description) @Html.ValidationMessageFor(model => model.Description)
}

@Html.ImageSubmitButton("EditCategoryForm", Url.Content("~/Images/Save.png"), "保存", "保存更改")   @Html.ImageActionLink(Url.Content("~/Images/Cancel.png"), "取消编辑", "取消编辑", "Categories", "Admin")

@section scripts { } ================================================ FILE: OnlineStore.Web/Views/Admin/EditProduct.cshtml ================================================ @using OnlineStore.Web; @using OnlineStore.Web.ProductService; @model ProductDto @{ ViewBag.Title = "编辑商品信息"; }

@Html.Image("Product_32.png") @ViewBag.Title

@using (Html.BeginForm("EditProduct", "Admin", FormMethod.Post, new { id = "EditProductForm", enctype = "multipart/form-data" })) { @Html.ValidationSummary(true) @Html.HiddenFor(model => model.Id)
@Html.LabelFor(model => model.Name)
@Html.EditorFor(model => model.Name) @Html.ValidationMessageFor(model => model.Name)
@Html.LabelFor(model => model.Description)
@Html.EditorFor(model => model.Description) @Html.ValidationMessageFor(model => model.Description)
@Html.LabelFor(model => model.UnitPrice)
@Html.EditorFor(model => model.UnitPrice) @Html.ValidationMessageFor(model => model.UnitPrice)
@Html.LabelFor(model=>model.Category.Name)
@Html.DropDownListFor(model => model.Category.Id, (IEnumerable)ViewData["categories"])
@Html.LabelFor(model => model.ImageUrl)
@Html.HiddenFor(model => model.ImageUrl, new { id = "productImageUrl" })
@Html.ProductImage(Model.ImageUrl, ImageSize.Medium, new { id = "productImage" })
@Html.LabelFor(model => model.IsNew)
@Html.EditorFor(model => model.IsNew) @Html.ValidationMessageFor(model => model.IsNew)
}

@Html.ImageSubmitButton("EditProductForm", Url.Content("~/Images/Save.png"), "保存", "保存更改")   @Html.ImageActionLink(Url.Content("~/Images/Cancel.png"), "取消编辑", "取消编辑", "Products", "Admin")

@section scripts { } ================================================ FILE: OnlineStore.Web/Views/Admin/EditRole.cshtml ================================================ @using OnlineStore.Web; @using OnlineStore.Web.UserService; @model RoleDto @{ ViewBag.Title = "编辑用户角色"; }

@Html.Image("Role_32.png") @ViewBag.Title

@using (Html.BeginForm("EditRole", "Admin", FormMethod.Post, new { id = "EditRoleForm"})) { @Html.ValidationSummary(true) @Html.HiddenFor(model => model.Id)
@Html.LabelFor(model => model.Name)
@Html.EditorFor(model => model.Name) @Html.ValidationMessageFor(model => model.Name)
@Html.LabelFor(model => model.Description)
@Html.EditorFor(model => model.Description) @Html.ValidationMessageFor(model => model.Description)
}

@Html.ImageSubmitButton("EditRoleForm", Url.Content("~/Images/Save.png"), "保存", "保存更改")   @Html.ImageActionLink(Url.Content("~/Images/Cancel.png"), "取消编辑", "取消编辑", "Roles", "Admin")

@section scripts { } ================================================ FILE: OnlineStore.Web/Views/Admin/EditUserAccount.cshtml ================================================ @using OnlineStore.Web; @model OnlineStore.Web.ViewModels.UserAccountModel @{ ViewBag.Title = "编辑用户账户"; }

@Html.Image("User_32.png") @ViewBag.Title

@using (Html.BeginForm("EditUserAccount", "Admin", FormMethod.Post, new { id = "EditUserAccountForm" })) { @Html.ValidationSummary(true) @Html.HiddenFor(model => model.Id)
@Html.LabelFor(model => model.UserName)
@Html.EditorFor(model => model.UserName) @Html.ValidationMessageFor(model => model.UserName)
@Html.LabelFor(model => model.Email)
@Html.EditorFor(model => model.Email) @Html.ValidationMessageFor(model => model.Email)
@Html.LabelFor(model => model.RoleStr)
@Html.DropDownListFor(model => model.Role.Id, (IEnumerable)ViewData["roles"])
@Html.LabelFor(model => model.IsDisabled)
@Html.EditorFor(model => model.IsDisabled) @Html.ValidationMessageFor(model => model.IsDisabled)
@Html.LabelFor(model => model.RegisteredDateStr)
@Html.TextBoxFor(model => model.RegisteredDateStr, new { disabled = true }) @Html.ValidationMessageFor(model => model.RegisteredDate)
@Html.LabelFor(model => model.LastLogonDateStr)
@Html.TextBoxFor(model => model.LastLogonDateStr, new { disabled = true }) @Html.ValidationMessageFor(model => model.LastLogonDate)
@Html.LabelFor(model => model.Contact)
@Html.EditorFor(model => model.Contact) @Html.ValidationMessageFor(model => model.Contact)
@Html.LabelFor(model => model.PhoneNumber)
@Html.EditorFor(model => model.PhoneNumber) @Html.ValidationMessageFor(model => model.PhoneNumber)

联系地址
@Html.LabelFor(model => model.ContactAddressCountry)
@Html.EditorFor(model => model.ContactAddressCountry) @Html.ValidationMessageFor(model => model.ContactAddressCountry)
@Html.LabelFor(model => model.ContactAddressState)
@Html.EditorFor(model => model.ContactAddressState) @Html.ValidationMessageFor(model => model.ContactAddressState)
@Html.LabelFor(model => model.ContactAddressCity)
@Html.EditorFor(model => model.ContactAddressCity) @Html.ValidationMessageFor(model => model.ContactAddressCity)
@Html.LabelFor(model => model.ContactAddressStreet)
@Html.EditorFor(model => model.ContactAddressStreet) @Html.ValidationMessageFor(model => model.ContactAddressStreet)
@Html.LabelFor(model => model.ContactAddressZip)
@Html.EditorFor(model => model.ContactAddressZip) @Html.ValidationMessageFor(model => model.ContactAddressZip)
将联系地址复制到收货地址
收货地址
@Html.LabelFor(model => model.DeliveryAddressCountry)
@Html.EditorFor(model => model.DeliveryAddressCountry) @Html.ValidationMessageFor(model => model.DeliveryAddressCountry)
@Html.LabelFor(model => model.DeliveryAddressState)
@Html.EditorFor(model => model.DeliveryAddressState) @Html.ValidationMessageFor(model => model.DeliveryAddressState)
@Html.LabelFor(model => model.DeliveryAddressCity)
@Html.EditorFor(model => model.DeliveryAddressCity) @Html.ValidationMessageFor(model => model.DeliveryAddressCity)
@Html.LabelFor(model => model.DeliveryAddressStreet)
@Html.EditorFor(model => model.DeliveryAddressStreet) @Html.ValidationMessageFor(model => model.DeliveryAddressStreet)
@Html.LabelFor(model => model.DeliveryAddressZip)
@Html.EditorFor(model => model.DeliveryAddressZip) @Html.ValidationMessageFor(model => model.DeliveryAddressZip)
}

@Html.ImageSubmitButton("EditUserAccountForm", Url.Content("~/Images/Save.png"), "保存", "保存更改")   @Html.ImageActionLink(Url.Content("~/Images/Cancel.png"), "取消编辑", "取消编辑", "UserAccounts", "Admin")

@section scripts { } ================================================ FILE: OnlineStore.Web/Views/Admin/Order.cshtml ================================================ @using OnlineStore.Web.OrderService; @using OnlineStore.Web; @model OrderDto @{ ViewBag.Title = "订单详细信息"; }

@Html.Image("SalesOrder_32.png") @ViewBag.Title

订单编号: @Model.Id.ToUpper()
客户编号: @Model.UserId.ToUpper()
客户名称: @Model.UserName
收货地址: @Model.UserAddressZip, @Model.UserAddressStreet
@Model.UserAddressCity, @Model.UserAddressState, @Model.UserAddressCountry
联系人: @Model.UserContact
联系电话: @Model.UserPhone
电子邮件: @Model.UserEmail
创建日期: @Model.CreatedDateText
发货日期: @Model.DispatchedDateText
收货日期: @Model.DeliveredDateText
订单状态: @Model.StatusText @if (Model.Status == OrderStatusDto.Paid || Model.Status == OrderStatusDto.Picked) { @Html.ActionLink("发货", "DispatchOrder", "Admin", new { id = Model.Id }, new { id = "blue1", onclick = "return confirm('是否确认发货?');" }); }

订单明细

@foreach (var item in Model.OrderItems) { }
  名称 单价 数量 总价
@Html.ProductImage(item.Product.ImageUrl, ImageSize.Small) @Html.ActionLink(item.Product.Name, "ProductDetail", "Home", new { id = item.Product.Id }, null) @string.Format("{0:N2} 元", item.Product.UnitPrice) @string.Format("{0:##,#}", item.Quantity) @string.Format("{0:N2} 元", item.ItemAmount)
  总计   @string.Format("{0:##,#}", Model.OrderItems.Sum(i => i.Quantity)) @string.Format("{0:N2} 元", Model.Subtotal)

@Html.ImageActionLink(Url.Content("~/Images/Cancel.png"), "返回所有订单", "返回所有订单", "SalesOrders", "Admin")
================================================ FILE: OnlineStore.Web/Views/Admin/Orders.cshtml ================================================ @using OnlineStore.Web; @using OnlineStore.Web.OrderService; @model IEnumerable @{ ViewBag.Title = "销售订单管理"; }

@Html.Image("SalesOrder_32.png") @ViewBag.Title

@if (Model.Any()) { var grid = new WebGrid(Model, defaultSort: "DateCreated", canSort: false, selectionFieldName: "Id"); @grid.GetHtml(tableStyle: "webgrid", headerStyle: "webgrid-header", footerStyle: "webgrid-footer", rowStyle: "webgrid-row", alternatingRowStyle: "webgrid-alternating-row", columns: grid.Columns( grid.Column( style: "webgrid-guid", format: @@Html.ActionLink((string)item.IDText.ToUpper(), "Order", "Admin", new { id = item.Id }, new { title = item.Id }), columnName: "ID", header: "编号"), grid.Column( columnName: "UserName", header: "用户名"), grid.Column( style: "webgrid-numeric", columnName: "TotalLines", header: "条目数"), grid.Column( style: "webgrid-numeric", columnName: "TotalAmount", header: "总金额"), grid.Column( style: "webgrid-datetime", columnName: "CreatedDateText", header: "创建日期"), grid.Column( style: "webgrid-datetime", columnName: "DispatchedDateText", header: "发货日期"), grid.Column( style: "webgrid-datetime", columnName: "DeliveredDateText", header: "收货日期"), grid.Column( style: "webgrid-center", columnName: "StatusText", header: "当前状态"), grid.Column( style: "webgrid-center", columnName: "Confirm", header: "发货", format: item => item.Status == OrderStatusDto.Paid || item.Status == OrderStatusDto.Picked ? Html.ActionLink("发货", "DispatchOrder", "Admin", new { id = item.Id }, new { onclick = "return confirm('是否确认发货?');" }) : MvcHtmlString.Create(" ")))) } ================================================ FILE: OnlineStore.Web/Views/Admin/Products.cshtml ================================================ @using OnlineStore.Web; @using OnlineStore.Web.ProductService; @model IEnumerable @{ ViewBag.Title = "商品信息管理"; }

@Html.Image("Product_32.png") @ViewBag.Title

请使用下面的工具按钮对商品信息进行增添、编辑或删除的管理操作。单击商品名称同样可以打开该分类的编辑页面。

@if (Model.Any()) { var grid = new WebGrid(Model, defaultSort: "Name", selectionFieldName: "Id"); @grid.GetHtml(tableStyle:"webgrid", headerStyle:"webgrid-header", footerStyle:"webgrid-footer", rowStyle:"webgrid-row", alternatingRowStyle:"webgrid-alternating-row", columns: grid.Columns( grid.Column( format: @@Html.ProductImage((string)item.ImageUrl, ImageSize.Small), style:"product-grid-image", canSort:false), grid.Column( format: @@Html.ActionLink((string)item.Name, "EditProduct", "Admin", new {id = item.Id}, null), columnName: "Name", header: "名称", style: "product-grid-name", canSort: true), grid.Column( columnName: "Description", header: "描述", style: "product-grid-description", canSort: false), grid.Column( columnName: "Category", format: (item) => item.Category == null ? Html.Encode("(未分类)") : item.Category.Name, header: "分类", style: "product-grid-category", canSort: true), grid.Column( columnName: "UnitPrice", format: @@string.Format("{0:c}", item.UnitPrice), header: "单价", style: "product-grid-unitprice", canSort: true), grid.Column( style: "webgrid-toolicon", format: @@Html.ImageActionLink(Url.Content("/Images/Edit.png"), "编辑", "EditProduct", "Admin", new {id = item.Id}), header: "", canSort: false), grid.Column( style: "webgrid-toolicon", format: @@Html.ImageActionLink(Url.Content("/Images/Delete.png"), "删除", "DeleteProduct", "Admin", new { id = item.Id }, new { onclick = "return confirm('是否确定删除所选商品?');" }), header: "", canSort: false))) }

@Html.ImageActionLink(Url.Content("/Images/Add.png"), "添加", "添加商品", "AddProduct", "Admin")

================================================ FILE: OnlineStore.Web/Views/Admin/Roles.cshtml ================================================ @using OnlineStore.Web; @using OnlineStore.Web.UserService; @model IEnumerable @{ ViewBag.Title = "用户角色管理"; }

@Html.Image("Role_32.png") @ViewBag.Title

请使用下面的工具按钮对用户角色进行增添、编辑或删除的管理操作。单击用户角色名同样可以打开该角色的编辑页面。

@if (Model != null && Model.Any()) { var grid = new WebGrid(Model, defaultSort: "Name", selectionFieldName: "Id"); @grid.GetHtml(tableStyle:"webgrid", headerStyle:"webgrid-header", footerStyle:"webgrid-footer", rowStyle:"webgrid-row", alternatingRowStyle:"webgrid-alternating-row", columns: grid.Columns( grid.Column( format: @@Html.ActionLink((string)item.Name, "EditRole", "Admin", new {id = item.Id}, null), columnName: "Name", header: "角色名", canSort: true), grid.Column( columnName: "Description", header: "角色描述", canSort: false), grid.Column( style: "webgrid-toolicon", format: @@Html.ImageActionLink(Url.Content("/Images/Edit.png"), "编辑", "EditRole", "Admin", new {id = item.Id}), header: "", canSort: false), grid.Column( style: "webgrid-toolicon", format: @@Html.ImageActionLink(Url.Content("/Images/Delete.png"), "删除", "DeleteRole", "Admin", new { id = item.Id }, new { onclick = "return confirm('是否确定删除所选角色?');" }), header: "", canSort: false))) }

@Html.ImageActionLink(Url.Content("/Images/Add.png"), "添加", "添加角色", "AddRole", "Admin")

================================================ FILE: OnlineStore.Web/Views/Admin/UserAccounts.cshtml ================================================ @using OnlineStore.Web; @model IEnumerable @{ ViewBag.Title = "用户账户管理"; }

@Html.Image("User_32.png") @ViewBag.Title

请使用下面的工具按钮对用户账户进行增添、编辑或删除的管理操作。单击用户账户名同样可以打开该账户的编辑页面。

@if (Model.Any()) { var grid = new WebGrid(Model, defaultSort: "Name", selectionFieldName: "Id"); @grid.GetHtml(tableStyle:"webgrid", headerStyle:"webgrid-header", footerStyle:"webgrid-footer", rowStyle:"webgrid-row", alternatingRowStyle:"webgrid-alternating-row", columns: grid.Columns( grid.Column( format: @@Html.ActionLink((string)item.UserName, "EditUserAccount", "Admin", new {id = item.Id}, null), columnName: "UserName", header: "用户名", canSort: true), grid.Column( columnName: "Email", header: "电子邮件", canSort: false), grid.Column( columnName: "Role", format: (item) => item.RoleStr, header: "角色", canSort: true), grid.Column( columnName: "IsDisabled", header: "已禁用"), grid.Column( columnName: "DateRegistered", format: item => item.RegisteredDateStr, header: "注册时间"), grid.Column( columnName: "LastLogonDate", format: item => item.LastLogonDateStr, header: "最后登录"), grid.Column( style: "webgrid-toolicon", format: item => item.IsDisabled ? @Html.ImageActionLink(Url.Content("/Images/Enable.png"), "启用", "EnableUserAccount", "Admin", new {id = item.Id}, new { onclick = "return confirm('是否确定启用所选账户?');" }) : @Html.ImageActionLink(Url.Content("/Images/Disable.png"), "禁用", "DisableUserAccount", "Admin", new {id = item.ID}, new { onclick = "return confirm('是否确定禁用所选账户?');" }), header: "", canSort: false), grid.Column( style: "webgrid-toolicon", format: @@Html.ImageActionLink(Url.Content("/Images/Edit.png"), "编辑", "EditUserAccount", "Admin", new {id = item.Id}), header: "", canSort: false), grid.Column( style: "webgrid-toolicon", format: @@Html.ImageActionLink(Url.Content("/Images/Delete.png"), "删除", "DeleteUserAccount", "Admin", new { id = item.Id }, new { onclick = "return confirm('是否确定删除所选账户?');" }), header: "", canSort: false))) }

@Html.ImageActionLink(Url.Content("/Images/Add.png"), "添加", "添加用户", "AddUserAccount", "Admin")

================================================ FILE: OnlineStore.Web/Views/Home/About.cshtml ================================================ @{ ViewBag.Title = "关于Online Store项目"; }

Online Store 项目简介

Online Store是一个基于.NET开发的企业级应用程序,目的在于演示领域驱动设计在.NET开发中的应用。 Online Store以在线零售为业务背景,从各个技术层面展示了.NET企业级应用程序的架构设计,希望它能够 给社区朋友带来一定的帮助。

当前版本号

V0.7

================================================ FILE: OnlineStore.Web/Views/Home/Category.cshtml ================================================ @{Html.RenderAction("ProductsPartial", "Layout", new { categoryID = ViewData["CategoryId"], fromIndexPage = ViewData["FromIndexPage"] });} ================================================ FILE: OnlineStore.Web/Views/Home/Checkout.cshtml ================================================  @using OnlineStore.Web @model OnlineStore.Web.OrderService.OrderDto @{ ViewBag.Title = "订单生成"; }

@Html.Image("Success_32.png") 生成订单成功!

订单编号: @Model.Id.ToUpper()
收货地址: @Model.UserAddressZip, @Model.UserAddressStreet
@Model.UserAddressCity, @Model.UserAddressState, @Model.UserAddressCountry
联系人: @Model.UserContact
联系电话: @Model.UserPhone
电子邮件: @Model.UserEmail

您可以 @Html.ActionLink("单击此处", "Order", "Home", new { id = Model.Id }, new { id = "blue1" }) 查看此订单的详细信息,或者 @Html.ActionLink("单击此处", "Orders", "Home", null, new { id = "blue1" }) 查看所有订单。

请 @Html.ActionLink("单击此处", "Index", "Home", null, new { id = "blue1" }) 回到首页继续购物。
================================================ FILE: OnlineStore.Web/Views/Home/Contact.cshtml ================================================ @{ ViewBag.Title = "Contact"; }

联系方式

您可以通过以下方式联系Online Store示例项目的作者。

电子邮件:794170314@qq.com
新浪微博:@@天平Learning
================================================ FILE: OnlineStore.Web/Views/Home/Index.cshtml ================================================ @{Html.RenderAction("NewProductsPartial", "Layout");} @{Html.RenderAction("ProductsPartial", "Layout");} ================================================ FILE: OnlineStore.Web/Views/Home/Order.cshtml ================================================  @using OnlineStore.Web @model OnlineStore.Web.OrderService.OrderDto @{ ViewBag.Title = "订单详细信息"; }

@Html.Image("SalesOrder_32.png") @ViewBag.Title

订单编号: @Model.Id.ToUpper()
收货地址: @Model.UserAddressZip, @Model.UserAddressStreet
@Model.UserAddressCity, @Model.UserAddressState, @Model.UserAddressCountry
联系人: @Model.UserContact
联系电话: @Model.UserPhone
电子邮件: @Model.UserEmail
创建日期: @Model.CreatedDateText
发货日期: @Model.DispatchedDateText
收货日期: @Model.DeliveredDateText
订单状态: @Model.StatusText @if (Model.CanConfirm) { @Html.ActionLink("确认收货", "Confirm", "Home", new { id = Model.Id }, new { id = "blue1", onclick = "return confirm('请确保您已经收到了货品,否则可能财物两空。是否继续?');" }); }

订单明细

@foreach (var item in Model.OrderItems) { }
  名称 单价 数量 总价
@Html.ProductImage(item.Product.ImageUrl, ImageSize.Small) @Html.ActionLink(item.Product.Name, "ProductDetail", "Home", new { id = item.Product.Id }, null) @string.Format("{0:N2} 元", item.Product.UnitPrice) @string.Format("{0:##,#}", item.Quantity) @string.Format("{0:N2} 元", item.ItemAmount)
  总计   @string.Format("{0:##,#}", Model.OrderItems.Sum(i => i.Quantity)) @string.Format("{0:N2} 元", Model.Subtotal)

@Html.ImageActionLink(Url.Content("~/Images/Cancel.png"), "返回订单列表", "返回订单列表", "Orders", "Home")
================================================ FILE: OnlineStore.Web/Views/Home/Orders.cshtml ================================================ @using OnlineStore.Web; @model IEnumerable @{ ViewBag.Title = "我的订单"; }

@Html.Image("SalesOrder_32.png") @ViewBag.Title

@if (Model.Any()) { var grid = new WebGrid(Model, defaultSort: "CreatedDate", canSort: false, selectionFieldName: "Id"); @grid.GetHtml(tableStyle: "webgrid", headerStyle: "webgrid-header", footerStyle: "webgrid-footer", rowStyle: "webgrid-row", alternatingRowStyle: "webgrid-alternating-row", columns: grid.Columns( grid.Column( style: "webgrid-guid", format: @@Html.ActionLink((string)item.IdText.ToUpper(), "Order", "Home", new { id = item.Id }, new { title = item.Id }), columnName: "Id", header: "编号"), grid.Column( style: "webgrid-numeric", columnName: "TotalLines", header: "条目数"), grid.Column( style: "webgrid-numeric", columnName: "TotalAmount", header: "总金额"), grid.Column( style: "webgrid-datetime", columnName: "CreatedDateText", header: "创建日期"), grid.Column( style: "webgrid-datetime", columnName: "DispatchedDateText", header: "发货日期"), grid.Column( style: "webgrid-datetime", columnName: "DeliveredDateText", header: "收货日期"), grid.Column( style: "webgrid-center", columnName: "StatusText", header: "当前状态"), grid.Column( style: "webgrid-center", columnName: "Confirm", header: "确认收货", format: item => item.CanConfirm ? Html.ActionLink("确认收货", "Confirm", "Home", new { id = item.ID }, new { onclick = "return confirm('请确保您已经收到了货品,否则可能财物两空。是否继续?');" }) : MvcHtmlString.Create(" ")))) } else {
没有任何订单信息。
} ================================================ FILE: OnlineStore.Web/Views/Home/ProductDetail.cshtml ================================================ @using OnlineStore.Web @model OnlineStore.Web.ProductService.ProductDto @{ ViewBag.Title = "商品详细信息"; }
@Html.ProductImage(Model.ImageUrl, ImageSize.Large)

@Model.Name

商品分类:@Model.CategoryName
 
@Model.Description
 
单价: @string.Format("{0:N2} 元", Model.UnitPrice)
数量: @using (Html.BeginForm("AddToCart", "Home", new {productID = Model.Id}, FormMethod.Post, new {id = "AddToCartForm"})) { @Html.AntiForgeryToken() ; 购买 }
@section scripts { } ================================================ FILE: OnlineStore.Web/Views/Home/ShoppingCart.cshtml ================================================  @using OnlineStore.Web @model OnlineStore.Web.OrderService.ShoppingCartDto @{ ViewBag.Title = "我的购物车"; }

@Html.Image("ShoppingCart32.png") @ViewBag.Title

我的购物篮中共有 @Model.Items.Length 条记录,共计 @Model.Items.Sum(p => p.Quantity) 件商品
@if (Model.Items.Any()) {
@foreach (var item in Model.Items) { }
  名称 单价 数量 总价 更新 删除
@Html.ProductImage(item.Product.ImageUrl, ImageSize.Small) @Html.ActionLink(item.Product.Name, "ProductDetail", "Home", new { id = item.Product.Id }, null) @string.Format("{0:N2} 元", item.Product.UnitPrice) @Html.TextBoxFor(p => item.Quantity, new { style = "width: 30px;", id = "quantity_" + item.Id }) @string.Format("{0:N2} 元", item.ItemAmount) 更新 删除
  总计   @string.Format("{0:##,#}", Model.Items.Sum(i => i.Quantity)) @string.Format("{0:N2} 元", Model.Subtotal)    

@using (Html.BeginForm("Checkout", "Home", FormMethod.Post, new {id = "CheckoutForm"})){ 确认购买 }
} @section scripts{ } ================================================ FILE: OnlineStore.Web/Views/Home/SuccessPage.cshtml ================================================ @using OnlineStore.Web; @{ ViewBag.Title = ViewBag.PageTitle; }

@Html.Image("Success_32.png") @ViewBag.PageTitle

页面将在   秒后返回,或直接单击 @Html.ActionLink("此处", (string)ViewBag.RetAction, (string)ViewBag.RetController) 返回。
@section scripts { } ================================================ FILE: OnlineStore.Web/Views/Shared/CategoriesPartial.cshtml ================================================ @model IEnumerable
图书分类
@foreach(var item in Model) {
  @Html.ActionLink(item.Name, "Category", "Home", new { categoryId = item.Id }, null)
}
 
================================================ FILE: OnlineStore.Web/Views/Shared/Error.cshtml ================================================ @model System.Web.Mvc.HandleErrorInfo @{ ViewBag.Title = "Error"; }

Error.

An error occurred while processing your request.

================================================ FILE: OnlineStore.Web/Views/Shared/NewProductsPartial.cshtml ================================================  @model IEnumerable
================================================ FILE: OnlineStore.Web/Views/Shared/ProductsPartial.cshtml ================================================  @model OnlineStore.Web.ProductService.ProductDtoWithPagination @if (ViewBag.CategoryName != null) {

商品分类:@ViewBag.CategoryName

}
  @{ if (Model.ProductDtos.Any()) { foreach (var model in Model.ProductDtos) {
@Html.ActionLink(model.Name, "ProductDetail", "Home", new {id = model.Id}, null)
详细信息   购买   @Html.Encode(string.Format("{0:N2} {1}", model.UnitPrice, "元"))
}
@Html.Encode(string.Format("第{0}页,共{1}页", Model.Pagination.PageNumber, Model.Pagination.TotalPages))   @if (!ViewBag.IsFirstPage) { @Html.ActionLink("首页", (string) ViewBag.Action, "Home", new {categoryID = ViewBag.CategoryId, pageNumber = 1}, new {id = "blue1"}) } else { @Html.Encode("首页") }   @if (!ViewBag.IsFirstPage) { @Html.ActionLink("上页", (string) ViewBag.Action, "Home", new {categoryID = ViewBag.CategoryId, pageNumber = Model.Pagination.PageNumber - 1}, new {id = "blue1"}) } else { @Html.Encode("上页") }   @if (!ViewBag.IsLastPage) { @Html.ActionLink("下页", (string) ViewBag.Action, "Home", new {categoryID = ViewBag.CategoryId, pageNumber = Model.Pagination.PageNumber + 1}, new {id = "blue1"}) } else { @Html.Encode("下页") }   @if (!ViewBag.IsLastPage) { @Html.ActionLink("尾页", (string) ViewBag.Action, "Home", new {categoryID = ViewBag.CategoryId, pageNumber = Model.Pagination.TotalPages}, new {id = "blue1"}) } else { @Html.Encode("尾页") }
} else {

没有找到任何商品

} }
 
================================================ FILE: OnlineStore.Web/Views/Shared/_Layout.cshtml ================================================ @using OnlineStore.Web online Store
@{Html.RenderAction("CategoriesPartial", "Layout");}   @(MvcSiteMap.Instance.Navigator())
@RenderBody()
  @Html.ActionLink("主页", "Index", "Home")  |   @Html.ActionLink("所有分类", "Category", "Home", null, null)  |   @Html.ActionLink("我的账户", "Account", "Account")   |   @Html.ActionLink("联系我们", "Contact", "Home")   |  @Html.ActionLink("关于本站", "About", "Home")
版权所有 © 2014-2015, Online Store, 保留所有权利。
@RenderSection("scripts", false) ================================================ FILE: OnlineStore.Web/Views/Shared/_LoginPartial.cshtml ================================================ @using OnlineStore.Web; @if (Request.IsAuthenticated) {
@Html.Image("ShoppingCart.png") 欢迎您,@User.Identity.Name
@ViewBag.ShoppingCartItems个商品
@using(Html.BeginForm("LogOff", "Account", FormMethod.Post, new {id = "logoutForm"})){ 退出 }
} else { using (Html.BeginForm(new { id="loginForm" })) { @Html.AntiForgeryToken() } } ================================================ FILE: OnlineStore.Web/Views/Web.config ================================================
================================================ FILE: OnlineStore.Web/Views/_ViewStart.cshtml ================================================ @{ Layout = "~/Views/Shared/_Layout.cshtml"; } ================================================ FILE: OnlineStore.Web/Web.Debug.config ================================================  ================================================ FILE: OnlineStore.Web/Web.Release.config ================================================  ================================================ FILE: OnlineStore.Web/Web.config ================================================  ================================================ FILE: OnlineStore.Web/packages.config ================================================  ================================================ FILE: OnlineStore.sln ================================================  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2012 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OnlineStore.Domain", "OnlineStore.Domain\OnlineStore.Domain.csproj", "{1AE7732F-2FAF-407E-89DD-BAD81C4132E0}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OnlineStore.Infrastructure", "OnlineStore.Infrastructure\OnlineStore.Infrastructure.csproj", "{9DDE33CC-CF3C-436E-8A5F-4E1F0F8B603E}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OnlineStore.ServiceContracts", "OnlineStore.ServiceContract\OnlineStore.ServiceContracts.csproj", "{D46D13DD-1E1A-451B-AD17-42ED3FC54EAC}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OnlineStore.Web", "OnlineStore.Web\OnlineStore.Web.csproj", "{4EDD833D-E745-4A23-B244-447EA946B112}" ProjectSection(ProjectDependencies) = postProject {C4B3BA5F-A38D-4E52-B49E-6D69E8619016} = {C4B3BA5F-A38D-4E52-B49E-6D69E8619016} EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OnlineStore.Repositories", "OnlineStore.Repositories\OnlineStore.Repositories.csproj", "{30AFAB37-57BE-459C-A36A-5A72BBF77529}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OnlineStore.Application", "OnlineStore.Application\OnlineStore.Application.csproj", "{C4B3BA5F-A38D-4E52-B49E-6D69E8619016}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{4C91BC6B-3CCF-4F21-B1C0-FCB0F7C15357}" ProjectSection(SolutionItems) = preProject .nuget\NuGet.Config = .nuget\NuGet.Config .nuget\NuGet.exe = .nuget\NuGet.exe .nuget\NuGet.targets = .nuget\NuGet.targets EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OnlineStore.Events", "OnlineStore.Events\OnlineStore.Events.csproj", "{F165ABC2-F76A-4FD7-8675-833264855221}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OnlineStore.Events.Handlers", "OnlineStore.Events.Handlers\OnlineStore.Events.Handlers.csproj", "{2471E6B9-1030-48B8-BBC4-5018A221FBE2}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {1AE7732F-2FAF-407E-89DD-BAD81C4132E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1AE7732F-2FAF-407E-89DD-BAD81C4132E0}.Debug|Any CPU.Build.0 = Debug|Any CPU {1AE7732F-2FAF-407E-89DD-BAD81C4132E0}.Release|Any CPU.ActiveCfg = Release|Any CPU {1AE7732F-2FAF-407E-89DD-BAD81C4132E0}.Release|Any CPU.Build.0 = Release|Any CPU {9DDE33CC-CF3C-436E-8A5F-4E1F0F8B603E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9DDE33CC-CF3C-436E-8A5F-4E1F0F8B603E}.Debug|Any CPU.Build.0 = Debug|Any CPU {9DDE33CC-CF3C-436E-8A5F-4E1F0F8B603E}.Release|Any CPU.ActiveCfg = Release|Any CPU {9DDE33CC-CF3C-436E-8A5F-4E1F0F8B603E}.Release|Any CPU.Build.0 = Release|Any CPU {D46D13DD-1E1A-451B-AD17-42ED3FC54EAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D46D13DD-1E1A-451B-AD17-42ED3FC54EAC}.Debug|Any CPU.Build.0 = Debug|Any CPU {D46D13DD-1E1A-451B-AD17-42ED3FC54EAC}.Release|Any CPU.ActiveCfg = Release|Any CPU {D46D13DD-1E1A-451B-AD17-42ED3FC54EAC}.Release|Any CPU.Build.0 = Release|Any CPU {4EDD833D-E745-4A23-B244-447EA946B112}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4EDD833D-E745-4A23-B244-447EA946B112}.Debug|Any CPU.Build.0 = Debug|Any CPU {4EDD833D-E745-4A23-B244-447EA946B112}.Release|Any CPU.ActiveCfg = Release|Any CPU {4EDD833D-E745-4A23-B244-447EA946B112}.Release|Any CPU.Build.0 = Release|Any CPU {30AFAB37-57BE-459C-A36A-5A72BBF77529}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {30AFAB37-57BE-459C-A36A-5A72BBF77529}.Debug|Any CPU.Build.0 = Debug|Any CPU {30AFAB37-57BE-459C-A36A-5A72BBF77529}.Release|Any CPU.ActiveCfg = Release|Any CPU {30AFAB37-57BE-459C-A36A-5A72BBF77529}.Release|Any CPU.Build.0 = Release|Any CPU {C4B3BA5F-A38D-4E52-B49E-6D69E8619016}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C4B3BA5F-A38D-4E52-B49E-6D69E8619016}.Debug|Any CPU.Build.0 = Debug|Any CPU {C4B3BA5F-A38D-4E52-B49E-6D69E8619016}.Release|Any CPU.ActiveCfg = Release|Any CPU {C4B3BA5F-A38D-4E52-B49E-6D69E8619016}.Release|Any CPU.Build.0 = Release|Any CPU {F165ABC2-F76A-4FD7-8675-833264855221}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F165ABC2-F76A-4FD7-8675-833264855221}.Debug|Any CPU.Build.0 = Debug|Any CPU {F165ABC2-F76A-4FD7-8675-833264855221}.Release|Any CPU.ActiveCfg = Release|Any CPU {F165ABC2-F76A-4FD7-8675-833264855221}.Release|Any CPU.Build.0 = Release|Any CPU {2471E6B9-1030-48B8-BBC4-5018A221FBE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2471E6B9-1030-48B8-BBC4-5018A221FBE2}.Debug|Any CPU.Build.0 = Debug|Any CPU {2471E6B9-1030-48B8-BBC4-5018A221FBE2}.Release|Any CPU.ActiveCfg = Release|Any CPU {2471E6B9-1030-48B8-BBC4-5018A221FBE2}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EnterpriseLibraryConfigurationToolBinariesPath = packages\EnterpriseLibrary.Caching.5.0.505.0\lib\NET35;packages\EnterpriseLibrary.Common.5.0.505.0\lib\NET35 EnterpriseLibraryConfigurationToolBinariesPathV6 = packages\EnterpriseLibrary.Common.6.0.1304.0\lib\NET45 EndGlobalSection EndGlobal ================================================ FILE: README.md ================================================ Online Store项目简介 ==================== Online Store采用了面向领域驱动的经典分层架构,并且为了展示微软.NET技术在企业级应用开发中的应用, 它所使用的第三方组件也几乎都是微软提供的:Entity Framework、ASP.NET MVC、Unity IoC、Unity AOP、Enterprise Library Caching等(用于记录日志的log4net除外,但log4net本身也是众所周知的框架),所以,开发人员只需要打开Online Store的源程序,就能够很清楚地看到系统的各个组件是如何组织在一起并协同工作的。

![](http://images0.cnblogs.com/blog2015/383187/201506/131522390199370.png)
Online Store所使用的技术 ==================== Online Store项目使用或涵盖了以下Microsoft技术: * Microsoft Entity Framework 6 Code First(包括Repository模式的实现、枚举类型的支持以及分页功能的实现)
* ASP.NET MVC 4
* WCF
* Microsoft Patterns & Practices Unity Application Block
* Microsoft Patterns & Practices Unity Policy Injection Extension
* Microsoft Patterns & Practices Caching Application Block
* Microsoft Appfabric Caching
* 使用AutoMapper实现DTO与领域对象映射
* 基于Unity的AOP拦截
* 使用log4net记录拦截的Exception详细信息
Online Store项目涵盖了以下模式和设计思想: == * 实体、值对象、领域服务
* 规约、仓储、仓储上下文
* 领域事件、事件聚合器、事件总线
* 服务定位器模式、工作单元模式、分离接口模式、数据传输对象模式、层超类型模式、传输对象组装器模式
运行Online Store案例 === 先决条件 ---- 本案例使用Visual Studio 2012开发,因此,要编译本案例的源代码程序,则需要首先安装Visual Studio 2012。由于数据库采用了SQL Server Express LocalDB,因此,这部分组件也需要正确安装(如果是选择完整安装Visual Studio 2012,则可以忽略LocalDB的安装)。 另外,Online Store提供了两种事件总线(Event Bus)的实现:一种是面向事件聚合器(Event Aggregator)的,它将把所获得的事件通过聚合器派发到一个或多个事件处理器上;另一种是面向微软MSMQ的,它将把所获得的事件直接派发到MSMQ队列中,如果采用这种事件总线,则需要在机器上安装和配置MSMQ组件,并确保新建的队列是事务型队列。 此外,无需安装其它组件。 编译运行 ----- 克隆源代码资源库,或者直接下载zip压缩包,然后在Microsoft Visual Studio 2012中打开OnlineStore.sln文件,再将OnlineStore..Web项目设置为启动项目后,直接按F5(或者Debug –> Start Debugging菜单项)运行本案例即可。注意: 如果不打算以Debug的方式启动本案例,那就需要首先展开OnlineStore.Application,任选其中一个.svc的服务文件(比如UserService.svc)然后点击右键选择View In Browser菜单项,以便启动服务端的ASP.NET Development Server;最后再直接启动ByteartRetail.Web项目 由于OnlineStore的数据库采用的是SQL Server 2012 Express LocalDB(默认实例),在程序连接LocalDB数据库时,LocalDB需要创建/初始化数据库实例,因此在首次启动时有可能会出现数据库连接超时的异常,如果碰到这类问题,则请稍等片刻然后再重试 登录账户 ----- 启动成功后,就可以单击页面右上角的“登录”链接进行账户登录。默认的登录账户有(用户名/密码): admin/admin:以管理员角色登录,可以对站点进行管理 sales/sales:以销售人员角色登录,可以查看系统中订单信息并进行发货等操作 buyer/buyer:以采购人员角色登录,可以管理商品分类和商品信息 test/:普通用户角色,不能对系统进行任何管理操作 解决方案结构 ------ OnlineStore.sln包含以下项目:
* OnlineStore.Application:应用层
* OnlineStore.Domain:领域层
* OnlineStore.Repositories:仓储的具体实现(目前是基于Entity Framework 6.0的实现)
* OnlineStore.Events:事件相关的事件处理器、事件总线和事件聚合器的定义
* OnlineStore.Events.Handlers:具体的事件处理器定义
* OnlineStore.Infrastructure:基础结构层
* OnlineStore.ServiceContracts:基于WCF的服务契约
* OnlineStore.Web:基于ASP.NET MVC的站点程序(表示层)
总结 ==== 热烈欢迎爱好Microsoft.NET技术以及领域驱动设计的读者朋友对本案例进行深入讨论。同时也欢迎访问我的博客:http://www.cnblogs.com/zhili ================================================ FILE: Scripts/dbo.Categories.data.sql ================================================ INSERT INTO [dbo].[Categories] ([Name], [Description]) VALUES (N'MongoDB', N'数据库') INSERT INTO [dbo].[Categories] ([Name], [Description]) VALUES (N'领域驱动', N'框架设计') INSERT INTO [dbo].[Categories] ([Name], [Description]) VALUES (N'C#', N'编程C#语言') INSERT INTO [dbo].[Categories] ([Name], [Description]) VALUES (N'操作系统', N'计算机操作系统') INSERT INTO [dbo].[Categories] ([Name], [Description]) VALUES (N'No-SQL', N'非关系数据库') INSERT INTO [dbo].[Categories] ([Name], [Description]) VALUES (N'Java', N'编程Java语言') INSERT INTO [dbo].[Categories] ([Name], [Description]) VALUES (N'算法', N'计算机算法') INSERT INTO [dbo].[Categories] ([Name], [Description]) VALUES (N'Asp.net', N'网站开发') ================================================ FILE: Scripts/dbo.ProductCategorizations.data.sql ================================================ INSERT INTO [dbo].[ProductCategorizations] ([Id], [CategoryId], [ProductId]) VALUES (N'65e58ab1-54fc-e411-98a2-206a8a06a4c1', N'22634256-3ffc-e411-98a2-206a8a06a4c1', N'ef63c875-bfa8-4d86-aea5-36c6c4958122') INSERT INTO [dbo].[ProductCategorizations] ([Id], [CategoryId], [ProductId]) VALUES (N'c05603bb-54fc-e411-98a2-206a8a06a4c1', N'23634256-3ffc-e411-98a2-206a8a06a4c1', N'43a4c8e9-a0b2-4f13-982a-24e1eb51c5fe') INSERT INTO [dbo].[ProductCategorizations] ([Id], [CategoryId], [ProductId]) VALUES (N'238a21c6-54fc-e411-98a2-206a8a06a4c1', N'23634256-3ffc-e411-98a2-206a8a06a4c1', N'3a36a52a-53b4-4a3e-9303-b81912bfb92c') INSERT INTO [dbo].[ProductCategorizations] ([Id], [CategoryId], [ProductId]) VALUES (N'b50c49cf-54fc-e411-98a2-206a8a06a4c1', N'24634256-3ffc-e411-98a2-206a8a06a4c1', N'6c85984a-3ab9-4c87-be37-eef3635e7250') INSERT INTO [dbo].[ProductCategorizations] ([Id], [CategoryId], [ProductId]) VALUES (N'810c34d6-54fc-e411-98a2-206a8a06a4c1', N'24634256-3ffc-e411-98a2-206a8a06a4c1', N'c2240716-00c1-47d9-a983-fd805d307b07') INSERT INTO [dbo].[ProductCategorizations] ([Id], [CategoryId], [ProductId]) VALUES (N'bb1a00e2-54fc-e411-98a2-206a8a06a4c1', N'25634256-3ffc-e411-98a2-206a8a06a4c1', N'f5a858b1-ad1d-46e3-92fe-8fb2372c3ba4') INSERT INTO [dbo].[ProductCategorizations] ([Id], [CategoryId], [ProductId]) VALUES (N'ba6077ef-54fc-e411-98a2-206a8a06a4c1', N'26634256-3ffc-e411-98a2-206a8a06a4c1', N'0618308c-65d9-4c5e-a331-22a17edeb4ef') INSERT INTO [dbo].[ProductCategorizations] ([Id], [CategoryId], [ProductId]) VALUES (N'e71212fa-54fc-e411-98a2-206a8a06a4c1', N'27634256-3ffc-e411-98a2-206a8a06a4c1', N'ce70dbe9-44a8-4003-b203-ef677f16f599') INSERT INTO [dbo].[ProductCategorizations] ([Id], [CategoryId], [ProductId]) VALUES (N'e925d902-55fc-e411-98a2-206a8a06a4c1', N'28634256-3ffc-e411-98a2-206a8a06a4c1', N'92862c1e-1cdd-4903-82e6-5904708db66e') INSERT INTO [dbo].[ProductCategorizations] ([Id], [CategoryId], [ProductId]) VALUES (N'64b2720e-55fc-e411-98a2-206a8a06a4c1', N'29634256-3ffc-e411-98a2-206a8a06a4c1', N'f11f27b9-0b96-4f33-8b6d-1101548b30bd') INSERT INTO [dbo].[ProductCategorizations] ([Id], [CategoryId], [ProductId]) VALUES (N'b98c941b-55fc-e411-98a2-206a8a06a4c1', N'29634256-3ffc-e411-98a2-206a8a06a4c1', N'a22d8bf3-f63c-4c58-a11b-e79c23d1962f') INSERT INTO [dbo].[ProductCategorizations] ([Id], [CategoryId], [ProductId]) VALUES (N'b58b3036-55fc-e411-98a2-206a8a06a4c1', N'29634256-3ffc-e411-98a2-206a8a06a4c1', N'50278d80-88ca-47a9-8038-4155f40a6056') ================================================ FILE: Scripts/dbo.Products.data.sql ================================================ INSERT INTO [dbo].[Products] ([ID], [Name], [Description], [UnitPrice], [ImageUrl], [IsNew]) VALUES (N'f11f27b9-0b96-4f33-8b6d-1101548b30bd', N'ASP.NET设计模式', N'《ASP.NET设计模式》涵盖了开发企业级ASP.NET应用程序的知名模式和最佳实践。', CAST(65.40 AS Decimal(18, 2)), N'57D1705F-B98E-4E02-AA30-B5E6E46CAAD4.jpg', 0) INSERT INTO [dbo].[Products] ([ID], [Name], [Description], [UnitPrice], [ImageUrl], [IsNew]) VALUES (N'0618308c-65d9-4c5e-a331-22a17edeb4ef', N'Redis设计与实现', N'《Redis设计与实现》对Redis的大多数单机功能以及所有多机功能的实现原理进行了介绍,展示了这些功能的核心数据结构以及关键的算法思想。', CAST(69.50 AS Decimal(18, 2)), N'D06909EC-4789-4478-9AC7-714B749B69FA.jpg', 0) INSERT INTO [dbo].[Products] ([ID], [Name], [Description], [UnitPrice], [ImageUrl], [IsNew]) VALUES (N'43a4c8e9-a0b2-4f13-982a-24e1eb51c5fe', N'领域驱动设计与模式实战', N'《领域驱动设计与模式实战》全面详细地解释了领域驱动设计、测试驱动开发、依赖注入、持久化、重构、模式等很多基本概念,并以C#和.NET实例为依托,展示了这些概念的实际应用和重要价值。', CAST(62.90 AS Decimal(18, 2)), N'BE93832B-A321-43B4-83B2-009C9947F981.jpg', 0) INSERT INTO [dbo].[Products] ([ID], [Name], [Description], [UnitPrice], [ImageUrl], [IsNew]) VALUES (N'ef63c875-bfa8-4d86-aea5-36c6c4958122', N'MongoDB权威指南 第2版', N'与传统的关系型数据库不同,MongoDB是一种面向文档的数据库。《图灵程序设计丛书:MongoDB权威指南(第2版)》这一版共分为六部分,涵盖开发、管理以及部署的各个方面。', CAST(55.70 AS Decimal(18, 2)), N'BB1F735C-DFCE-4ECB-B9FC-720D15FB6080.jpg', 0) INSERT INTO [dbo].[Products] ([ID], [Name], [Description], [UnitPrice], [ImageUrl], [IsNew]) VALUES (N'50278d80-88ca-47a9-8038-4155f40a6056', N'HTML5权威指南', N'《图灵程序设计丛书:HTML5权威指南》是系统学习网页设计的权威参考图书。', CAST(91.00 AS Decimal(18, 2)), N'554AB834-7677-4A51-9FC1-FC7C21021B5B.jpg', 1) INSERT INTO [dbo].[Products] ([ID], [Name], [Description], [UnitPrice], [ImageUrl], [IsNew]) VALUES (N'92862c1e-1cdd-4903-82e6-5904708db66e', N'算法导论', N'算法导论(原书第3版)/计算机科学丛书', CAST(112.60 AS Decimal(18, 2)), N'4BE8C7BD-F23F-4CEA-A3A8-09999AEF85FB.jpg', 0) INSERT INTO [dbo].[Products] ([ID], [Name], [Description], [UnitPrice], [ImageUrl], [IsNew]) VALUES (N'f5a858b1-ad1d-46e3-92fe-8fb2372c3ba4', N'深入理解计算机系统', N'《计算机科学丛书:深入理解计算机系统(原书第2版)》从程序员的视角详细阐述计算机系统的本质概念,并展示这些概念如何实实在在地影响应用程序的正确性、性能和实用性', CAST(87.10 AS Decimal(18, 2)), N'01505235-35b1-4995-804b-a496fb0f81d6.jpg', 0) INSERT INTO [dbo].[Products] ([ID], [Name], [Description], [UnitPrice], [ImageUrl], [IsNew]) VALUES (N'3a36a52a-53b4-4a3e-9303-b81912bfb92c', N'领域驱动设计:软件核心复杂性应对之道', N'《领域驱动设计:软件核心复杂性应对之道》是领域驱动设计方面的经典之作。全书围绕着设计和开发实践,结合若干真实的项目案例,向读者阐述如何在真实的软件开发中应用领域驱动设计。', CAST(65.60 AS Decimal(18, 2)), N'040DA7EB-D670-4843-A364-6D961217957D.jpg', 0) INSERT INTO [dbo].[Products] ([ID], [Name], [Description], [UnitPrice], [ImageUrl], [IsNew]) VALUES (N'a22d8bf3-f63c-4c58-a11b-e79c23d1962f', N'精通ASP.NET MVC 4', N'《精通ASP.NET MVC 4》没有简单地解释或孤立地讨论“模型—视图—控制器”架构的核心概念,而是进行实战演示', CAST(84.20 AS Decimal(18, 2)), N'20762C83-A827-43AB-8589-DC88C22E6A01.jpg', 1) INSERT INTO [dbo].[Products] ([ID], [Name], [Description], [UnitPrice], [ImageUrl], [IsNew]) VALUES (N'6c85984a-3ab9-4c87-be37-eef3635e7250', N'Learninghard C#学习笔记', N'《图灵原创:Learning hard C#学习笔记》》全部是作者亲身学习经验的总结,超详尽的学习笔记,获博客园数万网友点赞推荐。', CAST(41.00 AS Decimal(18, 2)), N'75615F17-A147-472D-BA60-D19D21FF7860.jpg', 1) INSERT INTO [dbo].[Products] ([ID], [Name], [Description], [UnitPrice], [ImageUrl], [IsNew]) VALUES (N'ce70dbe9-44a8-4003-b203-ef677f16f599', N'深入理解Java虚拟机:JVM高级特性与最佳实践', N'《深入理解Java虚拟机:JVM高级特性与最佳实践》第1版两年内印刷近10次,4家网上书店的评论近4?000条,98%以上的评论全部为5星级的好评,是整个Java图书领域公认的经典著作和超级畅销书,繁体版在台湾也十分受欢迎。', CAST(60.80 AS Decimal(18, 2)), N'B416DAF4-59D7-462D-A0C2-45EBCE8D9A4D.jpg', 0) INSERT INTO [dbo].[Products] ([ID], [Name], [Description], [UnitPrice], [ImageUrl], [IsNew]) VALUES (N'c2240716-00c1-47d9-a983-fd805d307b07', N'CLR via C#(第4版)', N'《CLR via C#(第4版)》针对CLR和.NET Framework 4.5进行深入、全面的探讨,并结合实例介绍了如何利用它们进行设计、开发和调试。', CAST(92.70 AS Decimal(18, 2)), N'EB8FB8A3-411C-417F-BDC8-73D5401A977F.jpg', 1) ================================================ FILE: Scripts/dbo.Roles.sql ================================================ INSERT INTO [dbo].[Roles] ([Id], [Name], [Description]) VALUES (N'80181f68-890d-4956-bbb7-0782e5929860', N'SalesReps', N'用于管理销售方面的专员角色') INSERT INTO [dbo].[Roles] ([Id], [Name], [Description]) VALUES (N'4688f0c4-39d0-4bef-babd-08bb64615c69', N'Buyers', N'用于管理采购方面的专员角色') INSERT INTO [dbo].[Roles] ([Id], [Name], [Description]) VALUES (N'068d4ff3-dda8-4274-8c7d-a0cea5a3b3d3', N'Customers', N'普通客户角色') INSERT INTO [dbo].[Roles] ([Id], [Name], [Description]) VALUES (N'7d25079e-23b6-4f8f-8b37-eabf7ab18e51', N'Administrators', N'系统管理员角色') ================================================ FILE: Scripts/dbo.UserRoles.data.sql ================================================ INSERT INTO [dbo].[UserRoles] ([ID], [UserID], [RoleID]) VALUES (N'14eeae0a-d5e5-4fec-a0c7-34e50a81efcc', N'3755a9dc-fa85-412a-87e9-146082db1a68', N'068d4ff3-dda8-4274-8c7d-a0cea5a3b3d3') INSERT INTO [dbo].[UserRoles] ([ID], [UserID], [RoleID]) VALUES (N'cb187795-9566-4262-8267-5d062bffaffd', N'4e5e6fbd-68fb-4619-b30b-17acbc1061c4', N'4688f0c4-39d0-4bef-babd-08bb64615c69') INSERT INTO [dbo].[UserRoles] ([ID], [UserID], [RoleID]) VALUES (N'0ae8d163-54fc-44ad-98ec-912984498948', N'94802ce2-18ce-44b1-9c56-599bd8c25dc2', N'80181f68-890d-4956-bbb7-0782e5929860') INSERT INTO [dbo].[UserRoles] ([ID], [UserID], [RoleID]) VALUES (N'f742b0fb-e217-4e64-81b6-cc699199c6ce', N'27f2c2d1-5219-48d9-8e1f-185909d7494f', N'7d25079e-23b6-4f8f-8b37-eabf7ab18e51') ================================================ FILE: Scripts/dbo.Users.data.sql ================================================ INSERT INTO [dbo].[Users] ([Id], [UserName], [Password], [Email], [PhoneNumber], [IsDisabled], [RegisteredDate], [LastLogonDate], [Contact], [ContactAddress_Country], [ContactAddress_State], [ContactAddress_City], [ContactAddress_Street], [ContactAddress_Zip], [DeliveryAddress_Country], [DeliveryAddress_State], [DeliveryAddress_City], [DeliveryAddress_Street], [DeliveryAddress_Zip]) VALUES (N'3755a9dc-fa85-412a-87e9-146082db1a68', N'daxnet', N'daxnet', N'learninghard@OnlineStore.com', N'0123-45678912', 0, N'2012-10-12 14:01:22', NULL, N'dax.net', N'中国', N'上海市', N'上海市', N'ABC大道63号,DEF大厦G楼', N'200000', N'中国', N'上海市', N'上海市', N'ABC大道63号,DEF大厦G楼', N'200000') INSERT INTO [dbo].[Users] ([Id], [UserName], [Password], [Email], [PhoneNumber], [IsDisabled], [RegisteredDate], [LastLogonDate], [Contact], [ContactAddress_Country], [ContactAddress_State], [ContactAddress_City], [ContactAddress_Street], [ContactAddress_Zip], [DeliveryAddress_Country], [DeliveryAddress_State], [DeliveryAddress_City], [DeliveryAddress_Street], [DeliveryAddress_Zip]) VALUES (N'4e5e6fbd-68fb-4619-b30b-17acbc1061c4', N'buyer', N'buyer', N'buyer@OnlineStore.com', N'1234567', 0, N'2012-10-26 10:43:28', NULL, N'Buyer', N'中国', N'上海市', N'上海', N'ABC大道', N'200000', N'中国', N'上海市', N'上海', N'ABC大道', N'200000') INSERT INTO [dbo].[Users] ([Id], [UserName], [Password], [Email], [PhoneNumber], [IsDisabled], [RegisteredDate], [LastLogonDate], [Contact], [ContactAddress_Country], [ContactAddress_State], [ContactAddress_City], [ContactAddress_Street], [ContactAddress_Zip], [DeliveryAddress_Country], [DeliveryAddress_State], [DeliveryAddress_City], [DeliveryAddress_Street], [DeliveryAddress_Zip]) VALUES (N'27f2c2d1-5219-48d9-8e1f-185909d7494f', N'admin', N'admin', N'admin@OnlineStore.com', N'1234567', 0, N'2012-10-26 10:29:54', NULL, N'admin', N'中国', N'上海市', N'上海', N'ABC大道', N'200000', N'中国', N'上海市', N'上海', N'ABC大道', N'200000') INSERT INTO [dbo].[Users] ([Id], [UserName], [Password], [Email], [PhoneNumber], [IsDisabled], [RegisteredDate], [LastLogonDate], [Contact], [ContactAddress_Country], [ContactAddress_State], [ContactAddress_City], [ContactAddress_Street], [ContactAddress_Zip], [DeliveryAddress_Country], [DeliveryAddress_State], [DeliveryAddress_City], [DeliveryAddress_Street], [DeliveryAddress_Zip]) VALUES (N'2ecb38e0-3efc-e411-98a2-206a8a06a4c1', N'sssa', N'123', N'794170314@qq.com', N'13327890340', 0, N'0001-01-01 00:00:00', NULL, N'Learninghard', N'中国', N'上海', N'上海', N'金科路', N'20000', N'中国', N'上海', N'上海', N'张江镇', N'20000') INSERT INTO [dbo].[Users] ([Id], [UserName], [Password], [Email], [PhoneNumber], [IsDisabled], [RegisteredDate], [LastLogonDate], [Contact], [ContactAddress_Country], [ContactAddress_State], [ContactAddress_City], [ContactAddress_Street], [ContactAddress_Zip], [DeliveryAddress_Country], [DeliveryAddress_State], [DeliveryAddress_City], [DeliveryAddress_Street], [DeliveryAddress_Zip]) VALUES (N'94802ce2-18ce-44b1-9c56-599bd8c25dc2', N'sales', N'sales', N'sales@OnlineStore.com', N'1234567', 0, N'2012-10-26 10:42:36', NULL, N'Sales Rep', N'中国', N'上海市', N'上海', N'ABC大道', N'200000', N'中国', N'上海市', N'上海', N'ABC大道', N'200000') ================================================ FILE: packages/AutoMapper.3.3.1/lib/MonoAndroid/AutoMapper.xml ================================================ AutoMapper Extension point to provide custom resolution for a destination value Implementors use source resolution result to provide a destination resolution result. Use the class for a type-safe version. Source resolution result Result, typically build from the source resolution result Main entry point for AutoMapper, for both creating maps and performing maps. Execute a mapping from the source object to a new destination object. The source type is inferred from the source object. Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object. Source type to use, regardless of the runtime type Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to the existing destination object. Source type to use Dsetination type Source object to map from Destination object to map into The mapped destination object, same instance as the object Execute a mapping from the source object to the existing destination object with supplied mapping options. Source type to use Destination type Source object to map from Destination object to map into Mapping options The mapped destination object, same instance as the object Execute a mapping from the source object to a new destination object with supplied mapping options. Source type to use Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects Source object to map from Source type to use Destination type to create Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects and supplied mapping options. Source object to map from Source type to use Destination type to create Mapping options Mapped destination object Execute a mapping from the source object to existing destination object with explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapped destination object, same instance as the object Execute a mapping from the source object to existing destination object with supplied mapping options and explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapping options Mapped destination object, same instance as the object Create a map between the and types and execute the map Source type to use Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map to the existing destination object Source type to use Destination type to use Source object to map from Destination object to map into Create a map between the object and types and execute the map. Source type is inferred from the source object . Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Mapped destination object Create a map between the and types and execute the map to the existing destination object. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Initializes the mapper with the supplied configuration. Runtime optimization complete after this method is called. This is the preferred means to configure AutoMapper. Initialization callback Configuration starter for specific source types Source type Configuration options Creates a mapping configuration from the type to the type Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the type to the type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a mapping configuration from the source type to the destination type. Use this method when the source and destination type are known at runtime and not compile time. Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the source type to the destination type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a named profile for grouped mapping configuration Profile name Profile configuration options Create a named profile for grouped mapping configuration, and configure the profile Profile name Profile configuration callback Add an existing profile Profile to add Add an existing profile type. Profile will be instantiated and added to the configuration. Profile type Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Get all configured type maps created All configured type maps Dry run all configured type maps and throw for each problem Dry run single type map Type map to check Dry run all type maps in given profile Profile name of type maps to test Dry run all type maps in given profile Profile type Clear out all existing configuration Globally ignore all members starting with a prefix Prefix of members to ignore. Call this before all other maps created. When set, destination can have null values. Defaults to true. This does not affect simple types, only complex ones. Mapping engine used to perform mappings Store for all configuration Mapping execution strategy, as a chain of responsibility Performs a map Resolution context Mapping engine runner Mapped object When true, the mapping engine will use this mapper as the strategy Resolution context Is match Reset mapper registry to built-in values Extension point for modifying list of object mappers Member list to check for configuration validation Check that all destination members are mapped Check that all source members are mapped Ignore this member for validation and skip during mapping Custom mapping action Source type Destination type Implementors can modify both the source and destination objects Source object Destination object Main entry point for executing maps Options for a single map operation Construct services using this callback. Use this for child/nested containers Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Create any missing type maps, if found Add context items to be accessed at map time inside an or Disable the cache used to re-use destination instances based on equality Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Defines a naming convention strategy Regular expression on how to tokenize a member Character to separate on Options for matching source/destination member types Naming convention for source members Naming convention for destination members Source member name prefixes to ignore/drop Source member name postfixes to ignore/drop Destination member name prefixes to ignore/drop Destination member naem prefixes to ignore/drop Source/destination member name replacers Source/destination member aliases Allow mapping to constructors that accept arguments For mapping via data readers, enable lazy returning of values instead of immediate evalaution Source extension methods included for search Converts source type to destination type instead of normal member mapping Source type Destination type Performs conversion from source to destination type Resolution context Destination object Contains profile-specific configuration Indicates that null source values should be mapped as null Indicates that null source collections should be mapped as null Generic-friendly implementation of Source type Destination type When overridden in a base class, this method is provided the casted source object extracted from the Source object Destination object Get all configured type maps created All configured type maps Find the for the configured source and destination type, checking the source/destination object types too Source object Destination object Configured source type Configured destination type Type map configuration Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Find the for the resolution result and destination type Resolution result from the source object Configured destination type Type map configuration Get named profile configuration Profile name Dry run all configured type maps and throw for each problem Dry run single type map Type map to check Dry run all type maps in given profile Profile name of type maps to test Dry run all type maps in given profile Profile type Get all configured mappers List of mappers Creates a based on a source and destination type Source type Destination type Type map configuration Fired each time a type map is created Factory method to create formatters, resolvers and type converters Configuration for profile-specific maps Creates a mapping configuration from the type to the type Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the type to the type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a mapping configuration from the source type to the destination type. Use this method when the source and destination type are known at runtime and not compile time. Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the source type to the destination type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Recognize a list of prefixes to be removed from source member names when matching List of prefixes Recognize a list of postfixes to be removed from source member names when matching List of postfixes Provide an alias for a member name when matching source member names Original member name Alias to match against Provide a new value for a part of a members name Original member value New member value Recognize a list of prefixes to be removed from destination member names when matching List of prefixes Recognize a list of postfixes to be removed from destination member names when matching List of postfixes Add a property name to globally ignore. Matches against the beginning of the property names. Property name to match against Include an assembly to search for extension methods to match Assembly containing extension methods Allow null destination values. If false, destination objects will be created for deep object graphs. Default true. Allow null destination collections. If true, null source collections result in null destination collections. Default false. Create a named profile for grouped mapping configuration Profile name Profile configuration options Create a named profile for grouped mapping configuration, and configure the profile Profile name Profile configuration callback Add an existing profile Profile to add Add an existing profile type. Profile will be instantiated and added to the configuration. Profile type Supply a factory method callback for creating formatters, resolvers and type converters Factory method Disable constructor mapping. Use this if you don't intend to have AutoMapper try to map to constructors Seal the configuration and optimize maps Mapping via a data reader will yield return each item, keeping a data reader open instead of eagerly evaluating Performs mapping based on configuration Execute a mapping from the source object to a new destination object. The source type is inferred from the source object. Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object. Source type to use, regardless of the runtime type Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Source type to use Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to the existing destination object. Source type to use Dsetination type Source object to map from Destination object to map into The mapped destination object, same instance as the object Execute a mapping from the source object to the existing destination object with supplied mapping options. Source type to use Destination type Source object to map from Destination object to map into Mapping options The mapped destination object, same instance as the object Execute a mapping from the source object to a new destination object with explicit objects Source object to map from Source type to use Destination type to create Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects and supplied mapping options. Source object to map from Source type to use Destination type to create Mapping options Mapped destination object Execute a mapping from the source object to existing destination object with explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapped destination object, same instance as the object Execute a mapping from the source object to existing destination object with supplied mapping options and explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapping options Mapped destination object, same instance as the object Create a map between the and types and execute the map Source type to use Destination type to use Source object to map from Mapped destination object Create a map between the object and types and execute the map. Source type is inferred from the source object . Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Mapped destination object Create a map between the and types and execute the map to the existing destination object Source type to use Destination type to use Source object to map from Destination object to map into Create a map between the and types and execute the map to the existing destination object. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Configuration provider for performaing maps Mapping configuration options for non-generic maps Skip normal member mapping and convert using a instantiated during mapping Type converter type Skip normal member mapping and convert using a instantiated during mapping Use this method if you need to specify the converter type at runtime Type converter type Override the destination type mapping for looking up configuration and instantiation Assign a profile to the current type map Profile name Itself Customize individual members Name of the member Callback for configuring member Itself Customize configuration for an individual source member Source member name Callback for member configuration options Itself Mapping configuration options Source type Destination type Customize configuration for individual member Expression to the top-level destination member. This must be a member on the TDestination type Callback for member options Itself Customize configuration for individual member. Used when the name isn't known at compile-time Destination member name Callback for member options Customize configuration for all members Callback for member options Ignores all properties that have either a private or protected setter, forcing the mapper to respect encapsulation (note: order matters, so place this before explicit configuration of any properties with an inaccessible setter) Itself When using ReverseMap, ignores all properties that have either a private or protected setter, keeping the reverse mapping consistent with the forward mapping (note: properties with an inaccessible setter may still be mapped unless IgnoreAllPropertiesWithAnInaccessibleSetter is also used) Itself Include this configuration in derived types' maps Derived source type Derived destination type Itself Include the base type map's configuration in this map Base source type Base destination type Itself Include this configuration in derived types' maps Derived source type Derived destination type Itself Assign a profile to the current type map Name of the profile Itself Skip member mapping and use a custom expression during LINQ projection Projection expression Skip member mapping and use a custom function to convert to the destination type Callback to convert from source type to destination type Skip member mapping and use a custom type converter instance to convert to the destination type Type converter instance Skip member mapping and use a custom type converter instance to convert to the destination type Type converter type Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Itself Execute a custom mapping action before member mapping Mapping action type instantiated during mapping Itself Execute a custom function to the source and/or destination types after member mapping Callback for the source/destination types Itself Execute a custom mapping action after member mapping Mapping action type instantiated during mapping Itself Supply a custom instantiation function for the destination type Callback to create the destination type given the source object Itself Supply a custom instantiation expression for the destination type for LINQ projection Callback to create the destination type given the source object Itself Supply a custom instantiation function for the destination type, based on the entire resolution context Callback to create the destination type given the current resolution context Itself Override the destination type mapping for looking up configuration and instantiation Destination type to use For self-referential types, limit recurse depth Number of levels to limit to Itself Construct the destination object using the service locator Itself Create a type mapping from the destination to the source type, using the members as validation Itself Customize configuration for an individual source member Expression to source member. Must be a member of the type Callback for member configuration options Itself Customize configuration for an individual source member. Member name not known until runtime Expression to source member. Must be a member of the type Callback for member configuration options Itself Replace the original runtime instance with a new source instance. Useful when ORMs return proxy types with no relationships to runtime types. The returned source object will be mapped instead of what was supplied in the original source object. Substitution function New source object to map. The current TypeMap being configured Configuration options for an individual member Map from a specific source member Source member to map from Resolve destination member using a custom value resolver instance Value resolver to use Value resolver configuration options Resolve destination member using a custom value resolver Value resolver of type Value resolver configuration options Resolve destination member using a custom value resolver Value resolver of type Value resolver configuration options Ignore this member for configuration validation and skip during mapping Use the destination value instead of mapping from the source value or creating a new instance Source member configuration options Ignore this member for configuration validation and skip during mapping Source member configuration options Source type Member configuration options Source type for this member Substitute a custom value when the source member resolves as null Value to use Resolve destination member using a custom value resolver Value resolver type Value resolver configuration options Resolve destination member using a custom value resolver. Used when the value resolver is not known at compile-time Value resolver type Value resolver configuration options Resolve destination member using a custom value resolver instance Value resolver instance to use Resolution expression Resolve destination member using a custom value resolver callback. Used instead of MapFrom when not simply redirecting a source member This method cannot be used in conjunction with LINQ query projection Callback function to resolve against source type Resolve destination member using a custom value resolver callback. Used instead of MapFrom when not simply redirecting a source member Access both the source object and current resolution context for additional mapping, context items and parent objects This method cannot be used in conjunction with LINQ query projection Callback function to resolve against source type Specify the source member to map from. Can only reference a member on the type This method can be used in mapping to LINQ query projections, while ResolveUsing cannot. Any null reference exceptions in this expression will be ignored (similar to flattening behavior) Member type of the source member to use Expression referencing the source member to map against Ignore this member for configuration validation and skip during mapping Supply a custom mapping order instead of what the .NET runtime returns Mapping order value Use the destination value instead of mapping from the source value or creating a new instance Do not use the destination value instead of mapping from the source value or creating a new instance Use a custom value Value type Value to use Use a custom value Value to use Conditionally map this member Condition to evaluate using the source object Conditionally map this member Condition to evaluate using the current resolution context Conditionally map this member, evaluated before accessing the source value Condition to evaluate using the source object Conditionally map this member, evaluated before accessing the source value Condition to evaluate using the current resolution context Ignore this member for LINQ projections unless explicitly expanded during projection Custom resolver options Use the supplied member as the input to the resolver instead of the root source object Property name to use Custom resolver options Construct the value resolver using supplied constructor function Value resolver constructor function Itself Custom resolver options Source type Use the specified member as the input to the resolver instead of the root object Expression for the source member Custom resolver options Source type Value resolver type Use the specified member as the input to the resolver instead of the root object Expression for the source member Itself Use the specified member as the input to the resolver instead of the root object Name of the source member Itself Construct the value resolver with the supplied constructor function Value resolver constructor function Itself Custom resolver options Source type Construct the value resolver with the supplied constructor function Value resolver constructor function Itself Instantiates objects Extension point for mappers matching based on types configured by CreateMap Provides a named configuration for maps. Naming conventions become scoped per profile. Override this method in a derived class and call the CreateMap method to associate that map with this profile. Avoid calling the class from this method. Create an expression tree representing a mapping from the type to type Includes flattening and expressions inside MapFrom member configuration Source Type Destination Type Mapping engine instance Optional parameter object for parameterized mapping expressions Expand members explicitly previously marked as members to explicitly expand Expression tree mapping source to destination type Extention method to project from a queryable using the static property. Due to generic parameter inference, you need to call Project().To to execute the map Projections are only calculated once and cached Source type Queryable source Expression to project into Extention method to project from a queryable using the provided mapping engine Due to generic parameter inference, you need to call Project().To to execute the map Projections are only calculated once and cached Source type Queryable source Mapping engine instance Expression to project into Continuation to execute projection Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Explicit members to expand Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Parameters for parameterized mapping expressions Explicit members to expand Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to >Explicit members to expand Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to >Explicit members to expand Parameters for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Context information regarding resolution of a destination value Mapping operation options Current type map Current property map Current source type Current attempted destination type Index of current collection mapping Source value Destination value Parent resolution context Instance cache for resolving circular references Current mapping engine Represents the result of resolving a value Create a resolution result based on source values of a resolution context Resolution context Create a new resolution result representing ignoring the value New resolution result based on this context with ignored value Create a new resolution result representing the value provided Resolved value Resolution result containing resolved value Constructs a new resolution result based on the context of this value result Value resolved Type of value as reference in case value is null New resolutino result Resultant value Type of value resolved Type of member, in case the value is null Context for resolving this value Directs mappers to ignore this value Contains member configuration relating to source members Contains cached reflection information for easy retrieval Main configuration object holding all mapping configuration for a source and destination type Type-safe implementation of Source type Destination type Implementors override this method to resolve the destination value based on the provided source value Source value Destination ================================================ FILE: packages/AutoMapper.3.3.1/lib/MonoTouch/AutoMapper.xml ================================================ AutoMapper Extension point to provide custom resolution for a destination value Implementors use source resolution result to provide a destination resolution result. Use the class for a type-safe version. Source resolution result Result, typically build from the source resolution result Main entry point for AutoMapper, for both creating maps and performing maps. Execute a mapping from the source object to a new destination object. The source type is inferred from the source object. Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object. Source type to use, regardless of the runtime type Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to the existing destination object. Source type to use Dsetination type Source object to map from Destination object to map into The mapped destination object, same instance as the object Execute a mapping from the source object to the existing destination object with supplied mapping options. Source type to use Destination type Source object to map from Destination object to map into Mapping options The mapped destination object, same instance as the object Execute a mapping from the source object to a new destination object with supplied mapping options. Source type to use Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects Source object to map from Source type to use Destination type to create Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects and supplied mapping options. Source object to map from Source type to use Destination type to create Mapping options Mapped destination object Execute a mapping from the source object to existing destination object with explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapped destination object, same instance as the object Execute a mapping from the source object to existing destination object with supplied mapping options and explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapping options Mapped destination object, same instance as the object Create a map between the and types and execute the map Source type to use Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map to the existing destination object Source type to use Destination type to use Source object to map from Destination object to map into Create a map between the object and types and execute the map. Source type is inferred from the source object . Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Mapped destination object Create a map between the and types and execute the map to the existing destination object. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Initializes the mapper with the supplied configuration. Runtime optimization complete after this method is called. This is the preferred means to configure AutoMapper. Initialization callback Configuration starter for specific source types Source type Configuration options Creates a mapping configuration from the type to the type Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the type to the type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a mapping configuration from the source type to the destination type. Use this method when the source and destination type are known at runtime and not compile time. Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the source type to the destination type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a named profile for grouped mapping configuration Profile name Profile configuration options Create a named profile for grouped mapping configuration, and configure the profile Profile name Profile configuration callback Add an existing profile Profile to add Add an existing profile type. Profile will be instantiated and added to the configuration. Profile type Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Get all configured type maps created All configured type maps Dry run all configured type maps and throw for each problem Dry run single type map Type map to check Dry run all type maps in given profile Profile name of type maps to test Dry run all type maps in given profile Profile type Clear out all existing configuration Globally ignore all members starting with a prefix Prefix of members to ignore. Call this before all other maps created. When set, destination can have null values. Defaults to true. This does not affect simple types, only complex ones. Mapping engine used to perform mappings Store for all configuration Mapping execution strategy, as a chain of responsibility Performs a map Resolution context Mapping engine runner Mapped object When true, the mapping engine will use this mapper as the strategy Resolution context Is match Reset mapper registry to built-in values Extension point for modifying list of object mappers Member list to check for configuration validation Check that all destination members are mapped Check that all source members are mapped Ignore this member for validation and skip during mapping Custom mapping action Source type Destination type Implementors can modify both the source and destination objects Source object Destination object Main entry point for executing maps Options for a single map operation Construct services using this callback. Use this for child/nested containers Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Create any missing type maps, if found Add context items to be accessed at map time inside an or Disable the cache used to re-use destination instances based on equality Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Defines a naming convention strategy Regular expression on how to tokenize a member Character to separate on Options for matching source/destination member types Naming convention for source members Naming convention for destination members Source member name prefixes to ignore/drop Source member name postfixes to ignore/drop Destination member name prefixes to ignore/drop Destination member naem prefixes to ignore/drop Source/destination member name replacers Source/destination member aliases Allow mapping to constructors that accept arguments For mapping via data readers, enable lazy returning of values instead of immediate evalaution Source extension methods included for search Converts source type to destination type instead of normal member mapping Source type Destination type Performs conversion from source to destination type Resolution context Destination object Contains profile-specific configuration Indicates that null source values should be mapped as null Indicates that null source collections should be mapped as null Generic-friendly implementation of Source type Destination type When overridden in a base class, this method is provided the casted source object extracted from the Source object Destination object Get all configured type maps created All configured type maps Find the for the configured source and destination type, checking the source/destination object types too Source object Destination object Configured source type Configured destination type Type map configuration Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Find the for the resolution result and destination type Resolution result from the source object Configured destination type Type map configuration Get named profile configuration Profile name Dry run all configured type maps and throw for each problem Dry run single type map Type map to check Dry run all type maps in given profile Profile name of type maps to test Dry run all type maps in given profile Profile type Get all configured mappers List of mappers Creates a based on a source and destination type Source type Destination type Type map configuration Fired each time a type map is created Factory method to create formatters, resolvers and type converters Configuration for profile-specific maps Creates a mapping configuration from the type to the type Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the type to the type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a mapping configuration from the source type to the destination type. Use this method when the source and destination type are known at runtime and not compile time. Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the source type to the destination type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Recognize a list of prefixes to be removed from source member names when matching List of prefixes Recognize a list of postfixes to be removed from source member names when matching List of postfixes Provide an alias for a member name when matching source member names Original member name Alias to match against Provide a new value for a part of a members name Original member value New member value Recognize a list of prefixes to be removed from destination member names when matching List of prefixes Recognize a list of postfixes to be removed from destination member names when matching List of postfixes Add a property name to globally ignore. Matches against the beginning of the property names. Property name to match against Include an assembly to search for extension methods to match Assembly containing extension methods Allow null destination values. If false, destination objects will be created for deep object graphs. Default true. Allow null destination collections. If true, null source collections result in null destination collections. Default false. Create a named profile for grouped mapping configuration Profile name Profile configuration options Create a named profile for grouped mapping configuration, and configure the profile Profile name Profile configuration callback Add an existing profile Profile to add Add an existing profile type. Profile will be instantiated and added to the configuration. Profile type Supply a factory method callback for creating formatters, resolvers and type converters Factory method Disable constructor mapping. Use this if you don't intend to have AutoMapper try to map to constructors Seal the configuration and optimize maps Mapping via a data reader will yield return each item, keeping a data reader open instead of eagerly evaluating Performs mapping based on configuration Execute a mapping from the source object to a new destination object. The source type is inferred from the source object. Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object. Source type to use, regardless of the runtime type Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Source type to use Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to the existing destination object. Source type to use Dsetination type Source object to map from Destination object to map into The mapped destination object, same instance as the object Execute a mapping from the source object to the existing destination object with supplied mapping options. Source type to use Destination type Source object to map from Destination object to map into Mapping options The mapped destination object, same instance as the object Execute a mapping from the source object to a new destination object with explicit objects Source object to map from Source type to use Destination type to create Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects and supplied mapping options. Source object to map from Source type to use Destination type to create Mapping options Mapped destination object Execute a mapping from the source object to existing destination object with explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapped destination object, same instance as the object Execute a mapping from the source object to existing destination object with supplied mapping options and explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapping options Mapped destination object, same instance as the object Create a map between the and types and execute the map Source type to use Destination type to use Source object to map from Mapped destination object Create a map between the object and types and execute the map. Source type is inferred from the source object . Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Mapped destination object Create a map between the and types and execute the map to the existing destination object Source type to use Destination type to use Source object to map from Destination object to map into Create a map between the and types and execute the map to the existing destination object. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Configuration provider for performaing maps Mapping configuration options for non-generic maps Skip normal member mapping and convert using a instantiated during mapping Type converter type Skip normal member mapping and convert using a instantiated during mapping Use this method if you need to specify the converter type at runtime Type converter type Override the destination type mapping for looking up configuration and instantiation Assign a profile to the current type map Profile name Itself Customize individual members Name of the member Callback for configuring member Itself Customize configuration for an individual source member Source member name Callback for member configuration options Itself Mapping configuration options Source type Destination type Customize configuration for individual member Expression to the top-level destination member. This must be a member on the TDestination type Callback for member options Itself Customize configuration for individual member. Used when the name isn't known at compile-time Destination member name Callback for member options Customize configuration for all members Callback for member options Ignores all properties that have either a private or protected setter, forcing the mapper to respect encapsulation (note: order matters, so place this before explicit configuration of any properties with an inaccessible setter) Itself When using ReverseMap, ignores all properties that have either a private or protected setter, keeping the reverse mapping consistent with the forward mapping (note: properties with an inaccessible setter may still be mapped unless IgnoreAllPropertiesWithAnInaccessibleSetter is also used) Itself Include this configuration in derived types' maps Derived source type Derived destination type Itself Include the base type map's configuration in this map Base source type Base destination type Itself Include this configuration in derived types' maps Derived source type Derived destination type Itself Assign a profile to the current type map Name of the profile Itself Skip member mapping and use a custom expression during LINQ projection Projection expression Skip member mapping and use a custom function to convert to the destination type Callback to convert from source type to destination type Skip member mapping and use a custom type converter instance to convert to the destination type Type converter instance Skip member mapping and use a custom type converter instance to convert to the destination type Type converter type Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Itself Execute a custom mapping action before member mapping Mapping action type instantiated during mapping Itself Execute a custom function to the source and/or destination types after member mapping Callback for the source/destination types Itself Execute a custom mapping action after member mapping Mapping action type instantiated during mapping Itself Supply a custom instantiation function for the destination type Callback to create the destination type given the source object Itself Supply a custom instantiation expression for the destination type for LINQ projection Callback to create the destination type given the source object Itself Supply a custom instantiation function for the destination type, based on the entire resolution context Callback to create the destination type given the current resolution context Itself Override the destination type mapping for looking up configuration and instantiation Destination type to use For self-referential types, limit recurse depth Number of levels to limit to Itself Construct the destination object using the service locator Itself Create a type mapping from the destination to the source type, using the members as validation Itself Customize configuration for an individual source member Expression to source member. Must be a member of the type Callback for member configuration options Itself Customize configuration for an individual source member. Member name not known until runtime Expression to source member. Must be a member of the type Callback for member configuration options Itself Replace the original runtime instance with a new source instance. Useful when ORMs return proxy types with no relationships to runtime types. The returned source object will be mapped instead of what was supplied in the original source object. Substitution function New source object to map. The current TypeMap being configured Configuration options for an individual member Map from a specific source member Source member to map from Resolve destination member using a custom value resolver instance Value resolver to use Value resolver configuration options Resolve destination member using a custom value resolver Value resolver of type Value resolver configuration options Resolve destination member using a custom value resolver Value resolver of type Value resolver configuration options Ignore this member for configuration validation and skip during mapping Use the destination value instead of mapping from the source value or creating a new instance Source member configuration options Ignore this member for configuration validation and skip during mapping Source member configuration options Source type Member configuration options Source type for this member Substitute a custom value when the source member resolves as null Value to use Resolve destination member using a custom value resolver Value resolver type Value resolver configuration options Resolve destination member using a custom value resolver. Used when the value resolver is not known at compile-time Value resolver type Value resolver configuration options Resolve destination member using a custom value resolver instance Value resolver instance to use Resolution expression Resolve destination member using a custom value resolver callback. Used instead of MapFrom when not simply redirecting a source member This method cannot be used in conjunction with LINQ query projection Callback function to resolve against source type Resolve destination member using a custom value resolver callback. Used instead of MapFrom when not simply redirecting a source member Access both the source object and current resolution context for additional mapping, context items and parent objects This method cannot be used in conjunction with LINQ query projection Callback function to resolve against source type Specify the source member to map from. Can only reference a member on the type This method can be used in mapping to LINQ query projections, while ResolveUsing cannot. Any null reference exceptions in this expression will be ignored (similar to flattening behavior) Member type of the source member to use Expression referencing the source member to map against Ignore this member for configuration validation and skip during mapping Supply a custom mapping order instead of what the .NET runtime returns Mapping order value Use the destination value instead of mapping from the source value or creating a new instance Do not use the destination value instead of mapping from the source value or creating a new instance Use a custom value Value type Value to use Use a custom value Value to use Conditionally map this member Condition to evaluate using the source object Conditionally map this member Condition to evaluate using the current resolution context Conditionally map this member, evaluated before accessing the source value Condition to evaluate using the source object Conditionally map this member, evaluated before accessing the source value Condition to evaluate using the current resolution context Ignore this member for LINQ projections unless explicitly expanded during projection Custom resolver options Use the supplied member as the input to the resolver instead of the root source object Property name to use Custom resolver options Construct the value resolver using supplied constructor function Value resolver constructor function Itself Custom resolver options Source type Use the specified member as the input to the resolver instead of the root object Expression for the source member Custom resolver options Source type Value resolver type Use the specified member as the input to the resolver instead of the root object Expression for the source member Itself Use the specified member as the input to the resolver instead of the root object Name of the source member Itself Construct the value resolver with the supplied constructor function Value resolver constructor function Itself Custom resolver options Source type Construct the value resolver with the supplied constructor function Value resolver constructor function Itself Instantiates objects Extension point for mappers matching based on types configured by CreateMap Provides a named configuration for maps. Naming conventions become scoped per profile. Override this method in a derived class and call the CreateMap method to associate that map with this profile. Avoid calling the class from this method. Create an expression tree representing a mapping from the type to type Includes flattening and expressions inside MapFrom member configuration Source Type Destination Type Mapping engine instance Optional parameter object for parameterized mapping expressions Expand members explicitly previously marked as members to explicitly expand Expression tree mapping source to destination type Extention method to project from a queryable using the static property. Due to generic parameter inference, you need to call Project().To to execute the map Projections are only calculated once and cached Source type Queryable source Expression to project into Extention method to project from a queryable using the provided mapping engine Due to generic parameter inference, you need to call Project().To to execute the map Projections are only calculated once and cached Source type Queryable source Mapping engine instance Expression to project into Continuation to execute projection Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Explicit members to expand Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Parameters for parameterized mapping expressions Explicit members to expand Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to >Explicit members to expand Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to >Explicit members to expand Parameters for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Context information regarding resolution of a destination value Mapping operation options Current type map Current property map Current source type Current attempted destination type Index of current collection mapping Source value Destination value Parent resolution context Instance cache for resolving circular references Current mapping engine Represents the result of resolving a value Create a resolution result based on source values of a resolution context Resolution context Create a new resolution result representing ignoring the value New resolution result based on this context with ignored value Create a new resolution result representing the value provided Resolved value Resolution result containing resolved value Constructs a new resolution result based on the context of this value result Value resolved Type of value as reference in case value is null New resolutino result Resultant value Type of value resolved Type of member, in case the value is null Context for resolving this value Directs mappers to ignore this value Contains member configuration relating to source members Contains cached reflection information for easy retrieval Main configuration object holding all mapping configuration for a source and destination type Type-safe implementation of Source type Destination type Implementors override this method to resolve the destination value based on the provided source value Source value Destination ================================================ FILE: packages/AutoMapper.3.3.1/lib/net40/AutoMapper.xml ================================================ AutoMapper Extension point to provide custom resolution for a destination value Implementors use source resolution result to provide a destination resolution result. Use the class for a type-safe version. Source resolution result Result, typically build from the source resolution result Main entry point for AutoMapper, for both creating maps and performing maps. Execute a mapping from the source object to a new destination object. The source type is inferred from the source object. Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object. Source type to use, regardless of the runtime type Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to the existing destination object. Source type to use Dsetination type Source object to map from Destination object to map into The mapped destination object, same instance as the object Execute a mapping from the source object to the existing destination object with supplied mapping options. Source type to use Destination type Source object to map from Destination object to map into Mapping options The mapped destination object, same instance as the object Execute a mapping from the source object to a new destination object with supplied mapping options. Source type to use Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects Source object to map from Source type to use Destination type to create Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects and supplied mapping options. Source object to map from Source type to use Destination type to create Mapping options Mapped destination object Execute a mapping from the source object to existing destination object with explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapped destination object, same instance as the object Execute a mapping from the source object to existing destination object with supplied mapping options and explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapping options Mapped destination object, same instance as the object Create a map between the and types and execute the map Source type to use Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map to the existing destination object Source type to use Destination type to use Source object to map from Destination object to map into Create a map between the object and types and execute the map. Source type is inferred from the source object . Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Mapped destination object Create a map between the and types and execute the map to the existing destination object. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Initializes the mapper with the supplied configuration. Runtime optimization complete after this method is called. This is the preferred means to configure AutoMapper. Initialization callback Configuration starter for specific source types Source type Configuration options Creates a mapping configuration from the type to the type Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the type to the type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a mapping configuration from the source type to the destination type. Use this method when the source and destination type are known at runtime and not compile time. Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the source type to the destination type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a named profile for grouped mapping configuration Profile name Profile configuration options Create a named profile for grouped mapping configuration, and configure the profile Profile name Profile configuration callback Add an existing profile Profile to add Add an existing profile type. Profile will be instantiated and added to the configuration. Profile type Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Get all configured type maps created All configured type maps Dry run all configured type maps and throw for each problem Dry run single type map Type map to check Dry run all type maps in given profile Profile name of type maps to test Dry run all type maps in given profile Profile type Clear out all existing configuration Globally ignore all members starting with a prefix Prefix of members to ignore. Call this before all other maps created. When set, destination can have null values. Defaults to true. This does not affect simple types, only complex ones. Mapping engine used to perform mappings Store for all configuration Mapping execution strategy, as a chain of responsibility Performs a map Resolution context Mapping engine runner Mapped object When true, the mapping engine will use this mapper as the strategy Resolution context Is match Reset mapper registry to built-in values Extension point for modifying list of object mappers Member list to check for configuration validation Check that all destination members are mapped Check that all source members are mapped Ignore this member for validation and skip during mapping Custom mapping action Source type Destination type Implementors can modify both the source and destination objects Source object Destination object Main entry point for executing maps Options for a single map operation Construct services using this callback. Use this for child/nested containers Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Create any missing type maps, if found Add context items to be accessed at map time inside an or Disable the cache used to re-use destination instances based on equality Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Defines a naming convention strategy Regular expression on how to tokenize a member Character to separate on Options for matching source/destination member types Naming convention for source members Naming convention for destination members Source member name prefixes to ignore/drop Source member name postfixes to ignore/drop Destination member name prefixes to ignore/drop Destination member naem prefixes to ignore/drop Source/destination member name replacers Source/destination member aliases Allow mapping to constructors that accept arguments For mapping via data readers, enable lazy returning of values instead of immediate evalaution Source extension methods included for search Converts source type to destination type instead of normal member mapping Source type Destination type Performs conversion from source to destination type Resolution context Destination object Contains profile-specific configuration Indicates that null source values should be mapped as null Indicates that null source collections should be mapped as null Generic-friendly implementation of Source type Destination type When overridden in a base class, this method is provided the casted source object extracted from the Source object Destination object Get all configured type maps created All configured type maps Find the for the configured source and destination type, checking the source/destination object types too Source object Destination object Configured source type Configured destination type Type map configuration Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Find the for the resolution result and destination type Resolution result from the source object Configured destination type Type map configuration Get named profile configuration Profile name Dry run all configured type maps and throw for each problem Dry run single type map Type map to check Dry run all type maps in given profile Profile name of type maps to test Dry run all type maps in given profile Profile type Get all configured mappers List of mappers Creates a based on a source and destination type Source type Destination type Type map configuration Fired each time a type map is created Factory method to create formatters, resolvers and type converters Configuration for profile-specific maps Creates a mapping configuration from the type to the type Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the type to the type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a mapping configuration from the source type to the destination type. Use this method when the source and destination type are known at runtime and not compile time. Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the source type to the destination type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Recognize a list of prefixes to be removed from source member names when matching List of prefixes Recognize a list of postfixes to be removed from source member names when matching List of postfixes Provide an alias for a member name when matching source member names Original member name Alias to match against Provide a new value for a part of a members name Original member value New member value Recognize a list of prefixes to be removed from destination member names when matching List of prefixes Recognize a list of postfixes to be removed from destination member names when matching List of postfixes Add a property name to globally ignore. Matches against the beginning of the property names. Property name to match against Include an assembly to search for extension methods to match Assembly containing extension methods Allow null destination values. If false, destination objects will be created for deep object graphs. Default true. Allow null destination collections. If true, null source collections result in null destination collections. Default false. Create a named profile for grouped mapping configuration Profile name Profile configuration options Create a named profile for grouped mapping configuration, and configure the profile Profile name Profile configuration callback Add an existing profile Profile to add Add an existing profile type. Profile will be instantiated and added to the configuration. Profile type Supply a factory method callback for creating formatters, resolvers and type converters Factory method Disable constructor mapping. Use this if you don't intend to have AutoMapper try to map to constructors Seal the configuration and optimize maps Mapping via a data reader will yield return each item, keeping a data reader open instead of eagerly evaluating Performs mapping based on configuration Execute a mapping from the source object to a new destination object. The source type is inferred from the source object. Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object. Source type to use, regardless of the runtime type Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Source type to use Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to the existing destination object. Source type to use Dsetination type Source object to map from Destination object to map into The mapped destination object, same instance as the object Execute a mapping from the source object to the existing destination object with supplied mapping options. Source type to use Destination type Source object to map from Destination object to map into Mapping options The mapped destination object, same instance as the object Execute a mapping from the source object to a new destination object with explicit objects Source object to map from Source type to use Destination type to create Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects and supplied mapping options. Source object to map from Source type to use Destination type to create Mapping options Mapped destination object Execute a mapping from the source object to existing destination object with explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapped destination object, same instance as the object Execute a mapping from the source object to existing destination object with supplied mapping options and explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapping options Mapped destination object, same instance as the object Create a map between the and types and execute the map Source type to use Destination type to use Source object to map from Mapped destination object Create a map between the object and types and execute the map. Source type is inferred from the source object . Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Mapped destination object Create a map between the and types and execute the map to the existing destination object Source type to use Destination type to use Source object to map from Destination object to map into Create a map between the and types and execute the map to the existing destination object. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Configuration provider for performaing maps Mapping configuration options for non-generic maps Skip normal member mapping and convert using a instantiated during mapping Type converter type Skip normal member mapping and convert using a instantiated during mapping Use this method if you need to specify the converter type at runtime Type converter type Override the destination type mapping for looking up configuration and instantiation Assign a profile to the current type map Profile name Itself Customize individual members Name of the member Callback for configuring member Itself Customize configuration for an individual source member Source member name Callback for member configuration options Itself Mapping configuration options Source type Destination type Customize configuration for individual member Expression to the top-level destination member. This must be a member on the TDestination type Callback for member options Itself Customize configuration for individual member. Used when the name isn't known at compile-time Destination member name Callback for member options Customize configuration for all members Callback for member options Ignores all properties that have either a private or protected setter, forcing the mapper to respect encapsulation (note: order matters, so place this before explicit configuration of any properties with an inaccessible setter) Itself When using ReverseMap, ignores all properties that have either a private or protected setter, keeping the reverse mapping consistent with the forward mapping (note: properties with an inaccessible setter may still be mapped unless IgnoreAllPropertiesWithAnInaccessibleSetter is also used) Itself Include this configuration in derived types' maps Derived source type Derived destination type Itself Include the base type map's configuration in this map Base source type Base destination type Itself Include this configuration in derived types' maps Derived source type Derived destination type Itself Assign a profile to the current type map Name of the profile Itself Skip member mapping and use a custom expression during LINQ projection Projection expression Skip member mapping and use a custom function to convert to the destination type Callback to convert from source type to destination type Skip member mapping and use a custom type converter instance to convert to the destination type Type converter instance Skip member mapping and use a custom type converter instance to convert to the destination type Type converter type Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Itself Execute a custom mapping action before member mapping Mapping action type instantiated during mapping Itself Execute a custom function to the source and/or destination types after member mapping Callback for the source/destination types Itself Execute a custom mapping action after member mapping Mapping action type instantiated during mapping Itself Supply a custom instantiation function for the destination type Callback to create the destination type given the source object Itself Supply a custom instantiation expression for the destination type for LINQ projection Callback to create the destination type given the source object Itself Supply a custom instantiation function for the destination type, based on the entire resolution context Callback to create the destination type given the current resolution context Itself Override the destination type mapping for looking up configuration and instantiation Destination type to use For self-referential types, limit recurse depth Number of levels to limit to Itself Construct the destination object using the service locator Itself Create a type mapping from the destination to the source type, using the members as validation Itself Customize configuration for an individual source member Expression to source member. Must be a member of the type Callback for member configuration options Itself Customize configuration for an individual source member. Member name not known until runtime Expression to source member. Must be a member of the type Callback for member configuration options Itself Replace the original runtime instance with a new source instance. Useful when ORMs return proxy types with no relationships to runtime types. The returned source object will be mapped instead of what was supplied in the original source object. Substitution function New source object to map. The current TypeMap being configured Configuration options for an individual member Map from a specific source member Source member to map from Resolve destination member using a custom value resolver instance Value resolver to use Value resolver configuration options Resolve destination member using a custom value resolver Value resolver of type Value resolver configuration options Resolve destination member using a custom value resolver Value resolver of type Value resolver configuration options Ignore this member for configuration validation and skip during mapping Use the destination value instead of mapping from the source value or creating a new instance Source member configuration options Ignore this member for configuration validation and skip during mapping Source member configuration options Source type Member configuration options Source type for this member Substitute a custom value when the source member resolves as null Value to use Resolve destination member using a custom value resolver Value resolver type Value resolver configuration options Resolve destination member using a custom value resolver. Used when the value resolver is not known at compile-time Value resolver type Value resolver configuration options Resolve destination member using a custom value resolver instance Value resolver instance to use Resolution expression Resolve destination member using a custom value resolver callback. Used instead of MapFrom when not simply redirecting a source member This method cannot be used in conjunction with LINQ query projection Callback function to resolve against source type Resolve destination member using a custom value resolver callback. Used instead of MapFrom when not simply redirecting a source member Access both the source object and current resolution context for additional mapping, context items and parent objects This method cannot be used in conjunction with LINQ query projection Callback function to resolve against source type Specify the source member to map from. Can only reference a member on the type This method can be used in mapping to LINQ query projections, while ResolveUsing cannot. Any null reference exceptions in this expression will be ignored (similar to flattening behavior) Member type of the source member to use Expression referencing the source member to map against Ignore this member for configuration validation and skip during mapping Supply a custom mapping order instead of what the .NET runtime returns Mapping order value Use the destination value instead of mapping from the source value or creating a new instance Do not use the destination value instead of mapping from the source value or creating a new instance Use a custom value Value type Value to use Use a custom value Value to use Conditionally map this member Condition to evaluate using the source object Conditionally map this member Condition to evaluate using the current resolution context Conditionally map this member, evaluated before accessing the source value Condition to evaluate using the source object Conditionally map this member, evaluated before accessing the source value Condition to evaluate using the current resolution context Ignore this member for LINQ projections unless explicitly expanded during projection Custom resolver options Use the supplied member as the input to the resolver instead of the root source object Property name to use Custom resolver options Construct the value resolver using supplied constructor function Value resolver constructor function Itself Custom resolver options Source type Use the specified member as the input to the resolver instead of the root object Expression for the source member Custom resolver options Source type Value resolver type Use the specified member as the input to the resolver instead of the root object Expression for the source member Itself Use the specified member as the input to the resolver instead of the root object Name of the source member Itself Construct the value resolver with the supplied constructor function Value resolver constructor function Itself Custom resolver options Source type Construct the value resolver with the supplied constructor function Value resolver constructor function Itself Instantiates objects Extension point for mappers matching based on types configured by CreateMap Provides a named configuration for maps. Naming conventions become scoped per profile. Override this method in a derived class and call the CreateMap method to associate that map with this profile. Avoid calling the class from this method. Create an expression tree representing a mapping from the type to type Includes flattening and expressions inside MapFrom member configuration Source Type Destination Type Mapping engine instance Optional parameter object for parameterized mapping expressions Expand members explicitly previously marked as members to explicitly expand Expression tree mapping source to destination type Extention method to project from a queryable using the static property. Due to generic parameter inference, you need to call Project().To to execute the map Projections are only calculated once and cached Source type Queryable source Expression to project into Extention method to project from a queryable using the provided mapping engine Due to generic parameter inference, you need to call Project().To to execute the map Projections are only calculated once and cached Source type Queryable source Mapping engine instance Expression to project into Continuation to execute projection Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Explicit members to expand Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Parameters for parameterized mapping expressions Explicit members to expand Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to >Explicit members to expand Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to >Explicit members to expand Parameters for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Context information regarding resolution of a destination value Mapping operation options Current type map Current property map Current source type Current attempted destination type Index of current collection mapping Source value Destination value Parent resolution context Instance cache for resolving circular references Current mapping engine Represents the result of resolving a value Create a resolution result based on source values of a resolution context Resolution context Create a new resolution result representing ignoring the value New resolution result based on this context with ignored value Create a new resolution result representing the value provided Resolved value Resolution result containing resolved value Constructs a new resolution result based on the context of this value result Value resolved Type of value as reference in case value is null New resolutino result Resultant value Type of value resolved Type of member, in case the value is null Context for resolving this value Directs mappers to ignore this value Contains member configuration relating to source members Contains cached reflection information for easy retrieval Main configuration object holding all mapping configuration for a source and destination type Type-safe implementation of Source type Destination type Implementors override this method to resolve the destination value based on the provided source value Source value Destination ================================================ FILE: packages/AutoMapper.3.3.1/lib/portable-windows8+net40+wp8+sl5+MonoAndroid+MonoTouch/AutoMapper.xml ================================================ AutoMapper Extension point to provide custom resolution for a destination value Implementors use source resolution result to provide a destination resolution result. Use the class for a type-safe version. Source resolution result Result, typically build from the source resolution result Main entry point for AutoMapper, for both creating maps and performing maps. Execute a mapping from the source object to a new destination object. The source type is inferred from the source object. Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object. Source type to use, regardless of the runtime type Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to the existing destination object. Source type to use Dsetination type Source object to map from Destination object to map into The mapped destination object, same instance as the object Execute a mapping from the source object to the existing destination object with supplied mapping options. Source type to use Destination type Source object to map from Destination object to map into Mapping options The mapped destination object, same instance as the object Execute a mapping from the source object to a new destination object with supplied mapping options. Source type to use Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects Source object to map from Source type to use Destination type to create Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects and supplied mapping options. Source object to map from Source type to use Destination type to create Mapping options Mapped destination object Execute a mapping from the source object to existing destination object with explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapped destination object, same instance as the object Execute a mapping from the source object to existing destination object with supplied mapping options and explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapping options Mapped destination object, same instance as the object Create a map between the and types and execute the map Source type to use Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map to the existing destination object Source type to use Destination type to use Source object to map from Destination object to map into Create a map between the object and types and execute the map. Source type is inferred from the source object . Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Mapped destination object Create a map between the and types and execute the map to the existing destination object. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Initializes the mapper with the supplied configuration. Runtime optimization complete after this method is called. This is the preferred means to configure AutoMapper. Initialization callback Configuration starter for specific source types Source type Configuration options Creates a mapping configuration from the type to the type Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the type to the type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a mapping configuration from the source type to the destination type. Use this method when the source and destination type are known at runtime and not compile time. Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the source type to the destination type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a named profile for grouped mapping configuration Profile name Profile configuration options Create a named profile for grouped mapping configuration, and configure the profile Profile name Profile configuration callback Add an existing profile Profile to add Add an existing profile type. Profile will be instantiated and added to the configuration. Profile type Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Get all configured type maps created All configured type maps Dry run all configured type maps and throw for each problem Dry run single type map Type map to check Dry run all type maps in given profile Profile name of type maps to test Dry run all type maps in given profile Profile type Clear out all existing configuration Globally ignore all members starting with a prefix Prefix of members to ignore. Call this before all other maps created. When set, destination can have null values. Defaults to true. This does not affect simple types, only complex ones. Mapping engine used to perform mappings Store for all configuration Mapping execution strategy, as a chain of responsibility Performs a map Resolution context Mapping engine runner Mapped object When true, the mapping engine will use this mapper as the strategy Resolution context Is match Reset mapper registry to built-in values Extension point for modifying list of object mappers Member list to check for configuration validation Check that all destination members are mapped Check that all source members are mapped Ignore this member for validation and skip during mapping Custom mapping action Source type Destination type Implementors can modify both the source and destination objects Source object Destination object Main entry point for executing maps Options for a single map operation Construct services using this callback. Use this for child/nested containers Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Create any missing type maps, if found Add context items to be accessed at map time inside an or Disable the cache used to re-use destination instances based on equality Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Defines a naming convention strategy Regular expression on how to tokenize a member Character to separate on Options for matching source/destination member types Naming convention for source members Naming convention for destination members Source member name prefixes to ignore/drop Source member name postfixes to ignore/drop Destination member name prefixes to ignore/drop Destination member naem prefixes to ignore/drop Source/destination member name replacers Source/destination member aliases Allow mapping to constructors that accept arguments For mapping via data readers, enable lazy returning of values instead of immediate evalaution Source extension methods included for search Converts source type to destination type instead of normal member mapping Source type Destination type Performs conversion from source to destination type Resolution context Destination object Contains profile-specific configuration Indicates that null source values should be mapped as null Indicates that null source collections should be mapped as null Generic-friendly implementation of Source type Destination type When overridden in a base class, this method is provided the casted source object extracted from the Source object Destination object Get all configured type maps created All configured type maps Find the for the configured source and destination type, checking the source/destination object types too Source object Destination object Configured source type Configured destination type Type map configuration Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Find the for the resolution result and destination type Resolution result from the source object Configured destination type Type map configuration Get named profile configuration Profile name Dry run all configured type maps and throw for each problem Dry run single type map Type map to check Dry run all type maps in given profile Profile name of type maps to test Dry run all type maps in given profile Profile type Get all configured mappers List of mappers Creates a based on a source and destination type Source type Destination type Type map configuration Fired each time a type map is created Factory method to create formatters, resolvers and type converters Configuration for profile-specific maps Creates a mapping configuration from the type to the type Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the type to the type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a mapping configuration from the source type to the destination type. Use this method when the source and destination type are known at runtime and not compile time. Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the source type to the destination type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Recognize a list of prefixes to be removed from source member names when matching List of prefixes Recognize a list of postfixes to be removed from source member names when matching List of postfixes Provide an alias for a member name when matching source member names Original member name Alias to match against Provide a new value for a part of a members name Original member value New member value Recognize a list of prefixes to be removed from destination member names when matching List of prefixes Recognize a list of postfixes to be removed from destination member names when matching List of postfixes Add a property name to globally ignore. Matches against the beginning of the property names. Property name to match against Include an assembly to search for extension methods to match Assembly containing extension methods Allow null destination values. If false, destination objects will be created for deep object graphs. Default true. Allow null destination collections. If true, null source collections result in null destination collections. Default false. Create a named profile for grouped mapping configuration Profile name Profile configuration options Create a named profile for grouped mapping configuration, and configure the profile Profile name Profile configuration callback Add an existing profile Profile to add Add an existing profile type. Profile will be instantiated and added to the configuration. Profile type Supply a factory method callback for creating formatters, resolvers and type converters Factory method Disable constructor mapping. Use this if you don't intend to have AutoMapper try to map to constructors Seal the configuration and optimize maps Mapping via a data reader will yield return each item, keeping a data reader open instead of eagerly evaluating Performs mapping based on configuration Execute a mapping from the source object to a new destination object. The source type is inferred from the source object. Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object. Source type to use, regardless of the runtime type Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Source type to use Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to the existing destination object. Source type to use Dsetination type Source object to map from Destination object to map into The mapped destination object, same instance as the object Execute a mapping from the source object to the existing destination object with supplied mapping options. Source type to use Destination type Source object to map from Destination object to map into Mapping options The mapped destination object, same instance as the object Execute a mapping from the source object to a new destination object with explicit objects Source object to map from Source type to use Destination type to create Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects and supplied mapping options. Source object to map from Source type to use Destination type to create Mapping options Mapped destination object Execute a mapping from the source object to existing destination object with explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapped destination object, same instance as the object Execute a mapping from the source object to existing destination object with supplied mapping options and explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapping options Mapped destination object, same instance as the object Create a map between the and types and execute the map Source type to use Destination type to use Source object to map from Mapped destination object Create a map between the object and types and execute the map. Source type is inferred from the source object . Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Mapped destination object Create a map between the and types and execute the map to the existing destination object Source type to use Destination type to use Source object to map from Destination object to map into Create a map between the and types and execute the map to the existing destination object. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Configuration provider for performaing maps Mapping configuration options for non-generic maps Skip normal member mapping and convert using a instantiated during mapping Type converter type Skip normal member mapping and convert using a instantiated during mapping Use this method if you need to specify the converter type at runtime Type converter type Override the destination type mapping for looking up configuration and instantiation Assign a profile to the current type map Profile name Itself Customize individual members Name of the member Callback for configuring member Itself Customize configuration for an individual source member Source member name Callback for member configuration options Itself Mapping configuration options Source type Destination type Customize configuration for individual member Expression to the top-level destination member. This must be a member on the TDestination type Callback for member options Itself Customize configuration for individual member. Used when the name isn't known at compile-time Destination member name Callback for member options Customize configuration for all members Callback for member options Ignores all properties that have either a private or protected setter, forcing the mapper to respect encapsulation (note: order matters, so place this before explicit configuration of any properties with an inaccessible setter) Itself When using ReverseMap, ignores all properties that have either a private or protected setter, keeping the reverse mapping consistent with the forward mapping (note: properties with an inaccessible setter may still be mapped unless IgnoreAllPropertiesWithAnInaccessibleSetter is also used) Itself Include this configuration in derived types' maps Derived source type Derived destination type Itself Include the base type map's configuration in this map Base source type Base destination type Itself Include this configuration in derived types' maps Derived source type Derived destination type Itself Assign a profile to the current type map Name of the profile Itself Skip member mapping and use a custom expression during LINQ projection Projection expression Skip member mapping and use a custom function to convert to the destination type Callback to convert from source type to destination type Skip member mapping and use a custom type converter instance to convert to the destination type Type converter instance Skip member mapping and use a custom type converter instance to convert to the destination type Type converter type Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Itself Execute a custom mapping action before member mapping Mapping action type instantiated during mapping Itself Execute a custom function to the source and/or destination types after member mapping Callback for the source/destination types Itself Execute a custom mapping action after member mapping Mapping action type instantiated during mapping Itself Supply a custom instantiation function for the destination type Callback to create the destination type given the source object Itself Supply a custom instantiation expression for the destination type for LINQ projection Callback to create the destination type given the source object Itself Supply a custom instantiation function for the destination type, based on the entire resolution context Callback to create the destination type given the current resolution context Itself Override the destination type mapping for looking up configuration and instantiation Destination type to use For self-referential types, limit recurse depth Number of levels to limit to Itself Construct the destination object using the service locator Itself Create a type mapping from the destination to the source type, using the members as validation Itself Customize configuration for an individual source member Expression to source member. Must be a member of the type Callback for member configuration options Itself Customize configuration for an individual source member. Member name not known until runtime Expression to source member. Must be a member of the type Callback for member configuration options Itself Replace the original runtime instance with a new source instance. Useful when ORMs return proxy types with no relationships to runtime types. The returned source object will be mapped instead of what was supplied in the original source object. Substitution function New source object to map. The current TypeMap being configured Configuration options for an individual member Map from a specific source member Source member to map from Resolve destination member using a custom value resolver instance Value resolver to use Value resolver configuration options Resolve destination member using a custom value resolver Value resolver of type Value resolver configuration options Resolve destination member using a custom value resolver Value resolver of type Value resolver configuration options Ignore this member for configuration validation and skip during mapping Use the destination value instead of mapping from the source value or creating a new instance Source member configuration options Ignore this member for configuration validation and skip during mapping Source member configuration options Source type Member configuration options Source type for this member Substitute a custom value when the source member resolves as null Value to use Resolve destination member using a custom value resolver Value resolver type Value resolver configuration options Resolve destination member using a custom value resolver. Used when the value resolver is not known at compile-time Value resolver type Value resolver configuration options Resolve destination member using a custom value resolver instance Value resolver instance to use Resolution expression Resolve destination member using a custom value resolver callback. Used instead of MapFrom when not simply redirecting a source member This method cannot be used in conjunction with LINQ query projection Callback function to resolve against source type Resolve destination member using a custom value resolver callback. Used instead of MapFrom when not simply redirecting a source member Access both the source object and current resolution context for additional mapping, context items and parent objects This method cannot be used in conjunction with LINQ query projection Callback function to resolve against source type Specify the source member to map from. Can only reference a member on the type This method can be used in mapping to LINQ query projections, while ResolveUsing cannot. Any null reference exceptions in this expression will be ignored (similar to flattening behavior) Member type of the source member to use Expression referencing the source member to map against Ignore this member for configuration validation and skip during mapping Supply a custom mapping order instead of what the .NET runtime returns Mapping order value Use the destination value instead of mapping from the source value or creating a new instance Do not use the destination value instead of mapping from the source value or creating a new instance Use a custom value Value type Value to use Use a custom value Value to use Conditionally map this member Condition to evaluate using the source object Conditionally map this member Condition to evaluate using the current resolution context Conditionally map this member, evaluated before accessing the source value Condition to evaluate using the source object Conditionally map this member, evaluated before accessing the source value Condition to evaluate using the current resolution context Ignore this member for LINQ projections unless explicitly expanded during projection Custom resolver options Use the supplied member as the input to the resolver instead of the root source object Property name to use Custom resolver options Construct the value resolver using supplied constructor function Value resolver constructor function Itself Custom resolver options Source type Use the specified member as the input to the resolver instead of the root object Expression for the source member Custom resolver options Source type Value resolver type Use the specified member as the input to the resolver instead of the root object Expression for the source member Itself Use the specified member as the input to the resolver instead of the root object Name of the source member Itself Construct the value resolver with the supplied constructor function Value resolver constructor function Itself Custom resolver options Source type Construct the value resolver with the supplied constructor function Value resolver constructor function Itself Instantiates objects Extension point for mappers matching based on types configured by CreateMap Provides a named configuration for maps. Naming conventions become scoped per profile. Override this method in a derived class and call the CreateMap method to associate that map with this profile. Avoid calling the class from this method. Create an expression tree representing a mapping from the type to type Includes flattening and expressions inside MapFrom member configuration Source Type Destination Type Mapping engine instance Optional parameter object for parameterized mapping expressions Expand members explicitly previously marked as members to explicitly expand Expression tree mapping source to destination type Extention method to project from a queryable using the static property. Due to generic parameter inference, you need to call Project().To to execute the map Projections are only calculated once and cached Source type Queryable source Expression to project into Extention method to project from a queryable using the provided mapping engine Due to generic parameter inference, you need to call Project().To to execute the map Projections are only calculated once and cached Source type Queryable source Mapping engine instance Expression to project into Continuation to execute projection Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Explicit members to expand Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Parameters for parameterized mapping expressions Explicit members to expand Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to >Explicit members to expand Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to >Explicit members to expand Parameters for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Context information regarding resolution of a destination value Mapping operation options Current type map Current property map Current source type Current attempted destination type Index of current collection mapping Source value Destination value Parent resolution context Instance cache for resolving circular references Current mapping engine Represents the result of resolving a value Create a resolution result based on source values of a resolution context Resolution context Create a new resolution result representing ignoring the value New resolution result based on this context with ignored value Create a new resolution result representing the value provided Resolved value Resolution result containing resolved value Constructs a new resolution result based on the context of this value result Value resolved Type of value as reference in case value is null New resolutino result Resultant value Type of value resolved Type of member, in case the value is null Context for resolving this value Directs mappers to ignore this value Contains member configuration relating to source members Contains cached reflection information for easy retrieval Main configuration object holding all mapping configuration for a source and destination type Type-safe implementation of Source type Destination type Implementors override this method to resolve the destination value based on the provided source value Source value Destination ================================================ FILE: packages/AutoMapper.3.3.1/lib/portable-windows8+net40+wp8+wpa81+sl5+MonoAndroid+MonoTouch/AutoMapper.xml ================================================ AutoMapper Extension point to provide custom resolution for a destination value Implementors use source resolution result to provide a destination resolution result. Use the class for a type-safe version. Source resolution result Result, typically build from the source resolution result Main entry point for AutoMapper, for both creating maps and performing maps. Execute a mapping from the source object to a new destination object. The source type is inferred from the source object. Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object. Source type to use, regardless of the runtime type Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to the existing destination object. Source type to use Dsetination type Source object to map from Destination object to map into The mapped destination object, same instance as the object Execute a mapping from the source object to the existing destination object with supplied mapping options. Source type to use Destination type Source object to map from Destination object to map into Mapping options The mapped destination object, same instance as the object Execute a mapping from the source object to a new destination object with supplied mapping options. Source type to use Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects Source object to map from Source type to use Destination type to create Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects and supplied mapping options. Source object to map from Source type to use Destination type to create Mapping options Mapped destination object Execute a mapping from the source object to existing destination object with explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapped destination object, same instance as the object Execute a mapping from the source object to existing destination object with supplied mapping options and explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapping options Mapped destination object, same instance as the object Create a map between the and types and execute the map Source type to use Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map to the existing destination object Source type to use Destination type to use Source object to map from Destination object to map into Create a map between the object and types and execute the map. Source type is inferred from the source object . Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Mapped destination object Create a map between the and types and execute the map to the existing destination object. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Initializes the mapper with the supplied configuration. Runtime optimization complete after this method is called. This is the preferred means to configure AutoMapper. Initialization callback Configuration starter for specific source types Source type Configuration options Creates a mapping configuration from the type to the type Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the type to the type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a mapping configuration from the source type to the destination type. Use this method when the source and destination type are known at runtime and not compile time. Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the source type to the destination type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a named profile for grouped mapping configuration Profile name Profile configuration options Create a named profile for grouped mapping configuration, and configure the profile Profile name Profile configuration callback Add an existing profile Profile to add Add an existing profile type. Profile will be instantiated and added to the configuration. Profile type Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Get all configured type maps created All configured type maps Dry run all configured type maps and throw for each problem Dry run single type map Type map to check Dry run all type maps in given profile Profile name of type maps to test Dry run all type maps in given profile Profile type Clear out all existing configuration Globally ignore all members starting with a prefix Prefix of members to ignore. Call this before all other maps created. When set, destination can have null values. Defaults to true. This does not affect simple types, only complex ones. Mapping engine used to perform mappings Store for all configuration Mapping execution strategy, as a chain of responsibility Performs a map Resolution context Mapping engine runner Mapped object When true, the mapping engine will use this mapper as the strategy Resolution context Is match Reset mapper registry to built-in values Extension point for modifying list of object mappers Member list to check for configuration validation Check that all destination members are mapped Check that all source members are mapped Ignore this member for validation and skip during mapping Custom mapping action Source type Destination type Implementors can modify both the source and destination objects Source object Destination object Main entry point for executing maps Options for a single map operation Construct services using this callback. Use this for child/nested containers Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Create any missing type maps, if found Add context items to be accessed at map time inside an or Disable the cache used to re-use destination instances based on equality Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Defines a naming convention strategy Regular expression on how to tokenize a member Character to separate on Options for matching source/destination member types Naming convention for source members Naming convention for destination members Source member name prefixes to ignore/drop Source member name postfixes to ignore/drop Destination member name prefixes to ignore/drop Destination member naem prefixes to ignore/drop Source/destination member name replacers Source/destination member aliases Allow mapping to constructors that accept arguments For mapping via data readers, enable lazy returning of values instead of immediate evalaution Source extension methods included for search Converts source type to destination type instead of normal member mapping Source type Destination type Performs conversion from source to destination type Resolution context Destination object Contains profile-specific configuration Indicates that null source values should be mapped as null Indicates that null source collections should be mapped as null Generic-friendly implementation of Source type Destination type When overridden in a base class, this method is provided the casted source object extracted from the Source object Destination object Get all configured type maps created All configured type maps Find the for the configured source and destination type, checking the source/destination object types too Source object Destination object Configured source type Configured destination type Type map configuration Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Find the for the resolution result and destination type Resolution result from the source object Configured destination type Type map configuration Get named profile configuration Profile name Dry run all configured type maps and throw for each problem Dry run single type map Type map to check Dry run all type maps in given profile Profile name of type maps to test Dry run all type maps in given profile Profile type Get all configured mappers List of mappers Creates a based on a source and destination type Source type Destination type Type map configuration Fired each time a type map is created Factory method to create formatters, resolvers and type converters Configuration for profile-specific maps Creates a mapping configuration from the type to the type Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the type to the type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a mapping configuration from the source type to the destination type. Use this method when the source and destination type are known at runtime and not compile time. Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the source type to the destination type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Recognize a list of prefixes to be removed from source member names when matching List of prefixes Recognize a list of postfixes to be removed from source member names when matching List of postfixes Provide an alias for a member name when matching source member names Original member name Alias to match against Provide a new value for a part of a members name Original member value New member value Recognize a list of prefixes to be removed from destination member names when matching List of prefixes Recognize a list of postfixes to be removed from destination member names when matching List of postfixes Add a property name to globally ignore. Matches against the beginning of the property names. Property name to match against Include an assembly to search for extension methods to match Assembly containing extension methods Allow null destination values. If false, destination objects will be created for deep object graphs. Default true. Allow null destination collections. If true, null source collections result in null destination collections. Default false. Create a named profile for grouped mapping configuration Profile name Profile configuration options Create a named profile for grouped mapping configuration, and configure the profile Profile name Profile configuration callback Add an existing profile Profile to add Add an existing profile type. Profile will be instantiated and added to the configuration. Profile type Supply a factory method callback for creating formatters, resolvers and type converters Factory method Disable constructor mapping. Use this if you don't intend to have AutoMapper try to map to constructors Seal the configuration and optimize maps Mapping via a data reader will yield return each item, keeping a data reader open instead of eagerly evaluating Performs mapping based on configuration Execute a mapping from the source object to a new destination object. The source type is inferred from the source object. Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object. Source type to use, regardless of the runtime type Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Source type to use Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to the existing destination object. Source type to use Dsetination type Source object to map from Destination object to map into The mapped destination object, same instance as the object Execute a mapping from the source object to the existing destination object with supplied mapping options. Source type to use Destination type Source object to map from Destination object to map into Mapping options The mapped destination object, same instance as the object Execute a mapping from the source object to a new destination object with explicit objects Source object to map from Source type to use Destination type to create Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects and supplied mapping options. Source object to map from Source type to use Destination type to create Mapping options Mapped destination object Execute a mapping from the source object to existing destination object with explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapped destination object, same instance as the object Execute a mapping from the source object to existing destination object with supplied mapping options and explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapping options Mapped destination object, same instance as the object Create a map between the and types and execute the map Source type to use Destination type to use Source object to map from Mapped destination object Create a map between the object and types and execute the map. Source type is inferred from the source object . Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Mapped destination object Create a map between the and types and execute the map to the existing destination object Source type to use Destination type to use Source object to map from Destination object to map into Create a map between the and types and execute the map to the existing destination object. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Configuration provider for performaing maps Mapping configuration options for non-generic maps Skip normal member mapping and convert using a instantiated during mapping Type converter type Skip normal member mapping and convert using a instantiated during mapping Use this method if you need to specify the converter type at runtime Type converter type Override the destination type mapping for looking up configuration and instantiation Assign a profile to the current type map Profile name Itself Customize individual members Name of the member Callback for configuring member Itself Customize configuration for an individual source member Source member name Callback for member configuration options Itself Mapping configuration options Source type Destination type Customize configuration for individual member Expression to the top-level destination member. This must be a member on the TDestination type Callback for member options Itself Customize configuration for individual member. Used when the name isn't known at compile-time Destination member name Callback for member options Customize configuration for all members Callback for member options Ignores all properties that have either a private or protected setter, forcing the mapper to respect encapsulation (note: order matters, so place this before explicit configuration of any properties with an inaccessible setter) Itself When using ReverseMap, ignores all properties that have either a private or protected setter, keeping the reverse mapping consistent with the forward mapping (note: properties with an inaccessible setter may still be mapped unless IgnoreAllPropertiesWithAnInaccessibleSetter is also used) Itself Include this configuration in derived types' maps Derived source type Derived destination type Itself Include the base type map's configuration in this map Base source type Base destination type Itself Include this configuration in derived types' maps Derived source type Derived destination type Itself Assign a profile to the current type map Name of the profile Itself Skip member mapping and use a custom expression during LINQ projection Projection expression Skip member mapping and use a custom function to convert to the destination type Callback to convert from source type to destination type Skip member mapping and use a custom type converter instance to convert to the destination type Type converter instance Skip member mapping and use a custom type converter instance to convert to the destination type Type converter type Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Itself Execute a custom mapping action before member mapping Mapping action type instantiated during mapping Itself Execute a custom function to the source and/or destination types after member mapping Callback for the source/destination types Itself Execute a custom mapping action after member mapping Mapping action type instantiated during mapping Itself Supply a custom instantiation function for the destination type Callback to create the destination type given the source object Itself Supply a custom instantiation expression for the destination type for LINQ projection Callback to create the destination type given the source object Itself Supply a custom instantiation function for the destination type, based on the entire resolution context Callback to create the destination type given the current resolution context Itself Override the destination type mapping for looking up configuration and instantiation Destination type to use For self-referential types, limit recurse depth Number of levels to limit to Itself Construct the destination object using the service locator Itself Create a type mapping from the destination to the source type, using the members as validation Itself Customize configuration for an individual source member Expression to source member. Must be a member of the type Callback for member configuration options Itself Customize configuration for an individual source member. Member name not known until runtime Expression to source member. Must be a member of the type Callback for member configuration options Itself Replace the original runtime instance with a new source instance. Useful when ORMs return proxy types with no relationships to runtime types. The returned source object will be mapped instead of what was supplied in the original source object. Substitution function New source object to map. The current TypeMap being configured Configuration options for an individual member Map from a specific source member Source member to map from Resolve destination member using a custom value resolver instance Value resolver to use Value resolver configuration options Resolve destination member using a custom value resolver Value resolver of type Value resolver configuration options Resolve destination member using a custom value resolver Value resolver of type Value resolver configuration options Ignore this member for configuration validation and skip during mapping Use the destination value instead of mapping from the source value or creating a new instance Source member configuration options Ignore this member for configuration validation and skip during mapping Source member configuration options Source type Member configuration options Source type for this member Substitute a custom value when the source member resolves as null Value to use Resolve destination member using a custom value resolver Value resolver type Value resolver configuration options Resolve destination member using a custom value resolver. Used when the value resolver is not known at compile-time Value resolver type Value resolver configuration options Resolve destination member using a custom value resolver instance Value resolver instance to use Resolution expression Resolve destination member using a custom value resolver callback. Used instead of MapFrom when not simply redirecting a source member This method cannot be used in conjunction with LINQ query projection Callback function to resolve against source type Resolve destination member using a custom value resolver callback. Used instead of MapFrom when not simply redirecting a source member Access both the source object and current resolution context for additional mapping, context items and parent objects This method cannot be used in conjunction with LINQ query projection Callback function to resolve against source type Specify the source member to map from. Can only reference a member on the type This method can be used in mapping to LINQ query projections, while ResolveUsing cannot. Any null reference exceptions in this expression will be ignored (similar to flattening behavior) Member type of the source member to use Expression referencing the source member to map against Ignore this member for configuration validation and skip during mapping Supply a custom mapping order instead of what the .NET runtime returns Mapping order value Use the destination value instead of mapping from the source value or creating a new instance Do not use the destination value instead of mapping from the source value or creating a new instance Use a custom value Value type Value to use Use a custom value Value to use Conditionally map this member Condition to evaluate using the source object Conditionally map this member Condition to evaluate using the current resolution context Conditionally map this member, evaluated before accessing the source value Condition to evaluate using the source object Conditionally map this member, evaluated before accessing the source value Condition to evaluate using the current resolution context Ignore this member for LINQ projections unless explicitly expanded during projection Custom resolver options Use the supplied member as the input to the resolver instead of the root source object Property name to use Custom resolver options Construct the value resolver using supplied constructor function Value resolver constructor function Itself Custom resolver options Source type Use the specified member as the input to the resolver instead of the root object Expression for the source member Custom resolver options Source type Value resolver type Use the specified member as the input to the resolver instead of the root object Expression for the source member Itself Use the specified member as the input to the resolver instead of the root object Name of the source member Itself Construct the value resolver with the supplied constructor function Value resolver constructor function Itself Custom resolver options Source type Construct the value resolver with the supplied constructor function Value resolver constructor function Itself Instantiates objects Extension point for mappers matching based on types configured by CreateMap Provides a named configuration for maps. Naming conventions become scoped per profile. Override this method in a derived class and call the CreateMap method to associate that map with this profile. Avoid calling the class from this method. Create an expression tree representing a mapping from the type to type Includes flattening and expressions inside MapFrom member configuration Source Type Destination Type Mapping engine instance Optional parameter object for parameterized mapping expressions Expand members explicitly previously marked as members to explicitly expand Expression tree mapping source to destination type Extention method to project from a queryable using the static property. Due to generic parameter inference, you need to call Project().To to execute the map Projections are only calculated once and cached Source type Queryable source Expression to project into Extention method to project from a queryable using the provided mapping engine Due to generic parameter inference, you need to call Project().To to execute the map Projections are only calculated once and cached Source type Queryable source Mapping engine instance Expression to project into Continuation to execute projection Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Explicit members to expand Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Parameters for parameterized mapping expressions Explicit members to expand Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to >Explicit members to expand Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to >Explicit members to expand Parameters for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Context information regarding resolution of a destination value Mapping operation options Current type map Current property map Current source type Current attempted destination type Index of current collection mapping Source value Destination value Parent resolution context Instance cache for resolving circular references Current mapping engine Represents the result of resolving a value Create a resolution result based on source values of a resolution context Resolution context Create a new resolution result representing ignoring the value New resolution result based on this context with ignored value Create a new resolution result representing the value provided Resolved value Resolution result containing resolved value Constructs a new resolution result based on the context of this value result Value resolved Type of value as reference in case value is null New resolutino result Resultant value Type of value resolved Type of member, in case the value is null Context for resolving this value Directs mappers to ignore this value Contains member configuration relating to source members Contains cached reflection information for easy retrieval Main configuration object holding all mapping configuration for a source and destination type Type-safe implementation of Source type Destination type Implementors override this method to resolve the destination value based on the provided source value Source value Destination ================================================ FILE: packages/AutoMapper.3.3.1/lib/sl5/AutoMapper.xml ================================================ AutoMapper Extension point to provide custom resolution for a destination value Implementors use source resolution result to provide a destination resolution result. Use the class for a type-safe version. Source resolution result Result, typically build from the source resolution result Main entry point for AutoMapper, for both creating maps and performing maps. Execute a mapping from the source object to a new destination object. The source type is inferred from the source object. Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object. Source type to use, regardless of the runtime type Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to the existing destination object. Source type to use Dsetination type Source object to map from Destination object to map into The mapped destination object, same instance as the object Execute a mapping from the source object to the existing destination object with supplied mapping options. Source type to use Destination type Source object to map from Destination object to map into Mapping options The mapped destination object, same instance as the object Execute a mapping from the source object to a new destination object with supplied mapping options. Source type to use Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects Source object to map from Source type to use Destination type to create Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects and supplied mapping options. Source object to map from Source type to use Destination type to create Mapping options Mapped destination object Execute a mapping from the source object to existing destination object with explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapped destination object, same instance as the object Execute a mapping from the source object to existing destination object with supplied mapping options and explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapping options Mapped destination object, same instance as the object Create a map between the and types and execute the map Source type to use Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map to the existing destination object Source type to use Destination type to use Source object to map from Destination object to map into Create a map between the object and types and execute the map. Source type is inferred from the source object . Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Mapped destination object Create a map between the and types and execute the map to the existing destination object. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Initializes the mapper with the supplied configuration. Runtime optimization complete after this method is called. This is the preferred means to configure AutoMapper. Initialization callback Configuration starter for specific source types Source type Configuration options Creates a mapping configuration from the type to the type Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the type to the type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a mapping configuration from the source type to the destination type. Use this method when the source and destination type are known at runtime and not compile time. Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the source type to the destination type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a named profile for grouped mapping configuration Profile name Profile configuration options Create a named profile for grouped mapping configuration, and configure the profile Profile name Profile configuration callback Add an existing profile Profile to add Add an existing profile type. Profile will be instantiated and added to the configuration. Profile type Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Get all configured type maps created All configured type maps Dry run all configured type maps and throw for each problem Dry run single type map Type map to check Dry run all type maps in given profile Profile name of type maps to test Dry run all type maps in given profile Profile type Clear out all existing configuration Globally ignore all members starting with a prefix Prefix of members to ignore. Call this before all other maps created. When set, destination can have null values. Defaults to true. This does not affect simple types, only complex ones. Mapping engine used to perform mappings Store for all configuration Mapping execution strategy, as a chain of responsibility Performs a map Resolution context Mapping engine runner Mapped object When true, the mapping engine will use this mapper as the strategy Resolution context Is match Reset mapper registry to built-in values Extension point for modifying list of object mappers Member list to check for configuration validation Check that all destination members are mapped Check that all source members are mapped Ignore this member for validation and skip during mapping Custom mapping action Source type Destination type Implementors can modify both the source and destination objects Source object Destination object Main entry point for executing maps Options for a single map operation Construct services using this callback. Use this for child/nested containers Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Create any missing type maps, if found Add context items to be accessed at map time inside an or Disable the cache used to re-use destination instances based on equality Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Defines a naming convention strategy Regular expression on how to tokenize a member Character to separate on Options for matching source/destination member types Naming convention for source members Naming convention for destination members Source member name prefixes to ignore/drop Source member name postfixes to ignore/drop Destination member name prefixes to ignore/drop Destination member naem prefixes to ignore/drop Source/destination member name replacers Source/destination member aliases Allow mapping to constructors that accept arguments For mapping via data readers, enable lazy returning of values instead of immediate evalaution Source extension methods included for search Converts source type to destination type instead of normal member mapping Source type Destination type Performs conversion from source to destination type Resolution context Destination object Contains profile-specific configuration Indicates that null source values should be mapped as null Indicates that null source collections should be mapped as null Generic-friendly implementation of Source type Destination type When overridden in a base class, this method is provided the casted source object extracted from the Source object Destination object Get all configured type maps created All configured type maps Find the for the configured source and destination type, checking the source/destination object types too Source object Destination object Configured source type Configured destination type Type map configuration Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Find the for the resolution result and destination type Resolution result from the source object Configured destination type Type map configuration Get named profile configuration Profile name Dry run all configured type maps and throw for each problem Dry run single type map Type map to check Dry run all type maps in given profile Profile name of type maps to test Dry run all type maps in given profile Profile type Get all configured mappers List of mappers Creates a based on a source and destination type Source type Destination type Type map configuration Fired each time a type map is created Factory method to create formatters, resolvers and type converters Configuration for profile-specific maps Creates a mapping configuration from the type to the type Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the type to the type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a mapping configuration from the source type to the destination type. Use this method when the source and destination type are known at runtime and not compile time. Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the source type to the destination type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Recognize a list of prefixes to be removed from source member names when matching List of prefixes Recognize a list of postfixes to be removed from source member names when matching List of postfixes Provide an alias for a member name when matching source member names Original member name Alias to match against Provide a new value for a part of a members name Original member value New member value Recognize a list of prefixes to be removed from destination member names when matching List of prefixes Recognize a list of postfixes to be removed from destination member names when matching List of postfixes Add a property name to globally ignore. Matches against the beginning of the property names. Property name to match against Include an assembly to search for extension methods to match Assembly containing extension methods Allow null destination values. If false, destination objects will be created for deep object graphs. Default true. Allow null destination collections. If true, null source collections result in null destination collections. Default false. Create a named profile for grouped mapping configuration Profile name Profile configuration options Create a named profile for grouped mapping configuration, and configure the profile Profile name Profile configuration callback Add an existing profile Profile to add Add an existing profile type. Profile will be instantiated and added to the configuration. Profile type Supply a factory method callback for creating formatters, resolvers and type converters Factory method Disable constructor mapping. Use this if you don't intend to have AutoMapper try to map to constructors Seal the configuration and optimize maps Mapping via a data reader will yield return each item, keeping a data reader open instead of eagerly evaluating Performs mapping based on configuration Execute a mapping from the source object to a new destination object. The source type is inferred from the source object. Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object. Source type to use, regardless of the runtime type Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Source type to use Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to the existing destination object. Source type to use Dsetination type Source object to map from Destination object to map into The mapped destination object, same instance as the object Execute a mapping from the source object to the existing destination object with supplied mapping options. Source type to use Destination type Source object to map from Destination object to map into Mapping options The mapped destination object, same instance as the object Execute a mapping from the source object to a new destination object with explicit objects Source object to map from Source type to use Destination type to create Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects and supplied mapping options. Source object to map from Source type to use Destination type to create Mapping options Mapped destination object Execute a mapping from the source object to existing destination object with explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapped destination object, same instance as the object Execute a mapping from the source object to existing destination object with supplied mapping options and explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapping options Mapped destination object, same instance as the object Create a map between the and types and execute the map Source type to use Destination type to use Source object to map from Mapped destination object Create a map between the object and types and execute the map. Source type is inferred from the source object . Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Mapped destination object Create a map between the and types and execute the map to the existing destination object Source type to use Destination type to use Source object to map from Destination object to map into Create a map between the and types and execute the map to the existing destination object. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Configuration provider for performaing maps Mapping configuration options for non-generic maps Skip normal member mapping and convert using a instantiated during mapping Type converter type Skip normal member mapping and convert using a instantiated during mapping Use this method if you need to specify the converter type at runtime Type converter type Override the destination type mapping for looking up configuration and instantiation Assign a profile to the current type map Profile name Itself Customize individual members Name of the member Callback for configuring member Itself Customize configuration for an individual source member Source member name Callback for member configuration options Itself Mapping configuration options Source type Destination type Customize configuration for individual member Expression to the top-level destination member. This must be a member on the TDestination type Callback for member options Itself Customize configuration for individual member. Used when the name isn't known at compile-time Destination member name Callback for member options Customize configuration for all members Callback for member options Ignores all properties that have either a private or protected setter, forcing the mapper to respect encapsulation (note: order matters, so place this before explicit configuration of any properties with an inaccessible setter) Itself When using ReverseMap, ignores all properties that have either a private or protected setter, keeping the reverse mapping consistent with the forward mapping (note: properties with an inaccessible setter may still be mapped unless IgnoreAllPropertiesWithAnInaccessibleSetter is also used) Itself Include this configuration in derived types' maps Derived source type Derived destination type Itself Include the base type map's configuration in this map Base source type Base destination type Itself Include this configuration in derived types' maps Derived source type Derived destination type Itself Assign a profile to the current type map Name of the profile Itself Skip member mapping and use a custom expression during LINQ projection Projection expression Skip member mapping and use a custom function to convert to the destination type Callback to convert from source type to destination type Skip member mapping and use a custom type converter instance to convert to the destination type Type converter instance Skip member mapping and use a custom type converter instance to convert to the destination type Type converter type Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Itself Execute a custom mapping action before member mapping Mapping action type instantiated during mapping Itself Execute a custom function to the source and/or destination types after member mapping Callback for the source/destination types Itself Execute a custom mapping action after member mapping Mapping action type instantiated during mapping Itself Supply a custom instantiation function for the destination type Callback to create the destination type given the source object Itself Supply a custom instantiation expression for the destination type for LINQ projection Callback to create the destination type given the source object Itself Supply a custom instantiation function for the destination type, based on the entire resolution context Callback to create the destination type given the current resolution context Itself Override the destination type mapping for looking up configuration and instantiation Destination type to use For self-referential types, limit recurse depth Number of levels to limit to Itself Construct the destination object using the service locator Itself Create a type mapping from the destination to the source type, using the members as validation Itself Customize configuration for an individual source member Expression to source member. Must be a member of the type Callback for member configuration options Itself Customize configuration for an individual source member. Member name not known until runtime Expression to source member. Must be a member of the type Callback for member configuration options Itself Replace the original runtime instance with a new source instance. Useful when ORMs return proxy types with no relationships to runtime types. The returned source object will be mapped instead of what was supplied in the original source object. Substitution function New source object to map. The current TypeMap being configured Configuration options for an individual member Map from a specific source member Source member to map from Resolve destination member using a custom value resolver instance Value resolver to use Value resolver configuration options Resolve destination member using a custom value resolver Value resolver of type Value resolver configuration options Resolve destination member using a custom value resolver Value resolver of type Value resolver configuration options Ignore this member for configuration validation and skip during mapping Use the destination value instead of mapping from the source value or creating a new instance Source member configuration options Ignore this member for configuration validation and skip during mapping Source member configuration options Source type Member configuration options Source type for this member Substitute a custom value when the source member resolves as null Value to use Resolve destination member using a custom value resolver Value resolver type Value resolver configuration options Resolve destination member using a custom value resolver. Used when the value resolver is not known at compile-time Value resolver type Value resolver configuration options Resolve destination member using a custom value resolver instance Value resolver instance to use Resolution expression Resolve destination member using a custom value resolver callback. Used instead of MapFrom when not simply redirecting a source member This method cannot be used in conjunction with LINQ query projection Callback function to resolve against source type Resolve destination member using a custom value resolver callback. Used instead of MapFrom when not simply redirecting a source member Access both the source object and current resolution context for additional mapping, context items and parent objects This method cannot be used in conjunction with LINQ query projection Callback function to resolve against source type Specify the source member to map from. Can only reference a member on the type This method can be used in mapping to LINQ query projections, while ResolveUsing cannot. Any null reference exceptions in this expression will be ignored (similar to flattening behavior) Member type of the source member to use Expression referencing the source member to map against Ignore this member for configuration validation and skip during mapping Supply a custom mapping order instead of what the .NET runtime returns Mapping order value Use the destination value instead of mapping from the source value or creating a new instance Do not use the destination value instead of mapping from the source value or creating a new instance Use a custom value Value type Value to use Use a custom value Value to use Conditionally map this member Condition to evaluate using the source object Conditionally map this member Condition to evaluate using the current resolution context Conditionally map this member, evaluated before accessing the source value Condition to evaluate using the source object Conditionally map this member, evaluated before accessing the source value Condition to evaluate using the current resolution context Ignore this member for LINQ projections unless explicitly expanded during projection Custom resolver options Use the supplied member as the input to the resolver instead of the root source object Property name to use Custom resolver options Construct the value resolver using supplied constructor function Value resolver constructor function Itself Custom resolver options Source type Use the specified member as the input to the resolver instead of the root object Expression for the source member Custom resolver options Source type Value resolver type Use the specified member as the input to the resolver instead of the root object Expression for the source member Itself Use the specified member as the input to the resolver instead of the root object Name of the source member Itself Construct the value resolver with the supplied constructor function Value resolver constructor function Itself Custom resolver options Source type Construct the value resolver with the supplied constructor function Value resolver constructor function Itself Instantiates objects Extension point for mappers matching based on types configured by CreateMap Provides a named configuration for maps. Naming conventions become scoped per profile. Override this method in a derived class and call the CreateMap method to associate that map with this profile. Avoid calling the class from this method. Create an expression tree representing a mapping from the type to type Includes flattening and expressions inside MapFrom member configuration Source Type Destination Type Mapping engine instance Optional parameter object for parameterized mapping expressions Expand members explicitly previously marked as members to explicitly expand Expression tree mapping source to destination type Extention method to project from a queryable using the static property. Due to generic parameter inference, you need to call Project().To to execute the map Projections are only calculated once and cached Source type Queryable source Expression to project into Extention method to project from a queryable using the provided mapping engine Due to generic parameter inference, you need to call Project().To to execute the map Projections are only calculated once and cached Source type Queryable source Mapping engine instance Expression to project into Continuation to execute projection Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Explicit members to expand Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Parameters for parameterized mapping expressions Explicit members to expand Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to >Explicit members to expand Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to >Explicit members to expand Parameters for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Context information regarding resolution of a destination value Mapping operation options Current type map Current property map Current source type Current attempted destination type Index of current collection mapping Source value Destination value Parent resolution context Instance cache for resolving circular references Current mapping engine Represents the result of resolving a value Create a resolution result based on source values of a resolution context Resolution context Create a new resolution result representing ignoring the value New resolution result based on this context with ignored value Create a new resolution result representing the value provided Resolved value Resolution result containing resolved value Constructs a new resolution result based on the context of this value result Value resolved Type of value as reference in case value is null New resolutino result Resultant value Type of value resolved Type of member, in case the value is null Context for resolving this value Directs mappers to ignore this value Contains member configuration relating to source members Contains cached reflection information for easy retrieval Main configuration object holding all mapping configuration for a source and destination type Type-safe implementation of Source type Destination type Implementors override this method to resolve the destination value based on the provided source value Source value Destination ================================================ FILE: packages/AutoMapper.3.3.1/lib/windows8/AutoMapper.xml ================================================ AutoMapper Extension point to provide custom resolution for a destination value Implementors use source resolution result to provide a destination resolution result. Use the class for a type-safe version. Source resolution result Result, typically build from the source resolution result Main entry point for AutoMapper, for both creating maps and performing maps. Execute a mapping from the source object to a new destination object. The source type is inferred from the source object. Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object. Source type to use, regardless of the runtime type Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to the existing destination object. Source type to use Dsetination type Source object to map from Destination object to map into The mapped destination object, same instance as the object Execute a mapping from the source object to the existing destination object with supplied mapping options. Source type to use Destination type Source object to map from Destination object to map into Mapping options The mapped destination object, same instance as the object Execute a mapping from the source object to a new destination object with supplied mapping options. Source type to use Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects Source object to map from Source type to use Destination type to create Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects and supplied mapping options. Source object to map from Source type to use Destination type to create Mapping options Mapped destination object Execute a mapping from the source object to existing destination object with explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapped destination object, same instance as the object Execute a mapping from the source object to existing destination object with supplied mapping options and explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapping options Mapped destination object, same instance as the object Create a map between the and types and execute the map Source type to use Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map to the existing destination object Source type to use Destination type to use Source object to map from Destination object to map into Create a map between the object and types and execute the map. Source type is inferred from the source object . Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Mapped destination object Create a map between the and types and execute the map to the existing destination object. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Initializes the mapper with the supplied configuration. Runtime optimization complete after this method is called. This is the preferred means to configure AutoMapper. Initialization callback Configuration starter for specific source types Source type Configuration options Creates a mapping configuration from the type to the type Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the type to the type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a mapping configuration from the source type to the destination type. Use this method when the source and destination type are known at runtime and not compile time. Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the source type to the destination type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a named profile for grouped mapping configuration Profile name Profile configuration options Create a named profile for grouped mapping configuration, and configure the profile Profile name Profile configuration callback Add an existing profile Profile to add Add an existing profile type. Profile will be instantiated and added to the configuration. Profile type Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Get all configured type maps created All configured type maps Dry run all configured type maps and throw for each problem Dry run single type map Type map to check Dry run all type maps in given profile Profile name of type maps to test Dry run all type maps in given profile Profile type Clear out all existing configuration Globally ignore all members starting with a prefix Prefix of members to ignore. Call this before all other maps created. When set, destination can have null values. Defaults to true. This does not affect simple types, only complex ones. Mapping engine used to perform mappings Store for all configuration Mapping execution strategy, as a chain of responsibility Performs a map Resolution context Mapping engine runner Mapped object When true, the mapping engine will use this mapper as the strategy Resolution context Is match Reset mapper registry to built-in values Extension point for modifying list of object mappers Member list to check for configuration validation Check that all destination members are mapped Check that all source members are mapped Ignore this member for validation and skip during mapping Custom mapping action Source type Destination type Implementors can modify both the source and destination objects Source object Destination object Main entry point for executing maps Options for a single map operation Construct services using this callback. Use this for child/nested containers Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Create any missing type maps, if found Add context items to be accessed at map time inside an or Disable the cache used to re-use destination instances based on equality Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Defines a naming convention strategy Regular expression on how to tokenize a member Character to separate on Options for matching source/destination member types Naming convention for source members Naming convention for destination members Source member name prefixes to ignore/drop Source member name postfixes to ignore/drop Destination member name prefixes to ignore/drop Destination member naem prefixes to ignore/drop Source/destination member name replacers Source/destination member aliases Allow mapping to constructors that accept arguments For mapping via data readers, enable lazy returning of values instead of immediate evalaution Source extension methods included for search Converts source type to destination type instead of normal member mapping Source type Destination type Performs conversion from source to destination type Resolution context Destination object Contains profile-specific configuration Indicates that null source values should be mapped as null Indicates that null source collections should be mapped as null Generic-friendly implementation of Source type Destination type When overridden in a base class, this method is provided the casted source object extracted from the Source object Destination object Get all configured type maps created All configured type maps Find the for the configured source and destination type, checking the source/destination object types too Source object Destination object Configured source type Configured destination type Type map configuration Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Find the for the resolution result and destination type Resolution result from the source object Configured destination type Type map configuration Get named profile configuration Profile name Dry run all configured type maps and throw for each problem Dry run single type map Type map to check Dry run all type maps in given profile Profile name of type maps to test Dry run all type maps in given profile Profile type Get all configured mappers List of mappers Creates a based on a source and destination type Source type Destination type Type map configuration Fired each time a type map is created Factory method to create formatters, resolvers and type converters Configuration for profile-specific maps Creates a mapping configuration from the type to the type Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the type to the type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a mapping configuration from the source type to the destination type. Use this method when the source and destination type are known at runtime and not compile time. Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the source type to the destination type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Recognize a list of prefixes to be removed from source member names when matching List of prefixes Recognize a list of postfixes to be removed from source member names when matching List of postfixes Provide an alias for a member name when matching source member names Original member name Alias to match against Provide a new value for a part of a members name Original member value New member value Recognize a list of prefixes to be removed from destination member names when matching List of prefixes Recognize a list of postfixes to be removed from destination member names when matching List of postfixes Add a property name to globally ignore. Matches against the beginning of the property names. Property name to match against Include an assembly to search for extension methods to match Assembly containing extension methods Allow null destination values. If false, destination objects will be created for deep object graphs. Default true. Allow null destination collections. If true, null source collections result in null destination collections. Default false. Create a named profile for grouped mapping configuration Profile name Profile configuration options Create a named profile for grouped mapping configuration, and configure the profile Profile name Profile configuration callback Add an existing profile Profile to add Add an existing profile type. Profile will be instantiated and added to the configuration. Profile type Supply a factory method callback for creating formatters, resolvers and type converters Factory method Disable constructor mapping. Use this if you don't intend to have AutoMapper try to map to constructors Seal the configuration and optimize maps Mapping via a data reader will yield return each item, keeping a data reader open instead of eagerly evaluating Performs mapping based on configuration Execute a mapping from the source object to a new destination object. The source type is inferred from the source object. Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object. Source type to use, regardless of the runtime type Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Source type to use Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to the existing destination object. Source type to use Dsetination type Source object to map from Destination object to map into The mapped destination object, same instance as the object Execute a mapping from the source object to the existing destination object with supplied mapping options. Source type to use Destination type Source object to map from Destination object to map into Mapping options The mapped destination object, same instance as the object Execute a mapping from the source object to a new destination object with explicit objects Source object to map from Source type to use Destination type to create Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects and supplied mapping options. Source object to map from Source type to use Destination type to create Mapping options Mapped destination object Execute a mapping from the source object to existing destination object with explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapped destination object, same instance as the object Execute a mapping from the source object to existing destination object with supplied mapping options and explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapping options Mapped destination object, same instance as the object Create a map between the and types and execute the map Source type to use Destination type to use Source object to map from Mapped destination object Create a map between the object and types and execute the map. Source type is inferred from the source object . Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Mapped destination object Create a map between the and types and execute the map to the existing destination object Source type to use Destination type to use Source object to map from Destination object to map into Create a map between the and types and execute the map to the existing destination object. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Configuration provider for performaing maps Mapping configuration options for non-generic maps Skip normal member mapping and convert using a instantiated during mapping Type converter type Skip normal member mapping and convert using a instantiated during mapping Use this method if you need to specify the converter type at runtime Type converter type Override the destination type mapping for looking up configuration and instantiation Assign a profile to the current type map Profile name Itself Customize individual members Name of the member Callback for configuring member Itself Customize configuration for an individual source member Source member name Callback for member configuration options Itself Mapping configuration options Source type Destination type Customize configuration for individual member Expression to the top-level destination member. This must be a member on the TDestination type Callback for member options Itself Customize configuration for individual member. Used when the name isn't known at compile-time Destination member name Callback for member options Customize configuration for all members Callback for member options Ignores all properties that have either a private or protected setter, forcing the mapper to respect encapsulation (note: order matters, so place this before explicit configuration of any properties with an inaccessible setter) Itself When using ReverseMap, ignores all properties that have either a private or protected setter, keeping the reverse mapping consistent with the forward mapping (note: properties with an inaccessible setter may still be mapped unless IgnoreAllPropertiesWithAnInaccessibleSetter is also used) Itself Include this configuration in derived types' maps Derived source type Derived destination type Itself Include the base type map's configuration in this map Base source type Base destination type Itself Include this configuration in derived types' maps Derived source type Derived destination type Itself Assign a profile to the current type map Name of the profile Itself Skip member mapping and use a custom expression during LINQ projection Projection expression Skip member mapping and use a custom function to convert to the destination type Callback to convert from source type to destination type Skip member mapping and use a custom type converter instance to convert to the destination type Type converter instance Skip member mapping and use a custom type converter instance to convert to the destination type Type converter type Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Itself Execute a custom mapping action before member mapping Mapping action type instantiated during mapping Itself Execute a custom function to the source and/or destination types after member mapping Callback for the source/destination types Itself Execute a custom mapping action after member mapping Mapping action type instantiated during mapping Itself Supply a custom instantiation function for the destination type Callback to create the destination type given the source object Itself Supply a custom instantiation expression for the destination type for LINQ projection Callback to create the destination type given the source object Itself Supply a custom instantiation function for the destination type, based on the entire resolution context Callback to create the destination type given the current resolution context Itself Override the destination type mapping for looking up configuration and instantiation Destination type to use For self-referential types, limit recurse depth Number of levels to limit to Itself Construct the destination object using the service locator Itself Create a type mapping from the destination to the source type, using the members as validation Itself Customize configuration for an individual source member Expression to source member. Must be a member of the type Callback for member configuration options Itself Customize configuration for an individual source member. Member name not known until runtime Expression to source member. Must be a member of the type Callback for member configuration options Itself Replace the original runtime instance with a new source instance. Useful when ORMs return proxy types with no relationships to runtime types. The returned source object will be mapped instead of what was supplied in the original source object. Substitution function New source object to map. The current TypeMap being configured Configuration options for an individual member Map from a specific source member Source member to map from Resolve destination member using a custom value resolver instance Value resolver to use Value resolver configuration options Resolve destination member using a custom value resolver Value resolver of type Value resolver configuration options Resolve destination member using a custom value resolver Value resolver of type Value resolver configuration options Ignore this member for configuration validation and skip during mapping Use the destination value instead of mapping from the source value or creating a new instance Source member configuration options Ignore this member for configuration validation and skip during mapping Source member configuration options Source type Member configuration options Source type for this member Substitute a custom value when the source member resolves as null Value to use Resolve destination member using a custom value resolver Value resolver type Value resolver configuration options Resolve destination member using a custom value resolver. Used when the value resolver is not known at compile-time Value resolver type Value resolver configuration options Resolve destination member using a custom value resolver instance Value resolver instance to use Resolution expression Resolve destination member using a custom value resolver callback. Used instead of MapFrom when not simply redirecting a source member This method cannot be used in conjunction with LINQ query projection Callback function to resolve against source type Resolve destination member using a custom value resolver callback. Used instead of MapFrom when not simply redirecting a source member Access both the source object and current resolution context for additional mapping, context items and parent objects This method cannot be used in conjunction with LINQ query projection Callback function to resolve against source type Specify the source member to map from. Can only reference a member on the type This method can be used in mapping to LINQ query projections, while ResolveUsing cannot. Any null reference exceptions in this expression will be ignored (similar to flattening behavior) Member type of the source member to use Expression referencing the source member to map against Ignore this member for configuration validation and skip during mapping Supply a custom mapping order instead of what the .NET runtime returns Mapping order value Use the destination value instead of mapping from the source value or creating a new instance Do not use the destination value instead of mapping from the source value or creating a new instance Use a custom value Value type Value to use Use a custom value Value to use Conditionally map this member Condition to evaluate using the source object Conditionally map this member Condition to evaluate using the current resolution context Conditionally map this member, evaluated before accessing the source value Condition to evaluate using the source object Conditionally map this member, evaluated before accessing the source value Condition to evaluate using the current resolution context Ignore this member for LINQ projections unless explicitly expanded during projection Custom resolver options Use the supplied member as the input to the resolver instead of the root source object Property name to use Custom resolver options Construct the value resolver using supplied constructor function Value resolver constructor function Itself Custom resolver options Source type Use the specified member as the input to the resolver instead of the root object Expression for the source member Custom resolver options Source type Value resolver type Use the specified member as the input to the resolver instead of the root object Expression for the source member Itself Use the specified member as the input to the resolver instead of the root object Name of the source member Itself Construct the value resolver with the supplied constructor function Value resolver constructor function Itself Custom resolver options Source type Construct the value resolver with the supplied constructor function Value resolver constructor function Itself Instantiates objects Extension point for mappers matching based on types configured by CreateMap Provides a named configuration for maps. Naming conventions become scoped per profile. Override this method in a derived class and call the CreateMap method to associate that map with this profile. Avoid calling the class from this method. Create an expression tree representing a mapping from the type to type Includes flattening and expressions inside MapFrom member configuration Source Type Destination Type Mapping engine instance Optional parameter object for parameterized mapping expressions Expand members explicitly previously marked as members to explicitly expand Expression tree mapping source to destination type Extention method to project from a queryable using the static property. Due to generic parameter inference, you need to call Project().To to execute the map Projections are only calculated once and cached Source type Queryable source Expression to project into Extention method to project from a queryable using the provided mapping engine Due to generic parameter inference, you need to call Project().To to execute the map Projections are only calculated once and cached Source type Queryable source Mapping engine instance Expression to project into Continuation to execute projection Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Explicit members to expand Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Parameters for parameterized mapping expressions Explicit members to expand Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to >Explicit members to expand Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to >Explicit members to expand Parameters for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Context information regarding resolution of a destination value Mapping operation options Current type map Current property map Current source type Current attempted destination type Index of current collection mapping Source value Destination value Parent resolution context Instance cache for resolving circular references Current mapping engine Represents the result of resolving a value Create a resolution result based on source values of a resolution context Resolution context Create a new resolution result representing ignoring the value New resolution result based on this context with ignored value Create a new resolution result representing the value provided Resolved value Resolution result containing resolved value Constructs a new resolution result based on the context of this value result Value resolved Type of value as reference in case value is null New resolutino result Resultant value Type of value resolved Type of member, in case the value is null Context for resolving this value Directs mappers to ignore this value Contains member configuration relating to source members Contains cached reflection information for easy retrieval Main configuration object holding all mapping configuration for a source and destination type Type-safe implementation of Source type Destination type Implementors override this method to resolve the destination value based on the provided source value Source value Destination ================================================ FILE: packages/AutoMapper.3.3.1/lib/wp8/AutoMapper.xml ================================================ AutoMapper Extension point to provide custom resolution for a destination value Implementors use source resolution result to provide a destination resolution result. Use the class for a type-safe version. Source resolution result Result, typically build from the source resolution result Main entry point for AutoMapper, for both creating maps and performing maps. Execute a mapping from the source object to a new destination object. The source type is inferred from the source object. Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object. Source type to use, regardless of the runtime type Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to the existing destination object. Source type to use Dsetination type Source object to map from Destination object to map into The mapped destination object, same instance as the object Execute a mapping from the source object to the existing destination object with supplied mapping options. Source type to use Destination type Source object to map from Destination object to map into Mapping options The mapped destination object, same instance as the object Execute a mapping from the source object to a new destination object with supplied mapping options. Source type to use Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects Source object to map from Source type to use Destination type to create Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects and supplied mapping options. Source object to map from Source type to use Destination type to create Mapping options Mapped destination object Execute a mapping from the source object to existing destination object with explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapped destination object, same instance as the object Execute a mapping from the source object to existing destination object with supplied mapping options and explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapping options Mapped destination object, same instance as the object Create a map between the and types and execute the map Source type to use Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map to the existing destination object Source type to use Destination type to use Source object to map from Destination object to map into Create a map between the object and types and execute the map. Source type is inferred from the source object . Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Mapped destination object Create a map between the and types and execute the map to the existing destination object. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Initializes the mapper with the supplied configuration. Runtime optimization complete after this method is called. This is the preferred means to configure AutoMapper. Initialization callback Configuration starter for specific source types Source type Configuration options Creates a mapping configuration from the type to the type Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the type to the type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a mapping configuration from the source type to the destination type. Use this method when the source and destination type are known at runtime and not compile time. Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the source type to the destination type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a named profile for grouped mapping configuration Profile name Profile configuration options Create a named profile for grouped mapping configuration, and configure the profile Profile name Profile configuration callback Add an existing profile Profile to add Add an existing profile type. Profile will be instantiated and added to the configuration. Profile type Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Get all configured type maps created All configured type maps Dry run all configured type maps and throw for each problem Dry run single type map Type map to check Dry run all type maps in given profile Profile name of type maps to test Dry run all type maps in given profile Profile type Clear out all existing configuration Globally ignore all members starting with a prefix Prefix of members to ignore. Call this before all other maps created. When set, destination can have null values. Defaults to true. This does not affect simple types, only complex ones. Mapping engine used to perform mappings Store for all configuration Mapping execution strategy, as a chain of responsibility Performs a map Resolution context Mapping engine runner Mapped object When true, the mapping engine will use this mapper as the strategy Resolution context Is match Reset mapper registry to built-in values Extension point for modifying list of object mappers Member list to check for configuration validation Check that all destination members are mapped Check that all source members are mapped Ignore this member for validation and skip during mapping Custom mapping action Source type Destination type Implementors can modify both the source and destination objects Source object Destination object Main entry point for executing maps Options for a single map operation Construct services using this callback. Use this for child/nested containers Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Create any missing type maps, if found Add context items to be accessed at map time inside an or Disable the cache used to re-use destination instances based on equality Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Defines a naming convention strategy Regular expression on how to tokenize a member Character to separate on Options for matching source/destination member types Naming convention for source members Naming convention for destination members Source member name prefixes to ignore/drop Source member name postfixes to ignore/drop Destination member name prefixes to ignore/drop Destination member naem prefixes to ignore/drop Source/destination member name replacers Source/destination member aliases Allow mapping to constructors that accept arguments For mapping via data readers, enable lazy returning of values instead of immediate evalaution Source extension methods included for search Converts source type to destination type instead of normal member mapping Source type Destination type Performs conversion from source to destination type Resolution context Destination object Contains profile-specific configuration Indicates that null source values should be mapped as null Indicates that null source collections should be mapped as null Generic-friendly implementation of Source type Destination type When overridden in a base class, this method is provided the casted source object extracted from the Source object Destination object Get all configured type maps created All configured type maps Find the for the configured source and destination type, checking the source/destination object types too Source object Destination object Configured source type Configured destination type Type map configuration Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Find the for the resolution result and destination type Resolution result from the source object Configured destination type Type map configuration Get named profile configuration Profile name Dry run all configured type maps and throw for each problem Dry run single type map Type map to check Dry run all type maps in given profile Profile name of type maps to test Dry run all type maps in given profile Profile type Get all configured mappers List of mappers Creates a based on a source and destination type Source type Destination type Type map configuration Fired each time a type map is created Factory method to create formatters, resolvers and type converters Configuration for profile-specific maps Creates a mapping configuration from the type to the type Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the type to the type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a mapping configuration from the source type to the destination type. Use this method when the source and destination type are known at runtime and not compile time. Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the source type to the destination type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Recognize a list of prefixes to be removed from source member names when matching List of prefixes Recognize a list of postfixes to be removed from source member names when matching List of postfixes Provide an alias for a member name when matching source member names Original member name Alias to match against Provide a new value for a part of a members name Original member value New member value Recognize a list of prefixes to be removed from destination member names when matching List of prefixes Recognize a list of postfixes to be removed from destination member names when matching List of postfixes Add a property name to globally ignore. Matches against the beginning of the property names. Property name to match against Include an assembly to search for extension methods to match Assembly containing extension methods Allow null destination values. If false, destination objects will be created for deep object graphs. Default true. Allow null destination collections. If true, null source collections result in null destination collections. Default false. Create a named profile for grouped mapping configuration Profile name Profile configuration options Create a named profile for grouped mapping configuration, and configure the profile Profile name Profile configuration callback Add an existing profile Profile to add Add an existing profile type. Profile will be instantiated and added to the configuration. Profile type Supply a factory method callback for creating formatters, resolvers and type converters Factory method Disable constructor mapping. Use this if you don't intend to have AutoMapper try to map to constructors Seal the configuration and optimize maps Mapping via a data reader will yield return each item, keeping a data reader open instead of eagerly evaluating Performs mapping based on configuration Execute a mapping from the source object to a new destination object. The source type is inferred from the source object. Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object. Source type to use, regardless of the runtime type Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Source type to use Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to the existing destination object. Source type to use Dsetination type Source object to map from Destination object to map into The mapped destination object, same instance as the object Execute a mapping from the source object to the existing destination object with supplied mapping options. Source type to use Destination type Source object to map from Destination object to map into Mapping options The mapped destination object, same instance as the object Execute a mapping from the source object to a new destination object with explicit objects Source object to map from Source type to use Destination type to create Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects and supplied mapping options. Source object to map from Source type to use Destination type to create Mapping options Mapped destination object Execute a mapping from the source object to existing destination object with explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapped destination object, same instance as the object Execute a mapping from the source object to existing destination object with supplied mapping options and explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapping options Mapped destination object, same instance as the object Create a map between the and types and execute the map Source type to use Destination type to use Source object to map from Mapped destination object Create a map between the object and types and execute the map. Source type is inferred from the source object . Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Mapped destination object Create a map between the and types and execute the map to the existing destination object Source type to use Destination type to use Source object to map from Destination object to map into Create a map between the and types and execute the map to the existing destination object. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Configuration provider for performaing maps Mapping configuration options for non-generic maps Skip normal member mapping and convert using a instantiated during mapping Type converter type Skip normal member mapping and convert using a instantiated during mapping Use this method if you need to specify the converter type at runtime Type converter type Override the destination type mapping for looking up configuration and instantiation Assign a profile to the current type map Profile name Itself Customize individual members Name of the member Callback for configuring member Itself Customize configuration for an individual source member Source member name Callback for member configuration options Itself Mapping configuration options Source type Destination type Customize configuration for individual member Expression to the top-level destination member. This must be a member on the TDestination type Callback for member options Itself Customize configuration for individual member. Used when the name isn't known at compile-time Destination member name Callback for member options Customize configuration for all members Callback for member options Ignores all properties that have either a private or protected setter, forcing the mapper to respect encapsulation (note: order matters, so place this before explicit configuration of any properties with an inaccessible setter) Itself When using ReverseMap, ignores all properties that have either a private or protected setter, keeping the reverse mapping consistent with the forward mapping (note: properties with an inaccessible setter may still be mapped unless IgnoreAllPropertiesWithAnInaccessibleSetter is also used) Itself Include this configuration in derived types' maps Derived source type Derived destination type Itself Include the base type map's configuration in this map Base source type Base destination type Itself Include this configuration in derived types' maps Derived source type Derived destination type Itself Assign a profile to the current type map Name of the profile Itself Skip member mapping and use a custom expression during LINQ projection Projection expression Skip member mapping and use a custom function to convert to the destination type Callback to convert from source type to destination type Skip member mapping and use a custom type converter instance to convert to the destination type Type converter instance Skip member mapping and use a custom type converter instance to convert to the destination type Type converter type Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Itself Execute a custom mapping action before member mapping Mapping action type instantiated during mapping Itself Execute a custom function to the source and/or destination types after member mapping Callback for the source/destination types Itself Execute a custom mapping action after member mapping Mapping action type instantiated during mapping Itself Supply a custom instantiation function for the destination type Callback to create the destination type given the source object Itself Supply a custom instantiation expression for the destination type for LINQ projection Callback to create the destination type given the source object Itself Supply a custom instantiation function for the destination type, based on the entire resolution context Callback to create the destination type given the current resolution context Itself Override the destination type mapping for looking up configuration and instantiation Destination type to use For self-referential types, limit recurse depth Number of levels to limit to Itself Construct the destination object using the service locator Itself Create a type mapping from the destination to the source type, using the members as validation Itself Customize configuration for an individual source member Expression to source member. Must be a member of the type Callback for member configuration options Itself Customize configuration for an individual source member. Member name not known until runtime Expression to source member. Must be a member of the type Callback for member configuration options Itself Replace the original runtime instance with a new source instance. Useful when ORMs return proxy types with no relationships to runtime types. The returned source object will be mapped instead of what was supplied in the original source object. Substitution function New source object to map. The current TypeMap being configured Configuration options for an individual member Map from a specific source member Source member to map from Resolve destination member using a custom value resolver instance Value resolver to use Value resolver configuration options Resolve destination member using a custom value resolver Value resolver of type Value resolver configuration options Resolve destination member using a custom value resolver Value resolver of type Value resolver configuration options Ignore this member for configuration validation and skip during mapping Use the destination value instead of mapping from the source value or creating a new instance Source member configuration options Ignore this member for configuration validation and skip during mapping Source member configuration options Source type Member configuration options Source type for this member Substitute a custom value when the source member resolves as null Value to use Resolve destination member using a custom value resolver Value resolver type Value resolver configuration options Resolve destination member using a custom value resolver. Used when the value resolver is not known at compile-time Value resolver type Value resolver configuration options Resolve destination member using a custom value resolver instance Value resolver instance to use Resolution expression Resolve destination member using a custom value resolver callback. Used instead of MapFrom when not simply redirecting a source member This method cannot be used in conjunction with LINQ query projection Callback function to resolve against source type Resolve destination member using a custom value resolver callback. Used instead of MapFrom when not simply redirecting a source member Access both the source object and current resolution context for additional mapping, context items and parent objects This method cannot be used in conjunction with LINQ query projection Callback function to resolve against source type Specify the source member to map from. Can only reference a member on the type This method can be used in mapping to LINQ query projections, while ResolveUsing cannot. Any null reference exceptions in this expression will be ignored (similar to flattening behavior) Member type of the source member to use Expression referencing the source member to map against Ignore this member for configuration validation and skip during mapping Supply a custom mapping order instead of what the .NET runtime returns Mapping order value Use the destination value instead of mapping from the source value or creating a new instance Do not use the destination value instead of mapping from the source value or creating a new instance Use a custom value Value type Value to use Use a custom value Value to use Conditionally map this member Condition to evaluate using the source object Conditionally map this member Condition to evaluate using the current resolution context Conditionally map this member, evaluated before accessing the source value Condition to evaluate using the source object Conditionally map this member, evaluated before accessing the source value Condition to evaluate using the current resolution context Ignore this member for LINQ projections unless explicitly expanded during projection Custom resolver options Use the supplied member as the input to the resolver instead of the root source object Property name to use Custom resolver options Construct the value resolver using supplied constructor function Value resolver constructor function Itself Custom resolver options Source type Use the specified member as the input to the resolver instead of the root object Expression for the source member Custom resolver options Source type Value resolver type Use the specified member as the input to the resolver instead of the root object Expression for the source member Itself Use the specified member as the input to the resolver instead of the root object Name of the source member Itself Construct the value resolver with the supplied constructor function Value resolver constructor function Itself Custom resolver options Source type Construct the value resolver with the supplied constructor function Value resolver constructor function Itself Instantiates objects Extension point for mappers matching based on types configured by CreateMap Provides a named configuration for maps. Naming conventions become scoped per profile. Override this method in a derived class and call the CreateMap method to associate that map with this profile. Avoid calling the class from this method. Create an expression tree representing a mapping from the type to type Includes flattening and expressions inside MapFrom member configuration Source Type Destination Type Mapping engine instance Optional parameter object for parameterized mapping expressions Expand members explicitly previously marked as members to explicitly expand Expression tree mapping source to destination type Extention method to project from a queryable using the static property. Due to generic parameter inference, you need to call Project().To to execute the map Projections are only calculated once and cached Source type Queryable source Expression to project into Extention method to project from a queryable using the provided mapping engine Due to generic parameter inference, you need to call Project().To to execute the map Projections are only calculated once and cached Source type Queryable source Mapping engine instance Expression to project into Continuation to execute projection Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Explicit members to expand Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Parameters for parameterized mapping expressions Explicit members to expand Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to >Explicit members to expand Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to >Explicit members to expand Parameters for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Context information regarding resolution of a destination value Mapping operation options Current type map Current property map Current source type Current attempted destination type Index of current collection mapping Source value Destination value Parent resolution context Instance cache for resolving circular references Current mapping engine Represents the result of resolving a value Create a resolution result based on source values of a resolution context Resolution context Create a new resolution result representing ignoring the value New resolution result based on this context with ignored value Create a new resolution result representing the value provided Resolved value Resolution result containing resolved value Constructs a new resolution result based on the context of this value result Value resolved Type of value as reference in case value is null New resolutino result Resultant value Type of value resolved Type of member, in case the value is null Context for resolving this value Directs mappers to ignore this value Contains member configuration relating to source members Contains cached reflection information for easy retrieval Main configuration object holding all mapping configuration for a source and destination type Type-safe implementation of Source type Destination type Implementors override this method to resolve the destination value based on the provided source value Source value Destination ================================================ FILE: packages/AutoMapper.3.3.1/lib/wpa81/AutoMapper.xml ================================================ AutoMapper Extension point to provide custom resolution for a destination value Implementors use source resolution result to provide a destination resolution result. Use the class for a type-safe version. Source resolution result Result, typically build from the source resolution result Main entry point for AutoMapper, for both creating maps and performing maps. Execute a mapping from the source object to a new destination object. The source type is inferred from the source object. Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object. Source type to use, regardless of the runtime type Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to the existing destination object. Source type to use Dsetination type Source object to map from Destination object to map into The mapped destination object, same instance as the object Execute a mapping from the source object to the existing destination object with supplied mapping options. Source type to use Destination type Source object to map from Destination object to map into Mapping options The mapped destination object, same instance as the object Execute a mapping from the source object to a new destination object with supplied mapping options. Source type to use Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects Source object to map from Source type to use Destination type to create Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects and supplied mapping options. Source object to map from Source type to use Destination type to create Mapping options Mapped destination object Execute a mapping from the source object to existing destination object with explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapped destination object, same instance as the object Execute a mapping from the source object to existing destination object with supplied mapping options and explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapping options Mapped destination object, same instance as the object Create a map between the and types and execute the map Source type to use Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map to the existing destination object Source type to use Destination type to use Source object to map from Destination object to map into Create a map between the object and types and execute the map. Source type is inferred from the source object . Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Mapped destination object Create a map between the and types and execute the map to the existing destination object. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Initializes the mapper with the supplied configuration. Runtime optimization complete after this method is called. This is the preferred means to configure AutoMapper. Initialization callback Configuration starter for specific source types Source type Configuration options Creates a mapping configuration from the type to the type Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the type to the type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a mapping configuration from the source type to the destination type. Use this method when the source and destination type are known at runtime and not compile time. Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the source type to the destination type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a named profile for grouped mapping configuration Profile name Profile configuration options Create a named profile for grouped mapping configuration, and configure the profile Profile name Profile configuration callback Add an existing profile Profile to add Add an existing profile type. Profile will be instantiated and added to the configuration. Profile type Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Get all configured type maps created All configured type maps Dry run all configured type maps and throw for each problem Dry run single type map Type map to check Dry run all type maps in given profile Profile name of type maps to test Dry run all type maps in given profile Profile type Clear out all existing configuration Globally ignore all members starting with a prefix Prefix of members to ignore. Call this before all other maps created. When set, destination can have null values. Defaults to true. This does not affect simple types, only complex ones. Mapping engine used to perform mappings Store for all configuration Mapping execution strategy, as a chain of responsibility Performs a map Resolution context Mapping engine runner Mapped object When true, the mapping engine will use this mapper as the strategy Resolution context Is match Reset mapper registry to built-in values Extension point for modifying list of object mappers Member list to check for configuration validation Check that all destination members are mapped Check that all source members are mapped Ignore this member for validation and skip during mapping Custom mapping action Source type Destination type Implementors can modify both the source and destination objects Source object Destination object Main entry point for executing maps Options for a single map operation Construct services using this callback. Use this for child/nested containers Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Create any missing type maps, if found Add context items to be accessed at map time inside an or Disable the cache used to re-use destination instances based on equality Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Defines a naming convention strategy Regular expression on how to tokenize a member Character to separate on Options for matching source/destination member types Naming convention for source members Naming convention for destination members Source member name prefixes to ignore/drop Source member name postfixes to ignore/drop Destination member name prefixes to ignore/drop Destination member naem prefixes to ignore/drop Source/destination member name replacers Source/destination member aliases Allow mapping to constructors that accept arguments For mapping via data readers, enable lazy returning of values instead of immediate evalaution Source extension methods included for search Converts source type to destination type instead of normal member mapping Source type Destination type Performs conversion from source to destination type Resolution context Destination object Contains profile-specific configuration Indicates that null source values should be mapped as null Indicates that null source collections should be mapped as null Generic-friendly implementation of Source type Destination type When overridden in a base class, this method is provided the casted source object extracted from the Source object Destination object Get all configured type maps created All configured type maps Find the for the configured source and destination type, checking the source/destination object types too Source object Destination object Configured source type Configured destination type Type map configuration Find the for the configured source and destination type Configured source type Configured destination type Type map configuration Find the for the resolution result and destination type Resolution result from the source object Configured destination type Type map configuration Get named profile configuration Profile name Dry run all configured type maps and throw for each problem Dry run single type map Type map to check Dry run all type maps in given profile Profile name of type maps to test Dry run all type maps in given profile Profile type Get all configured mappers List of mappers Creates a based on a source and destination type Source type Destination type Type map configuration Fired each time a type map is created Factory method to create formatters, resolvers and type converters Configuration for profile-specific maps Creates a mapping configuration from the type to the type Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the type to the type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Create a mapping configuration from the source type to the destination type. Use this method when the source and destination type are known at runtime and not compile time. Source type Destination type Mapping expression for more configuration options Creates a mapping configuration from the source type to the destination type. Specify the member list to validate against during configuration validation. Source type Destination type Member list to validate Mapping expression for more configuration options Recognize a list of prefixes to be removed from source member names when matching List of prefixes Recognize a list of postfixes to be removed from source member names when matching List of postfixes Provide an alias for a member name when matching source member names Original member name Alias to match against Provide a new value for a part of a members name Original member value New member value Recognize a list of prefixes to be removed from destination member names when matching List of prefixes Recognize a list of postfixes to be removed from destination member names when matching List of postfixes Add a property name to globally ignore. Matches against the beginning of the property names. Property name to match against Include an assembly to search for extension methods to match Assembly containing extension methods Allow null destination values. If false, destination objects will be created for deep object graphs. Default true. Allow null destination collections. If true, null source collections result in null destination collections. Default false. Create a named profile for grouped mapping configuration Profile name Profile configuration options Create a named profile for grouped mapping configuration, and configure the profile Profile name Profile configuration callback Add an existing profile Profile to add Add an existing profile type. Profile will be instantiated and added to the configuration. Profile type Supply a factory method callback for creating formatters, resolvers and type converters Factory method Disable constructor mapping. Use this if you don't intend to have AutoMapper try to map to constructors Seal the configuration and optimize maps Mapping via a data reader will yield return each item, keeping a data reader open instead of eagerly evaluating Performs mapping based on configuration Execute a mapping from the source object to a new destination object. The source type is inferred from the source object. Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to a new destination object. Source type to use, regardless of the runtime type Destination type to create Source object to map from Mapped destination object Execute a mapping from the source object to a new destination object with supplied mapping options. Source type to use Destination type to create Source object to map from Mapping options Mapped destination object Execute a mapping from the source object to the existing destination object. Source type to use Dsetination type Source object to map from Destination object to map into The mapped destination object, same instance as the object Execute a mapping from the source object to the existing destination object with supplied mapping options. Source type to use Destination type Source object to map from Destination object to map into Mapping options The mapped destination object, same instance as the object Execute a mapping from the source object to a new destination object with explicit objects Source object to map from Source type to use Destination type to create Mapped destination object Execute a mapping from the source object to a new destination object with explicit objects and supplied mapping options. Source object to map from Source type to use Destination type to create Mapping options Mapped destination object Execute a mapping from the source object to existing destination object with explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapped destination object, same instance as the object Execute a mapping from the source object to existing destination object with supplied mapping options and explicit objects Source object to map from Destination object to map into Source type to use Destination type to use Mapping options Mapped destination object, same instance as the object Create a map between the and types and execute the map Source type to use Destination type to use Source object to map from Mapped destination object Create a map between the object and types and execute the map. Source type is inferred from the source object . Destination type to use Source object to map from Mapped destination object Create a map between the and types and execute the map. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Mapped destination object Create a map between the and types and execute the map to the existing destination object Source type to use Destination type to use Source object to map from Destination object to map into Create a map between the and types and execute the map to the existing destination object. Use this method when the source and destination types are not known until runtime. Source object to map from Source type to use Destination type to use Configuration provider for performaing maps Mapping configuration options for non-generic maps Skip normal member mapping and convert using a instantiated during mapping Type converter type Skip normal member mapping and convert using a instantiated during mapping Use this method if you need to specify the converter type at runtime Type converter type Override the destination type mapping for looking up configuration and instantiation Assign a profile to the current type map Profile name Itself Customize individual members Name of the member Callback for configuring member Itself Customize configuration for an individual source member Source member name Callback for member configuration options Itself Mapping configuration options Source type Destination type Customize configuration for individual member Expression to the top-level destination member. This must be a member on the TDestination type Callback for member options Itself Customize configuration for individual member. Used when the name isn't known at compile-time Destination member name Callback for member options Customize configuration for all members Callback for member options Ignores all properties that have either a private or protected setter, forcing the mapper to respect encapsulation (note: order matters, so place this before explicit configuration of any properties with an inaccessible setter) Itself When using ReverseMap, ignores all properties that have either a private or protected setter, keeping the reverse mapping consistent with the forward mapping (note: properties with an inaccessible setter may still be mapped unless IgnoreAllPropertiesWithAnInaccessibleSetter is also used) Itself Include this configuration in derived types' maps Derived source type Derived destination type Itself Include the base type map's configuration in this map Base source type Base destination type Itself Include this configuration in derived types' maps Derived source type Derived destination type Itself Assign a profile to the current type map Name of the profile Itself Skip member mapping and use a custom expression during LINQ projection Projection expression Skip member mapping and use a custom function to convert to the destination type Callback to convert from source type to destination type Skip member mapping and use a custom type converter instance to convert to the destination type Type converter instance Skip member mapping and use a custom type converter instance to convert to the destination type Type converter type Execute a custom function to the source and/or destination types before member mapping Callback for the source/destination types Itself Execute a custom mapping action before member mapping Mapping action type instantiated during mapping Itself Execute a custom function to the source and/or destination types after member mapping Callback for the source/destination types Itself Execute a custom mapping action after member mapping Mapping action type instantiated during mapping Itself Supply a custom instantiation function for the destination type Callback to create the destination type given the source object Itself Supply a custom instantiation expression for the destination type for LINQ projection Callback to create the destination type given the source object Itself Supply a custom instantiation function for the destination type, based on the entire resolution context Callback to create the destination type given the current resolution context Itself Override the destination type mapping for looking up configuration and instantiation Destination type to use For self-referential types, limit recurse depth Number of levels to limit to Itself Construct the destination object using the service locator Itself Create a type mapping from the destination to the source type, using the members as validation Itself Customize configuration for an individual source member Expression to source member. Must be a member of the type Callback for member configuration options Itself Customize configuration for an individual source member. Member name not known until runtime Expression to source member. Must be a member of the type Callback for member configuration options Itself Replace the original runtime instance with a new source instance. Useful when ORMs return proxy types with no relationships to runtime types. The returned source object will be mapped instead of what was supplied in the original source object. Substitution function New source object to map. The current TypeMap being configured Configuration options for an individual member Map from a specific source member Source member to map from Resolve destination member using a custom value resolver instance Value resolver to use Value resolver configuration options Resolve destination member using a custom value resolver Value resolver of type Value resolver configuration options Resolve destination member using a custom value resolver Value resolver of type Value resolver configuration options Ignore this member for configuration validation and skip during mapping Use the destination value instead of mapping from the source value or creating a new instance Source member configuration options Ignore this member for configuration validation and skip during mapping Source member configuration options Source type Member configuration options Source type for this member Substitute a custom value when the source member resolves as null Value to use Resolve destination member using a custom value resolver Value resolver type Value resolver configuration options Resolve destination member using a custom value resolver. Used when the value resolver is not known at compile-time Value resolver type Value resolver configuration options Resolve destination member using a custom value resolver instance Value resolver instance to use Resolution expression Resolve destination member using a custom value resolver callback. Used instead of MapFrom when not simply redirecting a source member This method cannot be used in conjunction with LINQ query projection Callback function to resolve against source type Resolve destination member using a custom value resolver callback. Used instead of MapFrom when not simply redirecting a source member Access both the source object and current resolution context for additional mapping, context items and parent objects This method cannot be used in conjunction with LINQ query projection Callback function to resolve against source type Specify the source member to map from. Can only reference a member on the type This method can be used in mapping to LINQ query projections, while ResolveUsing cannot. Any null reference exceptions in this expression will be ignored (similar to flattening behavior) Member type of the source member to use Expression referencing the source member to map against Ignore this member for configuration validation and skip during mapping Supply a custom mapping order instead of what the .NET runtime returns Mapping order value Use the destination value instead of mapping from the source value or creating a new instance Do not use the destination value instead of mapping from the source value or creating a new instance Use a custom value Value type Value to use Use a custom value Value to use Conditionally map this member Condition to evaluate using the source object Conditionally map this member Condition to evaluate using the current resolution context Conditionally map this member, evaluated before accessing the source value Condition to evaluate using the source object Conditionally map this member, evaluated before accessing the source value Condition to evaluate using the current resolution context Ignore this member for LINQ projections unless explicitly expanded during projection Custom resolver options Use the supplied member as the input to the resolver instead of the root source object Property name to use Custom resolver options Construct the value resolver using supplied constructor function Value resolver constructor function Itself Custom resolver options Source type Use the specified member as the input to the resolver instead of the root object Expression for the source member Custom resolver options Source type Value resolver type Use the specified member as the input to the resolver instead of the root object Expression for the source member Itself Use the specified member as the input to the resolver instead of the root object Name of the source member Itself Construct the value resolver with the supplied constructor function Value resolver constructor function Itself Custom resolver options Source type Construct the value resolver with the supplied constructor function Value resolver constructor function Itself Instantiates objects Extension point for mappers matching based on types configured by CreateMap Provides a named configuration for maps. Naming conventions become scoped per profile. Override this method in a derived class and call the CreateMap method to associate that map with this profile. Avoid calling the class from this method. Create an expression tree representing a mapping from the type to type Includes flattening and expressions inside MapFrom member configuration Source Type Destination Type Mapping engine instance Optional parameter object for parameterized mapping expressions Expand members explicitly previously marked as members to explicitly expand Expression tree mapping source to destination type Extention method to project from a queryable using the static property. Due to generic parameter inference, you need to call Project().To to execute the map Projections are only calculated once and cached Source type Queryable source Expression to project into Extention method to project from a queryable using the provided mapping engine Due to generic parameter inference, you need to call Project().To to execute the map Projections are only calculated once and cached Source type Queryable source Mapping engine instance Expression to project into Continuation to execute projection Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Optional parameter object for parameterized mapping expressions Explicit members to expand Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to Parameters for parameterized mapping expressions Explicit members to expand Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to >Explicit members to expand Optional parameter object for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Projects the source type to the destination type given the mapping configuration Destination type to map to >Explicit members to expand Parameters for parameterized mapping expressions Queryable result, use queryable extension methods to project and execute result Context information regarding resolution of a destination value Mapping operation options Current type map Current property map Current source type Current attempted destination type Index of current collection mapping Source value Destination value Parent resolution context Instance cache for resolving circular references Current mapping engine Represents the result of resolving a value Create a resolution result based on source values of a resolution context Resolution context Create a new resolution result representing ignoring the value New resolution result based on this context with ignored value Create a new resolution result representing the value provided Resolved value Resolution result containing resolved value Constructs a new resolution result based on the context of this value result Value resolved Type of value as reference in case value is null New resolutino result Resultant value Type of value resolved Type of member, in case the value is null Context for resolving this value Directs mappers to ignore this value Contains member configuration relating to source members Contains cached reflection information for easy retrieval Main configuration object holding all mapping configuration for a source and destination type Type-safe implementation of Source type Destination type Implementors override this method to resolve the destination value based on the provided source value Source value Destination ================================================ FILE: packages/AutoMapper.3.3.1/tools/AutoMapper.targets ================================================ PreserveNewest ================================================ FILE: packages/AutoMapper.3.3.1/tools/MonoAndroid/Install.ps1 ================================================ param($installPath, $toolsPath, $package, $project) # This is the MSBuild targets file to add $targetsFile = [System.IO.Path]::Combine($toolsPath, '..\' + $package.Id + '.targets') # Need to load MSBuild assembly if it's not loaded yet. Add-Type -AssemblyName 'Microsoft.Build, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' # Grab the loaded MSBuild project for the project $msbuild = [Microsoft.Build.Evaluation.ProjectCollection]::GlobalProjectCollection.GetLoadedProjects($project.FullName) | Select-Object -First 1 # Make the path to the targets file relative. $projectUri = new-object Uri($project.FullName, [System.UriKind]::Absolute) $targetUri = new-object Uri($targetsFile, [System.UriKind]::Absolute) $relativePath = [System.Uri]::UnescapeDataString($projectUri.MakeRelativeUri($targetUri).ToString()).Replace([System.IO.Path]::AltDirectorySeparatorChar, [System.IO.Path]::DirectorySeparatorChar) # Add the import with a condition, to allow the project to load without the targets present. $import = $msbuild.Xml.AddImport($relativePath) $import.Condition = "Exists('$relativePath')" $project.Save() ================================================ FILE: packages/AutoMapper.3.3.1/tools/MonoAndroid/uninstall.ps1 ================================================ param($installPath, $toolsPath, $package, $project) # Need to load MSBuild assembly if it's not loaded yet. Add-Type -AssemblyName 'Microsoft.Build, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' # Grab the loaded MSBuild project for the project $msbuild = [Microsoft.Build.Evaluation.ProjectCollection]::GlobalProjectCollection.GetLoadedProjects($project.FullName) | Select-Object -First 1 # Find all the imports and targets added by this package. $itemsToRemove = @() # Allow many in case a past package was incorrectly uninstalled $itemsToRemove += $msbuild.Xml.Imports | Where-Object { $_.Project.EndsWith($package.Id + '.targets') } # Remove the elements and save the project if ($itemsToRemove -and $itemsToRemove.length) { foreach ($itemToRemove in $itemsToRemove) { $msbuild.Xml.RemoveChild($itemToRemove) | out-null } $project.Save() } ================================================ FILE: packages/AutoMapper.3.3.1/tools/MonoTouch/Install.ps1 ================================================ param($installPath, $toolsPath, $package, $project) # This is the MSBuild targets file to add $targetsFile = [System.IO.Path]::Combine($toolsPath, '..\' + $package.Id + '.targets') # Need to load MSBuild assembly if it's not loaded yet. Add-Type -AssemblyName 'Microsoft.Build, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' # Grab the loaded MSBuild project for the project $msbuild = [Microsoft.Build.Evaluation.ProjectCollection]::GlobalProjectCollection.GetLoadedProjects($project.FullName) | Select-Object -First 1 # Make the path to the targets file relative. $projectUri = new-object Uri($project.FullName, [System.UriKind]::Absolute) $targetUri = new-object Uri($targetsFile, [System.UriKind]::Absolute) $relativePath = [System.Uri]::UnescapeDataString($projectUri.MakeRelativeUri($targetUri).ToString()).Replace([System.IO.Path]::AltDirectorySeparatorChar, [System.IO.Path]::DirectorySeparatorChar) # Add the import with a condition, to allow the project to load without the targets present. $import = $msbuild.Xml.AddImport($relativePath) $import.Condition = "Exists('$relativePath')" $project.Save() ================================================ FILE: packages/AutoMapper.3.3.1/tools/MonoTouch/uninstall.ps1 ================================================ param($installPath, $toolsPath, $package, $project) # Need to load MSBuild assembly if it's not loaded yet. Add-Type -AssemblyName 'Microsoft.Build, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' # Grab the loaded MSBuild project for the project $msbuild = [Microsoft.Build.Evaluation.ProjectCollection]::GlobalProjectCollection.GetLoadedProjects($project.FullName) | Select-Object -First 1 # Find all the imports and targets added by this package. $itemsToRemove = @() # Allow many in case a past package was incorrectly uninstalled $itemsToRemove += $msbuild.Xml.Imports | Where-Object { $_.Project.EndsWith($package.Id + '.targets') } # Remove the elements and save the project if ($itemsToRemove -and $itemsToRemove.length) { foreach ($itemToRemove in $itemsToRemove) { $msbuild.Xml.RemoveChild($itemToRemove) | out-null } $project.Save() } ================================================ FILE: packages/AutoMapper.3.3.1/tools/net40/Install.ps1 ================================================ param($installPath, $toolsPath, $package, $project) # This is the MSBuild targets file to add $targetsFile = [System.IO.Path]::Combine($toolsPath, '..\' + $package.Id + '.targets') # Need to load MSBuild assembly if it's not loaded yet. Add-Type -AssemblyName 'Microsoft.Build, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' # Grab the loaded MSBuild project for the project $msbuild = [Microsoft.Build.Evaluation.ProjectCollection]::GlobalProjectCollection.GetLoadedProjects($project.FullName) | Select-Object -First 1 # Make the path to the targets file relative. $projectUri = new-object Uri($project.FullName, [System.UriKind]::Absolute) $targetUri = new-object Uri($targetsFile, [System.UriKind]::Absolute) $relativePath = [System.Uri]::UnescapeDataString($projectUri.MakeRelativeUri($targetUri).ToString()).Replace([System.IO.Path]::AltDirectorySeparatorChar, [System.IO.Path]::DirectorySeparatorChar) # Add the import with a condition, to allow the project to load without the targets present. $import = $msbuild.Xml.AddImport($relativePath) $import.Condition = "Exists('$relativePath')" $project.Save() ================================================ FILE: packages/AutoMapper.3.3.1/tools/net40/uninstall.ps1 ================================================ param($installPath, $toolsPath, $package, $project) # Need to load MSBuild assembly if it's not loaded yet. Add-Type -AssemblyName 'Microsoft.Build, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' # Grab the loaded MSBuild project for the project $msbuild = [Microsoft.Build.Evaluation.ProjectCollection]::GlobalProjectCollection.GetLoadedProjects($project.FullName) | Select-Object -First 1 # Find all the imports and targets added by this package. $itemsToRemove = @() # Allow many in case a past package was incorrectly uninstalled $itemsToRemove += $msbuild.Xml.Imports | Where-Object { $_.Project.EndsWith($package.Id + '.targets') } # Remove the elements and save the project if ($itemsToRemove -and $itemsToRemove.length) { foreach ($itemToRemove in $itemsToRemove) { $msbuild.Xml.RemoveChild($itemToRemove) | out-null } $project.Save() } ================================================ FILE: packages/AutoMapper.3.3.1/tools/sl5/Install.ps1 ================================================ param($installPath, $toolsPath, $package, $project) # This is the MSBuild targets file to add $targetsFile = [System.IO.Path]::Combine($toolsPath, '..\' + $package.Id + '.targets') # Need to load MSBuild assembly if it's not loaded yet. Add-Type -AssemblyName 'Microsoft.Build, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' # Grab the loaded MSBuild project for the project $msbuild = [Microsoft.Build.Evaluation.ProjectCollection]::GlobalProjectCollection.GetLoadedProjects($project.FullName) | Select-Object -First 1 # Make the path to the targets file relative. $projectUri = new-object Uri($project.FullName, [System.UriKind]::Absolute) $targetUri = new-object Uri($targetsFile, [System.UriKind]::Absolute) $relativePath = [System.Uri]::UnescapeDataString($projectUri.MakeRelativeUri($targetUri).ToString()).Replace([System.IO.Path]::AltDirectorySeparatorChar, [System.IO.Path]::DirectorySeparatorChar) # Add the import with a condition, to allow the project to load without the targets present. $import = $msbuild.Xml.AddImport($relativePath) $import.Condition = "Exists('$relativePath')" $project.Save() ================================================ FILE: packages/AutoMapper.3.3.1/tools/sl5/uninstall.ps1 ================================================ param($installPath, $toolsPath, $package, $project) # Need to load MSBuild assembly if it's not loaded yet. Add-Type -AssemblyName 'Microsoft.Build, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' # Grab the loaded MSBuild project for the project $msbuild = [Microsoft.Build.Evaluation.ProjectCollection]::GlobalProjectCollection.GetLoadedProjects($project.FullName) | Select-Object -First 1 # Find all the imports and targets added by this package. $itemsToRemove = @() # Allow many in case a past package was incorrectly uninstalled $itemsToRemove += $msbuild.Xml.Imports | Where-Object { $_.Project.EndsWith($package.Id + '.targets') } # Remove the elements and save the project if ($itemsToRemove -and $itemsToRemove.length) { foreach ($itemToRemove in $itemsToRemove) { $msbuild.Xml.RemoveChild($itemToRemove) | out-null } $project.Save() } ================================================ FILE: packages/AutoMapper.3.3.1/tools/windows8/Install.ps1 ================================================ param($installPath, $toolsPath, $package, $project) # This is the MSBuild targets file to add $targetsFile = [System.IO.Path]::Combine($toolsPath, '..\' + $package.Id + '.targets') # Need to load MSBuild assembly if it's not loaded yet. Add-Type -AssemblyName 'Microsoft.Build, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' # Grab the loaded MSBuild project for the project $msbuild = [Microsoft.Build.Evaluation.ProjectCollection]::GlobalProjectCollection.GetLoadedProjects($project.FullName) | Select-Object -First 1 # Make the path to the targets file relative. $projectUri = new-object Uri($project.FullName, [System.UriKind]::Absolute) $targetUri = new-object Uri($targetsFile, [System.UriKind]::Absolute) $relativePath = [System.Uri]::UnescapeDataString($projectUri.MakeRelativeUri($targetUri).ToString()).Replace([System.IO.Path]::AltDirectorySeparatorChar, [System.IO.Path]::DirectorySeparatorChar) # Add the import with a condition, to allow the project to load without the targets present. $import = $msbuild.Xml.AddImport($relativePath) $import.Condition = "Exists('$relativePath')" $project.Save() ================================================ FILE: packages/AutoMapper.3.3.1/tools/windows8/uninstall.ps1 ================================================ param($installPath, $toolsPath, $package, $project) # Need to load MSBuild assembly if it's not loaded yet. Add-Type -AssemblyName 'Microsoft.Build, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' # Grab the loaded MSBuild project for the project $msbuild = [Microsoft.Build.Evaluation.ProjectCollection]::GlobalProjectCollection.GetLoadedProjects($project.FullName) | Select-Object -First 1 # Find all the imports and targets added by this package. $itemsToRemove = @() # Allow many in case a past package was incorrectly uninstalled $itemsToRemove += $msbuild.Xml.Imports | Where-Object { $_.Project.EndsWith($package.Id + '.targets') } # Remove the elements and save the project if ($itemsToRemove -and $itemsToRemove.length) { foreach ($itemToRemove in $itemsToRemove) { $msbuild.Xml.RemoveChild($itemToRemove) | out-null } $project.Save() } ================================================ FILE: packages/AutoMapper.3.3.1/tools/wp8/Install.ps1 ================================================ param($installPath, $toolsPath, $package, $project) # This is the MSBuild targets file to add $targetsFile = [System.IO.Path]::Combine($toolsPath, '..\' + $package.Id + '.targets') # Need to load MSBuild assembly if it's not loaded yet. Add-Type -AssemblyName 'Microsoft.Build, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' # Grab the loaded MSBuild project for the project $msbuild = [Microsoft.Build.Evaluation.ProjectCollection]::GlobalProjectCollection.GetLoadedProjects($project.FullName) | Select-Object -First 1 # Make the path to the targets file relative. $projectUri = new-object Uri($project.FullName, [System.UriKind]::Absolute) $targetUri = new-object Uri($targetsFile, [System.UriKind]::Absolute) $relativePath = [System.Uri]::UnescapeDataString($projectUri.MakeRelativeUri($targetUri).ToString()).Replace([System.IO.Path]::AltDirectorySeparatorChar, [System.IO.Path]::DirectorySeparatorChar) # Add the import with a condition, to allow the project to load without the targets present. $import = $msbuild.Xml.AddImport($relativePath) $import.Condition = "Exists('$relativePath')" $project.Save() ================================================ FILE: packages/AutoMapper.3.3.1/tools/wp8/uninstall.ps1 ================================================ param($installPath, $toolsPath, $package, $project) # Need to load MSBuild assembly if it's not loaded yet. Add-Type -AssemblyName 'Microsoft.Build, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' # Grab the loaded MSBuild project for the project $msbuild = [Microsoft.Build.Evaluation.ProjectCollection]::GlobalProjectCollection.GetLoadedProjects($project.FullName) | Select-Object -First 1 # Find all the imports and targets added by this package. $itemsToRemove = @() # Allow many in case a past package was incorrectly uninstalled $itemsToRemove += $msbuild.Xml.Imports | Where-Object { $_.Project.EndsWith($package.Id + '.targets') } # Remove the elements and save the project if ($itemsToRemove -and $itemsToRemove.length) { foreach ($itemToRemove in $itemsToRemove) { $msbuild.Xml.RemoveChild($itemToRemove) | out-null } $project.Save() } ================================================ FILE: packages/AutoMapper.3.3.1/tools/wpa81/Install.ps1 ================================================ param($installPath, $toolsPath, $package, $project) # This is the MSBuild targets file to add $targetsFile = [System.IO.Path]::Combine($toolsPath, '..\' + $package.Id + '.targets') # Need to load MSBuild assembly if it's not loaded yet. Add-Type -AssemblyName 'Microsoft.Build, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' # Grab the loaded MSBuild project for the project $msbuild = [Microsoft.Build.Evaluation.ProjectCollection]::GlobalProjectCollection.GetLoadedProjects($project.FullName) | Select-Object -First 1 # Make the path to the targets file relative. $projectUri = new-object Uri($project.FullName, [System.UriKind]::Absolute) $targetUri = new-object Uri($targetsFile, [System.UriKind]::Absolute) $relativePath = [System.Uri]::UnescapeDataString($projectUri.MakeRelativeUri($targetUri).ToString()).Replace([System.IO.Path]::AltDirectorySeparatorChar, [System.IO.Path]::DirectorySeparatorChar) # Add the import with a condition, to allow the project to load without the targets present. $import = $msbuild.Xml.AddImport($relativePath) $import.Condition = "Exists('$relativePath')" $project.Save() ================================================ FILE: packages/AutoMapper.3.3.1/tools/wpa81/uninstall.ps1 ================================================ param($installPath, $toolsPath, $package, $project) # Need to load MSBuild assembly if it's not loaded yet. Add-Type -AssemblyName 'Microsoft.Build, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' # Grab the loaded MSBuild project for the project $msbuild = [Microsoft.Build.Evaluation.ProjectCollection]::GlobalProjectCollection.GetLoadedProjects($project.FullName) | Select-Object -First 1 # Find all the imports and targets added by this package. $itemsToRemove = @() # Allow many in case a past package was incorrectly uninstalled $itemsToRemove += $msbuild.Xml.Imports | Where-Object { $_.Project.EndsWith($package.Id + '.targets') } # Remove the elements and save the project if ($itemsToRemove -and $itemsToRemove.length) { foreach ($itemToRemove in $itemsToRemove) { $msbuild.Xml.RemoveChild($itemToRemove) | out-null } $project.Save() } ================================================ FILE: packages/CommonServiceLocator.1.3/lib/portable-net4+sl5+netcore45+wpa81+wp8/Microsoft.Practices.ServiceLocation.XML ================================================ Microsoft.Practices.ServiceLocation The standard exception thrown when a ServiceLocator has an error in resolving an object. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The message that describes the error. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. The generic Service Locator interface. This interface is used to retrieve services (instances identified by type and optional name) from a container. Get an instance of the given . Type of object requested. if there is an error resolving the service instance. The requested service instance. Get an instance of the given named . Type of object requested. Name the object was registered with. if there is an error resolving the service instance. The requested service instance. Get all instances of the given currently registered in the container. Type of object requested. if there is are errors resolving the service instance. A sequence of instances of the requested . Get an instance of the given . Type of object requested. if there is are errors resolving the service instance. The requested service instance. Get an instance of the given named . Type of object requested. Name the object was registered with. if there is are errors resolving the service instance. The requested service instance. Get all instances of the given currently registered in the container. Type of object requested. if there is are errors resolving the service instance. A sequence of instances of the requested . This class provides the ambient container for this application. If your framework defines such an ambient container, use ServiceLocator.Current to get it. Set the delegate that is used to retrieve the current container. Delegate that, when called, will return the current ambient container. The current ambient container. This class is a helper that provides a default implementation for most of the methods of . Implementation of . The requested service. if there is an error in resolving the service instance. The requested object. Get an instance of the given . Type of object requested. if there is an error resolving the service instance. The requested service instance. Get an instance of the given named . Type of object requested. Name the object was registered with. if there is an error resolving the service instance. The requested service instance. Get all instances of the given currently registered in the container. Type of object requested. if there is are errors resolving the service instance. A sequence of instances of the requested . Get an instance of the given . Type of object requested. if there is are errors resolving the service instance. The requested service instance. Get an instance of the given named . Type of object requested. Name the object was registered with. if there is are errors resolving the service instance. The requested service instance. Get all instances of the given currently registered in the container. Type of object requested. if there is are errors resolving the service instance. A sequence of instances of the requested . When implemented by inheriting classes, this method will do the actual work of resolving the requested service instance. Type of instance requested. Name of registered service you want. May be null. The requested service instance. When implemented by inheriting classes, this method will do the actual work of resolving all the requested service instances. Type of service requested. Sequence of service instance objects. Format the exception message for use in an that occurs while resolving a single service. The actual exception thrown by the implementation. Type of service requested. Name requested. The formatted exception message string. Format the exception message for use in an that occurs while resolving multiple service instances. The actual exception thrown by the implementation. Type of service requested. The formatted exception message string. This delegate type is used to provide a method that will return the current container. Used with the static accessor class. An . A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to Activation error occurred while trying to get all instances of type {0}. Looks up a localized string similar to Activation error occurred while trying to get instance of type {0}, key "{1}". Looks up a localized string similar to ServiceLocationProvider must be set.. ================================================ FILE: packages/DotNetOpenAuth.AspNet.4.0.3.12153/lib/net40-full/DotNetOpenAuth.AspNet.xml ================================================ DotNetOpenAuth.AspNet Represents the result of OAuth or OpenID authentication. Returns an instance which indicates failed authentication. Initializes a new instance of the class. if set to true [is successful]. Initializes a new instance of the class. The exception. Initializes a new instance of the class. The exception. The provider name. Initializes a new instance of the class. if set to true [is successful]. The provider. The provider user id. Name of the user. The extra data. Gets the error that may have occured during the authentication process Gets the optional extra data that may be returned from the provider Gets a value indicating whether the authentication step is successful. true if authentication is successful; otherwise, false . Gets the provider's name. Gets the user id that is returned from the provider. It is unique only within the Provider's namespace. Gets an (insecure, non-unique) alias for the user that the user should recognize as himself/herself. This may take the form of an email address, a URL, or any other value that the user may recognize. This alias may come from the Provider or may be derived by the relying party if the Provider does not supply one. It is not guaranteed to be unique and certainly does not merit any trust in any suggested authenticity. The dictionary extensions. Adds the value from an XDocument with the specified element name if it's not empty. The dictionary. The document. Name of the element. Adds a key/value pair to the specified dictionary if the value is not null or empty. The dictionary. The key. The value. The WindowsLive client. The WindowsLive brand is being replaced by Microsoft account brand. We keep this class for backward compatibility only. The Microsoft account client. Represents the base class for OAuth 2.0 clients Represents a client which can authenticate users via an external website/provider. Attempts to authenticate users by forwarding them to an external website, and upon succcess or failure, redirect users back to the specified url. The context of the current request. The return url after users have completed authenticating against external website. Check if authentication succeeded after user is redirected back from the service provider. The context of the current request. An instance of containing authentication result. Gets the name of the provider which provides authentication service. The provider name. Initializes a new instance of the class with the specified provider name. Name of the provider. Attempts to authenticate users by forwarding them to an external website, and upon succcess or failure, redirect users back to the specified url. The context. The return url after users have completed authenticating against external website. Check if authentication succeeded after user is redirected back from the service provider. The context. An instance of containing authentication result. Check if authentication succeeded after user is redirected back from the service provider. The context. The return URL which should match the value passed to RequestAuthentication() method. An instance of containing authentication result. Gets the full url pointing to the login page for this client. The url should include the specified return url so that when the login completes, user is redirected back to that url. The return URL. An absolute URL. Given the access token, gets the logged-in user's data. The returned dictionary must include two keys 'id', and 'username'. The access token of the current user. A dictionary contains key-value pairs of user data Queries the access token from the specified authorization code. The return URL. The authorization code. The access token Gets the name of the provider which provides authentication service. The authorization endpoint. The token endpoint. The _app id. The _app secret. Initializes a new instance of the class. The app id. The app secret. Initializes a new instance of the class. The provider name. The app id. The app secret. Gets the full url pointing to the login page for this client. The url should include the specified return url so that when the login completes, user is redirected back to that url. The return URL. An absolute URL. Given the access token, gets the logged-in user's data. The returned dictionary must include two keys 'id', and 'username'. The access token of the current user. A dictionary contains key-value pairs of user data Queries the access token from the specified authorization code. The return URL. The authorization code. The query access token. Initializes a new instance of the class. The app id. The app secret. Stores OAuth tokens in the current request's cookie A token manager for use by a web site in its role as a consumer of an individual ServiceProvider. This interface is used by clients of the DotNetOpenAuth.AspNet classes. Gets the token secret from the specified token. The token. The token's secret Stores the request token together with its secret. The request token. The request token secret. Replaces the request token with access token. The request token. The access token. The access token secret. Key used for token cookie Primary request context. Initializes a new instance of the class. Initializes a new instance of the class. The current request context. Gets the token secret from the specified token. The token. The token's secret Replaces the request token with access token. The request token. The access token. The access token secret. Stores the request token together with its secret. The request token. The request token secret. Gets the effective HttpContext object to use. Simple wrapper around IConsumerTokenManager Store the token manager. Initializes a new instance of the class. The consumer key. The consumer secret. The OAuth token manager. Gets the Token Secret given a request or access token. The request or access token. The secret associated with the given token. Thrown if the secret cannot be found for the given token. Stores a newly generated unauthorized request token, secret, and optional application-specific parameters for later recall. The request message that resulted in the generation of a new unauthorized request token. The response message that includes the unauthorized request token. Thrown if the consumer key is not registered, or a required parameter was not found in the parameters collection. Deletes a request token and its associated secret and stores a new access token and secret. The Consumer that is exchanging its request token for an access token. The Consumer's request token that should be deleted/expired. The new access token that is being issued to the Consumer. The secret associated with the newly issued access token. Classifies a token as a request token or an access token. The token to classify. Request or Access token, or invalid if the token is not recognized. Gets the consumer key. The consumer key. Gets the consumer secret. The consumer secret. The facebook client. The authorization endpoint. The token endpoint. The _app id. The _app secret. Initializes a new instance of the class. The app id. The app secret. The get service login url. The return url. An absolute URI. The get user data. The access token. A dictionary of profile data. Obtains an access token given an authorization code and callback URL. The return url. The authorization code. The access token. Converts any % encoded values in the URL to uppercase. The URL string to normalize The normalized url NormalizeHexEncoding("Login.aspx?ReturnUrl=%2fAccount%2fManage.aspx") returns "Login.aspx?ReturnUrl=%2FAccount%2FManage.aspx" There is an issue in Facebook whereby it will rejects the redirect_uri value if the url contains lowercase % encoded values. Contains data of a Facebook user. Technically, this class doesn't need to be public, but because we want to make it serializable in medium trust, it has to be public. Gets or sets the birthday. The birthday. Gets or sets the email. The email. Gets or sets the gender. The gender. Gets or sets the id. The id. Gets or sets the link. The link. Gets or sets the name. The name. The json helper. The deserialize. The stream. The type of the value to deserialize. The deserialized value. Captures the result of an access token request, including an optional refresh token. Gets or sets the access token. The access token. Gets or sets the refresh token. The refresh token. Gets or sets the scope. The scope. Gets or sets the type of the token. The type of the token. Contains data of a Windows Live user. Technically, this class doesn't need to be public, but because we want to make it serializable in medium trust, it has to be public. Gets or sets the first name. The first name. Gets or sets the gender. The gender. Gets or sets the id. The id. Gets or sets the last name. The last name. Gets or sets the link. The link. Gets or sets the name. The name. The dot net open auth web consumer. The io auth web worker. The prepare authorized request. The profile endpoint. The access token. An HTTP request. The process user authorization. The response message. The request authentication. The callback. The _web consumer. Initializes a new instance of the class. The service description. The token manager. The prepare authorized request. The profile endpoint. The access token. An HTTP request. The process user authorization. The response message. The request authentication. The callback. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. 2 Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. An implementation of IOAuthTokenManager which stores keys in memory. The _tokens and secrets. Initializes a new instance of the class. The consumer key. The consumer secret. Deletes a request token and its associated secret and stores a new access token and secret. The Consumer that is exchanging its request token for an access token. The Consumer's request token that should be deleted/expired. The new access token that is being issued to the Consumer. The secret associated with the newly issued access token. Any scope of granted privileges associated with the request token from the original call to should be carried over to the new Access Token. To associate a user account with the new access token, HttpContext.Current.User may be useful in an ASP.NET web application within the implementation of this method. Alternatively you may store the access token here without associating with a user account, and wait until or return the access token to associate the access token with a user account at that point. Gets the Token Secret given a request or access token. The request or access token. The secret associated with the given token. Thrown if the secret cannot be found for the given token. Classifies a token as a request token or an access token. The token to classify. Request or Access token, or invalid if the token is not recognized. Stores a newly generated unauthorized request token, secret, and optional application-specific parameters for later recall. The request message that resulted in the generation of a new unauthorized request token. The response message that includes the unauthorized request token. Thrown if the consumer key is not registered, or a required parameter was not found in the parameters collection. Request tokens stored by this method SHOULD NOT associate any user account with this token. It usually opens up security holes in your application to do so. Instead, you associate a user account with access tokens (not request tokens) in the method. Gets the consumer key. Gets the consumer secret. Represents LinkedIn authentication client. Represents base class for OAuth 1.0 clients Initializes a new instance of the class. Name of the provider. The service description. The consumer key. The consumer secret. Initializes a new instance of the class. Name of the provider. The service Description. The token Manager. Initializes a new instance of the class. The provider name. The web worker. Attempts to authenticate users by forwarding them to an external website, and upon succcess or failure, redirect users back to the specified url. The context. The return url after users have completed authenticating against external website. Check if authentication succeeded after user is redirected back from the service provider. The context. An instance of containing authentication result. Helper method to load an XDocument from an input stream. The input stream from which to load the document. The XML document. Check if authentication succeeded after user is redirected back from the service provider. The response token returned from service provider Authentication result Gets the name of the provider which provides authentication service. Gets the OAuthWebConsumer instance which handles constructing requests to the OAuth providers. Describes the OAuth service provider endpoints for LinkedIn. Initializes a new instance of the class. Tokens exchanged during the OAuth handshake are stored in cookies. The LinkedIn app's consumer key. The LinkedIn app's consumer secret. Initializes a new instance of the class. The consumer key. The consumer secret. The token manager. Check if authentication succeeded after user is redirected back from the service provider. The response token returned from service provider Authentication result. Represents a Twitter client The description of Twitter's OAuth protocol URIs for use with their "Sign in with Twitter" feature. Initializes a new instance of the class with the specified consumer key and consumer secret. Tokens exchanged during the OAuth handshake are stored in cookies. The consumer key. The consumer secret. Initializes a new instance of the class. The consumer key. The consumer secret. The token manager. Check if authentication succeeded after user is redirected back from the service provider. The response token returned from service provider Authentication result Represents Google OpenID client. Base classes for OpenID clients. The openid relying party. Pass null as applicationStore to specify dumb mode The provider identifier. The provider name. Initializes a new instance of the class. Name of the provider. The provider identifier, which is the usually the login url of the specified provider. Attempts to authenticate users by forwarding them to an external website, and upon succcess or failure, redirect users back to the specified url. The context of the current request. The return url after users have completed authenticating against external website. Check if authentication succeeded after user is redirected back from the service provider. The context of the current request. An instance of containing authentication result. Gets the extra data obtained from the response message when authentication is successful. The response message. Always null. Called just before the authentication request is sent to service provider. The request. Gets the name of the provider which provides authentication service. Initializes a new instance of the class. Gets the extra data obtained from the response message when authentication is successful. The response message. A dictionary of profile data; or null if no data is available. Called just before the authentication request is sent to service provider. The request. The yahoo open id client. Initializes a new instance of the class. Gets the extra data obtained from the response message when authentication is successful. The response message. A dictionary of profile data; or null if no data is available. Called just before the authentication request is sent to service provider. The request. Provides helpers that mimic the ASP.NET 4.5 MachineKey.Protect / Unprotect APIs, even when running on ASP.NET 4.0. Consumers are expected to follow the same conventions used by the MachineKey.Protect / Unprotect APIs (consult MSDN docs for how these are meant to be used). Additionally, since this helper class dynamically switches between the two based on whether the current application is .NET 4.0 or 4.5, consumers should never persist output from the Protect method since the implementation will change when upgrading 4.0 -> 4.5. This should be used for transient data only. MachineKey implementation depending on the target .NET framework version Protects the specified user data. The user data. The purposes. The encrypted data Unprotects the specified protected data. The protected data. The purposes. The unencrypted data Gets the machine key implementation based on the runtime framework version. The machine key implementation ProtectUnprotect delegate. The data. The purposes. Result of either Protect or Unprotect methods. Abstract the MachineKey implementation in .NET 4.0 and 4.5 Protects the specified user data. The user data. The purposes. The protected data. Unprotects the specified protected data. The protected data. The purposes. The unprotected data. On ASP.NET 4.0, we perform some transforms which mimic the behaviors of MachineKey.Protect and Unprotect. This is the magic header that identifies a MachineKey40 payload. It helps differentiate this from other encrypted payloads. The SHA-256 factory to be used. Protects the specified user data. The user data. The purposes. The protected data Unprotects the specified protected data. The protected data. The purposes. The unprotected data Convert bytes to hex string. The input array. Hex string This method is specially written to take the same amount of time regardless of where 'a' and 'b' differ. Please do not optimize it. first array. second array. if equal, others Computes a SHA256 hash over all of the input parameters. Each parameter is UTF8 encoded and preceded by a 7-bit encoded integer describing the encoded byte length of the string. The parameters. The output hash Gets the SHA-256 factory. SHA256 factory Convert to hex character The value to be converted. Hex character Convert hdex string to bytes. Input hex string. The bytes Convert hex digit to byte. The hex digit. The byte On ASP.NET 4.5, we can just delegate to MachineKey.Protect and MachineKey.Unprotect directly, which contain optimized code paths. Protect thunk Unprotect thunk Initializes a new instance of the class. The protect thunk. The unprotect thunk. Protects the specified user data. The user data. The purposes. The protected data Unprotects the specified protected data. The protected data. The purposes. The unprotected data The uri helper. The attach query string parameter. The url. The parameter name. This value should not be provided by an end user; the caller should ensure that this value comes only from a literal string. The parameter value. An absolute URI. Converts an app-relative url, e.g. ~/Content/Return.cshtml, to a full-blown url, e.g. http://mysite.com/Content/Return.cshtml The return URL. The context. An absolute URI. Common methods available on identity issuers. Get a user name from an identity provider and their own assigned user ID. The identity provider. The issuer's ID for the user. The username of the user. Helper methods for setting and retrieving a custom forms authentication ticket for delegation protocols. The open auth cookie token. Checks whether the specified HTTP request comes from an authenticated user. The context. True if the reuest is authenticated; false otherwise. Adds an authentication cookie to the user agent in the next HTTP response. The context. The user name. A value indicating whether the cookie should persist across sessions. Creates an HTTP authentication cookie. The user name. A value indicating whether the cookie should last across sessions. An authentication cookie. Manage authenticating with an external OAuth or OpenID provider Purposes string used for protecting the anti-XSRF token. The provider query string name. The query string name for session id. The cookie name for session id. The _authentication provider. The _data provider. The _request context. Initializes a new instance of the class. The request context. Initializes a new instance of the class. The request context. The provider. The data provider. Gets the provider that is responding to an authentication request. The HTTP request context. The provider name, if one is available. Checks if the specified provider user id represents a valid account. If it does, log user in. The provider user id. if set to true create persistent cookie. true if the login is successful. Requests the specified provider to start the authentication by directing users to an external website The return url after user is authenticated. Checks if user is successfully authenticated when user is redirected back to this user. The return Url which must match exactly the Url passed into RequestAuthentication() earlier. This returnUrl parameter only applies to OAuth2 providers. For other providers, it ignores the returnUrl parameter. The result of the authentication. Returns the username of the current logged-in user. The HTTP request context. The username, or String.Empty if anonymous. Validates the request against XSRF attack. The session id embedded in the query string. true if the request is safe. Otherwise, false. Gets a value indicating whether IsAuthenticatedWithOpenAuth. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to A setting in web.config requires a secure connection for this request but the current connection is not secured.. Looks up a localized string similar to Unable to encrypt the authentication ticket.. Looks up a localized string similar to The provided data could not be decrypted. If the current application is deployed in a web farm configuration, ensure that the 'decryptionKey' and 'validationKey' attributes are explicitly specified in the <machineKey> configuration section.. Looks up a localized string similar to An OAuth data provider has already been registered for this application.. Looks up a localized string similar to This operation is not supported on the current provider. Call the overload of VerifyAuthentication() which accepts a return url.. Looks up a localized string similar to Failed to obtain the authentication response from service provider.. ================================================ FILE: packages/DotNetOpenAuth.AspNet.4.3.0.13117/lib/net40-full/DotNetOpenAuth.AspNet.xml ================================================ DotNetOpenAuth.AspNet Represents the result of OAuth or OpenID authentication. Returns an instance which indicates failed authentication. Initializes a new instance of the class. if set to true [is successful]. Initializes a new instance of the class. The exception. Initializes a new instance of the class. The exception. The provider name. Initializes a new instance of the class. if set to true [is successful]. The provider. The provider user id. Name of the user. The extra data. Gets the error that may have occured during the authentication process Gets the optional extra data that may be returned from the provider Gets a value indicating whether the authentication step is successful. true if authentication is successful; otherwise, false . Gets the provider's name. Gets the user id that is returned from the provider. It is unique only within the Provider's namespace. Gets an (insecure, non-unique) alias for the user that the user should recognize as himself/herself. This may take the form of an email address, a URL, or any other value that the user may recognize. This alias may come from the Provider or may be derived by the relying party if the Provider does not supply one. It is not guaranteed to be unique and certainly does not merit any trust in any suggested authenticity. The dictionary extensions. Adds the value from an XDocument with the specified element name if it's not empty. The dictionary. The document. Name of the element. Adds a key/value pair to the specified dictionary if the value is not null or empty. The dictionary. The key. The value. The WindowsLive client. The WindowsLive brand is being replaced by Microsoft account brand. We keep this class for backward compatibility only. The Microsoft account client. Represents the base class for OAuth 2.0 clients Represents a client which can authenticate users via an external website/provider. Attempts to authenticate users by forwarding them to an external website, and upon succcess or failure, redirect users back to the specified url. The context of the current request. The return url after users have completed authenticating against external website. Check if authentication succeeded after user is redirected back from the service provider. The context of the current request. An instance of containing authentication result. Gets the name of the provider which provides authentication service. The provider name. Initializes a new instance of the class with the specified provider name. Name of the provider. Attempts to authenticate users by forwarding them to an external website, and upon succcess or failure, redirect users back to the specified url. The context. The return url after users have completed authenticating against external website. Check if authentication succeeded after user is redirected back from the service provider. The context. An instance of containing authentication result. Check if authentication succeeded after user is redirected back from the service provider. The context. The return URL which should match the value passed to RequestAuthentication() method. An instance of containing authentication result. Gets the full url pointing to the login page for this client. The url should include the specified return url so that when the login completes, user is redirected back to that url. The return URL. An absolute URL. Given the access token, gets the logged-in user's data. The returned dictionary must include two keys 'id', and 'username'. The access token of the current user. A dictionary contains key-value pairs of user data Queries the access token from the specified authorization code. The return URL. The authorization code. The access token Gets the name of the provider which provides authentication service. The authorization endpoint. The token endpoint. The _app id. The _app secret. Initializes a new instance of the class. The app id. The app secret. Initializes a new instance of the class. The provider name. The app id. The app secret. Gets the full url pointing to the login page for this client. The url should include the specified return url so that when the login completes, user is redirected back to that url. The return URL. An absolute URL. Given the access token, gets the logged-in user's data. The returned dictionary must include two keys 'id', and 'username'. The access token of the current user. A dictionary contains key-value pairs of user data Queries the access token from the specified authorization code. The return URL. The authorization code. The query access token. Gets the identifier for this client as it is registered with Microsoft. Initializes a new instance of the class. The app id. The app secret. Stores OAuth tokens in the current request's cookie A token manager for use by a web site in its role as a consumer of an individual ServiceProvider. This interface is used by clients of the DotNetOpenAuth.AspNet classes. Gets the token secret from the specified token. The token. The token's secret Stores the request token together with its secret. The request token. The request token secret. Replaces the request token with access token. The request token. The access token. The access token secret. Key used for token cookie Primary request context. Initializes a new instance of the class. Initializes a new instance of the class. The current request context. Gets the token secret from the specified token. The token. The token's secret Replaces the request token with access token. The request token. The access token. The access token secret. Stores the request token together with its secret. The request token. The request token secret. Protect and url-encode the specified token secret. The token to be used as a key. The token secret to be protected The encrypted and protected string. Url-decode and unprotect the specified encrypted token string. The token to be used as a key. The encrypted token to be decrypted The original token secret Gets the effective HttpContext object to use. Stores OAuth tokens in the current request's cookie. This class is different from the in that it also stores the access token after the authentication has succeeded. Initializes a new instance of the class. Initializes a new instance of the class. The current request context. Gets the token secret from the specified token. The token. The token's secret Replaces the request token with access token. The request token. The access token. The access token secret. Simple wrapper around IConsumerTokenManager Store the token manager. Initializes a new instance of the class. The consumer key. The consumer secret. The OAuth token manager. Gets the Token Secret given a request or access token. The request or access token. The secret associated with the given token. Thrown if the secret cannot be found for the given token. Stores a newly generated unauthorized request token, secret, and optional application-specific parameters for later recall. The request message that resulted in the generation of a new unauthorized request token. The response message that includes the unauthorized request token. Thrown if the consumer key is not registered, or a required parameter was not found in the parameters collection. Deletes a request token and its associated secret and stores a new access token and secret. The Consumer that is exchanging its request token for an access token. The Consumer's request token that should be deleted/expired. The new access token that is being issued to the Consumer. The secret associated with the newly issued access token. Classifies a token as a request token or an access token. The token to classify. Request or Access token, or invalid if the token is not recognized. Gets the consumer key. The consumer key. Gets the consumer secret. The consumer secret. The facebook client. The authorization endpoint. The token endpoint. The _app id. The _app secret. Initializes a new instance of the class. The app id. The app secret. The get service login url. The return url. An absolute URI. The get user data. The access token. A dictionary of profile data. Obtains an access token given an authorization code and callback URL. The return url. The authorization code. The access token. Converts any % encoded values in the URL to uppercase. The URL string to normalize The normalized url NormalizeHexEncoding("Login.aspx?ReturnUrl=%2fAccount%2fManage.aspx") returns "Login.aspx?ReturnUrl=%2FAccount%2FManage.aspx" There is an issue in Facebook whereby it will rejects the redirect_uri value if the url contains lowercase % encoded values. Contains data of a Facebook user. Technically, this class doesn't need to be public, but because we want to make it serializable in medium trust, it has to be public. Gets or sets the birthday. The birthday. Gets or sets the email. The email. Gets or sets the gender. The gender. Gets or sets the id. The id. Gets or sets the link. The link. Gets or sets the name. The name. The json helper. The deserialize. The stream. The type of the value to deserialize. The deserialized value. Captures the result of an access token request, including an optional refresh token. Gets or sets the access token. The access token. Gets or sets the refresh token. The refresh token. Gets or sets the scope. The scope. Gets or sets the type of the token. The type of the token. Contains data of a Windows Live user. Technically, this class doesn't need to be public, but because we want to make it serializable in medium trust, it has to be public. Gets or sets the first name. The first name. Gets or sets the gender. The gender. Gets or sets the id. The id. Gets or sets the last name. The last name. Gets or sets the link. The link. Gets or sets the name. The name. The dot net open auth web consumer. The io auth web worker. The prepare authorized request. The profile endpoint. The access token. An HTTP request. The process user authorization. The response message. The request authentication. The callback. The _web consumer. Initializes a new instance of the class. The service description. The token manager. The prepare authorized request. The profile endpoint. The access token. An HTTP request. The process user authorization. The response message. The request authentication. The callback. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. 2 Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. An implementation of IOAuthTokenManager which stores keys in memory. The _tokens and secrets. Initializes a new instance of the class. The consumer key. The consumer secret. Deletes a request token and its associated secret and stores a new access token and secret. The Consumer that is exchanging its request token for an access token. The Consumer's request token that should be deleted/expired. The new access token that is being issued to the Consumer. The secret associated with the newly issued access token. Any scope of granted privileges associated with the request token from the original call to should be carried over to the new Access Token. To associate a user account with the new access token, HttpContext.Current.User may be useful in an ASP.NET web application within the implementation of this method. Alternatively you may store the access token here without associating with a user account, and wait until or return the access token to associate the access token with a user account at that point. Gets the Token Secret given a request or access token. The request or access token. The secret associated with the given token. Thrown if the secret cannot be found for the given token. Classifies a token as a request token or an access token. The token to classify. Request or Access token, or invalid if the token is not recognized. Stores a newly generated unauthorized request token, secret, and optional application-specific parameters for later recall. The request message that resulted in the generation of a new unauthorized request token. The response message that includes the unauthorized request token. Thrown if the consumer key is not registered, or a required parameter was not found in the parameters collection. Request tokens stored by this method SHOULD NOT associate any user account with this token. It usually opens up security holes in your application to do so. Instead, you associate a user account with access tokens (not request tokens) in the method. Gets the consumer key. Gets the consumer secret. Represents LinkedIn authentication client. Represents base class for OAuth 1.0 clients Initializes a new instance of the class. Name of the provider. The service description. The consumer key. The consumer secret. Initializes a new instance of the class. Name of the provider. The service Description. The token Manager. Initializes a new instance of the class. The provider name. The web worker. Attempts to authenticate users by forwarding them to an external website, and upon succcess or failure, redirect users back to the specified url. The context. The return url after users have completed authenticating against external website. Check if authentication succeeded after user is redirected back from the service provider. The context. An instance of containing authentication result. Helper method to load an XDocument from an input stream. The input stream from which to load the document. The XML document. Check if authentication succeeded after user is redirected back from the service provider. The response token returned from service provider Authentication result Gets the name of the provider which provides authentication service. Gets the OAuthWebConsumer instance which handles constructing requests to the OAuth providers. Describes the OAuth service provider endpoints for LinkedIn. Initializes a new instance of the class. Tokens exchanged during the OAuth handshake are stored in cookies. The LinkedIn app's consumer key. The LinkedIn app's consumer secret. Initializes a new instance of the class. The consumer key. The consumer secret. The token manager. Check if authentication succeeded after user is redirected back from the service provider. The response token returned from service provider Authentication result. Represents a Twitter client The description of Twitter's OAuth protocol URIs for use with their "Sign in with Twitter" feature. Initializes a new instance of the class with the specified consumer key and consumer secret. Tokens exchanged during the OAuth handshake are stored in cookies. The consumer key. The consumer secret. Initializes a new instance of the class. The consumer key. The consumer secret. The token manager. Check if authentication succeeded after user is redirected back from the service provider. The response token returned from service provider Authentication result Represents Google OpenID client. Base classes for OpenID clients. The openid relying party. Pass null as applicationStore to specify dumb mode The provider identifier. The provider name. Initializes a new instance of the class. Name of the provider. The provider identifier, which is the usually the login url of the specified provider. Attempts to authenticate users by forwarding them to an external website, and upon succcess or failure, redirect users back to the specified url. The context of the current request. The return url after users have completed authenticating against external website. Check if authentication succeeded after user is redirected back from the service provider. The context of the current request. An instance of containing authentication result. Gets the extra data obtained from the response message when authentication is successful. The response message. Always null. Called just before the authentication request is sent to service provider. The request. Gets the name of the provider which provides authentication service. Initializes a new instance of the class. Gets the extra data obtained from the response message when authentication is successful. The response message. A dictionary of profile data; or null if no data is available. Called just before the authentication request is sent to service provider. The request. The yahoo open id client. Initializes a new instance of the class. Gets the extra data obtained from the response message when authentication is successful. The response message. A dictionary of profile data; or null if no data is available. Called just before the authentication request is sent to service provider. The request. Provides helpers that mimic the ASP.NET 4.5 MachineKey.Protect / Unprotect APIs, even when running on ASP.NET 4.0. Consumers are expected to follow the same conventions used by the MachineKey.Protect / Unprotect APIs (consult MSDN docs for how these are meant to be used). Additionally, since this helper class dynamically switches between the two based on whether the current application is .NET 4.0 or 4.5, consumers should never persist output from the Protect method since the implementation will change when upgrading 4.0 -> 4.5. This should be used for transient data only. MachineKey implementation depending on the target .NET framework version Protects the specified user data. The user data. The purposes. The encrypted data Unprotects the specified protected data. The protected data. The purposes. The unencrypted data Gets the machine key implementation based on the runtime framework version. The machine key implementation ProtectUnprotect delegate. The data. The purposes. Result of either Protect or Unprotect methods. Abstract the MachineKey implementation in .NET 4.0 and 4.5 Protects the specified user data. The user data. The purposes. The protected data. Unprotects the specified protected data. The protected data. The purposes. The unprotected data. On ASP.NET 4.0, we perform some transforms which mimic the behaviors of MachineKey.Protect and Unprotect. This is the magic header that identifies a MachineKey40 payload. It helps differentiate this from other encrypted payloads. The SHA-256 factory to be used. Protects the specified user data. The user data. The purposes. The protected data Unprotects the specified protected data. The protected data. The purposes. The unprotected data Convert bytes to hex string. The input array. Hex string This method is specially written to take the same amount of time regardless of where 'a' and 'b' differ. Please do not optimize it. first array. second array. if equal, others Computes a SHA256 hash over all of the input parameters. Each parameter is UTF8 encoded and preceded by a 7-bit encoded integer describing the encoded byte length of the string. The parameters. The output hash Gets the SHA-256 factory. SHA256 factory Convert to hex character The value to be converted. Hex character Convert hdex string to bytes. Input hex string. The bytes Convert hex digit to byte. The hex digit. The byte On ASP.NET 4.5, we can just delegate to MachineKey.Protect and MachineKey.Unprotect directly, which contain optimized code paths. Protect thunk Unprotect thunk Initializes a new instance of the class. The protect thunk. The unprotect thunk. Protects the specified user data. The user data. The purposes. The protected data Unprotects the specified protected data. The protected data. The purposes. The unprotected data The uri helper. The attach query string parameter. The url. The parameter name. This value should not be provided by an end user; the caller should ensure that this value comes only from a literal string. The parameter value. An absolute URI. Converts an app-relative url, e.g. ~/Content/Return.cshtml, to a full-blown url, e.g. http://mysite.com/Content/Return.cshtml The return URL. The context. An absolute URI. Common methods available on identity issuers. Get a user name from an identity provider and their own assigned user ID. The identity provider. The issuer's ID for the user. The username of the user. Helper methods for setting and retrieving a custom forms authentication ticket for delegation protocols. The open auth cookie token. Checks whether the specified HTTP request comes from an authenticated user. The context. True if the reuest is authenticated; false otherwise. Adds an authentication cookie to the user agent in the next HTTP response. The context. The user name. A value indicating whether the cookie should persist across sessions. Creates an HTTP authentication cookie. The user name. A value indicating whether the cookie should last across sessions. An authentication cookie. Manage authenticating with an external OAuth or OpenID provider Purposes string used for protecting the anti-XSRF token. The provider query string name. The query string name for session id. The cookie name for session id. The _authentication provider. The _data provider. The _request context. Initializes a new instance of the class. The request context. The provider. The data provider. Gets the provider that is responding to an authentication request. The HTTP request context. The provider name, if one is available. Checks if the specified provider user id represents a valid account. If it does, log user in. The provider user id. if set to true create persistent cookie. true if the login is successful. Requests the specified provider to start the authentication by directing users to an external website The return url after user is authenticated. Checks if user is successfully authenticated when user is redirected back to this user. The return Url which must match exactly the Url passed into RequestAuthentication() earlier. This returnUrl parameter only applies to OAuth2 providers. For other providers, it ignores the returnUrl parameter. The result of the authentication. Returns the username of the current logged-in user. The HTTP request context. The username, or String.Empty if anonymous. Validates the request against XSRF attack. The session id embedded in the query string. true if the request is safe. Otherwise, false. Gets a value indicating whether IsAuthenticatedWithOpenAuth. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to A setting in web.config requires a secure connection for this request but the current connection is not secured.. Looks up a localized string similar to Unable to encrypt the authentication ticket.. Looks up a localized string similar to The provided data could not be decrypted. If the current application is deployed in a web farm configuration, ensure that the 'decryptionKey' and 'validationKey' attributes are explicitly specified in the <machineKey> configuration section.. Looks up a localized string similar to An OAuth data provider has already been registered for this application.. Looks up a localized string similar to This operation is not supported on the current provider. Call the overload of VerifyAuthentication() which accepts a return url.. Looks up a localized string similar to Failed to obtain the authentication response from service provider.. ================================================ FILE: packages/DotNetOpenAuth.AspNet.4.3.0.13117/lib/net45-full/DotNetOpenAuth.AspNet.xml ================================================ DotNetOpenAuth.AspNet Represents the result of OAuth or OpenID authentication. Returns an instance which indicates failed authentication. Initializes a new instance of the class. if set to true [is successful]. Initializes a new instance of the class. The exception. Initializes a new instance of the class. The exception. The provider name. Initializes a new instance of the class. if set to true [is successful]. The provider. The provider user id. Name of the user. The extra data. Gets the error that may have occured during the authentication process Gets the optional extra data that may be returned from the provider Gets a value indicating whether the authentication step is successful. true if authentication is successful; otherwise, false . Gets the provider's name. Gets the user id that is returned from the provider. It is unique only within the Provider's namespace. Gets an (insecure, non-unique) alias for the user that the user should recognize as himself/herself. This may take the form of an email address, a URL, or any other value that the user may recognize. This alias may come from the Provider or may be derived by the relying party if the Provider does not supply one. It is not guaranteed to be unique and certainly does not merit any trust in any suggested authenticity. The dictionary extensions. Adds the value from an XDocument with the specified element name if it's not empty. The dictionary. The document. Name of the element. Adds a key/value pair to the specified dictionary if the value is not null or empty. The dictionary. The key. The value. The WindowsLive client. The WindowsLive brand is being replaced by Microsoft account brand. We keep this class for backward compatibility only. The Microsoft account client. Represents the base class for OAuth 2.0 clients Represents a client which can authenticate users via an external website/provider. Attempts to authenticate users by forwarding them to an external website, and upon succcess or failure, redirect users back to the specified url. The context of the current request. The return url after users have completed authenticating against external website. Check if authentication succeeded after user is redirected back from the service provider. The context of the current request. An instance of containing authentication result. Gets the name of the provider which provides authentication service. The provider name. Initializes a new instance of the class with the specified provider name. Name of the provider. Attempts to authenticate users by forwarding them to an external website, and upon succcess or failure, redirect users back to the specified url. The context. The return url after users have completed authenticating against external website. Check if authentication succeeded after user is redirected back from the service provider. The context. An instance of containing authentication result. Check if authentication succeeded after user is redirected back from the service provider. The context. The return URL which should match the value passed to RequestAuthentication() method. An instance of containing authentication result. Gets the full url pointing to the login page for this client. The url should include the specified return url so that when the login completes, user is redirected back to that url. The return URL. An absolute URL. Given the access token, gets the logged-in user's data. The returned dictionary must include two keys 'id', and 'username'. The access token of the current user. A dictionary contains key-value pairs of user data Queries the access token from the specified authorization code. The return URL. The authorization code. The access token Gets the name of the provider which provides authentication service. The authorization endpoint. The token endpoint. The _app id. The _app secret. Initializes a new instance of the class. The app id. The app secret. Initializes a new instance of the class. The provider name. The app id. The app secret. Gets the full url pointing to the login page for this client. The url should include the specified return url so that when the login completes, user is redirected back to that url. The return URL. An absolute URL. Given the access token, gets the logged-in user's data. The returned dictionary must include two keys 'id', and 'username'. The access token of the current user. A dictionary contains key-value pairs of user data Queries the access token from the specified authorization code. The return URL. The authorization code. The query access token. Gets the identifier for this client as it is registered with Microsoft. Initializes a new instance of the class. The app id. The app secret. Stores OAuth tokens in the current request's cookie A token manager for use by a web site in its role as a consumer of an individual ServiceProvider. This interface is used by clients of the DotNetOpenAuth.AspNet classes. Gets the token secret from the specified token. The token. The token's secret Stores the request token together with its secret. The request token. The request token secret. Replaces the request token with access token. The request token. The access token. The access token secret. Key used for token cookie Primary request context. Initializes a new instance of the class. Initializes a new instance of the class. The current request context. Gets the token secret from the specified token. The token. The token's secret Replaces the request token with access token. The request token. The access token. The access token secret. Stores the request token together with its secret. The request token. The request token secret. Protect and url-encode the specified token secret. The token to be used as a key. The token secret to be protected The encrypted and protected string. Url-decode and unprotect the specified encrypted token string. The token to be used as a key. The encrypted token to be decrypted The original token secret Gets the effective HttpContext object to use. Stores OAuth tokens in the current request's cookie. This class is different from the in that it also stores the access token after the authentication has succeeded. Initializes a new instance of the class. Initializes a new instance of the class. The current request context. Gets the token secret from the specified token. The token. The token's secret Replaces the request token with access token. The request token. The access token. The access token secret. Simple wrapper around IConsumerTokenManager Store the token manager. Initializes a new instance of the class. The consumer key. The consumer secret. The OAuth token manager. Gets the Token Secret given a request or access token. The request or access token. The secret associated with the given token. Thrown if the secret cannot be found for the given token. Stores a newly generated unauthorized request token, secret, and optional application-specific parameters for later recall. The request message that resulted in the generation of a new unauthorized request token. The response message that includes the unauthorized request token. Thrown if the consumer key is not registered, or a required parameter was not found in the parameters collection. Deletes a request token and its associated secret and stores a new access token and secret. The Consumer that is exchanging its request token for an access token. The Consumer's request token that should be deleted/expired. The new access token that is being issued to the Consumer. The secret associated with the newly issued access token. Classifies a token as a request token or an access token. The token to classify. Request or Access token, or invalid if the token is not recognized. Gets the consumer key. The consumer key. Gets the consumer secret. The consumer secret. The facebook client. The authorization endpoint. The token endpoint. The _app id. The _app secret. Initializes a new instance of the class. The app id. The app secret. The get service login url. The return url. An absolute URI. The get user data. The access token. A dictionary of profile data. Obtains an access token given an authorization code and callback URL. The return url. The authorization code. The access token. Converts any % encoded values in the URL to uppercase. The URL string to normalize The normalized url NormalizeHexEncoding("Login.aspx?ReturnUrl=%2fAccount%2fManage.aspx") returns "Login.aspx?ReturnUrl=%2FAccount%2FManage.aspx" There is an issue in Facebook whereby it will rejects the redirect_uri value if the url contains lowercase % encoded values. Contains data of a Facebook user. Technically, this class doesn't need to be public, but because we want to make it serializable in medium trust, it has to be public. Gets or sets the birthday. The birthday. Gets or sets the email. The email. Gets or sets the gender. The gender. Gets or sets the id. The id. Gets or sets the link. The link. Gets or sets the name. The name. The json helper. The deserialize. The stream. The type of the value to deserialize. The deserialized value. Captures the result of an access token request, including an optional refresh token. Gets or sets the access token. The access token. Gets or sets the refresh token. The refresh token. Gets or sets the scope. The scope. Gets or sets the type of the token. The type of the token. Contains data of a Windows Live user. Technically, this class doesn't need to be public, but because we want to make it serializable in medium trust, it has to be public. Gets or sets the first name. The first name. Gets or sets the gender. The gender. Gets or sets the id. The id. Gets or sets the last name. The last name. Gets or sets the link. The link. Gets or sets the name. The name. The dot net open auth web consumer. The io auth web worker. The prepare authorized request. The profile endpoint. The access token. An HTTP request. The process user authorization. The response message. The request authentication. The callback. The _web consumer. Initializes a new instance of the class. The service description. The token manager. The prepare authorized request. The profile endpoint. The access token. An HTTP request. The process user authorization. The response message. The request authentication. The callback. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. 2 Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. An implementation of IOAuthTokenManager which stores keys in memory. The _tokens and secrets. Initializes a new instance of the class. The consumer key. The consumer secret. Deletes a request token and its associated secret and stores a new access token and secret. The Consumer that is exchanging its request token for an access token. The Consumer's request token that should be deleted/expired. The new access token that is being issued to the Consumer. The secret associated with the newly issued access token. Any scope of granted privileges associated with the request token from the original call to should be carried over to the new Access Token. To associate a user account with the new access token, HttpContext.Current.User may be useful in an ASP.NET web application within the implementation of this method. Alternatively you may store the access token here without associating with a user account, and wait until or return the access token to associate the access token with a user account at that point. Gets the Token Secret given a request or access token. The request or access token. The secret associated with the given token. Thrown if the secret cannot be found for the given token. Classifies a token as a request token or an access token. The token to classify. Request or Access token, or invalid if the token is not recognized. Stores a newly generated unauthorized request token, secret, and optional application-specific parameters for later recall. The request message that resulted in the generation of a new unauthorized request token. The response message that includes the unauthorized request token. Thrown if the consumer key is not registered, or a required parameter was not found in the parameters collection. Request tokens stored by this method SHOULD NOT associate any user account with this token. It usually opens up security holes in your application to do so. Instead, you associate a user account with access tokens (not request tokens) in the method. Gets the consumer key. Gets the consumer secret. Represents LinkedIn authentication client. Represents base class for OAuth 1.0 clients Initializes a new instance of the class. Name of the provider. The service description. The consumer key. The consumer secret. Initializes a new instance of the class. Name of the provider. The service Description. The token Manager. Initializes a new instance of the class. The provider name. The web worker. Attempts to authenticate users by forwarding them to an external website, and upon succcess or failure, redirect users back to the specified url. The context. The return url after users have completed authenticating against external website. Check if authentication succeeded after user is redirected back from the service provider. The context. An instance of containing authentication result. Helper method to load an XDocument from an input stream. The input stream from which to load the document. The XML document. Check if authentication succeeded after user is redirected back from the service provider. The response token returned from service provider Authentication result Gets the name of the provider which provides authentication service. Gets the OAuthWebConsumer instance which handles constructing requests to the OAuth providers. Describes the OAuth service provider endpoints for LinkedIn. Initializes a new instance of the class. Tokens exchanged during the OAuth handshake are stored in cookies. The LinkedIn app's consumer key. The LinkedIn app's consumer secret. Initializes a new instance of the class. The consumer key. The consumer secret. The token manager. Check if authentication succeeded after user is redirected back from the service provider. The response token returned from service provider Authentication result. Represents a Twitter client The description of Twitter's OAuth protocol URIs for use with their "Sign in with Twitter" feature. Initializes a new instance of the class with the specified consumer key and consumer secret. Tokens exchanged during the OAuth handshake are stored in cookies. The consumer key. The consumer secret. Initializes a new instance of the class. The consumer key. The consumer secret. The token manager. Check if authentication succeeded after user is redirected back from the service provider. The response token returned from service provider Authentication result Represents Google OpenID client. Base classes for OpenID clients. The openid relying party. Pass null as applicationStore to specify dumb mode The provider identifier. The provider name. Initializes a new instance of the class. Name of the provider. The provider identifier, which is the usually the login url of the specified provider. Attempts to authenticate users by forwarding them to an external website, and upon succcess or failure, redirect users back to the specified url. The context of the current request. The return url after users have completed authenticating against external website. Check if authentication succeeded after user is redirected back from the service provider. The context of the current request. An instance of containing authentication result. Gets the extra data obtained from the response message when authentication is successful. The response message. Always null. Called just before the authentication request is sent to service provider. The request. Gets the name of the provider which provides authentication service. Initializes a new instance of the class. Gets the extra data obtained from the response message when authentication is successful. The response message. A dictionary of profile data; or null if no data is available. Called just before the authentication request is sent to service provider. The request. The yahoo open id client. Initializes a new instance of the class. Gets the extra data obtained from the response message when authentication is successful. The response message. A dictionary of profile data; or null if no data is available. Called just before the authentication request is sent to service provider. The request. Provides helpers that mimic the ASP.NET 4.5 MachineKey.Protect / Unprotect APIs, even when running on ASP.NET 4.0. Consumers are expected to follow the same conventions used by the MachineKey.Protect / Unprotect APIs (consult MSDN docs for how these are meant to be used). Additionally, since this helper class dynamically switches between the two based on whether the current application is .NET 4.0 or 4.5, consumers should never persist output from the Protect method since the implementation will change when upgrading 4.0 -> 4.5. This should be used for transient data only. MachineKey implementation depending on the target .NET framework version Protects the specified user data. The user data. The purposes. The encrypted data Unprotects the specified protected data. The protected data. The purposes. The unencrypted data Gets the machine key implementation based on the runtime framework version. The machine key implementation ProtectUnprotect delegate. The data. The purposes. Result of either Protect or Unprotect methods. Abstract the MachineKey implementation in .NET 4.0 and 4.5 Protects the specified user data. The user data. The purposes. The protected data. Unprotects the specified protected data. The protected data. The purposes. The unprotected data. On ASP.NET 4.0, we perform some transforms which mimic the behaviors of MachineKey.Protect and Unprotect. This is the magic header that identifies a MachineKey40 payload. It helps differentiate this from other encrypted payloads. The SHA-256 factory to be used. Protects the specified user data. The user data. The purposes. The protected data Unprotects the specified protected data. The protected data. The purposes. The unprotected data Convert bytes to hex string. The input array. Hex string This method is specially written to take the same amount of time regardless of where 'a' and 'b' differ. Please do not optimize it. first array. second array. if equal, others Computes a SHA256 hash over all of the input parameters. Each parameter is UTF8 encoded and preceded by a 7-bit encoded integer describing the encoded byte length of the string. The parameters. The output hash Gets the SHA-256 factory. SHA256 factory Convert to hex character The value to be converted. Hex character Convert hdex string to bytes. Input hex string. The bytes Convert hex digit to byte. The hex digit. The byte On ASP.NET 4.5, we can just delegate to MachineKey.Protect and MachineKey.Unprotect directly, which contain optimized code paths. Protect thunk Unprotect thunk Initializes a new instance of the class. The protect thunk. The unprotect thunk. Protects the specified user data. The user data. The purposes. The protected data Unprotects the specified protected data. The protected data. The purposes. The unprotected data The uri helper. The attach query string parameter. The url. The parameter name. This value should not be provided by an end user; the caller should ensure that this value comes only from a literal string. The parameter value. An absolute URI. Converts an app-relative url, e.g. ~/Content/Return.cshtml, to a full-blown url, e.g. http://mysite.com/Content/Return.cshtml The return URL. The context. An absolute URI. Common methods available on identity issuers. Get a user name from an identity provider and their own assigned user ID. The identity provider. The issuer's ID for the user. The username of the user. Helper methods for setting and retrieving a custom forms authentication ticket for delegation protocols. The open auth cookie token. Checks whether the specified HTTP request comes from an authenticated user. The context. True if the reuest is authenticated; false otherwise. Adds an authentication cookie to the user agent in the next HTTP response. The context. The user name. A value indicating whether the cookie should persist across sessions. Creates an HTTP authentication cookie. The user name. A value indicating whether the cookie should last across sessions. An authentication cookie. Manage authenticating with an external OAuth or OpenID provider Purposes string used for protecting the anti-XSRF token. The provider query string name. The query string name for session id. The cookie name for session id. The _authentication provider. The _data provider. The _request context. Initializes a new instance of the class. The request context. The provider. The data provider. Gets the provider that is responding to an authentication request. The HTTP request context. The provider name, if one is available. Checks if the specified provider user id represents a valid account. If it does, log user in. The provider user id. if set to true create persistent cookie. true if the login is successful. Requests the specified provider to start the authentication by directing users to an external website The return url after user is authenticated. Checks if user is successfully authenticated when user is redirected back to this user. The return Url which must match exactly the Url passed into RequestAuthentication() earlier. This returnUrl parameter only applies to OAuth2 providers. For other providers, it ignores the returnUrl parameter. The result of the authentication. Returns the username of the current logged-in user. The HTTP request context. The username, or String.Empty if anonymous. Validates the request against XSRF attack. The session id embedded in the query string. true if the request is safe. Otherwise, false. Gets a value indicating whether IsAuthenticatedWithOpenAuth. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to A setting in web.config requires a secure connection for this request but the current connection is not secured.. Looks up a localized string similar to Unable to encrypt the authentication ticket.. Looks up a localized string similar to The provided data could not be decrypted. If the current application is deployed in a web farm configuration, ensure that the 'decryptionKey' and 'validationKey' attributes are explicitly specified in the <machineKey> configuration section.. Looks up a localized string similar to An OAuth data provider has already been registered for this application.. Looks up a localized string similar to This operation is not supported on the current provider. Call the overload of VerifyAuthentication() which accepts a return url.. Looks up a localized string similar to Failed to obtain the authentication response from service provider.. ================================================ FILE: packages/DotNetOpenAuth.Core.4.0.3.12153/content/web.config.transform ================================================
================================================ FILE: packages/DotNetOpenAuth.Core.4.0.3.12153/lib/net35-full/DotNetOpenAuth.Core.xml ================================================ DotNetOpenAuth.Core Internal state consistency checks that throw an internal error exception when they fail. Validates some expression describing the acceptable condition evaluates to true. The expression that must evaluate to true to avoid an internal error exception. The message to include with the exception. Validates some expression describing the acceptable condition evaluates to true. The expression that must evaluate to true to avoid an internal error exception. The unformatted message. Formatting arguments. Throws an internal error exception. The message. An internal error exception that should never be caught. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). Provides RSA encryption of symmetric keys to protect them from a theft of the persistent store. A persistent store for rotating symmetric cryptographic keys. Implementations should persist it in such a way that the keys are shared across all servers on a web farm, where applicable. The store should consider protecting the persistent store against theft resulting in the loss of the confidentiality of the keys. One possible mitigation is to asymmetrically encrypt each key using a certificate installed in the server's certificate store. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Thrown in the event of a conflict with an existing key in the same bucket and with the same handle. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. The persistent store for asymmetrically encrypted symmetric keys. The memory cache of decrypted keys. The asymmetric algorithm to use encrypting/decrypting the symmetric keys. Initializes a new instance of the class. The data store. The asymmetric protection to apply to symmetric keys. Must include the private key. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. Decrypts the specified key. The bucket. The handle. The encrypted key. The decrypted key. An encrypted key and its decrypted equivalent. A cryptographic key and metadata concerning it. Backing field for the property. Backing field for the property. Initializes a new instance of the class. The cryptographic key. The expires UTC. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. The parameter is null. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the key. Gets the expiration date of this key (UTC time). Initializes a new instance of the class. The encrypted key. The decrypted key. Invariant conditions. Gets the encrypted key. Thrown by a hosting application or web site when a cryptographic key is created with a bucket and handle that conflicts with a previously stored and unexpired key. Initializes a new instance of the class. Initializes a new instance of the class. The inner exception to include. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. Code contract for the interface. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Thrown in the event of a conflict with an existing key in the same bucket and with the same handle. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. A in-memory store of crypto keys. How frequently to check for and remove expired secrets. An in-memory cache of decrypted symmetric keys. The key is the bucket name. The value is a dictionary whose key is the handle and whose value is the cached key. The last time the cache had expired keys removed from it. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Thrown in the event of a conflict with an existing key in the same bucket and with the same handle. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. Cleans the expired keys from memory cache if the cleaning interval has passed. Weeds out expired keys from the in-memory cache. A compact binary serialization class. The -derived type to serialize/deserialize. A serializer for -derived types The DataBag-derived type that is to be serialized/deserialized. A serializer for -derived types The DataBag-derived type that is to be serialized/deserialized. Serializes the specified message. The message to serialize. Must not be null. A non-null, non-empty value. Deserializes a . The message that contains the serialized value. Must not be null. The serialized form of the to deserialize. Must not be null or empty. The name of the parameter whose value is to be deserialized. Used for error message generation. The deserialized value. Never null. The length of the nonce to include in tokens that can be decoded once only. The message description cache to use for data bag types. The minimum allowable lifetime for the key used to encrypt/decrypt or sign this databag. The symmetric key store with the secret used for signing/encryption of verification codes and refresh tokens. The bucket for symmetric keys. The crypto to use for signing access tokens. The crypto to use for encrypting access tokens. A value indicating whether the data in this instance will be protected against tampering. The nonce store to use to ensure that this instance is only decoded once. The maximum age of a token that can be decoded; useful only when is true. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. Initializes a new instance of the class. The crypto service provider with the asymmetric key to use for signing or verifying the token. The crypto service provider with the asymmetric key to use for encrypting or decrypting the token. A value indicating whether the data in this instance will be GZip'd. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Initializes a new instance of the class. The crypto key store used when signing or encrypting. The bucket in which symmetric keys are stored for signing/encrypting data. A value indicating whether the data in this instance will be protected against tampering. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. The required minimum lifespan within which this token must be decodable and verifiable; useful only when and/or is true. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Initializes a new instance of the class. A value indicating whether the data in this instance will be protected against tampering. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Serializes the specified message, including compression, encryption, signing, and nonce handling where applicable. The message to serialize. Must not be null. A non-null, non-empty value. Deserializes a , including decompression, decryption, signature and nonce validation where applicable. The message that contains the serialized value. Must not be null. The serialized form of the to deserialize. Must not be null or empty. The name of the parameter whose value is to be deserialized. Used for error message generation. The deserialized value. Never null. Serializes the instance to a buffer. The message. The buffer containing the serialized data. Deserializes the instance from a buffer. The message instance to initialize with data from the buffer. The data buffer. Determines whether the signature on this instance is valid. The signed data. The signature. The symmetric secret handle. null when using an asymmetric algorithm. true if the signature is valid; otherwise, false. Calculates the signature for the data in this verification code. The bytes to sign. The symmetric secret handle. null when using an asymmetric algorithm. The calculated signature. Encrypts the specified value using either the symmetric or asymmetric encryption algorithm as appropriate. The value. Receives the symmetric secret handle. null when using an asymmetric algorithm. The encrypted value. Decrypts the specified value using either the symmetric or asymmetric encryption algorithm as appropriate. The value. The symmetric secret handle. null when using an asymmetric algorithm. The decrypted value. Initializes a new instance of the class. The crypto service provider with the asymmetric key to use for signing or verifying the token. The crypto service provider with the asymmetric key to use for encrypting or decrypting the token. A value indicating whether the data in this instance will be GZip'd. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Initializes a new instance of the class. The crypto key store used when signing or encrypting. The bucket in which symmetric keys are stored for signing/encrypting data. A value indicating whether the data in this instance will be protected against tampering. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. The minimum age. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Serializes the instance to a buffer. The message. The buffer containing the serialized data. Deserializes the instance from a buffer. The message instance to initialize with data from the buffer. The data buffer. Cached details on the response from a direct web request to a remote party. Details on the incoming response from a direct web request to a remote party. The encoding to use in reading a response that does not declare its own content encoding. Initializes a new instance of the class. Initializes a new instance of the class. The original request URI. The response to initialize from. The network stream is used by this class directly. Initializes a new instance of the class. The request URI. The final URI to respond to the request. The headers. The status code. Type of the content. The content encoding. Returns a that represents the current . A that represents the current . Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Gets an offline snapshot version of this instance. The maximum bytes from the response stream to cache. A snapshot version of this instance. If this instance is a creating a snapshot will automatically close and dispose of the underlying response stream. If this instance is a , the result will be the self same instance. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the type of the content. Gets the content encoding. Gets the URI of the initial request. Gets the URI that finally responded to the request. This can be different from the in cases of redirection during the request. Gets the headers that must be included in the response to the user agent. The headers in this collection are not meant to be a comprehensive list of exactly what should be sent, but are meant to augment whatever headers are generally included in a typical response. Gets the HTTP status code to use in the HTTP response. Gets the body of the HTTP response. A seekable, repeatable response stream. Initializes a new instance of the class. Initializes a new instance of the class. The request URI. The response. The maximum bytes to read. Initializes a new instance of the class. The request URI. The final URI to respond to the request. The headers. The status code. Type of the content. The content encoding. The response stream. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Gets the body of the response as a string. The entire body of the response. Gets an offline snapshot version of this instance. The maximum bytes from the response stream to cache. A snapshot version of this instance. If this instance is a creating a snapshot will automatically close and dispose of the underlying response stream. If this instance is a , the result will be the self same instance. Sets the response to some string, encoded as UTF-8. The string to set the response to. Caches the network stream and closes it if it is open. The response whose stream is to be cloned. The maximum bytes to cache. The seekable Stream instance that contains a copy of what was returned in the HTTP response. Gets a value indicating whether the cached response stream was truncated to a maximum allowable length. Gets the body of the HTTP response. Gets or sets the cached response stream. Code contract for the class. Manages sending direct messages to a remote party and receiving responses. The content-type used on HTTP POST requests where the POST entity is a URL-encoded series of key=value pairs. The content-type used for JSON serialized objects. The "text/javascript" content-type that some servers return instead of the standard one. The content-type for plain text. The HTML that should be returned to the user agent as part of a 301 Redirect. A string that should be used as the first argument to string.Format, where the {0} should be replaced with the URL to redirect to. The template for indirect messages that require form POST to forward through the user agent. We are intentionally using " instead of the html single quote ' below because the HtmlEncode'd values that we inject will only escape the double quote, so only the double-quote used around these values is safe. The encoding to use when writing out POST entity strings. The content-type used on HTTP POST requests where the POST entity is a URL-encoded series of key=value pairs. This includes the character encoding. A list of binding elements in the order they must be applied to outgoing messages. A list of binding elements in the order they must be applied to incoming messages. The default cache of message descriptions to use unless they are customized. This is a perf optimization, so that we don't reflect over every message type every time a channel is constructed. A cache of reflected message types that may be sent or received on this channel. A tool that can figure out what kind of message is being received so it can be deserialized. Backing store for the property. Backing field for the property. Initializes a new instance of the class. A class prepared to analyze incoming messages and indicate what concrete message types can deserialize from it. The binding elements to use in sending and receiving messages. Sends an indirect message (either a request or response) or direct message response for transmission to a remote party and ends execution on the current page or handler. The one-way message to send Thrown by ASP.NET in order to prevent additional data from the page being sent to the client and corrupting the response. Requires an HttpContext.Current context. Sends an indirect message (either a request or response) or direct message response for transmission to a remote party and skips most of the remaining ASP.NET request handling pipeline. Not safe to call from ASP.NET web forms. The one-way message to send Requires an HttpContext.Current context. This call is not safe to make from an ASP.NET web form (.aspx file or code-behind) because ASP.NET will render HTML after the protocol message has been sent, which will corrupt the response. Use the method instead for web forms. Prepares an indirect message (either a request or response) or direct message response for transmission to a remote party. The one-way message to send The pending user agent redirect based message to be sent as an HttpResponse. Gets the protocol message embedded in the given HTTP request, if present. The deserialized message, if one is found. Null otherwise. Requires an HttpContext.Current context. Thrown when is null. Gets the protocol message embedded in the given HTTP request, if present. The expected type of the message to be received. The deserialized message, if one is found. Null otherwise. True if the expected message was recognized and deserialized. False otherwise. Requires an HttpContext.Current context. Thrown when is null. Thrown when a request message of an unexpected type is received. Gets the protocol message embedded in the given HTTP request, if present. The expected type of the message to be received. The request to search for an embedded message. The deserialized message, if one is found. Null otherwise. True if the expected message was recognized and deserialized. False otherwise. Thrown when is null. Thrown when a request message of an unexpected type is received. Gets the protocol message embedded in the current HTTP request. The expected type of the message to be received. The deserialized message. Never null. Requires an HttpContext.Current context. Thrown when is null. Thrown if the expected message was not recognized in the response. Gets the protocol message embedded in the given HTTP request. The expected type of the message to be received. The request to search for an embedded message. The deserialized message. Never null. Thrown if the expected message was not recognized in the response. Gets the protocol message that may be embedded in the given HTTP request. The request to search for an embedded message. The deserialized message, if one is found. Null otherwise. Sends a direct message to a remote party and waits for the response. The expected type of the message to be received. The message to send. The remote party's response. Thrown if no message is recognized in the response or an unexpected type of message is received. Sends a direct message to a remote party and waits for the response. The message to send. The remote party's response. Guaranteed to never be null. Thrown if the response does not include a protocol message. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Verifies the integrity and applicability of an incoming message. The message just received. Thrown when the message is somehow invalid. This can be due to tampering, replay attack or expiration, among other things. Prepares an HTTP request that carries a given message. The message to send. The prepared to send the request. This method must be overridden by a derived class, unless the method is overridden and does not require this method. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec OAuth V1.0 section 5.3. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Thrown when the response is not valid. This method should NOT be called by derived types except when sending ONE WAY request messages. Prepares a message for transmit by applying signatures, nonces, etc. The message to prepare for sending. Gets the HTTP context for the current HTTP request. An HttpContextBase instance. Gets the current HTTP request being processed. The HttpRequestInfo for the current request. Requires an context. Thrown if HttpContext.Current == null. Checks whether a given HTTP method is expected to include an entity body in its request. The HTTP method. true if the HTTP method is supposed to have an entity; false otherwise. Applies message prescribed HTTP response headers to an outgoing web response. The message. The HTTP response. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Fires the event. The message about to be encoded and sent. Gets the direct response of a direct HTTP request. The web request. The response to the web request. Thrown on network or protocol errors. Submits a direct request message to some remote party and blocks waiting for an immediately reply. The request message. The response message, or null if the response did not carry a message. Typically a deriving channel will override to customize this method's behavior. However in non-HTTP frameworks, such as unit test mocks, it may be appropriate to override this method to eliminate all use of an HTTP transport. Called when receiving a direct response message, before deserialization begins. The HTTP direct response. The newly instantiated message, prior to deserialization. Gets the protocol message that may be embedded in the given HTTP request. The request to search for an embedded message. The deserialized message, if one is found. Null otherwise. Deserializes a dictionary of values into a message. The dictionary of values that were read from an HTTP request or response. Information about where the message was directed. Null for direct response messages. The deserialized message, or null if no message could be recognized in the provided data. Queues an indirect message for transmittal via the user agent. The message to send. The pending user agent redirect based message to be sent as an HttpResponse. Encodes an HTTP response that will instruct the user agent to forward a message to some remote third party using a 301 Redirect GET method. The message to forward. The pre-serialized fields from the message. if set to true the redirect will contain the message payload in the #fragment portion of the URL rather than the ?querystring. The encoded HTTP response. Encodes an HTTP response that will instruct the user agent to forward a message to some remote third party using a form POST method. The message to forward. The pre-serialized fields from the message. The encoded HTTP response. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Thrown when the response is not valid. Prepares an HTTP request that carries a given message. The message to send. The prepared to send the request. This method must be overridden by a derived class, unless the method is overridden and does not require this method. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec OAuth V1.0 section 5.3. Serializes the given message as a JSON string. The message to serialize. A JSON string. Deserializes from flat data from a JSON object. A JSON string. The simple "key":"value" pairs from a JSON-encoded object. Prepares a message for transmit by applying signatures, nonces, etc. The message to prepare for sending. This method should NOT be called by derived types except when sending ONE WAY request messages. Prepares to send a request to the Service Provider as the query string in a GET request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP Get request with the message parts serialized to the query string. This method satisfies OAuth 1.0 section 5.2, item #3. Prepares to send a request to the Service Provider as the query string in a HEAD request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP HEAD request with the message parts serialized to the query string. This method satisfies OAuth 1.0 section 5.2, item #3. Prepares to send a request to the Service Provider as the payload of a POST request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP POST request with the message parts serialized to the POST entity with the application/x-www-form-urlencoded content type This method satisfies OAuth 1.0 section 5.2, item #2 and OpenID 2.0 section 4.1.2. Prepares to send a request to the Service Provider as the query string in a PUT request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP PUT request with the message parts serialized to the query string. Prepares to send a request to the Service Provider as the query string in a DELETE request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP DELETE request with the message parts serialized to the query string. Sends the given parameters in the entity stream of an HTTP request. The HTTP request. The parameters to send. This method calls and closes the request stream, but does not call . Sends the given parameters in the entity stream of an HTTP request in multi-part format. The HTTP request. The parameters to send. This method calls and closes the request stream, but does not call . Verifies the integrity and applicability of an incoming message. The message just received. Thrown when the message is somehow invalid. This can be due to tampering, replay attack or expiration, among other things. Allows preprocessing and validation of message data before an appropriate message type is selected or deserialized. The received message data. Customizes the binding element order for outgoing and incoming messages. The outgoing order. The incoming order. No binding elements can be added or removed from the channel using this method. Only a customized order is allowed. Thrown if a binding element is new or missing in one of the ordered lists. Ensures a consistent and secure set of binding elements and sorts them as necessary for a valid sequence of operations. The binding elements provided to the channel. The properly ordered list of elements. Thrown when the binding elements are incomplete or inconsistent with each other. Puts binding elements in their correct outgoing message processing order. The first protection type to compare. The second protection type to compare. -1 if should be applied to an outgoing message before . 1 if should be applied to an outgoing message before . 0 if it doesn't matter. Verifies that all required message parts are initialized to values prior to sending the message to a remote party. The message to verify. Thrown when any required message part does not have a value. Determines whether a given ordered list of binding elements includes every binding element in this channel exactly once. The list of binding elements to test. true if the given list is a valid description of a binding element ordering; otherwise, false. An event fired whenever a message is about to be encoded and sent. Gets or sets an instance to a that will be used when submitting HTTP requests and waiting for responses. This defaults to a straightforward implementation, but can be set to a mock object for testing purposes. Gets or sets the maximum allowable size for a 301 Redirect response before we send a 200 OK response with a scripted form POST with the parameters instead in order to ensure successfully sending a large payload to another server that might have a maximum allowable size restriction on its GET request. The default value is 2048. Gets or sets the message descriptions. Gets a tool that can figure out what kind of message is being received so it can be deserialized. Gets the binding elements used by this channel, in no particular guaranteed order. Gets the binding elements used by this channel, in the order applied to outgoing messages. Gets the binding elements used by this channel, in the order applied to incoming messages. Gets or sets a value indicating whether this instance is disposed. true if this instance is disposed; otherwise, false. Gets or sets a tool that can figure out what kind of message is being received so it can be deserialized. Gets or sets the cache policy to use for direct message requests. Default is . Gets or sets the XML dictionary reader quotas. The XML dictionary reader quotas. Prevents a default instance of the ChannelContract class from being created. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Thrown when the response is not valid. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec V1.0 section 5.3. Well known HTTP headers. The Authorization header, which specifies the credentials that the client presents in order to authenticate itself to the server. The Content-Type header, which specifies the MIME type of the accompanying body data. An interface that allows indirect response messages to specify HTTP transport specific properties. Gets a value indicating whether the payload for the message should be included in the redirect fragment instead of the query string or POST entity. An interface that appears on messages that need to retain a description of what their literal payload was when they were deserialized. Gets or sets the original message parts, before any normalization or default values were assigned. Code contract for the interface. Gets or sets the original message parts, before any normalization or default values were assigned. A set of flags that can control the behavior of an individual web request. Indicates that default behavior is required. Indicates that any response from the remote server, even those with HTTP status codes that indicate errors, should not result in a thrown exception. Even with this flag set, should be thrown when an HTTP protocol error occurs (i.e. timeouts). Indicates that the HTTP request must be completed entirely using SSL (including any redirects). Extension methods for types. Caches the results of enumerating over a given object so that subsequence enumerations don't require interacting with the object a second time. The type of element found in the enumeration. The enumerable object. Either a new enumerable object that caches enumerated results, or the original, object if no caching is necessary to avoid additional CPU work. This is designed for use on the results of generator methods (the ones with yield return in them) so that only those elements in the sequence that are needed are ever generated, while not requiring regeneration of elements that are enumerated over multiple times. This can be a huge performance gain if enumerating multiple times over an expensive generator method. Some enumerable types such as collections, lists, and already-cached generators do not require any (additional) caching, and this method will simply return those objects rather than caching them to avoid double-caching. A wrapper for types and returns a caching from its method. The type of element in the sequence. The results from enumeration of the live object that have been collected thus far. The original generator method or other enumerable object whose contents should only be enumerated once. The enumerator we're using over the generator method's results. The sync object our caching enumerators use when adding a new live generator method result to the cache. Although individual enumerators are not thread-safe, this should be thread safe so that multiple enumerators can be created from it and used from different threads. Initializes a new instance of the EnumerableCache class. The generator. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. An enumerator that uses cached enumeration results whenever they are available, and caches whatever results it has to pull from the original object. The parent enumeration wrapper class that stores the cached results. The position of this enumerator in the cached list. Initializes a new instance of the EnumeratorCache class. The parent cached enumerable whose GetEnumerator method is calling this constructor. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Advances the enumerator to the next element of the collection. true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. The collection was modified after the enumerator was created. Sets the enumerator to its initial position, which is before the first element in the collection. The collection was modified after the enumerator was created. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the element in the collection at the current position of the enumerator. The element in the collection at the current position of the enumerator. Gets the element in the collection at the current position of the enumerator. The element in the collection at the current position of the enumerator. An exception to call out a configuration or runtime failure on the part of the (web) application that is hosting this library. This exception is used rather than for those errors that should never be caught because they indicate a major error in the app itself or its configuration. It is an internal exception to assist in making it uncatchable. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). An interface that allows direct response messages to specify HTTP transport specific properties. Gets the HTTP status code that the direct response should be sent with. Gets the HTTP headers to add to the response. May be an empty collection, but must not be null. An interface that extension messages must implement. The interface that classes must implement to be serialized/deserialized as protocol or extension messages. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Contract class for the interface. Gets the HTTP status code that the direct response should be sent with. Gets the HTTP headers to add to the response. May be an empty collection, but must not be null. Code contract for the interface. Prevents a default instance of the class from being created. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the version of the protocol or extension this message is prepared to implement. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Undirected messages that serve as direct responses to direct requests. The interface that classes must implement to be serialized/deserialized as protocol messages. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the originating request message that caused this response to be formed. An empty dictionary. Useful for avoiding memory allocations in creating new dictionaries to represent empty ones. The type of the key. The type of the value. The singleton instance of the empty dictionary. Prevents a default instance of the EmptyDictionary class from being created. Adds an element with the provided key and value to the . The object to use as the key of the element to add. The object to use as the value of the element to add. is null. An element with the same key already exists in the . The is read-only. Determines whether the contains an element with the specified key. The key to locate in the . true if the contains an element with the key; otherwise, false. is null. Removes the element with the specified key from the . The key of the element to remove. true if the element is successfully removed; otherwise, false. This method also returns false if was not found in the original . is null. The is read-only. Gets the value associated with the specified key. The key whose value to get. When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. true if the object that implements contains an element with the specified key; otherwise, false. is null. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Copies the elements of the to an , starting at a particular index. The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. The zero-based index in at which copying begins. is null. is less than 0. is multidimensional. -or- is equal to or greater than the length of . -or- The number of elements in the source is greater than the available space from to the end of the destination . -or- Type cannot be cast automatically to the type of the destination . Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Gets an containing the values in the . An containing the values in the object that implements . Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Gets an containing the keys of the . An containing the keys of the object that implements . Gets or sets the value with the specified key. The key being read or written. Nothing. It always throws. An enumerator that always generates zero elements. The singleton instance of this empty enumerator. Prevents a default instance of the class from being created. Advances the enumerator to the next element of the collection. true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. The collection was modified after the enumerator was created. Sets the enumerator to its initial position, which is before the first element in the collection. The collection was modified after the enumerator was created. Gets the current element in the collection. The current element in the collection. The enumerator is positioned before the first element of the collection or after the last element. An empty, read-only list. The type the list claims to include. The singleton instance of the empty list. Prevents a default instance of the EmptyList class from being created. Determines the index of a specific item in the . The object to locate in the . The index of if found in the list; otherwise, -1. Inserts an item to the at the specified index. The zero-based index at which should be inserted. The object to insert into the . is not a valid index in the . The is read-only. Removes the item at the specified index. The zero-based index of the item to remove. is not a valid index in the . The is read-only. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Copies the elements of the to an , starting at a particular index. The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. The zero-based index in at which copying begins. is null. is less than 0. is multidimensional. -or- is equal to or greater than the length of . -or- The number of elements in the source is greater than the available space from to the end of the destination . -or- Type cannot be cast automatically to the type of the destination . Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Gets or sets the at the specified index. The index of the element in the list to change. Nothing. It always throws. A collection of error checking and reporting methods. Wraps an exception in a new . The inner exception to wrap. The error message for the outer exception. The string formatting arguments, if any. The newly constructed (unthrown) exception. Throws an internal error exception. The error message. Nothing. But included here so callers can "throw" this method for C# safety. Always thrown. Checks a condition and throws an internal error exception if it evaluates to false. The condition to check. The message to include in the exception, if created. Thrown if evaluates to false. Checks a condition and throws an internal error exception if it evaluates to false. The condition to check. The message to include in the exception, if created. The formatting arguments. Thrown if evaluates to false. Checks a condition and throws an if it evaluates to false. The condition to check. The message to include in the exception, if created. Thrown if evaluates to false. Checks a condition and throws a if it evaluates to false. The condition to check. The message to include in the exception, if created. Thrown if evaluates to false. Checks a condition and throws a if it evaluates to false. The condition to check. The message to include in the exception, if created. The string formatting arguments for . Thrown if evaluates to false. Checks a condition and throws an if it evaluates to false. The condition to check. The message to include in the exception, if created. The formatting arguments. Thrown if evaluates to false. Throws a if some evaluates to false. True to do nothing; false to throw the exception. The error message for the exception. The string formatting arguments, if any. Thrown if evaluates to false. Throws a if some evaluates to false. True to do nothing; false to throw the exception. The message being processed that would be responsible for the exception if thrown. The error message for the exception. The string formatting arguments, if any. Thrown if evaluates to false. Throws a if some evaluates to false. True to do nothing; false to throw the exception. The error message for the exception. The string formatting arguments, if any. Thrown if evaluates to false. Throws a . The message to set in the exception. The formatting arguments of the message. An InternalErrorException, which may be "thrown" by the caller in order to satisfy C# rules to show that code will never be reached, but no value actually is ever returned because this method guarantees to throw. Always thrown. Throws a . The message for the exception. The string formatting arguments for . Nothing. It's just here so the caller can throw this method for C# compilation check. Throws a if some condition is false. The expression to evaluate. A value of false will cause the exception to be thrown. The message for the exception. The string formatting arguments for . Thrown when is false. Verifies something about the argument supplied to a method. The condition that must evaluate to true to avoid an exception. The message to use in the exception if the condition is false. The string formatting arguments, if any. Thrown if evaluates to false. Throws an . Name of the parameter. The message to use in the exception if the condition is false. The string formatting arguments, if any. Never returns anything. It always throws. Verifies something about the argument supplied to a method. The condition that must evaluate to true to avoid an exception. Name of the parameter. The message to use in the exception if the condition is false. The string formatting arguments, if any. Thrown if evaluates to false. Verifies that some given value is not null. The value to check. Name of the parameter, which will be used in the , if thrown. Thrown if is null. Verifies that some string is not null and has non-zero length. The value to check. Name of the parameter, which will be used in the , if thrown. Thrown if is null. Thrown if has zero length. Verifies that != null. Thrown if == null Obtains a value from the dictionary if possible, or throws a if it's missing. The type of key in the dictionary. The type of value in the dictionary. The dictionary. The key to use to look up the value. The message to claim is invalid if the key cannot be found. The value for the given key. An interface that messages wishing to perform custom serialization/deserialization may implement to be notified of events. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Code contract for the class. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Gets an offline snapshot version of this instance. The maximum bytes from the response stream to cache. A snapshot version of this instance. If this instance is a creating a snapshot will automatically close and dispose of the underlying response stream. If this instance is a , the result will be the self same instance. Gets the body of the HTTP response. A protocol message that supports adding extensions to the payload for transmission. Gets the list of extensions that are included with this message. Implementations of this interface should ensure that this property never returns null. Code contract for the interface. Prevents a default instance of the class from being created. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the list of extensions that are included with this message. Implementations of this interface should ensure that this property never returns null. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. An internal exception to throw if an internal error within the library requires an abort of the operation. This exception is internal to prevent clients of the library from catching what is really an unexpected, potentially unrecoverable exception. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). An interface implemented by -derived types that support binary serialization. Serializes the instance to the specified stream. The stream. Initializes the fields on this instance from the specified stream. The stream. Code Contract for the interface. Serializes the instance to the specified stream. The stream. Initializes the fields on this instance from the specified stream. The stream. A KeyedCollection whose item -> key transform is provided via a delegate to its constructor, and null items are disallowed. The type of the key. The type of the item. The delegate that returns a key for the given item. Initializes a new instance of the KeyedCollectionDelegate class. The delegate that gets the key for a given item. When implemented in a derived class, extracts the key from the specified element. The element from which to extract the key. The key for the specified element. Represents a single part in a HTTP multipart POST request. The "Content-Disposition" string. The two-character \r\n newline character sequence to use. Initializes a new instance of the class. The content disposition of the part. Creates a part that represents a simple form field. The name of the form field. The value. The constructed part. Creates a part that represents a file attachment. The name of the form field. The path to the file to send. Type of the content in HTTP Content-Type format. The constructed part. Creates a part that represents a file attachment. The name of the form field. Name of the file as the server should see it. Type of the content in HTTP Content-Type format. The content of the file. The constructed part. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Serializes the part to a stream. The stream writer. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets or sets the content disposition. The content disposition. Gets the key=value attributes that appear on the same line as the Content-Disposition. The content attributes. Gets the headers that appear on subsequent lines after the Content-Disposition. Gets or sets the content of the part. Gets the length of this entire part. Useful for calculating the ContentLength HTTP header to send before actually serializing the content. A live network HTTP response The network response object, used to initialize this instance, that still needs to be closed if applicable. The incoming network response stream. A value indicating whether a stream reader has already been created on this instance. Initializes a new instance of the class. The request URI. The response. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Gets an offline snapshot version of this instance. The maximum bytes from the response stream to cache. A snapshot version of this instance. If this instance is a creating a snapshot will automatically close and dispose of the underlying response stream. If this instance is a , the result will be the self same instance. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the body of the HTTP response. An ASP.NET MVC structure to represent the response to send to the user agent when the controller has finished its work. The outgoing web response to send when the ActionResult is executed. Initializes a new instance of the class. The response. Enables processing of the result of an action method by a custom type that inherits from . The context in which to set the response. An interface describing how various objects can be serialized and deserialized between their object and string forms. Implementations of this interface must include a default constructor and must be thread-safe. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Code contract for the type. Initializes a new instance of the class. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. A message part encoder that has a special encoding for a null value. Gets the string representation to include in a serialized message when the message part has a null value. An interface describing how various objects can be serialized and deserialized between their object and string forms. Implementations of this interface must include a default constructor and must be thread-safe. Encodes the specified value as the original value that was formerly decoded. The value. Guaranteed to never be null. The in string form, ready for message transport. A cache of instances. A dictionary of reflected message types and the generated reflection information. Initializes a new instance of the class. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Gets a instance prepared for the given message type. A type that implements . The protocol version of the message. A instance. Gets a instance prepared for the given message type. The message for which a should be obtained. A instance. Gets the dictionary that provides read/write access to a message. The message. The dictionary. Gets the dictionary that provides read/write access to a message. The message. A value indicating whether this message dictionary will retrieve original values instead of normalized ones. The dictionary. A struct used as the key to bundle message type and version. Backing store for the property. Backing store for the property. Initializes a new instance of the struct. Type of the message. The message version. Implements the operator ==. The first object to compare. The second object to compare. The result of the operator. Implements the operator !=. The first object to compare. The second object to compare. The result of the operator. Indicates whether this instance and a specified object are equal. Another object to compare to. true if and this instance are the same type and represent the same value; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer that is the hash code for this instance. Gets the message type. Gets the message version. Allows a custom class or struct to be serializable between itself and a string representation. Initializes a new instance of the class. The implementing type to use for serializing this type. Gets the default encoder to use for the declaring class. A message factory that automatically selects the message type based on the incoming data. A tool to analyze an incoming message to figure out what concrete class is designed to deserialize it and instantiates that class. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. The request message types and their constructors to use for instantiating the messages. The response message types and their constructors to use for instantiating the messages. The value is a dictionary, whose key is the type of the constructor's lone parameter. Initializes a new instance of the class. Adds message types to the set that this factory can create. The message types that this factory may instantiate. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Gets the message type that best fits the given incoming request data. The recipient of the incoming data. Typically not used, but included just in case. The data of the incoming message. The message type that matches the incoming data; or null if no match. May be thrown if the incoming data is ambiguous. Gets the message type that best fits the given incoming direct response data. The request message that prompted the response data. The data of the incoming message. The message type that matches the incoming data; or null if no match. May be thrown if the incoming data is ambiguous. Instantiates the given request message type. The message description. The recipient. The instantiated message. Never null. Instantiates the given request message type. The message description. The request that resulted in this response. The instantiated message. Never null. Gets the hierarchical distance between a type and a type it derives from or implements. The base type or interface. The concrete class that implements the . The distance between the two types. 0 if the types are equivalent, 1 if the type immediately derives from or implements the base type, or progressively higher integers. Counts how many strings are in the intersection of two collections. The first collection. The second collection. The string comparison method to use. A non-negative integer no greater than the count of elements in the smallest collection. Finds constructors for response messages that take a given request message type. The message description. Type of the request message. A sequence of matching constructors. Contract class for the IDataBagFormatter interface. The type of DataBag to serialize. Prevents a default instance of the class from being created. Serializes the specified message. The message to serialize. Must not be null. A non-null, non-empty value. Deserializes a . The message that contains the serialized value. Must not be nulll. The serialized form of the to deserialize. Must not be null or empty. Name of the message part whose value is to be deserialized. Used for exception messages. The deserialized value. Never null. A serializer for -derived types The DataBag-derived type that is to be serialized/deserialized. Initializes a new instance of the class. The crypto service provider with the asymmetric key to use for signing or verifying the token. The crypto service provider with the asymmetric key to use for encrypting or decrypting the token. A value indicating whether the data in this instance will be GZip'd. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Initializes a new instance of the class. The crypto key store used when signing or encrypting. The bucket in which symmetric keys are stored for signing/encrypting data. A value indicating whether the data in this instance will be protected against tampering. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. The minimum age. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Serializes the instance to a buffer. The message. The buffer containing the serialized data. Deserializes the instance from a buffer. The message instance to initialize with data from the buffer. The data buffer. A channel that uses the standard message factory. The message types receivable by this channel. The protocol versions supported by this channel. Initializes a new instance of the class. The message types that might be encountered. All the possible message versions that might be encountered. The binding elements to apply to the channel. Generates all the message descriptions for a given set of message types and versions. The message types. The message versions. The cache to use when obtaining the message descriptions. The generated/retrieved message descriptions. Gets or sets a tool that can figure out what kind of message is being received so it can be deserialized. Gets or sets the message descriptions. Gets or sets a tool that can figure out what kind of message is being received so it can be deserialized. A collection of message parts that will be serialized into a single string, to be set into a larger message. The default version for DataBags. The backing field for the property. A dictionary to contain extra message data. Initializes a new instance of the class. Initializes a new instance of the class. The DataBag version. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Gets or sets the nonce. The nonce. Gets or sets the UTC creation date of this token. The UTC creation date. Gets or sets the signature. The signature. Gets or sets the message that delivered this DataBag instance to this host. Gets the type of this instance. The type of the bag. This ensures that one token cannot be misused as another kind of token. Translates between a and the number of seconds between it and 1/1/1970 12 AM The reference date and time for calculating time stamps. Initializes a new instance of the class. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. The interface that classes must implement to be serialized/deserialized as protocol or extension messages that uses POST multi-part data for binary content. Implemented by messages that have explicit recipients (direct requests and all indirect messages). Gets the preferred method of transport for the message. For indirect messages this will likely be GET+POST, which both can be simulated in the user agent: the GET with a simple 301 Redirect, and the POST with an HTML form in the response with javascript to automate submission. Gets the URL of the intended receiver of this message. Gets the parts of the message that carry binary data. A list of parts. Never null. Gets a value indicating whether this message should be sent as multi-part POST. The contract class for the interface. Prevents a default instance of the class from being created. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the parts of the message that carry binary data. A list of parts. Never null. Gets a value indicating whether this message should be sent as multi-part POST. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Gets the preferred method of transport for the message. For indirect messages this will likely be GET+POST, which both can be simulated in the user agent: the GET with a simple 301 Redirect, and the POST with an HTML form in the response with javascript to automate submission. Gets the URL of the intended receiver of this message. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. The data packet sent with Channel events. Initializes a new instance of the class. The message behind the fired event.. Gets the message that caused the event to fire. An in-memory nonce store. Useful for single-server web applications. NOT for web farms. Describes the contract a nonce store must fulfill. Stores a given nonce and timestamp. The context, or namespace, within which the must be unique. The context SHOULD be treated as case-sensitive. The value will never be null but may be the empty string. A series of random characters. The UTC timestamp that together with the nonce string make it unique within the given . The timestamp may also be used by the data store to clear out old nonces. True if the context+nonce+timestamp (combination) was not previously in the database. False if the nonce was stored previously with the same timestamp and context. The nonce must be stored for no less than the maximum time window a message may be processed within before being discarded as an expired message. This maximum message age can be looked up via the property, accessible via the property. How frequently we should take time to clear out old nonces. The maximum age a message can be before it is discarded. This is useful for knowing how long used nonces must be retained. A list of the consumed nonces. A lock object used around accesses to the field. Where we're currently at in our periodic nonce cleaning cycle. Initializes a new instance of the class. Initializes a new instance of the class. The maximum age a message can be before it is discarded. Stores a given nonce and timestamp. The context, or namespace, within which the must be unique. A series of random characters. The timestamp that together with the nonce string make it unique. The timestamp may also be used by the data store to clear out old nonces. True if the nonce+timestamp (combination) was not previously in the database. False if the nonce was stored previously with the same timestamp. The nonce must be stored for no less than the maximum time window a message may be processed within before being discarded as an expired message. If the binding element is applicable to your channel, this expiration window is retrieved or set using the property. Clears consumed nonces from the cache that are so old they would be rejected if replayed because it is expired. A contract for handling. Implementations of this interface must be thread safe. Determines whether this instance can support the specified options. The set of options that might be given in a subsequent web request. true if this instance can support the specified options; otherwise, false. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The stream the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Callers must close and dispose of the request stream when they are done writing to it to avoid taking up the connection too long and causing long waits on subsequent requests. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The options to apply to this web request. The stream the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Callers must close and dispose of the request stream when they are done writing to it to avoid taking up the connection too long and causing long waits on subsequent requests. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Processes an and converts the to a instance. The to handle. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Processes an and converts the to a instance. The to handle. The options to apply to this web request. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Code contract for the type. Determines whether this instance can support the specified options. The set of options that might be given in a subsequent web request. true if this instance can support the specified options; otherwise, false. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The stream the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Callers must close and dispose of the request stream when they are done writing to it to avoid taking up the connection too long and causing long waits on subsequent requests. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The options to apply to this web request. The stream the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Callers must close and dispose of the request stream when they are done writing to it to avoid taking up the connection too long and causing long waits on subsequent requests. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Processes an and converts the to a instance. The to handle. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Processes an and converts the to a instance. The to handle. The options to apply to this web request. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. A binding element that checks/verifies a nonce message part. An interface that must be implemented by message transforms/validators in order to be included in the channel stack. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. These are the characters that may be chosen from when forming a random nonce. The persistent store for nonces received. The length of generated nonces. Initializes a new instance of the class. The store where nonces will be persisted and checked. Initializes a new instance of the class. The store where nonces will be persisted and checked. A value indicating whether zero-length nonces will be allowed. Applies a nonce to the message. The message to apply replay protection to. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Verifies that the nonce in an incoming message has not been seen before. The incoming message. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the nonce check revealed a replayed message. Generates a string of random characters for use as a nonce. The nonce string. Gets the protection that this binding element provides messages. Gets or sets the channel that this binding element belongs to. Gets or sets the strength of the nonce, which is measured by the number of nonces that could theoretically be generated. The strength of the nonce is equal to the number of characters that might appear in the nonce to the power of the length of the nonce. Gets or sets a value indicating whether empty nonces are allowed. Default is false. Applied to fields and properties that form a key/value in a protocol message. The overridden name to use as the serialized name for the property. Initializes a new instance of the class. Initializes a new instance of the class. A special name to give the value of this member in the serialized message. When null or empty, the name of the member will be used in the serialized message. Gets the name of the serialized form of this member in the message. Gets or sets the level of protection required by this member in the serialized message. Message part protection must be provided and verified by the channel binding element(s) that provide security. Gets or sets a value indicating whether this member is a required part of the serialized message. Gets or sets a value indicating whether the string value is allowed to be empty in the serialized message. Default is true. Gets or sets an IMessagePartEncoder custom encoder to use to translate the applied member to and from a string. Gets or sets the minimum version of the protocol this attribute applies to and overrides any attributes with lower values for this property. Defaults to 0.0. Gets or sets the maximum version of the protocol this attribute applies to. Defaults to int.MaxValue for the major version number. Specifying on another attribute on the same member automatically turns this attribute off. This property should only be set when a property is totally dropped from a newer version of the protocol. Gets or sets the minimum version of the protocol this attribute applies to and overrides any attributes with lower values for this property. Defaults to 0.0. Gets or sets the maximum version of the protocol this attribute applies to. Defaults to int.MaxValue for the major version number. Specifying on another attribute on the same member automatically turns this attribute off. This property should only be set when a property is totally dropped from a newer version of the protocol. Categorizes the various types of channel binding elements so they can be properly ordered. The order of these enum values is significant. Each successive value requires the protection offered by all the previous values in order to be reliable. For example, message expiration is meaningless without tamper protection to prevent a user from changing the timestamp on a message. No protection. A binding element that signs a message before sending and validates its signature upon receiving. A binding element that enforces a maximum message age between sending and processing on the receiving side. A binding element that prepares messages for replay detection and detects replayed messages on the receiving side. All forms of protection together. Code Contract for the interface. Prevents a default instance of the class from being created. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. An exception thrown when a message is received for the second time, signalling a possible replay attack. An exception to represent errors in the local or remote implementation of the protocol. Initializes a new instance of the class. Initializes a new instance of the class. A message describing the specific error the occurred or was detected. Initializes a new instance of the class. A message describing the specific error the occurred or was detected. The inner exception to include. Initializes a new instance of the class such that it can be sent as a protocol message response to a remote caller. The human-readable exception message. The message that was the cause of the exception. Must not be null. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. Gets the message that caused the exception. Initializes a new instance of the class. The replayed message. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. An exception thrown when a message is received that exceeds the maximum message age limit. Initializes a new instance of the class. The date the message expired. The expired message. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. An exception thrown when a signed message does not pass signature validation. Initializes a new instance of the class. The message with the invalid signature. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. The contract a message that has an allowable time window for processing must implement. All replay-protected messages must also be set to expire so the nonces do not have to be stored indefinitely. The contract a message that has an allowable time window for processing must implement. All expiring messages must also be signed to prevent tampering with the creation date. Gets or sets the UTC date/time the message was originally sent onto the network. The property setter should ensure a UTC date/time, and throw an exception if this is not possible. Thrown when a DateTime that cannot be converted to UTC is set. Gets the context within which the nonce must be unique. The value of this property must be a value assigned by the nonce consumer to represent the entity that generated the nonce. The value must never be null but may be the empty string. This value is treated as case-sensitive. Gets or sets the nonce that will protect the message from replay attacks. A property store of details of an incoming HTTP request. This serves a very similar purpose to , except that ASP.NET does not let us fully initialize that class, so we have to write one of our one. The HTTP verb in the request. The full request URL. The HTTP headers. The variables defined in the query part of the URL. The POSTed form variables. The server variables collection. Initializes a new instance of the class. The request. The request URI. Initializes a new instance of the class. The HTTP method. The request URI. The form variables. The HTTP headers. Initializes a new instance of the class. Details on the incoming HTTP request. Initializes a new instance of the class. The HTTP method. The request URI. The headers. The input stream. Creates an instance that describes the specified HTTP request. The request. The request URI. An instance of . Creates an instance that describes the specified HTTP request. The listener request. An instance of . Creates an instance that describes the specified HTTP request. The HTTP method. The request URI. The form variables. The HTTP headers. An instance of . Creates an instance that describes the specified HTTP request. The HTTP method. The request URI. The headers. The input stream. An instance of . Reads name=value pairs from the POSTed form entity when the HTTP headers indicate that that is the payload of the entity. The HTTP method. The headers. The input stream. The non-null collection of form variables. Gets the HTTP method. Gets the headers. Gets the URL. Gets the raw URL. Gets the form. Gets the query string. Gets the server variables. Code contract for the interface. Prevents a default instance of the class from being created. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. The contract a message that is signed must implement. This type might have appeared in the DotNetOpenAuth.Messaging.Bindings namespace since it is only used by types in that namespace, but all those types are internal and this is the only one that was public. Gets or sets the message signature. Serializes/deserializes OAuth messages for/from transit. The specific -derived type that will be serialized and deserialized using this class. Initializes a new instance of the MessageSerializer class. The specific -derived type that will be serialized and deserialized using this class. Creates or reuses a message serializer for a given message type. The type of message that will be serialized/deserialized. A message serializer for the given message type. Reads JSON as a flat dictionary into a message. The message dictionary to fill with the JSON-deserialized data. The JSON reader. Reads the data from a message instance and writes a XML/JSON encoding of it. The message to be serialized. The writer to use for the serialized form. Use to create the instance capable of emitting JSON. Reads XML/JSON into a message dictionary. The message to deserialize into. The XML/JSON to read into the message. Thrown when protocol rules are broken by the incoming message. Use to create the instance capable of reading JSON. Reads the data from a message instance and returns a series of name=value pairs for the fields that must be included in the message. The message to be serialized. The dictionary of values to send for the message. Reads name=value pairs into a message. The name=value pairs that were read in from the transport. The message to deserialize into. Thrown when protocol rules are broken by the incoming message. Determines whether the specified type is numeric. The type to test. true if the specified type is numeric; otherwise, false. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to Argument's {0}.{1} property is required but is empty or null.. Looks up a localized string similar to Unable to send all message data because some of it requires multi-part POST, but IMessageWithBinaryData.SendAsMultipart was false.. Looks up a localized string similar to HttpContext.Current is null. There must be an ASP.NET request in process for this operation to succeed.. Looks up a localized string similar to DataContractSerializer could not be initialized on message type {0}. Is it missing a [DataContract] attribute?. Looks up a localized string similar to DataContractSerializer could not be initialized on message type {0} because the DataContractAttribute.Namespace property is not set.. Looks up a localized string similar to An instance of type {0} was expected, but received unexpected derived type {1}.. Looks up a localized string similar to The directed message's Recipient property must not be null.. Looks up a localized string similar to The given set of options is not supported by this web request handler.. Looks up a localized string similar to Unable to instantiate the message part encoder/decoder type {0}.. Looks up a localized string similar to Error while deserializing message {0}.. Looks up a localized string similar to Error occurred while sending a direct message or getting the response.. Looks up a localized string similar to This exception was not constructed with a root request message that caused it.. Looks up a localized string similar to This exception must be instantiated with a recipient that will receive the error message, or a direct request message instance that this exception will respond to.. Looks up a localized string similar to Expected {0} message but received no recognizable message.. Looks up a localized string similar to The message part {0} was expected in the {1} message but was not found.. Looks up a localized string similar to The message expired at {0} and it is now {1}.. Looks up a localized string similar to Failed to add extra parameter '{0}' with value '{1}'.. Looks up a localized string similar to At least one of GET or POST flags must be present.. Looks up a localized string similar to This method requires a current HttpContext. Alternatively, use an overload of this method that allows you to pass in information without an HttpContext.. Looks up a localized string similar to Messages that indicate indirect transport must implement the {0} interface.. Looks up a localized string similar to Insecure web request for '{0}' aborted due to security requirements demanding HTTPS.. Looks up a localized string similar to The {0} message required protections {{{1}}} but the channel could only apply {{{2}}}.. Looks up a localized string similar to The customized binding element ordering is invalid.. Looks up a localized string similar to Some part(s) of the message have invalid values: {0}. Looks up a localized string similar to The incoming message had an invalid or missing nonce.. Looks up a localized string similar to An item with the same key has already been added.. Looks up a localized string similar to Message too large for a HTTP GET, and HTTP POST is not allowed for this message type.. Looks up a localized string similar to The {0} message does not support extensions.. Looks up a localized string similar to The value for {0}.{1} on member {1} was expected to derive from {2} but was {3}.. Looks up a localized string similar to Error while reading message '{0}' parameter '{1}' with value '{2}'.. Looks up a localized string similar to Message parameter '{0}' with value '{1}' failed to base64 decode.. Looks up a localized string similar to Error while preparing message '{0}' parameter '{1}' for sending.. Looks up a localized string similar to This message has a timestamp of {0}, which is beyond the allowable clock skew for in the future.. Looks up a localized string similar to Missing decryption key for bucket "{0}" handle "{1}". Looks up a localized string similar to A non-empty string was expected.. Looks up a localized string similar to A message response is already queued for sending in the response stream.. Looks up a localized string similar to This message has already been processed. This could indicate a replay attack in progress.. Looks up a localized string similar to This channel does not support replay protection.. Looks up a localized string similar to The following message parts had constant value requirements that were unsatisfied: {0}. Looks up a localized string similar to The following required non-empty parameters were empty in the {0} message: {1}. Looks up a localized string similar to The following required parameters were missing from the {0} message: {1}. Looks up a localized string similar to The binding element offering the {0} protection requires other protection that is not provided.. Looks up a localized string similar to The list is empty.. Looks up a localized string similar to The list contains a null element.. Looks up a localized string similar to An HttpContext.Current.Session object is required.. Looks up a localized string similar to Message signature was incorrect.. Looks up a localized string similar to This channel does not support signing messages. To support signing messages, a derived Channel type must override the Sign and IsSignatureValid methods.. Looks up a localized string similar to This message factory does not support message type(s): {0}. Looks up a localized string similar to The stream must have a known length.. Looks up a localized string similar to The stream's CanRead property returned false.. Looks up a localized string similar to The stream's CanWrite property returned false.. Looks up a localized string similar to Expected at most 1 binding element to apply the {0} protection, but more than one applied.. Looks up a localized string similar to The maximum allowable number of redirects were exceeded while requesting '{0}'.. Looks up a localized string similar to Unexpected buffer length.. Looks up a localized string similar to The array must not be empty.. Looks up a localized string similar to The empty string is not allowed.. Looks up a localized string similar to Expected direct response to use HTTP status code {0} but was {1} instead.. Looks up a localized string similar to Message parameter '{0}' had unexpected value '{1}'.. Looks up a localized string similar to Expected message {0} parameter '{1}' to have value '{2}' but had '{3}' instead.. Looks up a localized string similar to Expected message {0} but received {1} instead.. Looks up a localized string similar to Unexpected message type received.. Looks up a localized string similar to A null key was included and is not allowed.. Looks up a localized string similar to A null or empty key was included and is not allowed.. Looks up a localized string similar to A null value was included for key '{0}' and is not allowed.. Looks up a localized string similar to The type {0} or a derived type was expected, but {1} was given.. Looks up a localized string similar to {0} property has unrecognized value {1}.. Looks up a localized string similar to The URL '{0}' is rated unsafe and cannot be requested this way.. Looks up a localized string similar to This blob is not a recognized encryption format.. Looks up a localized string similar to The HTTP verb '{0}' is unrecognized and unsupported.. Looks up a localized string similar to '{0}' messages cannot be received with HTTP verb '{1}'.. Looks up a localized string similar to Redirects on POST requests that are to untrusted servers is not supported.. Looks up a localized string similar to Web request to '{0}' failed.. A grab-bag of utility methods useful for the channel stack of the protocol. The uppercase alphabet. The lowercase alphabet. The set of base 10 digits. The set of digits and alphabetic letters (upper and lowercase). All the characters that are allowed for use as a base64 encoding character. All the characters that are allowed for use as a base64 encoding character in the "web safe" context. The set of digits, and alphabetic letters (upper and lowercase) that are clearly visually distinguishable. The length of private symmetric secret handles. This value needn't be high, as we only expect to have a small handful of unexpired secrets at a time, and handle recycling is permissible. The cryptographically strong random data generator used for creating secrets. The random number generator is thread-safe. A pseudo-random data generator (NOT cryptographically strong random data) The default lifetime of a private secret. A character array containing just the = character. A character array containing just the , character. A character array containing just the " character. The set of characters that are unreserved in RFC 2396 but are NOT unreserved in RFC 3986. A set of escaping mappings that help secure a string from javscript execution. The characters to escape here are inspired by http://code.google.com/p/doctype/wiki/ArticleXSSInJavaScript Transforms an OutgoingWebResponse to an MVC-friendly ActionResult. The response to send to the user agent. The instance to be returned by the Controller's action method. Gets the original request URL, as seen from the browser before any URL rewrites on the server if any. Cookieless session directory (if applicable) is also included. The URL in the user agent's Location bar. Strips any and all URI query parameters that start with some prefix. The URI that may have a query with parameters to remove. The prefix for parameters to remove. A period is NOT automatically appended. Either a new Uri with the parameters removed if there were any to remove, or the same Uri instance if no parameters needed to be removed. Sends a multipart HTTP POST request (useful for posting files). The HTTP request. The request handler. The parts to include in the POST entity. The HTTP response. Assembles a message comprised of the message on a given exception and all inner exceptions. The exception. The assembled message. Flattens the specified sequence of sequences. The type of element contained in the sequence. The sequence of sequences to flatten. A sequence of the contained items. Cuts off precision beyond a second on a DateTime value. The value. A DateTime with a 0 millisecond component. Adds a name-value pair to the end of a given URL as part of the querystring piece. Prefixes a ? or & before first element as necessary. The UriBuilder to add arguments to. The name of the parameter to add. The value of the argument. If the parameters to add match names of parameters that already are defined in the query string, the existing ones are not replaced. Adds a set of values to a collection. The type of value kept in the collection. The collection to add to. The values to add to the collection. Tests whether two timespans are within reasonable approximation of each other. One TimeSpan. The other TimeSpan. The allowable margin of error. true if the two TimeSpans are within of each other. Clears any existing elements in a collection and fills the collection with a given set of values. The type of value kept in the collection. The collection to modify. The new values to fill the collection. Strips any and all URI query parameters that serve as parts of a message. The URI that may contain query parameters to remove. The message description whose parts should be removed from the URL. A cleaned URL. Sends a multipart HTTP POST request (useful for posting files) but doesn't call GetResponse on it. The HTTP request. The request handler. The parts to include in the POST entity. Assembles the content of the HTTP Authorization or WWW-Authenticate header. The scheme. The fields to include. A value prepared for an HTTP header. Parses the authorization header. The scheme. Must not be null or empty. The authorization header. May be null or empty. A sequence of key=value pairs discovered in the header. Never null, but may be empty. Encodes a symmetric key handle and the blob that is encrypted/signed with that key into a single string that can be decoded by . The cryptographic key handle. The encrypted/signed blob. The combined encoded value. Extracts the key handle and encrypted blob from a string previously returned from . The containing message. The message part. The value previously returned from . The crypto key handle. The encrypted/signed data. Gets a buffer of random data (not cryptographically strong). The length of the sequence to generate. The generated values, which may contain zeros. Gets a cryptographically strong random sequence of values. The length of the sequence to generate. The generated values, which may contain zeros. Gets a cryptographically strong random sequence of values. The length of the byte sequence to generate. A base64 encoding of the generated random data, whose length in characters will likely be greater than . Gets a random string made up of a given set of allowable characters. The length of the desired random string. The allowable characters. A random string. Computes the hash of a string. The hash algorithm to use. The value to hash. The encoding to use when converting the string to a byte array. A base64 encoded string. Computes the hash of a sequence of key=value pairs. The hash algorithm to use. The data to hash. The encoding to use when converting the string to a byte array. A base64 encoded string. Computes the hash of a sequence of key=value pairs. The hash algorithm to use. The data to hash. The encoding to use when converting the string to a byte array. A base64 encoded string. Encrypts a byte buffer. The buffer to encrypt. The symmetric secret to use to encrypt the buffer. Allowed values are 128, 192, or 256 bytes in length. The encrypted buffer Decrypts a byte buffer. The buffer to decrypt. The symmetric secret to use to decrypt the buffer. Allowed values are 128, 192, and 256. The encrypted buffer Encrypts a string. The text to encrypt. The symmetric secret to use to encrypt the buffer. Allowed values are 128, 192, and 256. The encrypted buffer Decrypts a string previously encrypted with . The text to decrypt. The symmetric secret to use to decrypt the buffer. Allowed values are 128, 192, and 256. The encrypted buffer Performs asymmetric encryption of a given buffer. The asymmetric encryption provider to use for encryption. The buffer to encrypt. The encrypted data. Performs asymmetric decryption of a given buffer. The asymmetric encryption provider to use for decryption. The buffer to decrypt. The decrypted data. Gets a key from a given bucket with the longest remaining life, or creates a new one if necessary. The crypto key store. The bucket where the key should be found or stored. The minimum remaining life required on the returned key. The required size of the key, in bits. A key-value pair whose key is the secret's handle and whose value is the cryptographic key. Compresses a given buffer. The buffer to compress. The compressed data. Decompresses a given buffer. The buffer to decompress. The decompressed data. Converts to data buffer to a base64-encoded string, using web safe characters and with the padding removed. The data buffer. A web-safe base64-encoded string without padding. Decodes a (web-safe) base64-string back to its binary buffer form. The base64-encoded string. May be web-safe encoded. A data buffer. Compares to string values for ordinal equality in such a way that its execution time does not depend on how much of the value matches. The first value. The second value. A value indicating whether the two strings share ordinal equality. In signature equality checks, a difference in execution time based on how many initial characters match MAY be used as an attack to figure out the expected signature. It is therefore important to make a signature equality check's execution time independent of how many characters match the expected value. See http://codahale.com/a-lesson-in-timing-attacks/ for more information. Adds a set of HTTP headers to an instance, taking care to set some headers to the appropriate properties of The headers to add. The instance to set the appropriate values to. Adds a set of HTTP headers to an instance, taking care to set some headers to the appropriate properties of The headers to add. The instance to set the appropriate values to. Copies the contents of one stream to another. The stream to copy from, at the position where copying should begin. The stream to copy to, at the position where bytes should be written. The total number of bytes copied. Copying begins at the streams' current positions. The positions are NOT reset after copying is complete. Copies the contents of one stream to another. The stream to copy from, at the position where copying should begin. The stream to copy to, at the position where bytes should be written. The maximum bytes to copy. The total number of bytes copied. Copying begins at the streams' current positions. The positions are NOT reset after copying is complete. Creates a snapshot of some stream so it is seekable, and the original can be closed. The stream to copy bytes from. A seekable stream with the same contents as the original. Clones an in order to send it again. The request to clone. The newly created instance. Clones an in order to send it again. The request to clone. The new recipient of the request. The newly created instance. Tests whether two arrays are equal in contents and ordering. The type of elements in the arrays. The first array in the comparison. May be null. The second array in the comparison. May be null. True if the arrays equal; false otherwise. Tests whether two arrays are equal in contents and ordering, guaranteeing roughly equivalent execution time regardless of where a signature mismatch may exist. The first array in the comparison. May not be null. The second array in the comparison. May not be null. True if the arrays equal; false otherwise. Guaranteeing equal execution time is useful in mitigating against timing attacks on a signature or other secret. Tests two sequences for same contents and ordering. The type of elements in the arrays. The first sequence in the comparison. May not be null. The second sequence in the comparison. May not be null. True if the arrays equal; false otherwise. Tests two unordered collections for same contents. The type of elements in the collections. The first collection in the comparison. May not be null. The second collection in the comparison. May not be null. True if the collections have the same contents; false otherwise. Tests whether two dictionaries are equal in length and contents. The type of keys in the dictionaries. The type of values in the dictionaries. The first dictionary in the comparison. May not be null. The second dictionary in the comparison. May not be null. True if the arrays equal; false otherwise. Concatenates a list of name-value pairs as key=value&key=value, taking care to properly encode each key and value for URL transmission according to RFC 3986. No ? is prefixed to the string. The dictionary of key/values to read from. The formulated querystring style string. Adds a set of name-value pairs to the end of a given URL as part of the querystring piece. Prefixes a ? or & before first element as necessary. The UriBuilder to add arguments to. The arguments to add to the query. If null, is not changed. If the parameters to add match names of parameters that already are defined in the query string, the existing ones are not replaced. Adds a set of name-value pairs to the end of a given URL as part of the fragment piece. Prefixes a # or & before first element as necessary. The UriBuilder to add arguments to. The arguments to add to the query. If null, is not changed. If the parameters to add match names of parameters that already are defined in the fragment, the existing ones are not replaced. Adds parameters to a query string, replacing parameters that match ones that already exist in the query string. The UriBuilder to add arguments to. The arguments to add to the query. If null, is not changed. Extracts the recipient from an HttpRequestInfo. The request to get recipient information from. The recipient. Thrown if the HTTP request is something we can't handle. Gets the enum value for a given HTTP verb. The HTTP verb. A enum value that is within the . Thrown if the HTTP request is something we can't handle. Gets the HTTP verb to use for a given enum value. The HTTP method. An HTTP verb, such as GET, POST, PUT, or DELETE. Copies some extra parameters into a message. The message to copy the extra data into. The extra data to copy into the message. May be null to do nothing. Collects a sequence of key=value pairs into a dictionary. The type of the key. The type of the value. The sequence. A dictionary. Converts a to an IDictionary<string, string>. The NameValueCollection to convert. May be null. The generated dictionary, or null if is null. If a null key is encountered, its value is ignored since Dictionary<string, string> does not allow null keys. Converts a to an IDictionary<string, string>. The NameValueCollection to convert. May be null. A value indicating whether a null key in the should be silently skipped since it is not a valid key in a Dictionary. Use true to throw an exception if a null key is encountered. Use false to silently continue converting the valid keys. The generated dictionary, or null if is null. Thrown if is true and a null key is encountered. Converts a dictionary to a The existing dictionary. The new collection. Sorts the elements of a sequence in ascending order by using a specified comparer. The type of the elements of source. The type of the key returned by keySelector. A sequence of values to order. A function to extract a key from an element. A comparison function to compare keys. An System.Linq.IOrderedEnumerable<TElement> whose elements are sorted according to a key. Determines whether the specified message is a request (indirect message or direct request). The message in question. true if the specified message is a request; otherwise, false. Although an may implement the interface, it may only be doing that for its derived classes. These objects are only requests if their property is non-null. Determines whether the specified message is a direct response. The message in question. true if the specified message is a direct response; otherwise, false. Although an may implement the interface, it may only be doing that for its derived classes. These objects are only requests if their property is non-null. Writes a buffer, prefixed with its own length. The binary writer. The buffer. Reads a buffer that is prefixed with its own length. The binary reader positioned at the buffer length. The read buffer. Constructs a Javascript expression that will create an object on the user agent when assigned to a variable. The untrusted names and untrusted values to inject into the JSON object. if set to true the values will NOT be escaped as if it were a pure string. The Javascript JSON object as a string. Prepares what SHOULD be simply a string value for safe injection into Javascript by using appropriate character escaping. The untrusted string value to be escaped to protected against XSS attacks. May be null. The escaped string, surrounded by single-quotes. Escapes a string according to the URI data string rules given in RFC 3986. The value to escape. The escaped value. The method is supposed to take on RFC 3986 behavior if certain elements are present in a .config file. Even if this actually worked (which in my experiments it doesn't), we can't rely on every host actually having this configuration element present. Ensures that UTC times are converted to local times. Unspecified kinds are unchanged. The date-time to convert. The date-time in local time. Ensures that local times are converted to UTC times. Unspecified kinds are unchanged. The date-time to convert. The date-time in UTC time. Gets the query data from the original request (before any URL rewriting has occurred.) The request. A containing all the parameters in the query string. Gets a value indicating whether the request's URL was rewritten by ASP.NET or some other module. The request. A value indicating whether there is evidence that the URL of the request has been changed to some internal server (farm) representation. true if this request's URL was rewritten; otherwise, false. Gets the public facing URL for the given incoming HTTP request. The request. The server variables to consider part of the request. The URI that the outside world used to create this request. Although the value can be obtained from , it's useful to be able to pass them in so we can simulate injected values from our unit tests since the actual property is a read-only kind of . Gets the public facing URL for the given incoming HTTP request. The request. The URI that the outside world used to create this request. Gets the query or form data from the original request (before any URL rewriting has occurred.) The request. A set of name=value pairs. Creates a symmetric algorithm for use in encryption/decryption. The symmetric key to use for encryption/decryption. A symmetric algorithm. A class to convert a into an . The type of objects being compared. The comparison method to use. Initializes a new instance of the ComparisonHelper class. The comparison method to use. Compares two instances of . The first object to compare. The second object to compare. Any of -1, 0, or 1 according to standard comparison rules. A message expiration enforcing binding element that supports messages implementing the interface. Initializes a new instance of the class. Sets the timestamp on an outgoing message. The outgoing message. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Reads the timestamp on a message and throws an exception if the message is too old. The incoming message. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown if the given message has already expired. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Gets the protection offered by this binding element. Gets or sets the channel that this binding element belongs to. Gets the maximum age a message implementing the interface can be before being discarded as too old. A pair of conversion functions to map some type to a string and back again. The mapping function that converts some custom type to a string. The mapping function that converts some custom type to the original string (possibly non-normalized) that represents it. The mapping function that converts a string to some custom type. Initializes a new instance of the struct. The mapping function that converts some custom value to a string. The mapping function that converts some custom value to its original (non-normalized) string. May be null if the same as the function. The mapping function that converts a string to some custom value. Initializes a new instance of the struct. The encoder. A mapping between serialized key names and instances describing those key/values pairs. A mapping between the serialized key names and their describing instances. Initializes a new instance of the class. Type of the message. The message version. Returns a that represents this instance. A that represents this instance. Gets a dictionary that provides read/write access to a message. The message the dictionary should provide access to. The dictionary accessor to the message Gets a dictionary that provides read/write access to a message. The message the dictionary should provide access to. A value indicating whether this message dictionary will retrieve original values instead of normalized ones. The dictionary accessor to the message Ensures the message parts pass basic validation. The key/value pairs of the serialized message. Tests whether all the required message parts pass basic validation for the given data. The key/value pairs of the serialized message. A value indicating whether the provided data fits the message's basic requirements. Verifies that a given set of keys include all the required parameters for this message type or throws an exception. The names of all parameters included in a message. if set to true an exception is thrown on failure with details. A value indicating whether the provided data fits the message's basic requirements. Thrown when required parts of a message are not in if is true. Ensures the protocol message parts that must not be empty are in fact not empty. A dictionary of key/value pairs that make up the serialized message. if set to true an exception is thrown on failure with details. A value indicating whether the provided data fits the message's basic requirements. Thrown when required parts of a message are not in if is true. Checks that a bunch of message part values meet the constant value requirements of this message description. The part values. if set to true, this method will throw on failure. A value indicating whether all the requirements are met. Reflects over some -implementing type and prepares to serialize/deserialize instances of that type. Gets the mapping between the serialized key names and their describing instances. Gets the message version this instance was generated from. Gets the type of message this instance was generated from. The type of the described message. Gets the constructors available on the message type. Wraps an instance in a dictionary that provides access to both well-defined message properties and "extra" name/value pairs that have no properties associated with them. The instance manipulated by this dictionary. The instance that describes the message type. Whether original string values should be retrieved instead of normalized ones. Initializes a new instance of the class. The message instance whose values will be manipulated by this dictionary. The message description. A value indicating whether this message dictionary will retrieve original values instead of normalized ones. Adds a named value to the message. The serialized form of the name whose value is being set. The serialized form of the value. Thrown if already has a set value in this message. Thrown if is null. Checks whether some named parameter has a value set in the message. The serialized form of the message part's name. True if the parameter by the given name has a set value. False otherwise. Removes a name and value from the message given its name. The serialized form of the name to remove. True if a message part by the given name was found and removed. False otherwise. Gets some named value if the key has a value. The name (in serialized form) of the value being sought. The variable where the value will be set. True if the key was found and was set. False otherwise. Sets a named value in the message. The name-value pair to add. The name is the serialized form of the key. Removes all values in the message. Removes all items from the . The is read-only. This method cannot be implemented because keys are not guaranteed to be removed since some are inherent to the type of message that this dictionary provides access to. Checks whether a named value has been set on the message. The name/value pair. True if the key exists and has the given value. False otherwise. Copies all the serializable data from the message to a key/value array. The array to copy to. The index in the to begin copying to. Removes a named value from the message if it exists. The serialized form of the name and value to remove. True if the name/value was found and removed. False otherwise. Gets an enumerator that generates KeyValuePair<string, string> instances for all the key/value pairs that are set in the message. The enumerator that can generate the name/value pairs. Gets an enumerator that generates KeyValuePair<string, string> instances for all the key/value pairs that are set in the message. The enumerator that can generate the name/value pairs. Saves the data in a message to a standard dictionary. The generated dictionary. Loads data from a dictionary into the message. The data to load into the message. Gets the message this dictionary provides access to. Gets the description of the type of message this dictionary provides access to. Gets the number of explicitly set values in the message. Gets a value indicating whether this message is read only. Gets all the keys that have values associated with them. Gets the set of official message part names that have non-null values associated with them. Gets the keys that are in the message but not declared as official OAuth properties. Gets all the values. Gets the serializer for the message this dictionary provides access to. Gets or sets a value for some named value. The serialized form of a name for the value to read or write. The named value. If the key matches a declared property or field on the message type, that type member is set. Otherwise the key/value is stored in a dictionary for extra (weakly typed) strings. Thrown when setting a value that is not allowed for a given . Describes an individual member of a message and assists in its serialization. A map of converters that help serialize custom objects to string values and back again. A map of instantiated custom encoders used to encode/decode message parts. The string-object conversion routines to use for this individual message part. The property that this message part is associated with, if aplicable. The field that this message part is associated with, if aplicable. The type of the message part. (Not the type of the message itself). The default (uninitialized) value of the member inherent in its type. Initializes static members of the class. Initializes a new instance of the class. A property or field of an implementing type that has a attached to it. The attribute discovered on that describes the serialization requirements of the message part. Sets the member of a given message to some given value. Used in deserialization. The message instance containing the member whose value should be set. The string representation of the value to set. Gets the normalized form of a value of a member of a given message. Used in serialization. The message instance to read the value from. The string representation of the member's value. Gets the value of a member of a given message. Used in serialization. The message instance to read the value from. A value indicating whether the original value should be retrieved (as opposed to a normalized form of it). The string representation of the member's value. Gets whether the value has been set to something other than its CLR type default value. The message instance to check the value on. True if the value is not the CLR default value. Adds a pair of type conversion functions to the static conversion map. The custom type to convert to and from strings. The function to convert the custom type to a string. The mapping function that converts some custom value to its original (non-normalized) string. May be null if the same as the function. The function to convert a string to the custom type. Creates a that resorts to and for the conversion. The type to create the mapping for. The value mapping. Creates the default encoder for a given type. The type to create a for. A struct. Figures out the CLR default value for a given type. The type whose default value is being sought. Either null, or some default value like 0 or 0.0. Checks whether a type is a nullable value type (i.e. int?) The type in question. True if this is a nullable value type. Retrieves a previously instantiated encoder of a given type, or creates a new one and stores it for later retrieval as well. The message part encoder type. An instance of the desired encoder. Gets the value of the message part, without converting it to/from a string. The message instance to read from. The value of the member. Sets the value of a message part directly with a given value. The message instance to read from. The value to set on the this part. Converts a string representation of the member's value to the appropriate type. The string representation of the member's value. An instance of the appropriate type for setting the member. Converts the member's value to its string representation. The value of the member. A value indicating whether a string matching the originally decoded string should be returned (as opposed to a normalized string). The string representation of the member's value. Validates that the message part and its attribute have agreeable settings. Thrown when a non-nullable value type is set as optional. Gets or sets the name to use when serializing or deserializing this parameter in a message. Gets or sets whether this message part must be signed. Gets or sets a value indicating whether this message part is required for the containing message to be valid. Gets or sets a value indicating whether the string value is allowed to be empty in the serialized message. Gets or sets a value indicating whether the field or property must remain its default value. Gets or sets a value indicating whether this part is defined as a constant field and can be read without a message instance. Gets the static constant value for this message part without a message instance. Gets the type of the declared member. An exception thrown when messages cannot receive all the protections they require. Initializes a new instance of the class. The message whose protection requirements could not be met. The protection requirements that were fulfilled. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. A protocol message (request or response) that passes from this to a remote party via the user agent using a redirect or form POST submission, OR a direct message response. An instance of this type describes the HTTP response that must be sent in response to the current HTTP request. It is important that this response make up the entire HTTP response. A hosting ASPX page should not be allowed to render its normal HTML output after this response is sent. The normal rendered output of an ASPX page can be canceled by calling after this message is sent on the response stream. The encoder to use for serializing the response body. Initializes a new instance of the class. Initializes a new instance of the class based on the contents of an . The to clone. The maximum bytes to read from the response stream. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Automatically sends the appropriate response to the user agent and ends execution on the current page or handler. Typically thrown by ASP.NET in order to prevent additional data from the page being sent to the client and corrupting the response. Requires a current HttpContext. Automatically sends the appropriate response to the user agent and ends execution on the current page or handler. The context of the HTTP request whose response should be set. Typically this is . Typically thrown by ASP.NET in order to prevent additional data from the page being sent to the client and corrupting the response. Automatically sends the appropriate response to the user agent and ends execution on the current page or handler. The context of the HTTP request whose response should be set. Typically this is . Typically thrown by ASP.NET in order to prevent additional data from the page being sent to the client and corrupting the response. Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. Not safe to call from ASP.NET web forms. Requires a current HttpContext. This call is not safe to make from an ASP.NET web form (.aspx file or code-behind) because ASP.NET will render HTML after the protocol message has been sent, which will corrupt the response. Use the method instead for web forms. Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. Not safe to call from ASP.NET web forms. The context of the HTTP request whose response should be set. Typically this is . This call is not safe to make from an ASP.NET web form (.aspx file or code-behind) because ASP.NET will render HTML after the protocol message has been sent, which will corrupt the response. Use the method instead for web forms. Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. Not safe to call from ASP.NET web forms. The context of the HTTP request whose response should be set. Typically this is . This call is not safe to make from an ASP.NET web form (.aspx file or code-behind) because ASP.NET will render HTML after the protocol message has been sent, which will corrupt the response. Use the method instead for web forms. Automatically sends the appropriate response to the user agent. The response to set to this message. Gets the URI that, when requested with an HTTP GET request, would transmit the message that normally would be transmitted via a user agent redirect. The channel to use for encoding. The URL that would transmit the original message. This URL may exceed the normal 2K limit, and should therefore be broken up manually and POSTed as form fields when it exceeds this length. This is useful for desktop applications that will spawn a user agent to transmit the message rather than cause a redirect. Sets the response to some string, encoded as UTF-8. The string to set the response to. Type of the content. May be null. Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. The context of the HTTP request whose response should be set. Typically this is . If set to false, this method calls rather than to avoid a . Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. The context of the HTTP request whose response should be set. Typically this is . If set to false, this method calls rather than to avoid a . Gets the headers that must be included in the response to the user agent. The headers in this collection are not meant to be a comprehensive list of exactly what should be sent, but are meant to augment whatever headers are generally included in a typical response. Gets the body of the HTTP response. Gets a value indicating whether the response stream is incomplete due to a length limitation imposed by the HttpWebRequest or calling method. Gets or sets the body of the response as a string. Gets the HTTP status code to use in the HTTP response. Gets or sets a reference to the actual protocol message that is being sent via the user agent. The methods available for the local party to send messages to a remote party. See OAuth 1.0 spec section 5.2. No HTTP methods are allowed. In the HTTP Authorization header as defined in OAuth HTTP Authorization Scheme (OAuth HTTP Authorization Scheme). As the HTTP POST request body with a content-type of application/x-www-form-urlencoded. Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). The flags that control HTTP verbs. The type of transport mechanism used for a message: either direct or indirect. A message that is sent directly from the Consumer to the Service Provider, or vice versa. A message that is sent from one party to another via a redirect in the user agent. Encodes and decodes the as an integer of total seconds. Initializes a new instance of the class. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. A paranoid HTTP get/post request engine. It helps to protect against attacks from remote server leaving dangling connections, sending too much data, causing requests against internal servers, etc. Protections include: * Conservative maximum time to receive the complete response. * Only HTTP and HTTPS schemes are permitted. * Internal IP address ranges are not permitted: 127.*.*.*, 1::* * Internal host names are not permitted (periods must be found in the host name) If a particular host would be permitted but is in the blacklist, it is not allowed. If a particular host would not be permitted but is in the whitelist, it is allowed. The set of URI schemes allowed in untrusted web requests. The collection of blacklisted hosts. The collection of regular expressions used to identify additional blacklisted hosts. The collection of whitelisted hosts. The collection of regular expressions used to identify additional whitelisted hosts. The maximum redirections to follow in the course of a single request. The maximum number of bytes to read from the response of an untrusted server. The handler that will actually send the HTTP request and collect the response once the untrusted server gates have been satisfied. Initializes a new instance of the class. Initializes a new instance of the class. The chained web request handler. Determines whether this instance can support the specified options. The set of options that might be given in a subsequent web request. true if this instance can support the specified options; otherwise, false. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The options to apply to this web request. The writer the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Processes an and converts the to a instance. The to handle. The options to apply to this web request. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The writer the caller should write out the entity data to. Processes an and converts the to a instance. The to handle. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Determines whether an IP address is the IPv6 equivalent of "localhost/127.0.0.1". The ip address to check. true if this is a loopback IP address; false otherwise. Determines whether the given host name is in a host list or host name regex list. The host name. The list of host names. The list of regex patterns of host names. true if the specified host falls within at least one of the given lists; otherwise, false. Determines whether a given host is whitelisted. The host name to test. true if the host is whitelisted; otherwise, false. Determines whether a given host is blacklisted. The host name to test. true if the host is blacklisted; otherwise, false. Verify that the request qualifies under our security policies The request URI. If set to true, only web requests that can be made entirely over SSL will succeed. Thrown when the URI is disallowed for security reasons. Determines whether a URI is allowed based on scheme and host name. No requireSSL check is done here The URI to test for whether it should be allowed. true if [is URI allowable] [the specified URI]; otherwise, false. Prepares the request by setting timeout and redirect policies. The request to prepare. true if this is a POST request whose headers have not yet been sent out; false otherwise. Gets or sets the default maximum bytes to read in any given HTTP request. Default is 1MB. Cannot be less than 2KB. Gets or sets the total number of redirections to allow on any one request. Default is 10. Gets or sets the time allowed to wait for single read or write operation to complete. Default is 500 milliseconds. Gets or sets the time allowed for an entire HTTP request. Default is 5 seconds. Gets a collection of host name literals that should be allowed even if they don't pass standard security checks. Gets a collection of host name regular expressions that indicate hosts that should be allowed even though they don't pass standard security checks. Gets a collection of host name literals that should be rejected even if they pass standard security checks. Gets a collection of host name regular expressions that indicate hosts that should be rejected even if they pass standard security checks. Gets the configuration for this class that is specified in the host's .config file. The default handler for transmitting instances and returning the responses. The set of options this web request handler supports. The value to use for the User-Agent HTTP header. Determines whether this instance can support the specified options. The set of options that might be given in a subsequent web request. true if this instance can support the specified options; otherwise, false. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The writer the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The options to apply to this web request. The writer the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Processes an and converts the to a instance. The to handle. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Processes an and converts the to a instance. The to handle. The options to apply to this web request. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Determines whether an exception was thrown because of the remote HTTP server returning HTTP 417 Expectation Failed. The caught exception. true if the failure was originally caused by a 417 Exceptation Failed error; otherwise, false. Initiates a POST request and prepares for sending data. The HTTP request with information about the remote party to contact. The stream where the POST entity can be written. Prepares an HTTP request. The request. true if this is a POST request whose headers have not yet been sent out; false otherwise. An immutable description of a URL that receives messages. Initializes a new instance of the class. The URL of this endpoint. The HTTP method(s) allowed. Initializes a new instance of the class. The URL of this endpoint. The HTTP method(s) allowed. Gets the URL of this endpoint. Gets the HTTP method(s) allowed. Represents the section in the host's .config file that configures this library's settings. The name of the section under which this library's settings must be found. The name of the <openid> sub-element. The name of the <oauth> sub-element. Initializes a new instance of the class. Gets a named section in this section group, or null if no such section is defined. The name of the section to obtain. The desired section, or null if it could not be obtained. Gets the messaging configuration element. Gets the reporting configuration element. Represents the <messaging> element in the host's .config file. The name of the <webResourceUrlProvider> sub-element. The name of the <untrustedWebRequest> sub-element. The name of the attribute that stores the association's maximum lifetime. The name of the attribute that stores the maximum allowable clock skew. The name of the attribute that indicates whether to disable SSL requirements across the library. The name of the attribute that controls whether messaging rules are strictly followed. The default value for the property. 2KB, recommended by OpenID group The name of the attribute that controls the maximum length of a URL before it is converted to a POST payload. Gets the name of the @privateSecretMaximumAge attribute. The name of the <messaging> sub-element. Gets the configuration section from the .config file. Gets the actual maximum message lifetime that a program should allow. The sum of the and property values. Gets or sets the maximum lifetime of a private symmetric secret, that may be used for signing or encryption. The default value is 28 days (twice the age of the longest association). Gets or sets the time between a message's creation and its receipt before it is considered expired. The default value value is 3 minutes. Smaller timespans mean lower tolerance for delays in message delivery. Larger timespans mean more nonces must be stored to provide replay protection. The maximum age a message implementing the interface can be before being discarded as too old. This time limit should NOT take into account expected time skew for servers across the Internet. Time skew is added to this value and is controlled by the property. Gets or sets the maximum clock skew. The default value is 10 minutes. Smaller timespans mean lower tolerance for time variance due to server clocks not being synchronized. Larger timespans mean greater chance for replay attacks and larger nonce caches. For example, if a server could conceivably have its clock d = 5 minutes off UTC time, then any two servers could have their clocks disagree by as much as 2*d = 10 minutes. Gets or sets a value indicating whether SSL requirements within the library are disabled/relaxed. Use for TESTING ONLY. Gets or sets a value indicating whether messaging rules are strictly adhered to. true by default. Strict will require that remote parties adhere strictly to the specifications, even when a loose interpretation would not compromise security. true is a good default because it shakes out interoperability bugs in remote services so they can be identified and corrected. But some web sites want things to Just Work more than they want to file bugs against others, so false is the setting for them. Gets or sets the configuration for the class. The untrusted web request. Gets or sets the maximum allowable size for a 301 Redirect response before we send a 200 OK response with a scripted form POST with the parameters instead in order to ensure successfully sending a large payload to another server that might have a maximum allowable size restriction on its GET request. The default value is 2048. Gets or sets the embedded resource retrieval provider. The embedded resource retrieval provider. Represents the <reporting> element in the host's .config file. The name of the @enabled attribute. The name of the @minimumReportingInterval attribute. The name of the @minimumFlushInterval attribute. The name of the @includeFeatureUsage attribute. The name of the @includeEventStatistics attribute. The name of the @includeLocalRequestUris attribute. The name of the @includeCultures attribute. The name of the <reporting> sub-element. The default value for the @minimumFlushInterval attribute. Initializes a new instance of the class. Gets the configuration section from the .config file. Gets or sets a value indicating whether this reporting is enabled. true if enabled; otherwise, false. Gets or sets the maximum frequency that reports will be published. Gets or sets the maximum frequency the set can be flushed to disk. Gets or sets a value indicating whether to include a list of library features used in the report. true to include a report of features used; otherwise, false. Gets or sets a value indicating whether to include statistics of certain events such as authentication success and failure counting, and can include remote endpoint URIs. true to include event counters in the report; otherwise, false. Gets or sets a value indicating whether to include a few URLs to pages on the hosting web site that host DotNetOpenAuth components. Gets or sets a value indicating whether to include the cultures requested by the user agent on pages that host DotNetOpenAuth components. A configuration collection of trusted OP Endpoints. The name of the "rejectAssertionsFromUntrustedProviders" element. Initializes a new instance of the class. Initializes a new instance of the class. The elements to initialize the collection with. When overridden in a derived class, creates a new . A new . Gets the element key for a specified configuration element when overridden in a derived class. The to return the key for. An that acts as the key for the specified . Gets or sets a value indicating whether any login attempt coming from an OpenID Provider Endpoint that is not on this whitelist of trusted OP Endpoints will be rejected. If the trusted providers list is empty and this value is true, all assertions are rejected. A configuration element that records a trusted Provider Endpoint. The name of the attribute that stores the value. Initializes a new instance of the class. Gets or sets the OpenID Provider Endpoint (aka "OP Endpoint") that this relying party trusts. A collection of . The type that all types specified in the elements must derive from. Initializes a new instance of the TypeConfigurationCollection class. Initializes a new instance of the TypeConfigurationCollection class. The elements that should be added to the collection initially. Creates instances of all the types listed in the collection. if set to true then internal types may be instantiated. A sequence of instances generated from types in this collection. May be empty, but never null. When overridden in a derived class, creates a new . A new . Gets the element key for a specified configuration element when overridden in a derived class. The to return the key for. An that acts as the key for the specified . Represents an element in a .config file that allows the user to provide a @type attribute specifying the full type that provides some service used by this library. A constraint on the type the user may provide. The name of the attribute whose value is the full name of the type the user is specifying. The name of the attribute whose value is the path to the XAML file to deserialize to obtain the type. Initializes a new instance of the TypeConfigurationElement class. Creates an instance of the type described in the .config file. The value to return if no type is given in the .config file. The newly instantiated type. Creates an instance of the type described in the .config file. The value to return if no type is given in the .config file. if set to true then internal types may be instantiated. The newly instantiated type. Creates the instance from xaml. The stream of xaml to deserialize. The deserialized object. This exists as its own method to prevent the CLR's JIT compiler from failing to compile the CreateInstance method just because the PresentationFramework.dll may be missing (which it is on some shared web hosts). This way, if the XamlSource attribute is never used, the PresentationFramework.dll never need be present. Gets or sets the full name of the type. The full name of the type, such as: "ConsumerPortal.Code.CustomStore, ConsumerPortal". Gets or sets the path to the XAML file to deserialize to obtain the instance. Gets the type described in the .config file. Gets a value indicating whether this type has no meaningful type to instantiate. Represents the section of a .config file where security policies regarding web requests to user-provided, untrusted servers is controlled. Gets the name of the @timeout attribute. Gets the name of the @readWriteTimeout attribute. Gets the name of the @maximumBytesToRead attribute. Gets the name of the @maximumRedirections attribute. Gets the name of the @whitelistHosts attribute. Gets the name of the @whitelistHostsRegex attribute. Gets the name of the @blacklistHosts attribute. Gets the name of the @blacklistHostsRegex attribute. Gets or sets the read/write timeout after which an HTTP request will fail. Gets or sets the timeout after which an HTTP request will fail. Gets or sets the maximum bytes to read from an untrusted web server. Gets or sets the maximum redirections that will be followed before an HTTP request fails. Gets or sets the collection of hosts on the whitelist. Gets or sets the collection of hosts on the blacklist. Gets or sets the collection of regular expressions that describe hosts on the whitelist. Gets or sets the collection of regular expressions that describe hosts on the blacklist. Represents a collection of child elements that describe host names either as literal host names or regex patterns. Initializes a new instance of the class. Creates a new child host name element. A new . Gets the element key for a specified configuration element. The to return the key for. An that acts as the key for the specified . Gets all the members of the collection assuming they are all literal host names. Gets all the members of the collection assuming they are all host names regex patterns. Represents the name of a single host or a regex pattern for host names. Gets the name of the @name attribute. Initializes a new instance of the class. Initializes a new instance of the class. The default value of the property. Gets or sets the name of the host on the white or black list. An interface that provides URLs from which embedded resources can be obtained. Gets the URL from which the given manifest resource may be downloaded by the user agent. Some type in the assembly containing the desired resource. Manifest name of the desired resource. An absolute URL. A general logger for the entire DotNetOpenAuth library. Because this logger is intended for use with non-localized strings, the overloads that take have been removed, and is used implicitly. The instance that is to be used by this static Logger for the duration of the appdomain. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Creates an additional logger on demand for a subsection of the application. A name that will be included in the log file. The instance created with the given name. Creates the main logger for the library, and emits an INFO message that is the name and version of the library. A name that will be included in the log file. The instance created with the given name. Creates an additional logger on demand for a subsection of the application. A type whose full name that will be included in the log file. The instance created with the given type name. Discovers the presence of Log4net.dll and other logging mechanisms and returns the best available logger. The name of the log to initialize. The instance of the logger to use. Gets the logger for general library logging. Gets the logger for service discovery and selection events. Gets the logger for Messaging events. Gets the logger for Channel events. Gets the logger for binding elements and binding-element related events on the channel. Gets the logger specifically used for logging verbose text on everything about the signing process. Gets the logger for HTTP-level events. Gets the logger for events logged by ASP.NET controls. Gets the logger for high-level OpenID events. Gets the logger for high-level OAuth events. Gets the logger for high-level InfoCard events. The ILog interface is use by application to log messages into the log4net framework. Use the to obtain logger instances that implement this interface. The static method is used to get logger instances. This class contains methods for logging at different levels and also has properties for determining if those logging levels are enabled in the current configuration. This interface can be implemented in different ways. This documentation specifies reasonable behavior that a caller can expect from the actual implementation, however different implementations reserve the right to do things differently. Simple example of logging messages ILog log = LogManager.GetLogger("application-log"); log.Info("Application Start"); log.Debug("This is a debug message"); if (log.IsDebugEnabled) { log.Debug("This is another debug message"); } Nicko Cadell Gert Driesen Log a message object with the level. Log a message object with the level. The message object to log. This method first checks if this logger is DEBUG enabled by comparing the level of this logger with the level. If this logger is DEBUG enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. Log a message object with the level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Log a message object with the level. Logs a message object with the level. This method first checks if this logger is INFO enabled by comparing the level of this logger with the level. If this logger is INFO enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. The message object to log. Logs a message object with the INFO level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted message string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Log a message object with the level. Log a message object with the level. This method first checks if this logger is WARN enabled by comparing the level of this logger with the level. If this logger is WARN enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. The message object to log. Log a message object with the level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted message string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Log a message object with the level. Logs a message object with the level. The message object to log. This method first checks if this logger is ERROR enabled by comparing the level of this logger with the level. If this logger is ERROR enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. Log a message object with the level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted message string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Log a message object with the level. Log a message object with the level. This method first checks if this logger is FATAL enabled by comparing the level of this logger with the level. If this logger is FATAL enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. The message object to log. Log a message object with the level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted message string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. This function is intended to lessen the computational cost of disabled log debug statements. For some ILog interface log, when you write: log.Debug("This is entry number: " + i ); You incur the cost constructing the message, string construction and concatenation in this case, regardless of whether the message is logged or not. If you are worried about speed (who isn't), then you should write: if (log.IsDebugEnabled) { log.Debug("This is entry number: " + i ); } This way you will not incur the cost of parameter construction if debugging is disabled for log. On the other hand, if the log is debug enabled, you will incur the cost of evaluating whether the logger is debug enabled twice. Once in and once in the . This is an insignificant overhead since evaluating a logger takes about 1% of the time it takes to actually log. This is the preferred style of logging. Alternatively if your logger is available statically then the is debug enabled state can be stored in a static variable like this: private static readonly bool isDebugEnabled = log.IsDebugEnabled; Then when you come to log you can write: if (isDebugEnabled) { log.Debug("This is entry number: " + i ); } This way the debug enabled state is only queried once when the class is loaded. Using a private static readonly variable is the most efficient because it is a run time constant and can be heavily optimized by the JIT compiler. Of course if you use a static readonly variable to hold the enabled state of the logger then you cannot change the enabled state at runtime to vary the logging that is produced. You have to decide if you need absolute speed or runtime flexibility. Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. For more information see . Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. For more information see . Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. For more information see . Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. For more information see . Returns a new log4net logger if it exists, or returns null if the assembly cannot be found. The created instance. Creates the log4net.LogManager. Call ONLY after log4net.dll is known to be present. The created instance. Returns a new logger that does nothing when invoked. The created instance. See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . Returns a new logger that uses the class if sufficient CAS permissions are granted to use it, otherwise returns false. The created instance. See . See . See . See . See . Represents a read-only dictionary. The type of the key. The type of the value. Contains base dictionary. Initializes a new instance of the class. The base dictionary. Adds an element with the provided key and value to the . The object to use as the key of the element to add. The object to use as the value of the element to add. is null. An element with the same key already exists in the . The is read-only. Determines whether the contains an element with the specified key. The key to locate in the . true if the contains an element with the key; otherwise, false. is null. Removes the element with the specified key from the . The key of the element to remove. true if the element is successfully removed; otherwise, false. This method also returns false if was not found in the original . is null. The is read-only. Gets the value associated with the specified key. The key whose value to get. When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. true if the object that implements contains an element with the specified key; otherwise, false. is null. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Copies to. The array. Index of the array. Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Gets an containing the keys of the . An containing the keys of the object that implements . Gets an containing the values in the . An containing the values in the object that implements . Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Gets or sets the element with the specified key. The key being read or written. The element with the specified key. is null. The property is retrieved and is not found. The property is set and the is read-only. The statistical reporting mechanism used so this library's project authors know what versions and features are in use. A UTF8 encoder that doesn't emit the preamble. Used for mid-stream writers. A value indicating whether reporting is desirable or not. Must be logical-AND'd with !. A value indicating whether reporting experienced an error and cannot be enabled. A value indicating whether the reporting class has been initialized or not. The object to lock during initialization. The isolated storage to use for collecting data in between published reports. The GUID that shows up at the top of all reports from this user/machine/domain. The recipient of collected reports. The outgoing HTTP request handler to use for publishing reports. A few HTTP request hosts and paths we've seen. Cultures that have come in via HTTP requests. Features that have been used. A collection of all the observations to include in the report. The named events that we have counters for. The lock acquired while considering whether to publish a report. The time that we last published reports. Initializes static members of the class. Initializes a new instance of the class. Records an event occurrence. Name of the event. The category within the event. Null and empty strings are allowed, but considered the same. Records an event occurence. The object whose type name is the event name to record. The category within the event. Null and empty strings are allowed, but considered the same. Records the use of a feature by name. The feature. Records the use of a feature by object type. The object whose type is the feature to set as used. Records the use of a feature by object type. The object whose type is the feature to set as used. Some dependency used by . Records the use of a feature by object type. The object whose type is the feature to set as used. Some dependency used by . Some dependency used by . Records statistics collected from incoming requests. The request. Called by every internal/public method on this class to give periodic operations a chance to run. Initializes Reporting if it has not been initialized yet. Assembles a report for submission. A stream that contains the report. Sends the usage reports to the library authors. A value indicating whether submitting the report was successful. Interprets the reporting response as a log message if possible. The line from the HTTP response to interpret as a log message. Sends the stats report asynchronously, and careful to not throw any unhandled exceptions. Gets the isolated storage to use for reporting. An isolated storage location appropriate for our host. Gets a unique, pseudonymous identifier for this particular web site or application. A GUID that will serve as the identifier. The identifier is made persistent by storing the identifier in isolated storage. If an existing identifier is not found, a new one is created, persisted, and returned. Sanitizes the name of the file so it only includes valid filename characters. The filename to sanitize. The filename, with any and all invalid filename characters replaced with the hyphen (-) character. Gets or sets a value indicating whether this reporting is enabled. true if enabled; otherwise, false. Setting this property to true may have no effect if reporting has already experienced a failure of some kind. Gets the observed features. Gets the configuration to use for reporting. A set of values that persist the set to disk. The isolated persistent storage. The persistent reader. The persistent writer. The total set of elements. The maximum number of elements to track before not storing new elements. The set of new elements added to the since the last flush. The time the last flush occurred. A flag indicating whether the set has changed since it was last flushed. Initializes a new instance of the class. The storage location. Name of the file. The maximum number of elements to track. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Adds a value to the set. The value. Flushes any newly added values to disk. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets a value indicating whether the hashset has reached capacity and is not storing more elements. true if this instance is full; otherwise, false. Gets the name of the file. The name of the file. A feature usage counter. The separator to use between category names and their individual counters. The isolated persistent storage. The persistent reader. The persistent writer. The time the last flush occurred. The in-memory copy of the counter. A flag indicating whether the set has changed since it was last flushed. Initializes a new instance of the class. The storage location. Name of the file. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Increments the counter. The category within the event. Null and empty strings are allowed, but considered the same. Flushes any newly added values to disk. Resets all counters. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the name of the file. The name of the file. Argument validation checks that throw some kind of ArgumentException when they fail (unless otherwise noted). Validates that a given parameter is not null. The type of the parameter The value. Name of the parameter. The tested value, guaranteed to not be null. Validates that a parameter is not null or empty. The value. Name of the parameter. Validates that an array is not null or empty. The type of the elements in the sequence. The value. Name of the parameter. Validates that an argument is either null or is a sequence with no null elements. The type of elements in the sequence. The sequence. Name of the parameter. Validates some expression describing the acceptable range for an argument evaluates to true. The expression that must evaluate to true to avoid an . Name of the parameter. The message to include with the exception. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . Name of the parameter. The message to include with the exception. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . Name of the parameter. The unformatted message. Formatting arguments. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . The message to include with the exception. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . The unformatted message. Formatting arguments. Validates that some argument describes a type that is or derives from a required type. The type that the argument must be or derive from. The type given in the argument. Name of the parameter. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . The message. Throws an if a condition does not evaluate to true. The expression that must evaluate to true to avoid an . The message. Throws an Name of the parameter. The message. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to The configuration-specified type {0} must be public, and is not.. Looks up a localized string similar to The configuration XAML reference to {0} requires a current HttpContext to resolve.. Looks up a localized string similar to The current IHttpHandler is not one of types: {0}. An embedded resource URL provider must be set in your .config file.. Looks up a localized string similar to The empty string is not allowed.. Looks up a localized string similar to The argument has an unexpected value.. Looks up a localized string similar to No current HttpContext was detected, so an {0} instance must be explicitly provided or specified in the .config file. Call the constructor overload that takes an {0}.. Utility methods for working with URIs. Tests a URI for the presence of an OAuth payload. The URI to test. The prefix. True if the URI contains an OAuth message. Determines whether some is using HTTPS. The Uri being tested for security. true if the URI represents an encrypted request; otherwise, false. Equivalent to UriBuilder.ToString() but omits port # if it may be implied. Equivalent to UriBuilder.Uri.ToString(), but doesn't throw an exception if the Host has a wildcard. The UriBuilder to render as a string. The string version of the Uri. Validates that a URL will be resolvable at runtime. The page hosting the control that receives this URL as a property. If set to true the page is in design-time mode rather than runtime mode. The URI to check. Thrown if the given URL is not a valid, resolvable URI. A grab-bag utility class. The base namespace for this library from which all other namespaces derive. The web.config file-specified provider of web resource URLs. Tests for equality between two objects. Safely handles the case where one or both are null. The type of objects been checked for equality. The first object. The second object. true if the two objects are equal; false otherwise. Prepares a dictionary for printing as a string. The type of the key. The type of the value. The dictionary or sequence of name-value pairs. An object whose ToString method will perform the actual work of generating the string. The work isn't done until (and if) the method is actually called, which makes it great for logging complex objects without being in a conditional block. Offers deferred ToString processing for a list of elements, that are assumed to generate just a single-line string. The type of elements contained in the list. The list of elements. An object whose ToString method will perform the actual work of generating the string. Offers deferred ToString processing for a list of elements. The type of elements contained in the list. The list of elements. if set to true, special formatting will be applied to the output to make it clear where one element ends and the next begins. An object whose ToString method will perform the actual work of generating the string. Gets the web resource URL from a Page or object. Some type in resource assembly. Name of the manifest resource. An absolute URL Gets a human-readable description of the library name and version, including whether the build is an official or private one. Manages an individual deferred ToString call. The type of object to be serialized as a string. The object that will be serialized if called upon. The method used to serialize to string form. Initializes a new instance of the DelayedToString class. The object that may be serialized to string form. The method that will serialize the object if called upon. Returns a that represents the current . A that represents the current . ================================================ FILE: packages/DotNetOpenAuth.Core.4.0.3.12153/lib/net40-full/DotNetOpenAuth.Core.xml ================================================ DotNetOpenAuth.Core Internal state consistency checks that throw an internal error exception when they fail. Validates some expression describing the acceptable condition evaluates to true. The expression that must evaluate to true to avoid an internal error exception. The message to include with the exception. Validates some expression describing the acceptable condition evaluates to true. The expression that must evaluate to true to avoid an internal error exception. The unformatted message. Formatting arguments. Throws an internal error exception. The message. An internal error exception that should never be caught. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). Provides RSA encryption of symmetric keys to protect them from a theft of the persistent store. A persistent store for rotating symmetric cryptographic keys. Implementations should persist it in such a way that the keys are shared across all servers on a web farm, where applicable. The store should consider protecting the persistent store against theft resulting in the loss of the confidentiality of the keys. One possible mitigation is to asymmetrically encrypt each key using a certificate installed in the server's certificate store. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Thrown in the event of a conflict with an existing key in the same bucket and with the same handle. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. The persistent store for asymmetrically encrypted symmetric keys. The memory cache of decrypted keys. The asymmetric algorithm to use encrypting/decrypting the symmetric keys. Initializes a new instance of the class. The data store. The asymmetric protection to apply to symmetric keys. Must include the private key. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. Decrypts the specified key. The bucket. The handle. The encrypted key. The decrypted key. An encrypted key and its decrypted equivalent. A cryptographic key and metadata concerning it. Backing field for the property. Backing field for the property. Initializes a new instance of the class. The cryptographic key. The expires UTC. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. The parameter is null. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the key. Gets the expiration date of this key (UTC time). Initializes a new instance of the class. The encrypted key. The decrypted key. Invariant conditions. Gets the encrypted key. Thrown by a hosting application or web site when a cryptographic key is created with a bucket and handle that conflicts with a previously stored and unexpired key. Initializes a new instance of the class. Initializes a new instance of the class. The inner exception to include. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. Code contract for the interface. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Thrown in the event of a conflict with an existing key in the same bucket and with the same handle. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. A in-memory store of crypto keys. How frequently to check for and remove expired secrets. An in-memory cache of decrypted symmetric keys. The key is the bucket name. The value is a dictionary whose key is the handle and whose value is the cached key. The last time the cache had expired keys removed from it. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Thrown in the event of a conflict with an existing key in the same bucket and with the same handle. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. Cleans the expired keys from memory cache if the cleaning interval has passed. Weeds out expired keys from the in-memory cache. A compact binary serialization class. The -derived type to serialize/deserialize. A serializer for -derived types The DataBag-derived type that is to be serialized/deserialized. A serializer for -derived types The DataBag-derived type that is to be serialized/deserialized. Serializes the specified message. The message to serialize. Must not be null. A non-null, non-empty value. Deserializes a . The message that contains the serialized value. Must not be null. The serialized form of the to deserialize. Must not be null or empty. The name of the parameter whose value is to be deserialized. Used for error message generation. The deserialized value. Never null. The length of the nonce to include in tokens that can be decoded once only. The message description cache to use for data bag types. The minimum allowable lifetime for the key used to encrypt/decrypt or sign this databag. The symmetric key store with the secret used for signing/encryption of verification codes and refresh tokens. The bucket for symmetric keys. The crypto to use for signing access tokens. The crypto to use for encrypting access tokens. A value indicating whether the data in this instance will be protected against tampering. The nonce store to use to ensure that this instance is only decoded once. The maximum age of a token that can be decoded; useful only when is true. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. Initializes a new instance of the class. The crypto service provider with the asymmetric key to use for signing or verifying the token. The crypto service provider with the asymmetric key to use for encrypting or decrypting the token. A value indicating whether the data in this instance will be GZip'd. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Initializes a new instance of the class. The crypto key store used when signing or encrypting. The bucket in which symmetric keys are stored for signing/encrypting data. A value indicating whether the data in this instance will be protected against tampering. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. The required minimum lifespan within which this token must be decodable and verifiable; useful only when and/or is true. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Initializes a new instance of the class. A value indicating whether the data in this instance will be protected against tampering. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Serializes the specified message, including compression, encryption, signing, and nonce handling where applicable. The message to serialize. Must not be null. A non-null, non-empty value. Deserializes a , including decompression, decryption, signature and nonce validation where applicable. The message that contains the serialized value. Must not be null. The serialized form of the to deserialize. Must not be null or empty. The name of the parameter whose value is to be deserialized. Used for error message generation. The deserialized value. Never null. Serializes the instance to a buffer. The message. The buffer containing the serialized data. Deserializes the instance from a buffer. The message instance to initialize with data from the buffer. The data buffer. Determines whether the signature on this instance is valid. The signed data. The signature. The symmetric secret handle. null when using an asymmetric algorithm. true if the signature is valid; otherwise, false. Calculates the signature for the data in this verification code. The bytes to sign. The symmetric secret handle. null when using an asymmetric algorithm. The calculated signature. Encrypts the specified value using either the symmetric or asymmetric encryption algorithm as appropriate. The value. Receives the symmetric secret handle. null when using an asymmetric algorithm. The encrypted value. Decrypts the specified value using either the symmetric or asymmetric encryption algorithm as appropriate. The value. The symmetric secret handle. null when using an asymmetric algorithm. The decrypted value. Initializes a new instance of the class. The crypto service provider with the asymmetric key to use for signing or verifying the token. The crypto service provider with the asymmetric key to use for encrypting or decrypting the token. A value indicating whether the data in this instance will be GZip'd. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Initializes a new instance of the class. The crypto key store used when signing or encrypting. The bucket in which symmetric keys are stored for signing/encrypting data. A value indicating whether the data in this instance will be protected against tampering. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. The minimum age. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Serializes the instance to a buffer. The message. The buffer containing the serialized data. Deserializes the instance from a buffer. The message instance to initialize with data from the buffer. The data buffer. Cached details on the response from a direct web request to a remote party. Details on the incoming response from a direct web request to a remote party. The encoding to use in reading a response that does not declare its own content encoding. Initializes a new instance of the class. Initializes a new instance of the class. The original request URI. The response to initialize from. The network stream is used by this class directly. Initializes a new instance of the class. The request URI. The final URI to respond to the request. The headers. The status code. Type of the content. The content encoding. Returns a that represents the current . A that represents the current . Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Gets an offline snapshot version of this instance. The maximum bytes from the response stream to cache. A snapshot version of this instance. If this instance is a creating a snapshot will automatically close and dispose of the underlying response stream. If this instance is a , the result will be the self same instance. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the type of the content. Gets the content encoding. Gets the URI of the initial request. Gets the URI that finally responded to the request. This can be different from the in cases of redirection during the request. Gets the headers that must be included in the response to the user agent. The headers in this collection are not meant to be a comprehensive list of exactly what should be sent, but are meant to augment whatever headers are generally included in a typical response. Gets the HTTP status code to use in the HTTP response. Gets the body of the HTTP response. A seekable, repeatable response stream. Initializes a new instance of the class. Initializes a new instance of the class. The request URI. The response. The maximum bytes to read. Initializes a new instance of the class. The request URI. The final URI to respond to the request. The headers. The status code. Type of the content. The content encoding. The response stream. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Gets the body of the response as a string. The entire body of the response. Gets an offline snapshot version of this instance. The maximum bytes from the response stream to cache. A snapshot version of this instance. If this instance is a creating a snapshot will automatically close and dispose of the underlying response stream. If this instance is a , the result will be the self same instance. Sets the response to some string, encoded as UTF-8. The string to set the response to. Caches the network stream and closes it if it is open. The response whose stream is to be cloned. The maximum bytes to cache. The seekable Stream instance that contains a copy of what was returned in the HTTP response. Gets a value indicating whether the cached response stream was truncated to a maximum allowable length. Gets the body of the HTTP response. Gets or sets the cached response stream. Code contract for the class. Manages sending direct messages to a remote party and receiving responses. The content-type used on HTTP POST requests where the POST entity is a URL-encoded series of key=value pairs. The content-type used for JSON serialized objects. The "text/javascript" content-type that some servers return instead of the standard one. The content-type for plain text. The HTML that should be returned to the user agent as part of a 301 Redirect. A string that should be used as the first argument to string.Format, where the {0} should be replaced with the URL to redirect to. The template for indirect messages that require form POST to forward through the user agent. We are intentionally using " instead of the html single quote ' below because the HtmlEncode'd values that we inject will only escape the double quote, so only the double-quote used around these values is safe. The encoding to use when writing out POST entity strings. The content-type used on HTTP POST requests where the POST entity is a URL-encoded series of key=value pairs. This includes the character encoding. A list of binding elements in the order they must be applied to outgoing messages. A list of binding elements in the order they must be applied to incoming messages. The default cache of message descriptions to use unless they are customized. This is a perf optimization, so that we don't reflect over every message type every time a channel is constructed. A cache of reflected message types that may be sent or received on this channel. A tool that can figure out what kind of message is being received so it can be deserialized. Backing store for the property. Backing field for the property. Initializes a new instance of the class. A class prepared to analyze incoming messages and indicate what concrete message types can deserialize from it. The binding elements to use in sending and receiving messages. Sends an indirect message (either a request or response) or direct message response for transmission to a remote party and ends execution on the current page or handler. The one-way message to send Thrown by ASP.NET in order to prevent additional data from the page being sent to the client and corrupting the response. Requires an HttpContext.Current context. Sends an indirect message (either a request or response) or direct message response for transmission to a remote party and skips most of the remaining ASP.NET request handling pipeline. Not safe to call from ASP.NET web forms. The one-way message to send Requires an HttpContext.Current context. This call is not safe to make from an ASP.NET web form (.aspx file or code-behind) because ASP.NET will render HTML after the protocol message has been sent, which will corrupt the response. Use the method instead for web forms. Prepares an indirect message (either a request or response) or direct message response for transmission to a remote party. The one-way message to send The pending user agent redirect based message to be sent as an HttpResponse. Gets the protocol message embedded in the given HTTP request, if present. The deserialized message, if one is found. Null otherwise. Requires an HttpContext.Current context. Thrown when is null. Gets the protocol message embedded in the given HTTP request, if present. The expected type of the message to be received. The deserialized message, if one is found. Null otherwise. True if the expected message was recognized and deserialized. False otherwise. Requires an HttpContext.Current context. Thrown when is null. Thrown when a request message of an unexpected type is received. Gets the protocol message embedded in the given HTTP request, if present. The expected type of the message to be received. The request to search for an embedded message. The deserialized message, if one is found. Null otherwise. True if the expected message was recognized and deserialized. False otherwise. Thrown when is null. Thrown when a request message of an unexpected type is received. Gets the protocol message embedded in the current HTTP request. The expected type of the message to be received. The deserialized message. Never null. Requires an HttpContext.Current context. Thrown when is null. Thrown if the expected message was not recognized in the response. Gets the protocol message embedded in the given HTTP request. The expected type of the message to be received. The request to search for an embedded message. The deserialized message. Never null. Thrown if the expected message was not recognized in the response. Gets the protocol message that may be embedded in the given HTTP request. The request to search for an embedded message. The deserialized message, if one is found. Null otherwise. Sends a direct message to a remote party and waits for the response. The expected type of the message to be received. The message to send. The remote party's response. Thrown if no message is recognized in the response or an unexpected type of message is received. Sends a direct message to a remote party and waits for the response. The message to send. The remote party's response. Guaranteed to never be null. Thrown if the response does not include a protocol message. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Verifies the integrity and applicability of an incoming message. The message just received. Thrown when the message is somehow invalid. This can be due to tampering, replay attack or expiration, among other things. Prepares an HTTP request that carries a given message. The message to send. The prepared to send the request. This method must be overridden by a derived class, unless the method is overridden and does not require this method. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec OAuth V1.0 section 5.3. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Thrown when the response is not valid. This method should NOT be called by derived types except when sending ONE WAY request messages. Prepares a message for transmit by applying signatures, nonces, etc. The message to prepare for sending. Gets the HTTP context for the current HTTP request. An HttpContextBase instance. Gets the current HTTP request being processed. The HttpRequestInfo for the current request. Requires an context. Thrown if HttpContext.Current == null. Checks whether a given HTTP method is expected to include an entity body in its request. The HTTP method. true if the HTTP method is supposed to have an entity; false otherwise. Applies message prescribed HTTP response headers to an outgoing web response. The message. The HTTP response. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Fires the event. The message about to be encoded and sent. Gets the direct response of a direct HTTP request. The web request. The response to the web request. Thrown on network or protocol errors. Submits a direct request message to some remote party and blocks waiting for an immediately reply. The request message. The response message, or null if the response did not carry a message. Typically a deriving channel will override to customize this method's behavior. However in non-HTTP frameworks, such as unit test mocks, it may be appropriate to override this method to eliminate all use of an HTTP transport. Called when receiving a direct response message, before deserialization begins. The HTTP direct response. The newly instantiated message, prior to deserialization. Gets the protocol message that may be embedded in the given HTTP request. The request to search for an embedded message. The deserialized message, if one is found. Null otherwise. Deserializes a dictionary of values into a message. The dictionary of values that were read from an HTTP request or response. Information about where the message was directed. Null for direct response messages. The deserialized message, or null if no message could be recognized in the provided data. Queues an indirect message for transmittal via the user agent. The message to send. The pending user agent redirect based message to be sent as an HttpResponse. Encodes an HTTP response that will instruct the user agent to forward a message to some remote third party using a 301 Redirect GET method. The message to forward. The pre-serialized fields from the message. if set to true the redirect will contain the message payload in the #fragment portion of the URL rather than the ?querystring. The encoded HTTP response. Encodes an HTTP response that will instruct the user agent to forward a message to some remote third party using a form POST method. The message to forward. The pre-serialized fields from the message. The encoded HTTP response. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Thrown when the response is not valid. Prepares an HTTP request that carries a given message. The message to send. The prepared to send the request. This method must be overridden by a derived class, unless the method is overridden and does not require this method. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec OAuth V1.0 section 5.3. Serializes the given message as a JSON string. The message to serialize. A JSON string. Deserializes from flat data from a JSON object. A JSON string. The simple "key":"value" pairs from a JSON-encoded object. Prepares a message for transmit by applying signatures, nonces, etc. The message to prepare for sending. This method should NOT be called by derived types except when sending ONE WAY request messages. Prepares to send a request to the Service Provider as the query string in a GET request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP Get request with the message parts serialized to the query string. This method satisfies OAuth 1.0 section 5.2, item #3. Prepares to send a request to the Service Provider as the query string in a HEAD request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP HEAD request with the message parts serialized to the query string. This method satisfies OAuth 1.0 section 5.2, item #3. Prepares to send a request to the Service Provider as the payload of a POST request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP POST request with the message parts serialized to the POST entity with the application/x-www-form-urlencoded content type This method satisfies OAuth 1.0 section 5.2, item #2 and OpenID 2.0 section 4.1.2. Prepares to send a request to the Service Provider as the query string in a PUT request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP PUT request with the message parts serialized to the query string. Prepares to send a request to the Service Provider as the query string in a DELETE request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP DELETE request with the message parts serialized to the query string. Sends the given parameters in the entity stream of an HTTP request. The HTTP request. The parameters to send. This method calls and closes the request stream, but does not call . Sends the given parameters in the entity stream of an HTTP request in multi-part format. The HTTP request. The parameters to send. This method calls and closes the request stream, but does not call . Verifies the integrity and applicability of an incoming message. The message just received. Thrown when the message is somehow invalid. This can be due to tampering, replay attack or expiration, among other things. Allows preprocessing and validation of message data before an appropriate message type is selected or deserialized. The received message data. Customizes the binding element order for outgoing and incoming messages. The outgoing order. The incoming order. No binding elements can be added or removed from the channel using this method. Only a customized order is allowed. Thrown if a binding element is new or missing in one of the ordered lists. Ensures a consistent and secure set of binding elements and sorts them as necessary for a valid sequence of operations. The binding elements provided to the channel. The properly ordered list of elements. Thrown when the binding elements are incomplete or inconsistent with each other. Puts binding elements in their correct outgoing message processing order. The first protection type to compare. The second protection type to compare. -1 if should be applied to an outgoing message before . 1 if should be applied to an outgoing message before . 0 if it doesn't matter. Verifies that all required message parts are initialized to values prior to sending the message to a remote party. The message to verify. Thrown when any required message part does not have a value. Determines whether a given ordered list of binding elements includes every binding element in this channel exactly once. The list of binding elements to test. true if the given list is a valid description of a binding element ordering; otherwise, false. An event fired whenever a message is about to be encoded and sent. Gets or sets an instance to a that will be used when submitting HTTP requests and waiting for responses. This defaults to a straightforward implementation, but can be set to a mock object for testing purposes. Gets or sets the maximum allowable size for a 301 Redirect response before we send a 200 OK response with a scripted form POST with the parameters instead in order to ensure successfully sending a large payload to another server that might have a maximum allowable size restriction on its GET request. The default value is 2048. Gets or sets the message descriptions. Gets a tool that can figure out what kind of message is being received so it can be deserialized. Gets the binding elements used by this channel, in no particular guaranteed order. Gets the binding elements used by this channel, in the order applied to outgoing messages. Gets the binding elements used by this channel, in the order applied to incoming messages. Gets or sets a value indicating whether this instance is disposed. true if this instance is disposed; otherwise, false. Gets or sets a tool that can figure out what kind of message is being received so it can be deserialized. Gets or sets the cache policy to use for direct message requests. Default is . Gets or sets the XML dictionary reader quotas. The XML dictionary reader quotas. Prevents a default instance of the ChannelContract class from being created. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Thrown when the response is not valid. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec V1.0 section 5.3. Well known HTTP headers. The Authorization header, which specifies the credentials that the client presents in order to authenticate itself to the server. The Content-Type header, which specifies the MIME type of the accompanying body data. An interface that allows indirect response messages to specify HTTP transport specific properties. Gets a value indicating whether the payload for the message should be included in the redirect fragment instead of the query string or POST entity. An interface that appears on messages that need to retain a description of what their literal payload was when they were deserialized. Gets or sets the original message parts, before any normalization or default values were assigned. Code contract for the interface. Gets or sets the original message parts, before any normalization or default values were assigned. A set of flags that can control the behavior of an individual web request. Indicates that default behavior is required. Indicates that any response from the remote server, even those with HTTP status codes that indicate errors, should not result in a thrown exception. Even with this flag set, should be thrown when an HTTP protocol error occurs (i.e. timeouts). Indicates that the HTTP request must be completed entirely using SSL (including any redirects). Extension methods for types. Caches the results of enumerating over a given object so that subsequence enumerations don't require interacting with the object a second time. The type of element found in the enumeration. The enumerable object. Either a new enumerable object that caches enumerated results, or the original, object if no caching is necessary to avoid additional CPU work. This is designed for use on the results of generator methods (the ones with yield return in them) so that only those elements in the sequence that are needed are ever generated, while not requiring regeneration of elements that are enumerated over multiple times. This can be a huge performance gain if enumerating multiple times over an expensive generator method. Some enumerable types such as collections, lists, and already-cached generators do not require any (additional) caching, and this method will simply return those objects rather than caching them to avoid double-caching. A wrapper for types and returns a caching from its method. The type of element in the sequence. The results from enumeration of the live object that have been collected thus far. The original generator method or other enumerable object whose contents should only be enumerated once. The enumerator we're using over the generator method's results. The sync object our caching enumerators use when adding a new live generator method result to the cache. Although individual enumerators are not thread-safe, this should be thread safe so that multiple enumerators can be created from it and used from different threads. Initializes a new instance of the EnumerableCache class. The generator. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. An enumerator that uses cached enumeration results whenever they are available, and caches whatever results it has to pull from the original object. The parent enumeration wrapper class that stores the cached results. The position of this enumerator in the cached list. Initializes a new instance of the EnumeratorCache class. The parent cached enumerable whose GetEnumerator method is calling this constructor. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Advances the enumerator to the next element of the collection. true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. The collection was modified after the enumerator was created. Sets the enumerator to its initial position, which is before the first element in the collection. The collection was modified after the enumerator was created. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the element in the collection at the current position of the enumerator. The element in the collection at the current position of the enumerator. Gets the element in the collection at the current position of the enumerator. The element in the collection at the current position of the enumerator. An exception to call out a configuration or runtime failure on the part of the (web) application that is hosting this library. This exception is used rather than for those errors that should never be caught because they indicate a major error in the app itself or its configuration. It is an internal exception to assist in making it uncatchable. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). An interface that allows direct response messages to specify HTTP transport specific properties. Gets the HTTP status code that the direct response should be sent with. Gets the HTTP headers to add to the response. May be an empty collection, but must not be null. An interface that extension messages must implement. The interface that classes must implement to be serialized/deserialized as protocol or extension messages. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Contract class for the interface. Gets the HTTP status code that the direct response should be sent with. Gets the HTTP headers to add to the response. May be an empty collection, but must not be null. Code contract for the interface. Prevents a default instance of the class from being created. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the version of the protocol or extension this message is prepared to implement. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Undirected messages that serve as direct responses to direct requests. The interface that classes must implement to be serialized/deserialized as protocol messages. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the originating request message that caused this response to be formed. An empty dictionary. Useful for avoiding memory allocations in creating new dictionaries to represent empty ones. The type of the key. The type of the value. The singleton instance of the empty dictionary. Prevents a default instance of the EmptyDictionary class from being created. Adds an element with the provided key and value to the . The object to use as the key of the element to add. The object to use as the value of the element to add. is null. An element with the same key already exists in the . The is read-only. Determines whether the contains an element with the specified key. The key to locate in the . true if the contains an element with the key; otherwise, false. is null. Removes the element with the specified key from the . The key of the element to remove. true if the element is successfully removed; otherwise, false. This method also returns false if was not found in the original . is null. The is read-only. Gets the value associated with the specified key. The key whose value to get. When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. true if the object that implements contains an element with the specified key; otherwise, false. is null. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Copies the elements of the to an , starting at a particular index. The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. The zero-based index in at which copying begins. is null. is less than 0. is multidimensional. -or- is equal to or greater than the length of . -or- The number of elements in the source is greater than the available space from to the end of the destination . -or- Type cannot be cast automatically to the type of the destination . Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Gets an containing the values in the . An containing the values in the object that implements . Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Gets an containing the keys of the . An containing the keys of the object that implements . Gets or sets the value with the specified key. The key being read or written. Nothing. It always throws. An enumerator that always generates zero elements. The singleton instance of this empty enumerator. Prevents a default instance of the class from being created. Advances the enumerator to the next element of the collection. true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. The collection was modified after the enumerator was created. Sets the enumerator to its initial position, which is before the first element in the collection. The collection was modified after the enumerator was created. Gets the current element in the collection. The current element in the collection. The enumerator is positioned before the first element of the collection or after the last element. An empty, read-only list. The type the list claims to include. The singleton instance of the empty list. Prevents a default instance of the EmptyList class from being created. Determines the index of a specific item in the . The object to locate in the . The index of if found in the list; otherwise, -1. Inserts an item to the at the specified index. The zero-based index at which should be inserted. The object to insert into the . is not a valid index in the . The is read-only. Removes the item at the specified index. The zero-based index of the item to remove. is not a valid index in the . The is read-only. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Copies the elements of the to an , starting at a particular index. The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. The zero-based index in at which copying begins. is null. is less than 0. is multidimensional. -or- is equal to or greater than the length of . -or- The number of elements in the source is greater than the available space from to the end of the destination . -or- Type cannot be cast automatically to the type of the destination . Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Gets or sets the at the specified index. The index of the element in the list to change. Nothing. It always throws. A collection of error checking and reporting methods. Wraps an exception in a new . The inner exception to wrap. The error message for the outer exception. The string formatting arguments, if any. The newly constructed (unthrown) exception. Throws an internal error exception. The error message. Nothing. But included here so callers can "throw" this method for C# safety. Always thrown. Checks a condition and throws an internal error exception if it evaluates to false. The condition to check. The message to include in the exception, if created. Thrown if evaluates to false. Checks a condition and throws an internal error exception if it evaluates to false. The condition to check. The message to include in the exception, if created. The formatting arguments. Thrown if evaluates to false. Checks a condition and throws an if it evaluates to false. The condition to check. The message to include in the exception, if created. Thrown if evaluates to false. Checks a condition and throws a if it evaluates to false. The condition to check. The message to include in the exception, if created. Thrown if evaluates to false. Checks a condition and throws a if it evaluates to false. The condition to check. The message to include in the exception, if created. The string formatting arguments for . Thrown if evaluates to false. Checks a condition and throws an if it evaluates to false. The condition to check. The message to include in the exception, if created. The formatting arguments. Thrown if evaluates to false. Throws a if some evaluates to false. True to do nothing; false to throw the exception. The error message for the exception. The string formatting arguments, if any. Thrown if evaluates to false. Throws a if some evaluates to false. True to do nothing; false to throw the exception. The message being processed that would be responsible for the exception if thrown. The error message for the exception. The string formatting arguments, if any. Thrown if evaluates to false. Throws a if some evaluates to false. True to do nothing; false to throw the exception. The error message for the exception. The string formatting arguments, if any. Thrown if evaluates to false. Throws a . The message to set in the exception. The formatting arguments of the message. An InternalErrorException, which may be "thrown" by the caller in order to satisfy C# rules to show that code will never be reached, but no value actually is ever returned because this method guarantees to throw. Always thrown. Throws a . The message for the exception. The string formatting arguments for . Nothing. It's just here so the caller can throw this method for C# compilation check. Throws a if some condition is false. The expression to evaluate. A value of false will cause the exception to be thrown. The message for the exception. The string formatting arguments for . Thrown when is false. Verifies something about the argument supplied to a method. The condition that must evaluate to true to avoid an exception. The message to use in the exception if the condition is false. The string formatting arguments, if any. Thrown if evaluates to false. Throws an . Name of the parameter. The message to use in the exception if the condition is false. The string formatting arguments, if any. Never returns anything. It always throws. Verifies something about the argument supplied to a method. The condition that must evaluate to true to avoid an exception. Name of the parameter. The message to use in the exception if the condition is false. The string formatting arguments, if any. Thrown if evaluates to false. Verifies that some given value is not null. The value to check. Name of the parameter, which will be used in the , if thrown. Thrown if is null. Verifies that some string is not null and has non-zero length. The value to check. Name of the parameter, which will be used in the , if thrown. Thrown if is null. Thrown if has zero length. Verifies that != null. Thrown if == null Obtains a value from the dictionary if possible, or throws a if it's missing. The type of key in the dictionary. The type of value in the dictionary. The dictionary. The key to use to look up the value. The message to claim is invalid if the key cannot be found. The value for the given key. An interface that messages wishing to perform custom serialization/deserialization may implement to be notified of events. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Code contract for the class. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Gets an offline snapshot version of this instance. The maximum bytes from the response stream to cache. A snapshot version of this instance. If this instance is a creating a snapshot will automatically close and dispose of the underlying response stream. If this instance is a , the result will be the self same instance. Gets the body of the HTTP response. A protocol message that supports adding extensions to the payload for transmission. Gets the list of extensions that are included with this message. Implementations of this interface should ensure that this property never returns null. Code contract for the interface. Prevents a default instance of the class from being created. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the list of extensions that are included with this message. Implementations of this interface should ensure that this property never returns null. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. An internal exception to throw if an internal error within the library requires an abort of the operation. This exception is internal to prevent clients of the library from catching what is really an unexpected, potentially unrecoverable exception. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). An interface implemented by -derived types that support binary serialization. Serializes the instance to the specified stream. The stream. Initializes the fields on this instance from the specified stream. The stream. Code Contract for the interface. Serializes the instance to the specified stream. The stream. Initializes the fields on this instance from the specified stream. The stream. A KeyedCollection whose item -> key transform is provided via a delegate to its constructor, and null items are disallowed. The type of the key. The type of the item. The delegate that returns a key for the given item. Initializes a new instance of the KeyedCollectionDelegate class. The delegate that gets the key for a given item. When implemented in a derived class, extracts the key from the specified element. The element from which to extract the key. The key for the specified element. Represents a single part in a HTTP multipart POST request. The "Content-Disposition" string. The two-character \r\n newline character sequence to use. Initializes a new instance of the class. The content disposition of the part. Creates a part that represents a simple form field. The name of the form field. The value. The constructed part. Creates a part that represents a file attachment. The name of the form field. The path to the file to send. Type of the content in HTTP Content-Type format. The constructed part. Creates a part that represents a file attachment. The name of the form field. Name of the file as the server should see it. Type of the content in HTTP Content-Type format. The content of the file. The constructed part. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Serializes the part to a stream. The stream writer. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets or sets the content disposition. The content disposition. Gets the key=value attributes that appear on the same line as the Content-Disposition. The content attributes. Gets the headers that appear on subsequent lines after the Content-Disposition. Gets or sets the content of the part. Gets the length of this entire part. Useful for calculating the ContentLength HTTP header to send before actually serializing the content. A live network HTTP response The network response object, used to initialize this instance, that still needs to be closed if applicable. The incoming network response stream. A value indicating whether a stream reader has already been created on this instance. Initializes a new instance of the class. The request URI. The response. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Gets an offline snapshot version of this instance. The maximum bytes from the response stream to cache. A snapshot version of this instance. If this instance is a creating a snapshot will automatically close and dispose of the underlying response stream. If this instance is a , the result will be the self same instance. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the body of the HTTP response. An ASP.NET MVC structure to represent the response to send to the user agent when the controller has finished its work. The outgoing web response to send when the ActionResult is executed. Initializes a new instance of the class. The response. Enables processing of the result of an action method by a custom type that inherits from . The context in which to set the response. An interface describing how various objects can be serialized and deserialized between their object and string forms. Implementations of this interface must include a default constructor and must be thread-safe. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Code contract for the type. Initializes a new instance of the class. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. A message part encoder that has a special encoding for a null value. Gets the string representation to include in a serialized message when the message part has a null value. An interface describing how various objects can be serialized and deserialized between their object and string forms. Implementations of this interface must include a default constructor and must be thread-safe. Encodes the specified value as the original value that was formerly decoded. The value. Guaranteed to never be null. The in string form, ready for message transport. A cache of instances. A dictionary of reflected message types and the generated reflection information. Initializes a new instance of the class. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Gets a instance prepared for the given message type. A type that implements . The protocol version of the message. A instance. Gets a instance prepared for the given message type. The message for which a should be obtained. A instance. Gets the dictionary that provides read/write access to a message. The message. The dictionary. Gets the dictionary that provides read/write access to a message. The message. A value indicating whether this message dictionary will retrieve original values instead of normalized ones. The dictionary. A struct used as the key to bundle message type and version. Backing store for the property. Backing store for the property. Initializes a new instance of the struct. Type of the message. The message version. Implements the operator ==. The first object to compare. The second object to compare. The result of the operator. Implements the operator !=. The first object to compare. The second object to compare. The result of the operator. Indicates whether this instance and a specified object are equal. Another object to compare to. true if and this instance are the same type and represent the same value; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer that is the hash code for this instance. Gets the message type. Gets the message version. Allows a custom class or struct to be serializable between itself and a string representation. Initializes a new instance of the class. The implementing type to use for serializing this type. Gets the default encoder to use for the declaring class. A message factory that automatically selects the message type based on the incoming data. A tool to analyze an incoming message to figure out what concrete class is designed to deserialize it and instantiates that class. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. The request message types and their constructors to use for instantiating the messages. The response message types and their constructors to use for instantiating the messages. The value is a dictionary, whose key is the type of the constructor's lone parameter. Initializes a new instance of the class. Adds message types to the set that this factory can create. The message types that this factory may instantiate. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Gets the message type that best fits the given incoming request data. The recipient of the incoming data. Typically not used, but included just in case. The data of the incoming message. The message type that matches the incoming data; or null if no match. May be thrown if the incoming data is ambiguous. Gets the message type that best fits the given incoming direct response data. The request message that prompted the response data. The data of the incoming message. The message type that matches the incoming data; or null if no match. May be thrown if the incoming data is ambiguous. Instantiates the given request message type. The message description. The recipient. The instantiated message. Never null. Instantiates the given request message type. The message description. The request that resulted in this response. The instantiated message. Never null. Gets the hierarchical distance between a type and a type it derives from or implements. The base type or interface. The concrete class that implements the . The distance between the two types. 0 if the types are equivalent, 1 if the type immediately derives from or implements the base type, or progressively higher integers. Counts how many strings are in the intersection of two collections. The first collection. The second collection. The string comparison method to use. A non-negative integer no greater than the count of elements in the smallest collection. Finds constructors for response messages that take a given request message type. The message description. Type of the request message. A sequence of matching constructors. Contract class for the IDataBagFormatter interface. The type of DataBag to serialize. Prevents a default instance of the class from being created. Serializes the specified message. The message to serialize. Must not be null. A non-null, non-empty value. Deserializes a . The message that contains the serialized value. Must not be nulll. The serialized form of the to deserialize. Must not be null or empty. Name of the message part whose value is to be deserialized. Used for exception messages. The deserialized value. Never null. A serializer for -derived types The DataBag-derived type that is to be serialized/deserialized. Initializes a new instance of the class. The crypto service provider with the asymmetric key to use for signing or verifying the token. The crypto service provider with the asymmetric key to use for encrypting or decrypting the token. A value indicating whether the data in this instance will be GZip'd. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Initializes a new instance of the class. The crypto key store used when signing or encrypting. The bucket in which symmetric keys are stored for signing/encrypting data. A value indicating whether the data in this instance will be protected against tampering. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. The minimum age. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Serializes the instance to a buffer. The message. The buffer containing the serialized data. Deserializes the instance from a buffer. The message instance to initialize with data from the buffer. The data buffer. A channel that uses the standard message factory. The message types receivable by this channel. The protocol versions supported by this channel. Initializes a new instance of the class. The message types that might be encountered. All the possible message versions that might be encountered. The binding elements to apply to the channel. Generates all the message descriptions for a given set of message types and versions. The message types. The message versions. The cache to use when obtaining the message descriptions. The generated/retrieved message descriptions. Gets or sets a tool that can figure out what kind of message is being received so it can be deserialized. Gets or sets the message descriptions. Gets or sets a tool that can figure out what kind of message is being received so it can be deserialized. A collection of message parts that will be serialized into a single string, to be set into a larger message. The default version for DataBags. The backing field for the property. A dictionary to contain extra message data. Initializes a new instance of the class. Initializes a new instance of the class. The DataBag version. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Gets or sets the nonce. The nonce. Gets or sets the UTC creation date of this token. The UTC creation date. Gets or sets the signature. The signature. Gets or sets the message that delivered this DataBag instance to this host. Gets the type of this instance. The type of the bag. This ensures that one token cannot be misused as another kind of token. Translates between a and the number of seconds between it and 1/1/1970 12 AM The reference date and time for calculating time stamps. Initializes a new instance of the class. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. The interface that classes must implement to be serialized/deserialized as protocol or extension messages that uses POST multi-part data for binary content. Implemented by messages that have explicit recipients (direct requests and all indirect messages). Gets the preferred method of transport for the message. For indirect messages this will likely be GET+POST, which both can be simulated in the user agent: the GET with a simple 301 Redirect, and the POST with an HTML form in the response with javascript to automate submission. Gets the URL of the intended receiver of this message. Gets the parts of the message that carry binary data. A list of parts. Never null. Gets a value indicating whether this message should be sent as multi-part POST. The contract class for the interface. Prevents a default instance of the class from being created. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the parts of the message that carry binary data. A list of parts. Never null. Gets a value indicating whether this message should be sent as multi-part POST. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Gets the preferred method of transport for the message. For indirect messages this will likely be GET+POST, which both can be simulated in the user agent: the GET with a simple 301 Redirect, and the POST with an HTML form in the response with javascript to automate submission. Gets the URL of the intended receiver of this message. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. The data packet sent with Channel events. Initializes a new instance of the class. The message behind the fired event.. Gets the message that caused the event to fire. An in-memory nonce store. Useful for single-server web applications. NOT for web farms. Describes the contract a nonce store must fulfill. Stores a given nonce and timestamp. The context, or namespace, within which the must be unique. The context SHOULD be treated as case-sensitive. The value will never be null but may be the empty string. A series of random characters. The UTC timestamp that together with the nonce string make it unique within the given . The timestamp may also be used by the data store to clear out old nonces. True if the context+nonce+timestamp (combination) was not previously in the database. False if the nonce was stored previously with the same timestamp and context. The nonce must be stored for no less than the maximum time window a message may be processed within before being discarded as an expired message. This maximum message age can be looked up via the property, accessible via the property. How frequently we should take time to clear out old nonces. The maximum age a message can be before it is discarded. This is useful for knowing how long used nonces must be retained. A list of the consumed nonces. A lock object used around accesses to the field. Where we're currently at in our periodic nonce cleaning cycle. Initializes a new instance of the class. Initializes a new instance of the class. The maximum age a message can be before it is discarded. Stores a given nonce and timestamp. The context, or namespace, within which the must be unique. A series of random characters. The timestamp that together with the nonce string make it unique. The timestamp may also be used by the data store to clear out old nonces. True if the nonce+timestamp (combination) was not previously in the database. False if the nonce was stored previously with the same timestamp. The nonce must be stored for no less than the maximum time window a message may be processed within before being discarded as an expired message. If the binding element is applicable to your channel, this expiration window is retrieved or set using the property. Clears consumed nonces from the cache that are so old they would be rejected if replayed because it is expired. A contract for handling. Implementations of this interface must be thread safe. Determines whether this instance can support the specified options. The set of options that might be given in a subsequent web request. true if this instance can support the specified options; otherwise, false. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The stream the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Callers must close and dispose of the request stream when they are done writing to it to avoid taking up the connection too long and causing long waits on subsequent requests. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The options to apply to this web request. The stream the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Callers must close and dispose of the request stream when they are done writing to it to avoid taking up the connection too long and causing long waits on subsequent requests. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Processes an and converts the to a instance. The to handle. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Processes an and converts the to a instance. The to handle. The options to apply to this web request. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Code contract for the type. Determines whether this instance can support the specified options. The set of options that might be given in a subsequent web request. true if this instance can support the specified options; otherwise, false. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The stream the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Callers must close and dispose of the request stream when they are done writing to it to avoid taking up the connection too long and causing long waits on subsequent requests. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The options to apply to this web request. The stream the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Callers must close and dispose of the request stream when they are done writing to it to avoid taking up the connection too long and causing long waits on subsequent requests. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Processes an and converts the to a instance. The to handle. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Processes an and converts the to a instance. The to handle. The options to apply to this web request. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. A binding element that checks/verifies a nonce message part. An interface that must be implemented by message transforms/validators in order to be included in the channel stack. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. These are the characters that may be chosen from when forming a random nonce. The persistent store for nonces received. The length of generated nonces. Initializes a new instance of the class. The store where nonces will be persisted and checked. Initializes a new instance of the class. The store where nonces will be persisted and checked. A value indicating whether zero-length nonces will be allowed. Applies a nonce to the message. The message to apply replay protection to. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Verifies that the nonce in an incoming message has not been seen before. The incoming message. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the nonce check revealed a replayed message. Generates a string of random characters for use as a nonce. The nonce string. Gets the protection that this binding element provides messages. Gets or sets the channel that this binding element belongs to. Gets or sets the strength of the nonce, which is measured by the number of nonces that could theoretically be generated. The strength of the nonce is equal to the number of characters that might appear in the nonce to the power of the length of the nonce. Gets or sets a value indicating whether empty nonces are allowed. Default is false. Applied to fields and properties that form a key/value in a protocol message. The overridden name to use as the serialized name for the property. Initializes a new instance of the class. Initializes a new instance of the class. A special name to give the value of this member in the serialized message. When null or empty, the name of the member will be used in the serialized message. Gets the name of the serialized form of this member in the message. Gets or sets the level of protection required by this member in the serialized message. Message part protection must be provided and verified by the channel binding element(s) that provide security. Gets or sets a value indicating whether this member is a required part of the serialized message. Gets or sets a value indicating whether the string value is allowed to be empty in the serialized message. Default is true. Gets or sets an IMessagePartEncoder custom encoder to use to translate the applied member to and from a string. Gets or sets the minimum version of the protocol this attribute applies to and overrides any attributes with lower values for this property. Defaults to 0.0. Gets or sets the maximum version of the protocol this attribute applies to. Defaults to int.MaxValue for the major version number. Specifying on another attribute on the same member automatically turns this attribute off. This property should only be set when a property is totally dropped from a newer version of the protocol. Gets or sets the minimum version of the protocol this attribute applies to and overrides any attributes with lower values for this property. Defaults to 0.0. Gets or sets the maximum version of the protocol this attribute applies to. Defaults to int.MaxValue for the major version number. Specifying on another attribute on the same member automatically turns this attribute off. This property should only be set when a property is totally dropped from a newer version of the protocol. Categorizes the various types of channel binding elements so they can be properly ordered. The order of these enum values is significant. Each successive value requires the protection offered by all the previous values in order to be reliable. For example, message expiration is meaningless without tamper protection to prevent a user from changing the timestamp on a message. No protection. A binding element that signs a message before sending and validates its signature upon receiving. A binding element that enforces a maximum message age between sending and processing on the receiving side. A binding element that prepares messages for replay detection and detects replayed messages on the receiving side. All forms of protection together. Code Contract for the interface. Prevents a default instance of the class from being created. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. An exception thrown when a message is received for the second time, signalling a possible replay attack. An exception to represent errors in the local or remote implementation of the protocol. Initializes a new instance of the class. Initializes a new instance of the class. A message describing the specific error the occurred or was detected. Initializes a new instance of the class. A message describing the specific error the occurred or was detected. The inner exception to include. Initializes a new instance of the class such that it can be sent as a protocol message response to a remote caller. The human-readable exception message. The message that was the cause of the exception. Must not be null. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. Gets the message that caused the exception. Initializes a new instance of the class. The replayed message. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. An exception thrown when a message is received that exceeds the maximum message age limit. Initializes a new instance of the class. The date the message expired. The expired message. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. An exception thrown when a signed message does not pass signature validation. Initializes a new instance of the class. The message with the invalid signature. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. The contract a message that has an allowable time window for processing must implement. All replay-protected messages must also be set to expire so the nonces do not have to be stored indefinitely. The contract a message that has an allowable time window for processing must implement. All expiring messages must also be signed to prevent tampering with the creation date. Gets or sets the UTC date/time the message was originally sent onto the network. The property setter should ensure a UTC date/time, and throw an exception if this is not possible. Thrown when a DateTime that cannot be converted to UTC is set. Gets the context within which the nonce must be unique. The value of this property must be a value assigned by the nonce consumer to represent the entity that generated the nonce. The value must never be null but may be the empty string. This value is treated as case-sensitive. Gets or sets the nonce that will protect the message from replay attacks. A property store of details of an incoming HTTP request. This serves a very similar purpose to , except that ASP.NET does not let us fully initialize that class, so we have to write one of our one. The HTTP verb in the request. The full request URL. The HTTP headers. The variables defined in the query part of the URL. The POSTed form variables. The server variables collection. Initializes a new instance of the class. The request. The request URI. Initializes a new instance of the class. The HTTP method. The request URI. The form variables. The HTTP headers. Initializes a new instance of the class. Details on the incoming HTTP request. Initializes a new instance of the class. The HTTP method. The request URI. The headers. The input stream. Creates an instance that describes the specified HTTP request. The request. The request URI. An instance of . Creates an instance that describes the specified HTTP request. The listener request. An instance of . Creates an instance that describes the specified HTTP request. The HTTP method. The request URI. The form variables. The HTTP headers. An instance of . Creates an instance that describes the specified HTTP request. The HTTP method. The request URI. The headers. The input stream. An instance of . Reads name=value pairs from the POSTed form entity when the HTTP headers indicate that that is the payload of the entity. The HTTP method. The headers. The input stream. The non-null collection of form variables. Gets the HTTP method. Gets the headers. Gets the URL. Gets the raw URL. Gets the form. Gets the query string. Gets the server variables. Code contract for the interface. Prevents a default instance of the class from being created. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. The contract a message that is signed must implement. This type might have appeared in the DotNetOpenAuth.Messaging.Bindings namespace since it is only used by types in that namespace, but all those types are internal and this is the only one that was public. Gets or sets the message signature. Serializes/deserializes OAuth messages for/from transit. The specific -derived type that will be serialized and deserialized using this class. Initializes a new instance of the MessageSerializer class. The specific -derived type that will be serialized and deserialized using this class. Creates or reuses a message serializer for a given message type. The type of message that will be serialized/deserialized. A message serializer for the given message type. Reads JSON as a flat dictionary into a message. The message dictionary to fill with the JSON-deserialized data. The JSON reader. Reads the data from a message instance and writes a XML/JSON encoding of it. The message to be serialized. The writer to use for the serialized form. Use to create the instance capable of emitting JSON. Reads XML/JSON into a message dictionary. The message to deserialize into. The XML/JSON to read into the message. Thrown when protocol rules are broken by the incoming message. Use to create the instance capable of reading JSON. Reads the data from a message instance and returns a series of name=value pairs for the fields that must be included in the message. The message to be serialized. The dictionary of values to send for the message. Reads name=value pairs into a message. The name=value pairs that were read in from the transport. The message to deserialize into. Thrown when protocol rules are broken by the incoming message. Determines whether the specified type is numeric. The type to test. true if the specified type is numeric; otherwise, false. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to Argument's {0}.{1} property is required but is empty or null.. Looks up a localized string similar to Unable to send all message data because some of it requires multi-part POST, but IMessageWithBinaryData.SendAsMultipart was false.. Looks up a localized string similar to HttpContext.Current is null. There must be an ASP.NET request in process for this operation to succeed.. Looks up a localized string similar to DataContractSerializer could not be initialized on message type {0}. Is it missing a [DataContract] attribute?. Looks up a localized string similar to DataContractSerializer could not be initialized on message type {0} because the DataContractAttribute.Namespace property is not set.. Looks up a localized string similar to An instance of type {0} was expected, but received unexpected derived type {1}.. Looks up a localized string similar to The directed message's Recipient property must not be null.. Looks up a localized string similar to The given set of options is not supported by this web request handler.. Looks up a localized string similar to Unable to instantiate the message part encoder/decoder type {0}.. Looks up a localized string similar to Error while deserializing message {0}.. Looks up a localized string similar to Error occurred while sending a direct message or getting the response.. Looks up a localized string similar to This exception was not constructed with a root request message that caused it.. Looks up a localized string similar to This exception must be instantiated with a recipient that will receive the error message, or a direct request message instance that this exception will respond to.. Looks up a localized string similar to Expected {0} message but received no recognizable message.. Looks up a localized string similar to The message part {0} was expected in the {1} message but was not found.. Looks up a localized string similar to The message expired at {0} and it is now {1}.. Looks up a localized string similar to Failed to add extra parameter '{0}' with value '{1}'.. Looks up a localized string similar to At least one of GET or POST flags must be present.. Looks up a localized string similar to This method requires a current HttpContext. Alternatively, use an overload of this method that allows you to pass in information without an HttpContext.. Looks up a localized string similar to Messages that indicate indirect transport must implement the {0} interface.. Looks up a localized string similar to Insecure web request for '{0}' aborted due to security requirements demanding HTTPS.. Looks up a localized string similar to The {0} message required protections {{{1}}} but the channel could only apply {{{2}}}.. Looks up a localized string similar to The customized binding element ordering is invalid.. Looks up a localized string similar to Some part(s) of the message have invalid values: {0}. Looks up a localized string similar to The incoming message had an invalid or missing nonce.. Looks up a localized string similar to An item with the same key has already been added.. Looks up a localized string similar to Message too large for a HTTP GET, and HTTP POST is not allowed for this message type.. Looks up a localized string similar to The {0} message does not support extensions.. Looks up a localized string similar to The value for {0}.{1} on member {1} was expected to derive from {2} but was {3}.. Looks up a localized string similar to Error while reading message '{0}' parameter '{1}' with value '{2}'.. Looks up a localized string similar to Message parameter '{0}' with value '{1}' failed to base64 decode.. Looks up a localized string similar to Error while preparing message '{0}' parameter '{1}' for sending.. Looks up a localized string similar to This message has a timestamp of {0}, which is beyond the allowable clock skew for in the future.. Looks up a localized string similar to Missing decryption key for bucket "{0}" handle "{1}". Looks up a localized string similar to A non-empty string was expected.. Looks up a localized string similar to A message response is already queued for sending in the response stream.. Looks up a localized string similar to This message has already been processed. This could indicate a replay attack in progress.. Looks up a localized string similar to This channel does not support replay protection.. Looks up a localized string similar to The following message parts had constant value requirements that were unsatisfied: {0}. Looks up a localized string similar to The following required non-empty parameters were empty in the {0} message: {1}. Looks up a localized string similar to The following required parameters were missing from the {0} message: {1}. Looks up a localized string similar to The binding element offering the {0} protection requires other protection that is not provided.. Looks up a localized string similar to The list is empty.. Looks up a localized string similar to The list contains a null element.. Looks up a localized string similar to An HttpContext.Current.Session object is required.. Looks up a localized string similar to Message signature was incorrect.. Looks up a localized string similar to This channel does not support signing messages. To support signing messages, a derived Channel type must override the Sign and IsSignatureValid methods.. Looks up a localized string similar to This message factory does not support message type(s): {0}. Looks up a localized string similar to The stream must have a known length.. Looks up a localized string similar to The stream's CanRead property returned false.. Looks up a localized string similar to The stream's CanWrite property returned false.. Looks up a localized string similar to Expected at most 1 binding element to apply the {0} protection, but more than one applied.. Looks up a localized string similar to The maximum allowable number of redirects were exceeded while requesting '{0}'.. Looks up a localized string similar to Unexpected buffer length.. Looks up a localized string similar to The array must not be empty.. Looks up a localized string similar to The empty string is not allowed.. Looks up a localized string similar to Expected direct response to use HTTP status code {0} but was {1} instead.. Looks up a localized string similar to Message parameter '{0}' had unexpected value '{1}'.. Looks up a localized string similar to Expected message {0} parameter '{1}' to have value '{2}' but had '{3}' instead.. Looks up a localized string similar to Expected message {0} but received {1} instead.. Looks up a localized string similar to Unexpected message type received.. Looks up a localized string similar to A null key was included and is not allowed.. Looks up a localized string similar to A null or empty key was included and is not allowed.. Looks up a localized string similar to A null value was included for key '{0}' and is not allowed.. Looks up a localized string similar to The type {0} or a derived type was expected, but {1} was given.. Looks up a localized string similar to {0} property has unrecognized value {1}.. Looks up a localized string similar to The URL '{0}' is rated unsafe and cannot be requested this way.. Looks up a localized string similar to This blob is not a recognized encryption format.. Looks up a localized string similar to The HTTP verb '{0}' is unrecognized and unsupported.. Looks up a localized string similar to '{0}' messages cannot be received with HTTP verb '{1}'.. Looks up a localized string similar to Redirects on POST requests that are to untrusted servers is not supported.. Looks up a localized string similar to Web request to '{0}' failed.. A grab-bag of utility methods useful for the channel stack of the protocol. The uppercase alphabet. The lowercase alphabet. The set of base 10 digits. The set of digits and alphabetic letters (upper and lowercase). All the characters that are allowed for use as a base64 encoding character. All the characters that are allowed for use as a base64 encoding character in the "web safe" context. The set of digits, and alphabetic letters (upper and lowercase) that are clearly visually distinguishable. The length of private symmetric secret handles. This value needn't be high, as we only expect to have a small handful of unexpired secrets at a time, and handle recycling is permissible. The cryptographically strong random data generator used for creating secrets. The random number generator is thread-safe. A pseudo-random data generator (NOT cryptographically strong random data) The default lifetime of a private secret. A character array containing just the = character. A character array containing just the , character. A character array containing just the " character. The set of characters that are unreserved in RFC 2396 but are NOT unreserved in RFC 3986. A set of escaping mappings that help secure a string from javscript execution. The characters to escape here are inspired by http://code.google.com/p/doctype/wiki/ArticleXSSInJavaScript Transforms an OutgoingWebResponse to an MVC-friendly ActionResult. The response to send to the user agent. The instance to be returned by the Controller's action method. Gets the original request URL, as seen from the browser before any URL rewrites on the server if any. Cookieless session directory (if applicable) is also included. The URL in the user agent's Location bar. Strips any and all URI query parameters that start with some prefix. The URI that may have a query with parameters to remove. The prefix for parameters to remove. A period is NOT automatically appended. Either a new Uri with the parameters removed if there were any to remove, or the same Uri instance if no parameters needed to be removed. Sends a multipart HTTP POST request (useful for posting files). The HTTP request. The request handler. The parts to include in the POST entity. The HTTP response. Assembles a message comprised of the message on a given exception and all inner exceptions. The exception. The assembled message. Flattens the specified sequence of sequences. The type of element contained in the sequence. The sequence of sequences to flatten. A sequence of the contained items. Cuts off precision beyond a second on a DateTime value. The value. A DateTime with a 0 millisecond component. Adds a name-value pair to the end of a given URL as part of the querystring piece. Prefixes a ? or & before first element as necessary. The UriBuilder to add arguments to. The name of the parameter to add. The value of the argument. If the parameters to add match names of parameters that already are defined in the query string, the existing ones are not replaced. Adds a set of values to a collection. The type of value kept in the collection. The collection to add to. The values to add to the collection. Tests whether two timespans are within reasonable approximation of each other. One TimeSpan. The other TimeSpan. The allowable margin of error. true if the two TimeSpans are within of each other. Clears any existing elements in a collection and fills the collection with a given set of values. The type of value kept in the collection. The collection to modify. The new values to fill the collection. Strips any and all URI query parameters that serve as parts of a message. The URI that may contain query parameters to remove. The message description whose parts should be removed from the URL. A cleaned URL. Sends a multipart HTTP POST request (useful for posting files) but doesn't call GetResponse on it. The HTTP request. The request handler. The parts to include in the POST entity. Assembles the content of the HTTP Authorization or WWW-Authenticate header. The scheme. The fields to include. A value prepared for an HTTP header. Parses the authorization header. The scheme. Must not be null or empty. The authorization header. May be null or empty. A sequence of key=value pairs discovered in the header. Never null, but may be empty. Encodes a symmetric key handle and the blob that is encrypted/signed with that key into a single string that can be decoded by . The cryptographic key handle. The encrypted/signed blob. The combined encoded value. Extracts the key handle and encrypted blob from a string previously returned from . The containing message. The message part. The value previously returned from . The crypto key handle. The encrypted/signed data. Gets a buffer of random data (not cryptographically strong). The length of the sequence to generate. The generated values, which may contain zeros. Gets a cryptographically strong random sequence of values. The length of the sequence to generate. The generated values, which may contain zeros. Gets a cryptographically strong random sequence of values. The length of the byte sequence to generate. A base64 encoding of the generated random data, whose length in characters will likely be greater than . Gets a random string made up of a given set of allowable characters. The length of the desired random string. The allowable characters. A random string. Computes the hash of a string. The hash algorithm to use. The value to hash. The encoding to use when converting the string to a byte array. A base64 encoded string. Computes the hash of a sequence of key=value pairs. The hash algorithm to use. The data to hash. The encoding to use when converting the string to a byte array. A base64 encoded string. Computes the hash of a sequence of key=value pairs. The hash algorithm to use. The data to hash. The encoding to use when converting the string to a byte array. A base64 encoded string. Encrypts a byte buffer. The buffer to encrypt. The symmetric secret to use to encrypt the buffer. Allowed values are 128, 192, or 256 bytes in length. The encrypted buffer Decrypts a byte buffer. The buffer to decrypt. The symmetric secret to use to decrypt the buffer. Allowed values are 128, 192, and 256. The encrypted buffer Encrypts a string. The text to encrypt. The symmetric secret to use to encrypt the buffer. Allowed values are 128, 192, and 256. The encrypted buffer Decrypts a string previously encrypted with . The text to decrypt. The symmetric secret to use to decrypt the buffer. Allowed values are 128, 192, and 256. The encrypted buffer Performs asymmetric encryption of a given buffer. The asymmetric encryption provider to use for encryption. The buffer to encrypt. The encrypted data. Performs asymmetric decryption of a given buffer. The asymmetric encryption provider to use for decryption. The buffer to decrypt. The decrypted data. Gets a key from a given bucket with the longest remaining life, or creates a new one if necessary. The crypto key store. The bucket where the key should be found or stored. The minimum remaining life required on the returned key. The required size of the key, in bits. A key-value pair whose key is the secret's handle and whose value is the cryptographic key. Compresses a given buffer. The buffer to compress. The compressed data. Decompresses a given buffer. The buffer to decompress. The decompressed data. Converts to data buffer to a base64-encoded string, using web safe characters and with the padding removed. The data buffer. A web-safe base64-encoded string without padding. Decodes a (web-safe) base64-string back to its binary buffer form. The base64-encoded string. May be web-safe encoded. A data buffer. Compares to string values for ordinal equality in such a way that its execution time does not depend on how much of the value matches. The first value. The second value. A value indicating whether the two strings share ordinal equality. In signature equality checks, a difference in execution time based on how many initial characters match MAY be used as an attack to figure out the expected signature. It is therefore important to make a signature equality check's execution time independent of how many characters match the expected value. See http://codahale.com/a-lesson-in-timing-attacks/ for more information. Adds a set of HTTP headers to an instance, taking care to set some headers to the appropriate properties of The headers to add. The instance to set the appropriate values to. Adds a set of HTTP headers to an instance, taking care to set some headers to the appropriate properties of The headers to add. The instance to set the appropriate values to. Copies the contents of one stream to another. The stream to copy from, at the position where copying should begin. The stream to copy to, at the position where bytes should be written. The maximum bytes to copy. The total number of bytes copied. Copying begins at the streams' current positions. The positions are NOT reset after copying is complete. Creates a snapshot of some stream so it is seekable, and the original can be closed. The stream to copy bytes from. A seekable stream with the same contents as the original. Clones an in order to send it again. The request to clone. The newly created instance. Clones an in order to send it again. The request to clone. The new recipient of the request. The newly created instance. Tests whether two arrays are equal in contents and ordering. The type of elements in the arrays. The first array in the comparison. May be null. The second array in the comparison. May be null. True if the arrays equal; false otherwise. Tests whether two arrays are equal in contents and ordering, guaranteeing roughly equivalent execution time regardless of where a signature mismatch may exist. The first array in the comparison. May not be null. The second array in the comparison. May not be null. True if the arrays equal; false otherwise. Guaranteeing equal execution time is useful in mitigating against timing attacks on a signature or other secret. Tests two sequences for same contents and ordering. The type of elements in the arrays. The first sequence in the comparison. May not be null. The second sequence in the comparison. May not be null. True if the arrays equal; false otherwise. Tests two unordered collections for same contents. The type of elements in the collections. The first collection in the comparison. May not be null. The second collection in the comparison. May not be null. True if the collections have the same contents; false otherwise. Tests whether two dictionaries are equal in length and contents. The type of keys in the dictionaries. The type of values in the dictionaries. The first dictionary in the comparison. May not be null. The second dictionary in the comparison. May not be null. True if the arrays equal; false otherwise. Concatenates a list of name-value pairs as key=value&key=value, taking care to properly encode each key and value for URL transmission according to RFC 3986. No ? is prefixed to the string. The dictionary of key/values to read from. The formulated querystring style string. Adds a set of name-value pairs to the end of a given URL as part of the querystring piece. Prefixes a ? or & before first element as necessary. The UriBuilder to add arguments to. The arguments to add to the query. If null, is not changed. If the parameters to add match names of parameters that already are defined in the query string, the existing ones are not replaced. Adds a set of name-value pairs to the end of a given URL as part of the fragment piece. Prefixes a # or & before first element as necessary. The UriBuilder to add arguments to. The arguments to add to the query. If null, is not changed. If the parameters to add match names of parameters that already are defined in the fragment, the existing ones are not replaced. Adds parameters to a query string, replacing parameters that match ones that already exist in the query string. The UriBuilder to add arguments to. The arguments to add to the query. If null, is not changed. Extracts the recipient from an HttpRequestInfo. The request to get recipient information from. The recipient. Thrown if the HTTP request is something we can't handle. Gets the enum value for a given HTTP verb. The HTTP verb. A enum value that is within the . Thrown if the HTTP request is something we can't handle. Gets the HTTP verb to use for a given enum value. The HTTP method. An HTTP verb, such as GET, POST, PUT, or DELETE. Copies some extra parameters into a message. The message to copy the extra data into. The extra data to copy into the message. May be null to do nothing. Collects a sequence of key=value pairs into a dictionary. The type of the key. The type of the value. The sequence. A dictionary. Converts a to an IDictionary<string, string>. The NameValueCollection to convert. May be null. The generated dictionary, or null if is null. If a null key is encountered, its value is ignored since Dictionary<string, string> does not allow null keys. Converts a to an IDictionary<string, string>. The NameValueCollection to convert. May be null. A value indicating whether a null key in the should be silently skipped since it is not a valid key in a Dictionary. Use true to throw an exception if a null key is encountered. Use false to silently continue converting the valid keys. The generated dictionary, or null if is null. Thrown if is true and a null key is encountered. Converts a dictionary to a The existing dictionary. The new collection. Sorts the elements of a sequence in ascending order by using a specified comparer. The type of the elements of source. The type of the key returned by keySelector. A sequence of values to order. A function to extract a key from an element. A comparison function to compare keys. An System.Linq.IOrderedEnumerable<TElement> whose elements are sorted according to a key. Determines whether the specified message is a request (indirect message or direct request). The message in question. true if the specified message is a request; otherwise, false. Although an may implement the interface, it may only be doing that for its derived classes. These objects are only requests if their property is non-null. Determines whether the specified message is a direct response. The message in question. true if the specified message is a direct response; otherwise, false. Although an may implement the interface, it may only be doing that for its derived classes. These objects are only requests if their property is non-null. Writes a buffer, prefixed with its own length. The binary writer. The buffer. Reads a buffer that is prefixed with its own length. The binary reader positioned at the buffer length. The read buffer. Constructs a Javascript expression that will create an object on the user agent when assigned to a variable. The untrusted names and untrusted values to inject into the JSON object. if set to true the values will NOT be escaped as if it were a pure string. The Javascript JSON object as a string. Prepares what SHOULD be simply a string value for safe injection into Javascript by using appropriate character escaping. The untrusted string value to be escaped to protected against XSS attacks. May be null. The escaped string, surrounded by single-quotes. Escapes a string according to the URI data string rules given in RFC 3986. The value to escape. The escaped value. The method is supposed to take on RFC 3986 behavior if certain elements are present in a .config file. Even if this actually worked (which in my experiments it doesn't), we can't rely on every host actually having this configuration element present. Ensures that UTC times are converted to local times. Unspecified kinds are unchanged. The date-time to convert. The date-time in local time. Ensures that local times are converted to UTC times. Unspecified kinds are unchanged. The date-time to convert. The date-time in UTC time. Gets the query data from the original request (before any URL rewriting has occurred.) The request. A containing all the parameters in the query string. Gets a value indicating whether the request's URL was rewritten by ASP.NET or some other module. The request. A value indicating whether there is evidence that the URL of the request has been changed to some internal server (farm) representation. true if this request's URL was rewritten; otherwise, false. Gets the public facing URL for the given incoming HTTP request. The request. The server variables to consider part of the request. The URI that the outside world used to create this request. Although the value can be obtained from , it's useful to be able to pass them in so we can simulate injected values from our unit tests since the actual property is a read-only kind of . Gets the public facing URL for the given incoming HTTP request. The request. The URI that the outside world used to create this request. Gets the query or form data from the original request (before any URL rewriting has occurred.) The request. A set of name=value pairs. Creates a symmetric algorithm for use in encryption/decryption. The symmetric key to use for encryption/decryption. A symmetric algorithm. A class to convert a into an . The type of objects being compared. The comparison method to use. Initializes a new instance of the ComparisonHelper class. The comparison method to use. Compares two instances of . The first object to compare. The second object to compare. Any of -1, 0, or 1 according to standard comparison rules. A message expiration enforcing binding element that supports messages implementing the interface. Initializes a new instance of the class. Sets the timestamp on an outgoing message. The outgoing message. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Reads the timestamp on a message and throws an exception if the message is too old. The incoming message. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown if the given message has already expired. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Gets the protection offered by this binding element. Gets or sets the channel that this binding element belongs to. Gets the maximum age a message implementing the interface can be before being discarded as too old. A pair of conversion functions to map some type to a string and back again. The mapping function that converts some custom type to a string. The mapping function that converts some custom type to the original string (possibly non-normalized) that represents it. The mapping function that converts a string to some custom type. Initializes a new instance of the struct. The mapping function that converts some custom value to a string. The mapping function that converts some custom value to its original (non-normalized) string. May be null if the same as the function. The mapping function that converts a string to some custom value. Initializes a new instance of the struct. The encoder. A mapping between serialized key names and instances describing those key/values pairs. A mapping between the serialized key names and their describing instances. Initializes a new instance of the class. Type of the message. The message version. Returns a that represents this instance. A that represents this instance. Gets a dictionary that provides read/write access to a message. The message the dictionary should provide access to. The dictionary accessor to the message Gets a dictionary that provides read/write access to a message. The message the dictionary should provide access to. A value indicating whether this message dictionary will retrieve original values instead of normalized ones. The dictionary accessor to the message Ensures the message parts pass basic validation. The key/value pairs of the serialized message. Tests whether all the required message parts pass basic validation for the given data. The key/value pairs of the serialized message. A value indicating whether the provided data fits the message's basic requirements. Verifies that a given set of keys include all the required parameters for this message type or throws an exception. The names of all parameters included in a message. if set to true an exception is thrown on failure with details. A value indicating whether the provided data fits the message's basic requirements. Thrown when required parts of a message are not in if is true. Ensures the protocol message parts that must not be empty are in fact not empty. A dictionary of key/value pairs that make up the serialized message. if set to true an exception is thrown on failure with details. A value indicating whether the provided data fits the message's basic requirements. Thrown when required parts of a message are not in if is true. Checks that a bunch of message part values meet the constant value requirements of this message description. The part values. if set to true, this method will throw on failure. A value indicating whether all the requirements are met. Reflects over some -implementing type and prepares to serialize/deserialize instances of that type. Gets the mapping between the serialized key names and their describing instances. Gets the message version this instance was generated from. Gets the type of message this instance was generated from. The type of the described message. Gets the constructors available on the message type. Wraps an instance in a dictionary that provides access to both well-defined message properties and "extra" name/value pairs that have no properties associated with them. The instance manipulated by this dictionary. The instance that describes the message type. Whether original string values should be retrieved instead of normalized ones. Initializes a new instance of the class. The message instance whose values will be manipulated by this dictionary. The message description. A value indicating whether this message dictionary will retrieve original values instead of normalized ones. Adds a named value to the message. The serialized form of the name whose value is being set. The serialized form of the value. Thrown if already has a set value in this message. Thrown if is null. Checks whether some named parameter has a value set in the message. The serialized form of the message part's name. True if the parameter by the given name has a set value. False otherwise. Removes a name and value from the message given its name. The serialized form of the name to remove. True if a message part by the given name was found and removed. False otherwise. Gets some named value if the key has a value. The name (in serialized form) of the value being sought. The variable where the value will be set. True if the key was found and was set. False otherwise. Sets a named value in the message. The name-value pair to add. The name is the serialized form of the key. Removes all values in the message. Removes all items from the . The is read-only. This method cannot be implemented because keys are not guaranteed to be removed since some are inherent to the type of message that this dictionary provides access to. Checks whether a named value has been set on the message. The name/value pair. True if the key exists and has the given value. False otherwise. Copies all the serializable data from the message to a key/value array. The array to copy to. The index in the to begin copying to. Removes a named value from the message if it exists. The serialized form of the name and value to remove. True if the name/value was found and removed. False otherwise. Gets an enumerator that generates KeyValuePair<string, string> instances for all the key/value pairs that are set in the message. The enumerator that can generate the name/value pairs. Gets an enumerator that generates KeyValuePair<string, string> instances for all the key/value pairs that are set in the message. The enumerator that can generate the name/value pairs. Saves the data in a message to a standard dictionary. The generated dictionary. Loads data from a dictionary into the message. The data to load into the message. Gets the message this dictionary provides access to. Gets the description of the type of message this dictionary provides access to. Gets the number of explicitly set values in the message. Gets a value indicating whether this message is read only. Gets all the keys that have values associated with them. Gets the set of official message part names that have non-null values associated with them. Gets the keys that are in the message but not declared as official OAuth properties. Gets all the values. Gets the serializer for the message this dictionary provides access to. Gets or sets a value for some named value. The serialized form of a name for the value to read or write. The named value. If the key matches a declared property or field on the message type, that type member is set. Otherwise the key/value is stored in a dictionary for extra (weakly typed) strings. Thrown when setting a value that is not allowed for a given . Describes an individual member of a message and assists in its serialization. A map of converters that help serialize custom objects to string values and back again. A map of instantiated custom encoders used to encode/decode message parts. The string-object conversion routines to use for this individual message part. The property that this message part is associated with, if aplicable. The field that this message part is associated with, if aplicable. The type of the message part. (Not the type of the message itself). The default (uninitialized) value of the member inherent in its type. Initializes static members of the class. Initializes a new instance of the class. A property or field of an implementing type that has a attached to it. The attribute discovered on that describes the serialization requirements of the message part. Sets the member of a given message to some given value. Used in deserialization. The message instance containing the member whose value should be set. The string representation of the value to set. Gets the normalized form of a value of a member of a given message. Used in serialization. The message instance to read the value from. The string representation of the member's value. Gets the value of a member of a given message. Used in serialization. The message instance to read the value from. A value indicating whether the original value should be retrieved (as opposed to a normalized form of it). The string representation of the member's value. Gets whether the value has been set to something other than its CLR type default value. The message instance to check the value on. True if the value is not the CLR default value. Adds a pair of type conversion functions to the static conversion map. The custom type to convert to and from strings. The function to convert the custom type to a string. The mapping function that converts some custom value to its original (non-normalized) string. May be null if the same as the function. The function to convert a string to the custom type. Creates a that resorts to and for the conversion. The type to create the mapping for. The value mapping. Creates the default encoder for a given type. The type to create a for. A struct. Figures out the CLR default value for a given type. The type whose default value is being sought. Either null, or some default value like 0 or 0.0. Checks whether a type is a nullable value type (i.e. int?) The type in question. True if this is a nullable value type. Retrieves a previously instantiated encoder of a given type, or creates a new one and stores it for later retrieval as well. The message part encoder type. An instance of the desired encoder. Gets the value of the message part, without converting it to/from a string. The message instance to read from. The value of the member. Sets the value of a message part directly with a given value. The message instance to read from. The value to set on the this part. Converts a string representation of the member's value to the appropriate type. The string representation of the member's value. An instance of the appropriate type for setting the member. Converts the member's value to its string representation. The value of the member. A value indicating whether a string matching the originally decoded string should be returned (as opposed to a normalized string). The string representation of the member's value. Validates that the message part and its attribute have agreeable settings. Thrown when a non-nullable value type is set as optional. Gets or sets the name to use when serializing or deserializing this parameter in a message. Gets or sets whether this message part must be signed. Gets or sets a value indicating whether this message part is required for the containing message to be valid. Gets or sets a value indicating whether the string value is allowed to be empty in the serialized message. Gets or sets a value indicating whether the field or property must remain its default value. Gets or sets a value indicating whether this part is defined as a constant field and can be read without a message instance. Gets the static constant value for this message part without a message instance. Gets the type of the declared member. An exception thrown when messages cannot receive all the protections they require. Initializes a new instance of the class. The message whose protection requirements could not be met. The protection requirements that were fulfilled. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. A protocol message (request or response) that passes from this to a remote party via the user agent using a redirect or form POST submission, OR a direct message response. An instance of this type describes the HTTP response that must be sent in response to the current HTTP request. It is important that this response make up the entire HTTP response. A hosting ASPX page should not be allowed to render its normal HTML output after this response is sent. The normal rendered output of an ASPX page can be canceled by calling after this message is sent on the response stream. The encoder to use for serializing the response body. Initializes a new instance of the class. Initializes a new instance of the class based on the contents of an . The to clone. The maximum bytes to read from the response stream. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Automatically sends the appropriate response to the user agent and ends execution on the current page or handler. Typically thrown by ASP.NET in order to prevent additional data from the page being sent to the client and corrupting the response. Requires a current HttpContext. Automatically sends the appropriate response to the user agent and ends execution on the current page or handler. The context of the HTTP request whose response should be set. Typically this is . Typically thrown by ASP.NET in order to prevent additional data from the page being sent to the client and corrupting the response. Automatically sends the appropriate response to the user agent and ends execution on the current page or handler. The context of the HTTP request whose response should be set. Typically this is . Typically thrown by ASP.NET in order to prevent additional data from the page being sent to the client and corrupting the response. Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. Not safe to call from ASP.NET web forms. Requires a current HttpContext. This call is not safe to make from an ASP.NET web form (.aspx file or code-behind) because ASP.NET will render HTML after the protocol message has been sent, which will corrupt the response. Use the method instead for web forms. Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. Not safe to call from ASP.NET web forms. The context of the HTTP request whose response should be set. Typically this is . This call is not safe to make from an ASP.NET web form (.aspx file or code-behind) because ASP.NET will render HTML after the protocol message has been sent, which will corrupt the response. Use the method instead for web forms. Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. Not safe to call from ASP.NET web forms. The context of the HTTP request whose response should be set. Typically this is . This call is not safe to make from an ASP.NET web form (.aspx file or code-behind) because ASP.NET will render HTML after the protocol message has been sent, which will corrupt the response. Use the method instead for web forms. Automatically sends the appropriate response to the user agent. The response to set to this message. Gets the URI that, when requested with an HTTP GET request, would transmit the message that normally would be transmitted via a user agent redirect. The channel to use for encoding. The URL that would transmit the original message. This URL may exceed the normal 2K limit, and should therefore be broken up manually and POSTed as form fields when it exceeds this length. This is useful for desktop applications that will spawn a user agent to transmit the message rather than cause a redirect. Sets the response to some string, encoded as UTF-8. The string to set the response to. Type of the content. May be null. Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. The context of the HTTP request whose response should be set. Typically this is . If set to false, this method calls rather than to avoid a . Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. The context of the HTTP request whose response should be set. Typically this is . If set to false, this method calls rather than to avoid a . Gets the headers that must be included in the response to the user agent. The headers in this collection are not meant to be a comprehensive list of exactly what should be sent, but are meant to augment whatever headers are generally included in a typical response. Gets the body of the HTTP response. Gets a value indicating whether the response stream is incomplete due to a length limitation imposed by the HttpWebRequest or calling method. Gets or sets the body of the response as a string. Gets the HTTP status code to use in the HTTP response. Gets or sets a reference to the actual protocol message that is being sent via the user agent. The methods available for the local party to send messages to a remote party. See OAuth 1.0 spec section 5.2. No HTTP methods are allowed. In the HTTP Authorization header as defined in OAuth HTTP Authorization Scheme (OAuth HTTP Authorization Scheme). As the HTTP POST request body with a content-type of application/x-www-form-urlencoded. Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). The flags that control HTTP verbs. The type of transport mechanism used for a message: either direct or indirect. A message that is sent directly from the Consumer to the Service Provider, or vice versa. A message that is sent from one party to another via a redirect in the user agent. Encodes and decodes the as an integer of total seconds. Initializes a new instance of the class. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. A paranoid HTTP get/post request engine. It helps to protect against attacks from remote server leaving dangling connections, sending too much data, causing requests against internal servers, etc. Protections include: * Conservative maximum time to receive the complete response. * Only HTTP and HTTPS schemes are permitted. * Internal IP address ranges are not permitted: 127.*.*.*, 1::* * Internal host names are not permitted (periods must be found in the host name) If a particular host would be permitted but is in the blacklist, it is not allowed. If a particular host would not be permitted but is in the whitelist, it is allowed. The set of URI schemes allowed in untrusted web requests. The collection of blacklisted hosts. The collection of regular expressions used to identify additional blacklisted hosts. The collection of whitelisted hosts. The collection of regular expressions used to identify additional whitelisted hosts. The maximum redirections to follow in the course of a single request. The maximum number of bytes to read from the response of an untrusted server. The handler that will actually send the HTTP request and collect the response once the untrusted server gates have been satisfied. Initializes a new instance of the class. Initializes a new instance of the class. The chained web request handler. Determines whether this instance can support the specified options. The set of options that might be given in a subsequent web request. true if this instance can support the specified options; otherwise, false. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The options to apply to this web request. The writer the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Processes an and converts the to a instance. The to handle. The options to apply to this web request. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The writer the caller should write out the entity data to. Processes an and converts the to a instance. The to handle. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Determines whether an IP address is the IPv6 equivalent of "localhost/127.0.0.1". The ip address to check. true if this is a loopback IP address; false otherwise. Determines whether the given host name is in a host list or host name regex list. The host name. The list of host names. The list of regex patterns of host names. true if the specified host falls within at least one of the given lists; otherwise, false. Determines whether a given host is whitelisted. The host name to test. true if the host is whitelisted; otherwise, false. Determines whether a given host is blacklisted. The host name to test. true if the host is blacklisted; otherwise, false. Verify that the request qualifies under our security policies The request URI. If set to true, only web requests that can be made entirely over SSL will succeed. Thrown when the URI is disallowed for security reasons. Determines whether a URI is allowed based on scheme and host name. No requireSSL check is done here The URI to test for whether it should be allowed. true if [is URI allowable] [the specified URI]; otherwise, false. Prepares the request by setting timeout and redirect policies. The request to prepare. true if this is a POST request whose headers have not yet been sent out; false otherwise. Gets or sets the default maximum bytes to read in any given HTTP request. Default is 1MB. Cannot be less than 2KB. Gets or sets the total number of redirections to allow on any one request. Default is 10. Gets or sets the time allowed to wait for single read or write operation to complete. Default is 500 milliseconds. Gets or sets the time allowed for an entire HTTP request. Default is 5 seconds. Gets a collection of host name literals that should be allowed even if they don't pass standard security checks. Gets a collection of host name regular expressions that indicate hosts that should be allowed even though they don't pass standard security checks. Gets a collection of host name literals that should be rejected even if they pass standard security checks. Gets a collection of host name regular expressions that indicate hosts that should be rejected even if they pass standard security checks. Gets the configuration for this class that is specified in the host's .config file. The default handler for transmitting instances and returning the responses. The set of options this web request handler supports. The value to use for the User-Agent HTTP header. Determines whether this instance can support the specified options. The set of options that might be given in a subsequent web request. true if this instance can support the specified options; otherwise, false. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The writer the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The options to apply to this web request. The writer the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Processes an and converts the to a instance. The to handle. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Processes an and converts the to a instance. The to handle. The options to apply to this web request. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Determines whether an exception was thrown because of the remote HTTP server returning HTTP 417 Expectation Failed. The caught exception. true if the failure was originally caused by a 417 Exceptation Failed error; otherwise, false. Initiates a POST request and prepares for sending data. The HTTP request with information about the remote party to contact. The stream where the POST entity can be written. Prepares an HTTP request. The request. true if this is a POST request whose headers have not yet been sent out; false otherwise. An immutable description of a URL that receives messages. Initializes a new instance of the class. The URL of this endpoint. The HTTP method(s) allowed. Initializes a new instance of the class. The URL of this endpoint. The HTTP method(s) allowed. Gets the URL of this endpoint. Gets the HTTP method(s) allowed. Represents the section in the host's .config file that configures this library's settings. The name of the section under which this library's settings must be found. The name of the <openid> sub-element. The name of the <oauth> sub-element. Initializes a new instance of the class. Gets a named section in this section group, or null if no such section is defined. The name of the section to obtain. The desired section, or null if it could not be obtained. Gets the messaging configuration element. Gets the reporting configuration element. Represents the <messaging> element in the host's .config file. The name of the <webResourceUrlProvider> sub-element. The name of the <untrustedWebRequest> sub-element. The name of the attribute that stores the association's maximum lifetime. The name of the attribute that stores the maximum allowable clock skew. The name of the attribute that indicates whether to disable SSL requirements across the library. The name of the attribute that controls whether messaging rules are strictly followed. The default value for the property. 2KB, recommended by OpenID group The name of the attribute that controls the maximum length of a URL before it is converted to a POST payload. Gets the name of the @privateSecretMaximumAge attribute. The name of the <messaging> sub-element. Gets the configuration section from the .config file. Gets the actual maximum message lifetime that a program should allow. The sum of the and property values. Gets or sets the maximum lifetime of a private symmetric secret, that may be used for signing or encryption. The default value is 28 days (twice the age of the longest association). Gets or sets the time between a message's creation and its receipt before it is considered expired. The default value value is 3 minutes. Smaller timespans mean lower tolerance for delays in message delivery. Larger timespans mean more nonces must be stored to provide replay protection. The maximum age a message implementing the interface can be before being discarded as too old. This time limit should NOT take into account expected time skew for servers across the Internet. Time skew is added to this value and is controlled by the property. Gets or sets the maximum clock skew. The default value is 10 minutes. Smaller timespans mean lower tolerance for time variance due to server clocks not being synchronized. Larger timespans mean greater chance for replay attacks and larger nonce caches. For example, if a server could conceivably have its clock d = 5 minutes off UTC time, then any two servers could have their clocks disagree by as much as 2*d = 10 minutes. Gets or sets a value indicating whether SSL requirements within the library are disabled/relaxed. Use for TESTING ONLY. Gets or sets a value indicating whether messaging rules are strictly adhered to. true by default. Strict will require that remote parties adhere strictly to the specifications, even when a loose interpretation would not compromise security. true is a good default because it shakes out interoperability bugs in remote services so they can be identified and corrected. But some web sites want things to Just Work more than they want to file bugs against others, so false is the setting for them. Gets or sets the configuration for the class. The untrusted web request. Gets or sets the maximum allowable size for a 301 Redirect response before we send a 200 OK response with a scripted form POST with the parameters instead in order to ensure successfully sending a large payload to another server that might have a maximum allowable size restriction on its GET request. The default value is 2048. Gets or sets the embedded resource retrieval provider. The embedded resource retrieval provider. Represents the <reporting> element in the host's .config file. The name of the @enabled attribute. The name of the @minimumReportingInterval attribute. The name of the @minimumFlushInterval attribute. The name of the @includeFeatureUsage attribute. The name of the @includeEventStatistics attribute. The name of the @includeLocalRequestUris attribute. The name of the @includeCultures attribute. The name of the <reporting> sub-element. The default value for the @minimumFlushInterval attribute. Initializes a new instance of the class. Gets the configuration section from the .config file. Gets or sets a value indicating whether this reporting is enabled. true if enabled; otherwise, false. Gets or sets the maximum frequency that reports will be published. Gets or sets the maximum frequency the set can be flushed to disk. Gets or sets a value indicating whether to include a list of library features used in the report. true to include a report of features used; otherwise, false. Gets or sets a value indicating whether to include statistics of certain events such as authentication success and failure counting, and can include remote endpoint URIs. true to include event counters in the report; otherwise, false. Gets or sets a value indicating whether to include a few URLs to pages on the hosting web site that host DotNetOpenAuth components. Gets or sets a value indicating whether to include the cultures requested by the user agent on pages that host DotNetOpenAuth components. A configuration collection of trusted OP Endpoints. The name of the "rejectAssertionsFromUntrustedProviders" element. Initializes a new instance of the class. Initializes a new instance of the class. The elements to initialize the collection with. When overridden in a derived class, creates a new . A new . Gets the element key for a specified configuration element when overridden in a derived class. The to return the key for. An that acts as the key for the specified . Gets or sets a value indicating whether any login attempt coming from an OpenID Provider Endpoint that is not on this whitelist of trusted OP Endpoints will be rejected. If the trusted providers list is empty and this value is true, all assertions are rejected. A configuration element that records a trusted Provider Endpoint. The name of the attribute that stores the value. Initializes a new instance of the class. Gets or sets the OpenID Provider Endpoint (aka "OP Endpoint") that this relying party trusts. A collection of . The type that all types specified in the elements must derive from. Initializes a new instance of the TypeConfigurationCollection class. Initializes a new instance of the TypeConfigurationCollection class. The elements that should be added to the collection initially. Creates instances of all the types listed in the collection. if set to true then internal types may be instantiated. A sequence of instances generated from types in this collection. May be empty, but never null. When overridden in a derived class, creates a new . A new . Gets the element key for a specified configuration element when overridden in a derived class. The to return the key for. An that acts as the key for the specified . Represents an element in a .config file that allows the user to provide a @type attribute specifying the full type that provides some service used by this library. A constraint on the type the user may provide. The name of the attribute whose value is the full name of the type the user is specifying. The name of the attribute whose value is the path to the XAML file to deserialize to obtain the type. Initializes a new instance of the TypeConfigurationElement class. Creates an instance of the type described in the .config file. The value to return if no type is given in the .config file. The newly instantiated type. Creates an instance of the type described in the .config file. The value to return if no type is given in the .config file. if set to true then internal types may be instantiated. The newly instantiated type. Creates the instance from xaml. The stream of xaml to deserialize. The deserialized object. This exists as its own method to prevent the CLR's JIT compiler from failing to compile the CreateInstance method just because the PresentationFramework.dll may be missing (which it is on some shared web hosts). This way, if the XamlSource attribute is never used, the PresentationFramework.dll never need be present. Gets or sets the full name of the type. The full name of the type, such as: "ConsumerPortal.Code.CustomStore, ConsumerPortal". Gets or sets the path to the XAML file to deserialize to obtain the instance. Gets the type described in the .config file. Gets a value indicating whether this type has no meaningful type to instantiate. Represents the section of a .config file where security policies regarding web requests to user-provided, untrusted servers is controlled. Gets the name of the @timeout attribute. Gets the name of the @readWriteTimeout attribute. Gets the name of the @maximumBytesToRead attribute. Gets the name of the @maximumRedirections attribute. Gets the name of the @whitelistHosts attribute. Gets the name of the @whitelistHostsRegex attribute. Gets the name of the @blacklistHosts attribute. Gets the name of the @blacklistHostsRegex attribute. Gets or sets the read/write timeout after which an HTTP request will fail. Gets or sets the timeout after which an HTTP request will fail. Gets or sets the maximum bytes to read from an untrusted web server. Gets or sets the maximum redirections that will be followed before an HTTP request fails. Gets or sets the collection of hosts on the whitelist. Gets or sets the collection of hosts on the blacklist. Gets or sets the collection of regular expressions that describe hosts on the whitelist. Gets or sets the collection of regular expressions that describe hosts on the blacklist. Represents a collection of child elements that describe host names either as literal host names or regex patterns. Initializes a new instance of the class. Creates a new child host name element. A new . Gets the element key for a specified configuration element. The to return the key for. An that acts as the key for the specified . Gets all the members of the collection assuming they are all literal host names. Gets all the members of the collection assuming they are all host names regex patterns. Represents the name of a single host or a regex pattern for host names. Gets the name of the @name attribute. Initializes a new instance of the class. Initializes a new instance of the class. The default value of the property. Gets or sets the name of the host on the white or black list. An interface that provides URLs from which embedded resources can be obtained. Gets the URL from which the given manifest resource may be downloaded by the user agent. Some type in the assembly containing the desired resource. Manifest name of the desired resource. An absolute URL. A general logger for the entire DotNetOpenAuth library. Because this logger is intended for use with non-localized strings, the overloads that take have been removed, and is used implicitly. The instance that is to be used by this static Logger for the duration of the appdomain. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Creates an additional logger on demand for a subsection of the application. A name that will be included in the log file. The instance created with the given name. Creates the main logger for the library, and emits an INFO message that is the name and version of the library. A name that will be included in the log file. The instance created with the given name. Creates an additional logger on demand for a subsection of the application. A type whose full name that will be included in the log file. The instance created with the given type name. Discovers the presence of Log4net.dll and other logging mechanisms and returns the best available logger. The name of the log to initialize. The instance of the logger to use. Gets the logger for general library logging. Gets the logger for service discovery and selection events. Gets the logger for Messaging events. Gets the logger for Channel events. Gets the logger for binding elements and binding-element related events on the channel. Gets the logger specifically used for logging verbose text on everything about the signing process. Gets the logger for HTTP-level events. Gets the logger for events logged by ASP.NET controls. Gets the logger for high-level OpenID events. Gets the logger for high-level OAuth events. Gets the logger for high-level InfoCard events. The ILog interface is use by application to log messages into the log4net framework. Use the to obtain logger instances that implement this interface. The static method is used to get logger instances. This class contains methods for logging at different levels and also has properties for determining if those logging levels are enabled in the current configuration. This interface can be implemented in different ways. This documentation specifies reasonable behavior that a caller can expect from the actual implementation, however different implementations reserve the right to do things differently. Simple example of logging messages ILog log = LogManager.GetLogger("application-log"); log.Info("Application Start"); log.Debug("This is a debug message"); if (log.IsDebugEnabled) { log.Debug("This is another debug message"); } Nicko Cadell Gert Driesen Log a message object with the level. Log a message object with the level. The message object to log. This method first checks if this logger is DEBUG enabled by comparing the level of this logger with the level. If this logger is DEBUG enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. Log a message object with the level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Log a message object with the level. Logs a message object with the level. This method first checks if this logger is INFO enabled by comparing the level of this logger with the level. If this logger is INFO enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. The message object to log. Logs a message object with the INFO level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted message string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Log a message object with the level. Log a message object with the level. This method first checks if this logger is WARN enabled by comparing the level of this logger with the level. If this logger is WARN enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. The message object to log. Log a message object with the level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted message string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Log a message object with the level. Logs a message object with the level. The message object to log. This method first checks if this logger is ERROR enabled by comparing the level of this logger with the level. If this logger is ERROR enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. Log a message object with the level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted message string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Log a message object with the level. Log a message object with the level. This method first checks if this logger is FATAL enabled by comparing the level of this logger with the level. If this logger is FATAL enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. The message object to log. Log a message object with the level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted message string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. This function is intended to lessen the computational cost of disabled log debug statements. For some ILog interface log, when you write: log.Debug("This is entry number: " + i ); You incur the cost constructing the message, string construction and concatenation in this case, regardless of whether the message is logged or not. If you are worried about speed (who isn't), then you should write: if (log.IsDebugEnabled) { log.Debug("This is entry number: " + i ); } This way you will not incur the cost of parameter construction if debugging is disabled for log. On the other hand, if the log is debug enabled, you will incur the cost of evaluating whether the logger is debug enabled twice. Once in and once in the . This is an insignificant overhead since evaluating a logger takes about 1% of the time it takes to actually log. This is the preferred style of logging. Alternatively if your logger is available statically then the is debug enabled state can be stored in a static variable like this: private static readonly bool isDebugEnabled = log.IsDebugEnabled; Then when you come to log you can write: if (isDebugEnabled) { log.Debug("This is entry number: " + i ); } This way the debug enabled state is only queried once when the class is loaded. Using a private static readonly variable is the most efficient because it is a run time constant and can be heavily optimized by the JIT compiler. Of course if you use a static readonly variable to hold the enabled state of the logger then you cannot change the enabled state at runtime to vary the logging that is produced. You have to decide if you need absolute speed or runtime flexibility. Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. For more information see . Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. For more information see . Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. For more information see . Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. For more information see . Returns a new log4net logger if it exists, or returns null if the assembly cannot be found. The created instance. Creates the log4net.LogManager. Call ONLY after log4net.dll is known to be present. The created instance. Returns a new logger that does nothing when invoked. The created instance. See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . Returns a new logger that uses the class if sufficient CAS permissions are granted to use it, otherwise returns false. The created instance. See . See . See . See . See . Represents a read-only dictionary. The type of the key. The type of the value. Contains base dictionary. Initializes a new instance of the class. The base dictionary. Adds an element with the provided key and value to the . The object to use as the key of the element to add. The object to use as the value of the element to add. is null. An element with the same key already exists in the . The is read-only. Determines whether the contains an element with the specified key. The key to locate in the . true if the contains an element with the key; otherwise, false. is null. Removes the element with the specified key from the . The key of the element to remove. true if the element is successfully removed; otherwise, false. This method also returns false if was not found in the original . is null. The is read-only. Gets the value associated with the specified key. The key whose value to get. When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. true if the object that implements contains an element with the specified key; otherwise, false. is null. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Copies to. The array. Index of the array. Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Gets an containing the keys of the . An containing the keys of the object that implements . Gets an containing the values in the . An containing the values in the object that implements . Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Gets or sets the element with the specified key. The key being read or written. The element with the specified key. is null. The property is retrieved and is not found. The property is set and the is read-only. The statistical reporting mechanism used so this library's project authors know what versions and features are in use. A UTF8 encoder that doesn't emit the preamble. Used for mid-stream writers. A value indicating whether reporting is desirable or not. Must be logical-AND'd with !. A value indicating whether reporting experienced an error and cannot be enabled. A value indicating whether the reporting class has been initialized or not. The object to lock during initialization. The isolated storage to use for collecting data in between published reports. The GUID that shows up at the top of all reports from this user/machine/domain. The recipient of collected reports. The outgoing HTTP request handler to use for publishing reports. A few HTTP request hosts and paths we've seen. Cultures that have come in via HTTP requests. Features that have been used. A collection of all the observations to include in the report. The named events that we have counters for. The lock acquired while considering whether to publish a report. The time that we last published reports. Initializes static members of the class. Initializes a new instance of the class. Records an event occurrence. Name of the event. The category within the event. Null and empty strings are allowed, but considered the same. Records an event occurence. The object whose type name is the event name to record. The category within the event. Null and empty strings are allowed, but considered the same. Records the use of a feature by name. The feature. Records the use of a feature by object type. The object whose type is the feature to set as used. Records the use of a feature by object type. The object whose type is the feature to set as used. Some dependency used by . Records the use of a feature by object type. The object whose type is the feature to set as used. Some dependency used by . Some dependency used by . Records statistics collected from incoming requests. The request. Called by every internal/public method on this class to give periodic operations a chance to run. Initializes Reporting if it has not been initialized yet. Assembles a report for submission. A stream that contains the report. Sends the usage reports to the library authors. A value indicating whether submitting the report was successful. Interprets the reporting response as a log message if possible. The line from the HTTP response to interpret as a log message. Sends the stats report asynchronously, and careful to not throw any unhandled exceptions. Gets the isolated storage to use for reporting. An isolated storage location appropriate for our host. Gets a unique, pseudonymous identifier for this particular web site or application. A GUID that will serve as the identifier. The identifier is made persistent by storing the identifier in isolated storage. If an existing identifier is not found, a new one is created, persisted, and returned. Sanitizes the name of the file so it only includes valid filename characters. The filename to sanitize. The filename, with any and all invalid filename characters replaced with the hyphen (-) character. Gets or sets a value indicating whether this reporting is enabled. true if enabled; otherwise, false. Setting this property to true may have no effect if reporting has already experienced a failure of some kind. Gets the observed features. Gets the configuration to use for reporting. A set of values that persist the set to disk. The isolated persistent storage. The persistent reader. The persistent writer. The total set of elements. The maximum number of elements to track before not storing new elements. The set of new elements added to the since the last flush. The time the last flush occurred. A flag indicating whether the set has changed since it was last flushed. Initializes a new instance of the class. The storage location. Name of the file. The maximum number of elements to track. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Adds a value to the set. The value. Flushes any newly added values to disk. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets a value indicating whether the hashset has reached capacity and is not storing more elements. true if this instance is full; otherwise, false. Gets the name of the file. The name of the file. A feature usage counter. The separator to use between category names and their individual counters. The isolated persistent storage. The persistent reader. The persistent writer. The time the last flush occurred. The in-memory copy of the counter. A flag indicating whether the set has changed since it was last flushed. Initializes a new instance of the class. The storage location. Name of the file. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Increments the counter. The category within the event. Null and empty strings are allowed, but considered the same. Flushes any newly added values to disk. Resets all counters. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the name of the file. The name of the file. Argument validation checks that throw some kind of ArgumentException when they fail (unless otherwise noted). Validates that a given parameter is not null. The type of the parameter The value. Name of the parameter. The tested value, guaranteed to not be null. Validates that a parameter is not null or empty. The value. Name of the parameter. Validates that an array is not null or empty. The type of the elements in the sequence. The value. Name of the parameter. Validates that an argument is either null or is a sequence with no null elements. The type of elements in the sequence. The sequence. Name of the parameter. Validates some expression describing the acceptable range for an argument evaluates to true. The expression that must evaluate to true to avoid an . Name of the parameter. The message to include with the exception. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . Name of the parameter. The message to include with the exception. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . Name of the parameter. The unformatted message. Formatting arguments. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . The message to include with the exception. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . The unformatted message. Formatting arguments. Validates that some argument describes a type that is or derives from a required type. The type that the argument must be or derive from. The type given in the argument. Name of the parameter. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . The message. Throws an if a condition does not evaluate to true. The expression that must evaluate to true to avoid an . The message. Throws an Name of the parameter. The message. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to The configuration-specified type {0} must be public, and is not.. Looks up a localized string similar to The configuration XAML reference to {0} requires a current HttpContext to resolve.. Looks up a localized string similar to The current IHttpHandler is not one of types: {0}. An embedded resource URL provider must be set in your .config file.. Looks up a localized string similar to The empty string is not allowed.. Looks up a localized string similar to The argument has an unexpected value.. Looks up a localized string similar to No current HttpContext was detected, so an {0} instance must be explicitly provided or specified in the .config file. Call the constructor overload that takes an {0}.. Utility methods for working with URIs. Tests a URI for the presence of an OAuth payload. The URI to test. The prefix. True if the URI contains an OAuth message. Determines whether some is using HTTPS. The Uri being tested for security. true if the URI represents an encrypted request; otherwise, false. Equivalent to UriBuilder.ToString() but omits port # if it may be implied. Equivalent to UriBuilder.Uri.ToString(), but doesn't throw an exception if the Host has a wildcard. The UriBuilder to render as a string. The string version of the Uri. Validates that a URL will be resolvable at runtime. The page hosting the control that receives this URL as a property. If set to true the page is in design-time mode rather than runtime mode. The URI to check. Thrown if the given URL is not a valid, resolvable URI. A grab-bag utility class. The base namespace for this library from which all other namespaces derive. The web.config file-specified provider of web resource URLs. Tests for equality between two objects. Safely handles the case where one or both are null. The type of objects been checked for equality. The first object. The second object. true if the two objects are equal; false otherwise. Prepares a dictionary for printing as a string. The type of the key. The type of the value. The dictionary or sequence of name-value pairs. An object whose ToString method will perform the actual work of generating the string. The work isn't done until (and if) the method is actually called, which makes it great for logging complex objects without being in a conditional block. Offers deferred ToString processing for a list of elements, that are assumed to generate just a single-line string. The type of elements contained in the list. The list of elements. An object whose ToString method will perform the actual work of generating the string. Offers deferred ToString processing for a list of elements. The type of elements contained in the list. The list of elements. if set to true, special formatting will be applied to the output to make it clear where one element ends and the next begins. An object whose ToString method will perform the actual work of generating the string. Gets the web resource URL from a Page or object. Some type in resource assembly. Name of the manifest resource. An absolute URL Gets a human-readable description of the library name and version, including whether the build is an official or private one. Manages an individual deferred ToString call. The type of object to be serialized as a string. The object that will be serialized if called upon. The method used to serialize to string form. Initializes a new instance of the DelayedToString class. The object that may be serialized to string form. The method that will serialize the object if called upon. Returns a that represents the current . A that represents the current . ================================================ FILE: packages/DotNetOpenAuth.Core.4.3.0.13117/content/web.config.transform ================================================
================================================ FILE: packages/DotNetOpenAuth.Core.4.3.0.13117/lib/net35-full/DotNetOpenAuth.Core.xml ================================================ DotNetOpenAuth.Core Internal state consistency checks that throw an internal error exception when they fail. Validates some expression describing the acceptable condition evaluates to true. The expression that must evaluate to true to avoid an internal error exception. The message to include with the exception. Validates some expression describing the acceptable condition evaluates to true. The expression that must evaluate to true to avoid an internal error exception. The unformatted message. Formatting arguments. Throws an internal error exception. The message. Throws an internal error exception. Nothing. This method always throws. An internal error exception that should never be caught. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). A message part encoder that translates between byte[] and base64web encoded strings. An interface describing how various objects can be serialized and deserialized between their object and string forms. Implementations of this interface must include a default constructor and must be thread-safe. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Provides RSA encryption of symmetric keys to protect them from a theft of the persistent store. A persistent store for rotating symmetric cryptographic keys. Implementations should persist it in such a way that the keys are shared across all servers on a web farm, where applicable. The store should consider protecting the persistent store against theft resulting in the loss of the confidentiality of the keys. One possible mitigation is to asymmetrically encrypt each key using a certificate installed in the server's certificate store. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Thrown in the event of a conflict with an existing key in the same bucket and with the same handle. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. The persistent store for asymmetrically encrypted symmetric keys. The memory cache of decrypted keys. The asymmetric algorithm to use encrypting/decrypting the symmetric keys. Initializes a new instance of the class. The data store. The asymmetric protection to apply to symmetric keys. Must include the private key. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. Decrypts the specified key. The bucket. The handle. The encrypted key. The decrypted key. An encrypted key and its decrypted equivalent. A cryptographic key and metadata concerning it. Backing field for the property. Backing field for the property. Initializes a new instance of the class. The cryptographic key. The expires UTC. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. The parameter is null. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the key. Gets the expiration date of this key (UTC time). Initializes a new instance of the class. The encrypted key. The decrypted key. Invariant conditions. Gets the encrypted key. Thrown by a hosting application or web site when a cryptographic key is created with a bucket and handle that conflicts with a previously stored and unexpired key. Initializes a new instance of the class. Initializes a new instance of the class. The inner exception to include. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. Code contract for the interface. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Thrown in the event of a conflict with an existing key in the same bucket and with the same handle. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. A in-memory store of crypto keys. How frequently to check for and remove expired secrets. An in-memory cache of decrypted symmetric keys. The key is the bucket name. The value is a dictionary whose key is the handle and whose value is the cached key. The last time the cache had expired keys removed from it. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Thrown in the event of a conflict with an existing key in the same bucket and with the same handle. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. Cleans the expired keys from memory cache if the cleaning interval has passed. Weeds out expired keys from the in-memory cache. A compact binary serialization class. The -derived type to serialize/deserialize. A serializer for -derived types The DataBag-derived type that is to be serialized/deserialized. A serializer for -derived types The DataBag-derived type that is to be serialized/deserialized. Serializes the specified message. The message to serialize. Must not be null. A non-null, non-empty value. Deserializes a . The instance to deserialize into The serialized form of the to deserialize. Must not be null or empty. The message that contains the serialized value. May be null if no carrying message is applicable. The name of the parameter whose value is to be deserialized. Used for error message generation, but may be null. The length of the nonce to include in tokens that can be decoded once only. The message description cache to use for data bag types. The minimum allowable lifetime for the key used to encrypt/decrypt or sign this databag. The symmetric key store with the secret used for signing/encryption of verification codes and refresh tokens. The bucket for symmetric keys. The crypto to use for signing access tokens. The crypto to use for encrypting access tokens. A value indicating whether the data in this instance will be protected against tampering. The nonce store to use to ensure that this instance is only decoded once. The maximum age of a token that can be decoded; useful only when is true. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. Initializes a new instance of the class. The crypto service provider with the asymmetric key to use for signing or verifying the token. The crypto service provider with the asymmetric key to use for encrypting or decrypting the token. A value indicating whether the data in this instance will be GZip'd. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Initializes a new instance of the class. The crypto key store used when signing or encrypting. The bucket in which symmetric keys are stored for signing/encrypting data. A value indicating whether the data in this instance will be protected against tampering. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. The required minimum lifespan within which this token must be decodable and verifiable; useful only when and/or is true. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Initializes a new instance of the class. A value indicating whether the data in this instance will be protected against tampering. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Serializes the specified message, including compression, encryption, signing, and nonce handling where applicable. The message to serialize. Must not be null. A non-null, non-empty value. Deserializes a , including decompression, decryption, signature and nonce validation where applicable. The instance to initialize with deserialized data. The serialized form of the to deserialize. Must not be null or empty. The message that contains the serialized value. May be null if no carrying message is applicable. The name of the parameter whose value is to be deserialized. Used for error message generation, but may be null. Serializes the instance to a buffer. The message. The buffer containing the serialized data. Deserializes the instance from a buffer. The message instance to initialize with data from the buffer. The data buffer. Determines whether the signature on this instance is valid. The signed data. The signature. The symmetric secret handle. null when using an asymmetric algorithm. true if the signature is valid; otherwise, false. Calculates the signature for the data in this verification code. The bytes to sign. The symmetric secret handle. null when using an asymmetric algorithm. The calculated signature. Encrypts the specified value using either the symmetric or asymmetric encryption algorithm as appropriate. The value. Receives the symmetric secret handle. null when using an asymmetric algorithm. The encrypted value. Decrypts the specified value using either the symmetric or asymmetric encryption algorithm as appropriate. The value. The symmetric secret handle. null when using an asymmetric algorithm. The decrypted value. Initializes a new instance of the class. The crypto service provider with the asymmetric key to use for signing or verifying the token. The crypto service provider with the asymmetric key to use for encrypting or decrypting the token. A value indicating whether the data in this instance will be GZip'd. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Initializes a new instance of the class. The crypto key store used when signing or encrypting. The bucket in which symmetric keys are stored for signing/encrypting data. A value indicating whether the data in this instance will be protected against tampering. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. The minimum age. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Serializes the instance to a buffer. The message. The buffer containing the serialized data. Deserializes the instance from a buffer. The message instance to initialize with data from the buffer. The data buffer. Cached details on the response from a direct web request to a remote party. Details on the incoming response from a direct web request to a remote party. The encoding to use in reading a response that does not declare its own content encoding. Initializes a new instance of the class. Initializes a new instance of the class. The original request URI. The response to initialize from. The network stream is used by this class directly. Initializes a new instance of the class. The request URI. The final URI to respond to the request. The headers. The status code. Type of the content. The content encoding. Returns a that represents the current . A that represents the current . Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Gets an offline snapshot version of this instance. The maximum bytes from the response stream to cache. A snapshot version of this instance. If this instance is a creating a snapshot will automatically close and dispose of the underlying response stream. If this instance is a , the result will be the self same instance. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the type of the content. Gets the content encoding. Gets the URI of the initial request. Gets the URI that finally responded to the request. This can be different from the in cases of redirection during the request. Gets the headers that must be included in the response to the user agent. The headers in this collection are not meant to be a comprehensive list of exactly what should be sent, but are meant to augment whatever headers are generally included in a typical response. Gets the HTTP status code to use in the HTTP response. Gets the body of the HTTP response. A seekable, repeatable response stream. Initializes a new instance of the class. Initializes a new instance of the class. The request URI. The response. The maximum bytes to read. Initializes a new instance of the class. The request URI. The final URI to respond to the request. The headers. The status code. Type of the content. The content encoding. The response stream. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Gets the body of the response as a string. The entire body of the response. Gets an offline snapshot version of this instance. The maximum bytes from the response stream to cache. A snapshot version of this instance. If this instance is a creating a snapshot will automatically close and dispose of the underlying response stream. If this instance is a , the result will be the self same instance. Sets the response to some string, encoded as UTF-8. The string to set the response to. Caches the network stream and closes it if it is open. The response whose stream is to be cloned. The maximum bytes to cache. The seekable Stream instance that contains a copy of what was returned in the HTTP response. Gets a value indicating whether the cached response stream was truncated to a maximum allowable length. Gets the body of the HTTP response. Gets or sets the cached response stream. Code contract for the class. Manages sending direct messages to a remote party and receiving responses. The content-type used on HTTP POST requests where the POST entity is a URL-encoded series of key=value pairs. The content-type used for JSON serialized objects. The "text/javascript" content-type that some servers return instead of the standard one. The content-type for plain text. The HTML that should be returned to the user agent as part of a 301 Redirect. A string that should be used as the first argument to string.Format, where the {0} should be replaced with the URL to redirect to. The template for indirect messages that require form POST to forward through the user agent. We are intentionally using " instead of the html single quote ' below because the HtmlEncode'd values that we inject will only escape the double quote, so only the double-quote used around these values is safe. The encoding to use when writing out POST entity strings. A default set of XML dictionary reader quotas that are relatively safe from causing unbounded memory consumption. The content-type used on HTTP POST requests where the POST entity is a URL-encoded series of key=value pairs. This includes the character encoding. A list of binding elements in the order they must be applied to outgoing messages. A list of binding elements in the order they must be applied to incoming messages. The default cache of message descriptions to use unless they are customized. This is a perf optimization, so that we don't reflect over every message type every time a channel is constructed. A cache of reflected message types that may be sent or received on this channel. A tool that can figure out what kind of message is being received so it can be deserialized. Backing store for the property. Backing field for the property. Initializes a new instance of the class. A class prepared to analyze incoming messages and indicate what concrete message types can deserialize from it. The binding elements to use in sending and receiving messages. The order they are provided is used for outgoing messgaes, and reversed for incoming messages. Sends an indirect message (either a request or response) or direct message response for transmission to a remote party and ends execution on the current page or handler. The one-way message to send Thrown by ASP.NET in order to prevent additional data from the page being sent to the client and corrupting the response. Requires an HttpContext.Current context. Sends an indirect message (either a request or response) or direct message response for transmission to a remote party and skips most of the remaining ASP.NET request handling pipeline. Not safe to call from ASP.NET web forms. The one-way message to send Requires an HttpContext.Current context. This call is not safe to make from an ASP.NET web form (.aspx file or code-behind) because ASP.NET will render HTML after the protocol message has been sent, which will corrupt the response. Use the method instead for web forms. Prepares an indirect message (either a request or response) or direct message response for transmission to a remote party. The one-way message to send The pending user agent redirect based message to be sent as an HttpResponse. Gets the protocol message embedded in the given HTTP request, if present. The deserialized message, if one is found. Null otherwise. Requires an HttpContext.Current context. Thrown when is null. Gets the protocol message embedded in the given HTTP request, if present. The expected type of the message to be received. The deserialized message, if one is found. Null otherwise. True if the expected message was recognized and deserialized. False otherwise. Requires an HttpContext.Current context. Thrown when is null. Thrown when a request message of an unexpected type is received. Gets the protocol message embedded in the given HTTP request, if present. The expected type of the message to be received. The request to search for an embedded message. The deserialized message, if one is found. Null otherwise. True if the expected message was recognized and deserialized. False otherwise. Thrown when is null. Thrown when a request message of an unexpected type is received. Gets the protocol message embedded in the current HTTP request. The expected type of the message to be received. The deserialized message. Never null. Requires an HttpContext.Current context. Thrown when is null. Thrown if the expected message was not recognized in the response. Gets the protocol message embedded in the given HTTP request. The expected type of the message to be received. The request to search for an embedded message. The deserialized message. Never null. Thrown if the expected message was not recognized in the response. Gets the protocol message that may be embedded in the given HTTP request. The request to search for an embedded message. The deserialized message, if one is found. Null otherwise. Sends a direct message to a remote party and waits for the response. The expected type of the message to be received. The message to send. The remote party's response. Thrown if no message is recognized in the response or an unexpected type of message is received. Sends a direct message to a remote party and waits for the response. The message to send. The remote party's response. Guaranteed to never be null. Thrown if the response does not include a protocol message. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Verifies the integrity and applicability of an incoming message. The message just received. Thrown when the message is somehow invalid. This can be due to tampering, replay attack or expiration, among other things. Prepares an HTTP request that carries a given message. The message to send. The prepared to send the request. This method must be overridden by a derived class, unless the method is overridden and does not require this method. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec OAuth V1.0 section 5.3. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Thrown when the response is not valid. This method should NOT be called by derived types except when sending ONE WAY request messages. Prepares a message for transmit by applying signatures, nonces, etc. The message to prepare for sending. Gets the HTTP context for the current HTTP request. An HttpContextBase instance. Gets the current HTTP request being processed. The HttpRequestInfo for the current request. Requires an context. Thrown if HttpContext.Current == null. Checks whether a given HTTP method is expected to include an entity body in its request. The HTTP method. true if the HTTP method is supposed to have an entity; false otherwise. Applies message prescribed HTTP response headers to an outgoing web response. The message. The HTTP response. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Fires the event. The message about to be encoded and sent. Gets the direct response of a direct HTTP request. The web request. The response to the web request. Thrown on network or protocol errors. Submits a direct request message to some remote party and blocks waiting for an immediately reply. The request message. The response message, or null if the response did not carry a message. Typically a deriving channel will override to customize this method's behavior. However in non-HTTP frameworks, such as unit test mocks, it may be appropriate to override this method to eliminate all use of an HTTP transport. Called when receiving a direct response message, before deserialization begins. The HTTP direct response. The newly instantiated message, prior to deserialization. Gets the protocol message that may be embedded in the given HTTP request. The request to search for an embedded message. The deserialized message, if one is found. Null otherwise. Deserializes a dictionary of values into a message. The dictionary of values that were read from an HTTP request or response. Information about where the message was directed. Null for direct response messages. The deserialized message, or null if no message could be recognized in the provided data. Queues an indirect message for transmittal via the user agent. The message to send. The pending user agent redirect based message to be sent as an HttpResponse. Encodes an HTTP response that will instruct the user agent to forward a message to some remote third party using a 301 Redirect GET method. The message to forward. The pre-serialized fields from the message. if set to true the redirect will contain the message payload in the #fragment portion of the URL rather than the ?querystring. The encoded HTTP response. Encodes an HTTP response that will instruct the user agent to forward a message to some remote third party using a form POST method. The message to forward. The pre-serialized fields from the message. The encoded HTTP response. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Thrown when the response is not valid. Prepares an HTTP request that carries a given message. The message to send. The prepared to send the request. This method must be overridden by a derived class, unless the method is overridden and does not require this method. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec OAuth V1.0 section 5.3. Serializes the given message as a JSON string. The message to serialize. A JSON string. Deserializes from flat data from a JSON object. A JSON string. The simple "key":"value" pairs from a JSON-encoded object. Prepares a message for transmit by applying signatures, nonces, etc. The message to prepare for sending. This method should NOT be called by derived types except when sending ONE WAY request messages. Prepares to send a request to the Service Provider as the query string in a GET request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP Get request with the message parts serialized to the query string. This method satisfies OAuth 1.0 section 5.2, item #3. Prepares to send a request to the Service Provider as the query string in a HEAD request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP HEAD request with the message parts serialized to the query string. This method satisfies OAuth 1.0 section 5.2, item #3. Prepares to send a request to the Service Provider as the payload of a POST request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP POST request with the message parts serialized to the POST entity with the application/x-www-form-urlencoded content type This method satisfies OAuth 1.0 section 5.2, item #2 and OpenID 2.0 section 4.1.2. Prepares to send a request to the Service Provider as the query string in a PUT request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP PUT request with the message parts serialized to the query string. Prepares to send a request to the Service Provider as the query string in a DELETE request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP DELETE request with the message parts serialized to the query string. Sends the given parameters in the entity stream of an HTTP request. The HTTP request. The parameters to send. This method calls and closes the request stream, but does not call . Sends the given parameters in the entity stream of an HTTP request in multi-part format. The HTTP request. The parameters to send. This method calls and closes the request stream, but does not call . Verifies the integrity and applicability of an incoming message. The message just received. Thrown when the message is somehow invalid. This can be due to tampering, replay attack or expiration, among other things. Allows preprocessing and validation of message data before an appropriate message type is selected or deserialized. The received message data. Performs additional processing on an outgoing web request before it is sent to the remote server. The request. Customizes the binding element order for outgoing and incoming messages. The outgoing order. The incoming order. No binding elements can be added or removed from the channel using this method. Only a customized order is allowed. Thrown if a binding element is new or missing in one of the ordered lists. Ensures a consistent and secure set of binding elements and sorts them as necessary for a valid sequence of operations. The binding elements provided to the channel. The properly ordered list of elements. Thrown when the binding elements are incomplete or inconsistent with each other. Puts binding elements in their correct outgoing message processing order. The first protection type to compare. The second protection type to compare. -1 if should be applied to an outgoing message before . 1 if should be applied to an outgoing message before . 0 if it doesn't matter. Verifies that all required message parts are initialized to values prior to sending the message to a remote party. The message to verify. Thrown when any required message part does not have a value. Determines whether a given ordered list of binding elements includes every binding element in this channel exactly once. The list of binding elements to test. true if the given list is a valid description of a binding element ordering; otherwise, false. An event fired whenever a message is about to be encoded and sent. Gets or sets an instance to a that will be used when submitting HTTP requests and waiting for responses. This defaults to a straightforward implementation, but can be set to a mock object for testing purposes. Gets or sets the maximum allowable size for a 301 Redirect response before we send a 200 OK response with a scripted form POST with the parameters instead in order to ensure successfully sending a large payload to another server that might have a maximum allowable size restriction on its GET request. The default value is 2048. Gets or sets the message descriptions. Gets a tool that can figure out what kind of message is being received so it can be deserialized. Gets the binding elements used by this channel, in no particular guaranteed order. Gets the binding elements used by this channel, in the order applied to outgoing messages. Gets the binding elements used by this channel, in the order applied to incoming messages. Gets or sets a value indicating whether this instance is disposed. true if this instance is disposed; otherwise, false. Gets or sets a tool that can figure out what kind of message is being received so it can be deserialized. Gets or sets the cache policy to use for direct message requests. Default is . Gets or sets the XML dictionary reader quotas. The XML dictionary reader quotas. Prevents a default instance of the ChannelContract class from being created. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Thrown when the response is not valid. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec V1.0 section 5.3. HMAC-SHA algorithm names that can be passed to the method. The name of the HMAC-SHA1 algorithm. The name of the HMAC-SHA256 algorithm. The name of the HMAC-SHA384 algorithm. The name of the HMAC-SHA512 algorithm. Creates an HMAC-SHA algorithm with the specified name and key. A name from the available choices in the static const members of this class. The secret key used as the HMAC. The HMAC algorithm instance. Well known HTTP headers. The Authorization header, which specifies the credentials that the client presents in order to authenticate itself to the server. The WWW-Authenticate header, which is included in HTTP 401 Unauthorized responses to help the client know which authorization schemes are supported. The Content-Type header, which specifies the MIME type of the accompanying body data. An interface that allows direct request messages to capture the details of the HTTP request they arrived on. The interface that classes must implement to be serialized/deserialized as protocol or extension messages. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Gets the HTTP headers of the request. May be an empty collection, but must not be null. Contract class for the interface. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the HTTP headers of the request. May be an empty collection, but must not be null. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. An interface that allows indirect response messages to specify HTTP transport specific properties. Gets a value indicating whether the payload for the message should be included in the redirect fragment instead of the query string or POST entity. An interface that appears on messages that need to retain a description of what their literal payload was when they were deserialized. Gets or sets the original message parts, before any normalization or default values were assigned. Code contract for the interface. Gets or sets the original message parts, before any normalization or default values were assigned. A set of flags that can control the behavior of an individual web request. Indicates that default behavior is required. Indicates that any response from the remote server, even those with HTTP status codes that indicate errors, should not result in a thrown exception. Even with this flag set, should be thrown when an HTTP protocol error occurs (i.e. timeouts). Indicates that the HTTP request must be completed entirely using SSL (including any redirects). Extension methods for types. Caches the results of enumerating over a given object so that subsequence enumerations don't require interacting with the object a second time. The type of element found in the enumeration. The enumerable object. Either a new enumerable object that caches enumerated results, or the original, object if no caching is necessary to avoid additional CPU work. This is designed for use on the results of generator methods (the ones with yield return in them) so that only those elements in the sequence that are needed are ever generated, while not requiring regeneration of elements that are enumerated over multiple times. This can be a huge performance gain if enumerating multiple times over an expensive generator method. Some enumerable types such as collections, lists, and already-cached generators do not require any (additional) caching, and this method will simply return those objects rather than caching them to avoid double-caching. A wrapper for types and returns a caching from its method. The type of element in the sequence. The results from enumeration of the live object that have been collected thus far. The original generator method or other enumerable object whose contents should only be enumerated once. The enumerator we're using over the generator method's results. The sync object our caching enumerators use when adding a new live generator method result to the cache. Although individual enumerators are not thread-safe, this should be thread safe so that multiple enumerators can be created from it and used from different threads. Initializes a new instance of the EnumerableCache class. The generator. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. An enumerator that uses cached enumeration results whenever they are available, and caches whatever results it has to pull from the original object. The parent enumeration wrapper class that stores the cached results. The position of this enumerator in the cached list. Initializes a new instance of the EnumeratorCache class. The parent cached enumerable whose GetEnumerator method is calling this constructor. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Advances the enumerator to the next element of the collection. true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. The collection was modified after the enumerator was created. Sets the enumerator to its initial position, which is before the first element in the collection. The collection was modified after the enumerator was created. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the element in the collection at the current position of the enumerator. The element in the collection at the current position of the enumerator. Gets the element in the collection at the current position of the enumerator. The element in the collection at the current position of the enumerator. An exception to call out a configuration or runtime failure on the part of the (web) application that is hosting this library. This exception is used rather than for those errors that should never be caught because they indicate a major error in the app itself or its configuration. It is an internal exception to assist in making it uncatchable. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). An interface that allows direct response messages to specify HTTP transport specific properties. Gets the HTTP status code that the direct response should be sent with. Gets the HTTP headers to add to the response. May be an empty collection, but must not be null. An interface that extension messages must implement. Contract class for the interface. Gets the HTTP status code that the direct response should be sent with. Gets the HTTP headers to add to the response. May be an empty collection, but must not be null. Code contract for the interface. Prevents a default instance of the class from being created. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the version of the protocol or extension this message is prepared to implement. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Undirected messages that serve as direct responses to direct requests. The interface that classes must implement to be serialized/deserialized as protocol messages. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the originating request message that caused this response to be formed. An empty dictionary. Useful for avoiding memory allocations in creating new dictionaries to represent empty ones. The type of the key. The type of the value. The singleton instance of the empty dictionary. Prevents a default instance of the EmptyDictionary class from being created. Adds an element with the provided key and value to the . The object to use as the key of the element to add. The object to use as the value of the element to add. is null. An element with the same key already exists in the . The is read-only. Determines whether the contains an element with the specified key. The key to locate in the . true if the contains an element with the key; otherwise, false. is null. Removes the element with the specified key from the . The key of the element to remove. true if the element is successfully removed; otherwise, false. This method also returns false if was not found in the original . is null. The is read-only. Gets the value associated with the specified key. The key whose value to get. When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. true if the object that implements contains an element with the specified key; otherwise, false. is null. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Copies the elements of the to an , starting at a particular index. The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. The zero-based index in at which copying begins. is null. is less than 0. is multidimensional. -or- is equal to or greater than the length of . -or- The number of elements in the source is greater than the available space from to the end of the destination . -or- Type cannot be cast automatically to the type of the destination . Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Gets an containing the values in the . An containing the values in the object that implements . Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Gets an containing the keys of the . An containing the keys of the object that implements . Gets or sets the value with the specified key. The key being read or written. Nothing. It always throws. An enumerator that always generates zero elements. The singleton instance of this empty enumerator. Prevents a default instance of the class from being created. Advances the enumerator to the next element of the collection. true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. The collection was modified after the enumerator was created. Sets the enumerator to its initial position, which is before the first element in the collection. The collection was modified after the enumerator was created. Gets the current element in the collection. The current element in the collection. The enumerator is positioned before the first element of the collection or after the last element. An empty, read-only list. The type the list claims to include. The singleton instance of the empty list. Prevents a default instance of the EmptyList class from being created. Determines the index of a specific item in the . The object to locate in the . The index of if found in the list; otherwise, -1. Inserts an item to the at the specified index. The zero-based index at which should be inserted. The object to insert into the . is not a valid index in the . The is read-only. Removes the item at the specified index. The zero-based index of the item to remove. is not a valid index in the . The is read-only. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Copies the elements of the to an , starting at a particular index. The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. The zero-based index in at which copying begins. is null. is less than 0. is multidimensional. -or- is equal to or greater than the length of . -or- The number of elements in the source is greater than the available space from to the end of the destination . -or- Type cannot be cast automatically to the type of the destination . Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Gets or sets the at the specified index. The index of the element in the list to change. Nothing. It always throws. A collection of error checking and reporting methods. Wraps an exception in a new . The inner exception to wrap. The error message for the outer exception. The string formatting arguments, if any. The newly constructed (unthrown) exception. Throws an internal error exception. The error message. Nothing. But included here so callers can "throw" this method for C# safety. Always thrown. Checks a condition and throws an internal error exception if it evaluates to false. The condition to check. The message to include in the exception, if created. Thrown if evaluates to false. Checks a condition and throws an internal error exception if it evaluates to false. The condition to check. The message to include in the exception, if created. The formatting arguments. Thrown if evaluates to false. Checks a condition and throws an if it evaluates to false. The condition to check. The message to include in the exception, if created. Thrown if evaluates to false. Checks a condition and throws a if it evaluates to false. The condition to check. The message to include in the exception, if created. Thrown if evaluates to false. Checks a condition and throws a if it evaluates to false. The condition to check. The message to include in the exception, if created. The string formatting arguments for . Thrown if evaluates to false. Checks a condition and throws an if it evaluates to false. The condition to check. The message to include in the exception, if created. The formatting arguments. Thrown if evaluates to false. Throws a if some evaluates to false. True to do nothing; false to throw the exception. The error message for the exception. The string formatting arguments, if any. Thrown if evaluates to false. Throws a if some evaluates to false. True to do nothing; false to throw the exception. The message being processed that would be responsible for the exception if thrown. The error message for the exception. The string formatting arguments, if any. Thrown if evaluates to false. Throws a if some evaluates to false. True to do nothing; false to throw the exception. The error message for the exception. The string formatting arguments, if any. Thrown if evaluates to false. Throws a . The message to set in the exception. The formatting arguments of the message. An InternalErrorException, which may be "thrown" by the caller in order to satisfy C# rules to show that code will never be reached, but no value actually is ever returned because this method guarantees to throw. Always thrown. Throws a . The message for the exception. The string formatting arguments for . Nothing. It's just here so the caller can throw this method for C# compilation check. Throws a if some condition is false. The expression to evaluate. A value of false will cause the exception to be thrown. The message for the exception. The string formatting arguments for . Thrown when is false. Verifies something about the argument supplied to a method. The condition that must evaluate to true to avoid an exception. The message to use in the exception if the condition is false. The string formatting arguments, if any. Thrown if evaluates to false. Throws an . Name of the parameter. The message to use in the exception if the condition is false. The string formatting arguments, if any. Never returns anything. It always throws. Verifies something about the argument supplied to a method. The condition that must evaluate to true to avoid an exception. Name of the parameter. The message to use in the exception if the condition is false. The string formatting arguments, if any. Thrown if evaluates to false. Verifies that some given value is not null. The value to check. Name of the parameter, which will be used in the , if thrown. Thrown if is null. Verifies that some string is not null and has non-zero length. The value to check. Name of the parameter, which will be used in the , if thrown. Thrown if is null. Thrown if has zero length. Verifies that != null. Thrown if == null Obtains a value from the dictionary if possible, or throws a if it's missing. The type of key in the dictionary. The type of value in the dictionary. The dictionary. The key to use to look up the value. The message to claim is invalid if the key cannot be found. The value for the given key. An interface that messages wishing to perform custom serialization/deserialization may implement to be notified of events. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Code contract for the class. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Gets an offline snapshot version of this instance. The maximum bytes from the response stream to cache. A snapshot version of this instance. If this instance is a creating a snapshot will automatically close and dispose of the underlying response stream. If this instance is a , the result will be the self same instance. Gets the body of the HTTP response. A protocol message that supports adding extensions to the payload for transmission. Gets the list of extensions that are included with this message. Implementations of this interface should ensure that this property never returns null. Code contract for the interface. Prevents a default instance of the class from being created. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the list of extensions that are included with this message. Implementations of this interface should ensure that this property never returns null. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. An internal exception to throw if an internal error within the library requires an abort of the operation. This exception is internal to prevent clients of the library from catching what is really an unexpected, potentially unrecoverable exception. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). An interface implemented by -derived types that support binary serialization. Serializes the instance to the specified stream. The stream. Initializes the fields on this instance from the specified stream. The stream. Code Contract for the interface. Serializes the instance to the specified stream. The stream. Initializes the fields on this instance from the specified stream. The stream. A KeyedCollection whose item -> key transform is provided via a delegate to its constructor, and null items are disallowed. The type of the key. The type of the item. The delegate that returns a key for the given item. Initializes a new instance of the KeyedCollectionDelegate class. The delegate that gets the key for a given item. When implemented in a derived class, extracts the key from the specified element. The element from which to extract the key. The key for the specified element. Represents a single part in a HTTP multipart POST request. The "Content-Disposition" string. The two-character \r\n newline character sequence to use. Initializes a new instance of the class. The content disposition of the part. Creates a part that represents a simple form field. The name of the form field. The value. The constructed part. Creates a part that represents a file attachment. The name of the form field. The path to the file to send. Type of the content in HTTP Content-Type format. The constructed part. Creates a part that represents a file attachment. The name of the form field. Name of the file as the server should see it. Type of the content in HTTP Content-Type format. The content of the file. The constructed part. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Serializes the part to a stream. The stream writer. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets or sets the content disposition. The content disposition. Gets the key=value attributes that appear on the same line as the Content-Disposition. The content attributes. Gets the headers that appear on subsequent lines after the Content-Disposition. Gets or sets the content of the part. Gets the length of this entire part. Useful for calculating the ContentLength HTTP header to send before actually serializing the content. A live network HTTP response The network response object, used to initialize this instance, that still needs to be closed if applicable. The incoming network response stream. A value indicating whether a stream reader has already been created on this instance. Initializes a new instance of the class. The request URI. The response. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Gets an offline snapshot version of this instance. The maximum bytes from the response stream to cache. A snapshot version of this instance. If this instance is a creating a snapshot will automatically close and dispose of the underlying response stream. If this instance is a , the result will be the self same instance. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the body of the HTTP response. An ASP.NET MVC structure to represent the response to send to the user agent when the controller has finished its work. The outgoing web response to send when the ActionResult is executed. Initializes a new instance of the class. The response. Enables processing of the result of an action method by a custom type that inherits from . The context in which to set the response. An exception to represent errors in the local or remote implementation of the protocol that includes the response message that should be returned to the HTTP client to comply with the protocol specification. An exception to represent errors in the local or remote implementation of the protocol. Initializes a new instance of the class. Initializes a new instance of the class. A message describing the specific error the occurred or was detected. Initializes a new instance of the class. A message describing the specific error the occurred or was detected. The inner exception to include. Initializes a new instance of the class such that it can be sent as a protocol message response to a remote caller. The human-readable exception message. The message that was the cause of the exception. May be null. The inner exception to include. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. Gets the message that caused the exception. The channel that produced the error response message, to be used in constructing the actual HTTP response. Initializes a new instance of the class such that it can be sent as a protocol message response to a remote caller. The channel to use when encoding the response message. The message to send back to the HTTP client. The message that was the cause of the exception. May be null. The inner exception. The message for the exception. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. Creates the HTTP response to forward to the client to report the error. The HTTP response. Gets the protocol message to send back to the client to report the error. Code contract for the type. Initializes a new instance of the class. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. An interface describing how various objects can be serialized and deserialized between their object and string forms. Implementations of this interface must include a default constructor and must be thread-safe. Gets the type of the encoded values produced by this encoder, as they would appear in their preferred form. A message part encoder that has a special encoding for a null value. Gets the string representation to include in a serialized message when the message part has a null value. An interface describing how various objects can be serialized and deserialized between their object and string forms. Implementations of this interface must include a default constructor and must be thread-safe. Encodes the specified value as the original value that was formerly decoded. The value. Guaranteed to never be null. The in string form, ready for message transport. A cache of instances. A dictionary of reflected message types and the generated reflection information. Initializes a new instance of the class. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Gets a instance prepared for the given message type. A type that implements . The protocol version of the message. A instance. Gets a instance prepared for the given message type. The message for which a should be obtained. A instance. Gets the dictionary that provides read/write access to a message. The message. The dictionary. Gets the dictionary that provides read/write access to a message. The message. A value indicating whether this message dictionary will retrieve original values instead of normalized ones. The dictionary. A struct used as the key to bundle message type and version. Backing store for the property. Backing store for the property. Initializes a new instance of the struct. Type of the message. The message version. Implements the operator ==. The first object to compare. The second object to compare. The result of the operator. Implements the operator !=. The first object to compare. The second object to compare. The result of the operator. Indicates whether this instance and a specified object are equal. Another object to compare to. true if and this instance are the same type and represent the same value; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer that is the hash code for this instance. Gets the message type. Gets the message version. Allows a custom class or struct to be serializable between itself and a string representation. Initializes a new instance of the class. The implementing type to use for serializing this type. Gets the default encoder to use for the declaring class. A message factory that automatically selects the message type based on the incoming data. A tool to analyze an incoming message to figure out what concrete class is designed to deserialize it and instantiates that class. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. The request message types and their constructors to use for instantiating the messages. The response message types and their constructors to use for instantiating the messages. The value is a dictionary, whose key is the type of the constructor's lone parameter. Initializes a new instance of the class. Adds message types to the set that this factory can create. The message types that this factory may instantiate. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Gets the message type that best fits the given incoming request data. The recipient of the incoming data. Typically not used, but included just in case. The data of the incoming message. The message type that matches the incoming data; or null if no match. May be thrown if the incoming data is ambiguous. Gets the message type that best fits the given incoming direct response data. The request message that prompted the response data. The data of the incoming message. The message type that matches the incoming data; or null if no match. May be thrown if the incoming data is ambiguous. Instantiates the given request message type. The message description. The recipient. The instantiated message. Never null. Instantiates the given request message type. The message description. The request that resulted in this response. The instantiated message. Never null. Gets the hierarchical distance between a type and a type it derives from or implements. The base type or interface. The concrete class that implements the . The distance between the two types. 0 if the types are equivalent, 1 if the type immediately derives from or implements the base type, or progressively higher integers. Counts how many strings are in the intersection of two collections. The first collection. The second collection. The string comparison method to use. A non-negative integer no greater than the count of elements in the smallest collection. Finds constructors for response messages that take a given request message type. The message description. Type of the request message. A sequence of matching constructors. Contract class for the IDataBagFormatter interface. The type of DataBag to serialize. Prevents a default instance of the class from being created. Serializes the specified message. The message to serialize. Must not be null. A non-null, non-empty value. Deserializes a . The instance to deserialize into The serialized form of the to deserialize. Must not be null or empty. The message that contains the serialized value. Must not be nulll. Name of the message part whose value is to be deserialized. Used for exception messages. A serializer for -derived types The DataBag-derived type that is to be serialized/deserialized. Initializes a new instance of the class. The crypto service provider with the asymmetric key to use for signing or verifying the token. The crypto service provider with the asymmetric key to use for encrypting or decrypting the token. A value indicating whether the data in this instance will be GZip'd. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Initializes a new instance of the class. The crypto key store used when signing or encrypting. The bucket in which symmetric keys are stored for signing/encrypting data. A value indicating whether the data in this instance will be protected against tampering. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. The minimum age. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Serializes the instance to a buffer. The message. The buffer containing the serialized data. Deserializes the instance from a buffer. The message instance to initialize with data from the buffer. The data buffer. A channel that uses the standard message factory. The message types receivable by this channel. The protocol versions supported by this channel. Initializes a new instance of the class. The message types that might be encountered. All the possible message versions that might be encountered. The binding elements to use in sending and receiving messages. The order they are provided is used for outgoing messgaes, and reversed for incoming messages. Generates all the message descriptions for a given set of message types and versions. The message types. The message versions. The cache to use when obtaining the message descriptions. The generated/retrieved message descriptions. Gets or sets a tool that can figure out what kind of message is being received so it can be deserialized. Gets or sets the message descriptions. Gets or sets a tool that can figure out what kind of message is being received so it can be deserialized. A collection of message parts that will be serialized into a single string, to be set into a larger message. The default version for DataBags. The backing field for the property. A dictionary to contain extra message data. Initializes a new instance of the class. Initializes a new instance of the class. The DataBag version. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Gets or sets the nonce. The nonce. Gets or sets the UTC creation date of this token. The UTC creation date. Gets or sets the signature. The signature. Gets or sets the message that delivered this DataBag instance to this host. Gets the type of this instance. The type of the bag. This ensures that one token cannot be misused as another kind of token. Translates between a and the number of seconds between it and 1/1/1970 12 AM The reference date and time for calculating time stamps. Initializes a new instance of the class. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. The interface that classes must implement to be serialized/deserialized as protocol or extension messages that uses POST multi-part data for binary content. Implemented by messages that have explicit recipients (direct requests and all indirect messages). Gets the preferred method of transport for the message. For indirect messages this will likely be GET+POST, which both can be simulated in the user agent: the GET with a simple 301 Redirect, and the POST with an HTML form in the response with javascript to automate submission. Gets the URL of the intended receiver of this message. Gets the parts of the message that carry binary data. A list of parts. Never null. Gets a value indicating whether this message should be sent as multi-part POST. The contract class for the interface. Prevents a default instance of the class from being created. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the parts of the message that carry binary data. A list of parts. Never null. Gets a value indicating whether this message should be sent as multi-part POST. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Gets the preferred method of transport for the message. For indirect messages this will likely be GET+POST, which both can be simulated in the user agent: the GET with a simple 301 Redirect, and the POST with an HTML form in the response with javascript to automate submission. Gets the URL of the intended receiver of this message. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. The data packet sent with Channel events. Initializes a new instance of the class. The message behind the fired event.. Gets the message that caused the event to fire. An in-memory nonce store. Useful for single-server web applications. NOT for web farms. Describes the contract a nonce store must fulfill. Stores a given nonce and timestamp. The context, or namespace, within which the must be unique. The context SHOULD be treated as case-sensitive. The value will never be null but may be the empty string. A series of random characters. The UTC timestamp that together with the nonce string make it unique within the given . The timestamp may also be used by the data store to clear out old nonces. True if the context+nonce+timestamp (combination) was not previously in the database. False if the nonce was stored previously with the same timestamp and context. The nonce must be stored for no less than the maximum time window a message may be processed within before being discarded as an expired message. This maximum message age can be looked up via the property, accessible via the property. How frequently we should take time to clear out old nonces. The maximum age a message can be before it is discarded. This is useful for knowing how long used nonces must be retained. A list of the consumed nonces. A lock object used around accesses to the field. Where we're currently at in our periodic nonce cleaning cycle. Initializes a new instance of the class. Initializes a new instance of the class. The maximum age a message can be before it is discarded. Stores a given nonce and timestamp. The context, or namespace, within which the must be unique. A series of random characters. The timestamp that together with the nonce string make it unique. The timestamp may also be used by the data store to clear out old nonces. True if the nonce+timestamp (combination) was not previously in the database. False if the nonce was stored previously with the same timestamp. The nonce must be stored for no less than the maximum time window a message may be processed within before being discarded as an expired message. If the binding element is applicable to your channel, this expiration window is retrieved or set using the property. Clears consumed nonces from the cache that are so old they would be rejected if replayed because it is expired. A contract for handling. Implementations of this interface must be thread safe. Determines whether this instance can support the specified options. The set of options that might be given in a subsequent web request. true if this instance can support the specified options; otherwise, false. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The stream the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Callers must close and dispose of the request stream when they are done writing to it to avoid taking up the connection too long and causing long waits on subsequent requests. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The options to apply to this web request. The stream the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Callers must close and dispose of the request stream when they are done writing to it to avoid taking up the connection too long and causing long waits on subsequent requests. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Processes an and converts the to a instance. The to handle. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Processes an and converts the to a instance. The to handle. The options to apply to this web request. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Code contract for the type. Determines whether this instance can support the specified options. The set of options that might be given in a subsequent web request. true if this instance can support the specified options; otherwise, false. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The stream the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Callers must close and dispose of the request stream when they are done writing to it to avoid taking up the connection too long and causing long waits on subsequent requests. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The options to apply to this web request. The stream the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Callers must close and dispose of the request stream when they are done writing to it to avoid taking up the connection too long and causing long waits on subsequent requests. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Processes an and converts the to a instance. The to handle. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Processes an and converts the to a instance. The to handle. The options to apply to this web request. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. A binding element that checks/verifies a nonce message part. An interface that must be implemented by message transforms/validators in order to be included in the channel stack. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. These are the characters that may be chosen from when forming a random nonce. The persistent store for nonces received. The length of generated nonces. Initializes a new instance of the class. The store where nonces will be persisted and checked. Initializes a new instance of the class. The store where nonces will be persisted and checked. A value indicating whether zero-length nonces will be allowed. Applies a nonce to the message. The message to apply replay protection to. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Verifies that the nonce in an incoming message has not been seen before. The incoming message. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the nonce check revealed a replayed message. Generates a string of random characters for use as a nonce. The nonce string. Gets the protection that this binding element provides messages. Gets or sets the channel that this binding element belongs to. Gets or sets the strength of the nonce, which is measured by the number of nonces that could theoretically be generated. The strength of the nonce is equal to the number of characters that might appear in the nonce to the power of the length of the nonce. Gets or sets a value indicating whether empty nonces are allowed. Default is false. Applied to fields and properties that form a key/value in a protocol message. The overridden name to use as the serialized name for the property. Initializes a new instance of the class. Initializes a new instance of the class. A special name to give the value of this member in the serialized message. When null or empty, the name of the member will be used in the serialized message. Gets the name of the serialized form of this member in the message. Gets or sets the level of protection required by this member in the serialized message. Message part protection must be provided and verified by the channel binding element(s) that provide security. Gets or sets a value indicating whether this member is a required part of the serialized message. Gets or sets a value indicating whether the string value is allowed to be empty in the serialized message. Default is true. Gets or sets an IMessagePartEncoder custom encoder to use to translate the applied member to and from a string. Gets or sets the minimum version of the protocol this attribute applies to and overrides any attributes with lower values for this property. Defaults to 0.0. Gets or sets the maximum version of the protocol this attribute applies to. Defaults to int.MaxValue for the major version number. Specifying on another attribute on the same member automatically turns this attribute off. This property should only be set when a property is totally dropped from a newer version of the protocol. Gets or sets a value indicating whether the value contained by this property contains sensitive information that should generally not be logged. true if this instance is security sensitive; otherwise, false. Gets or sets the minimum version of the protocol this attribute applies to and overrides any attributes with lower values for this property. Defaults to 0.0. Gets or sets the maximum version of the protocol this attribute applies to. Defaults to int.MaxValue for the major version number. Specifying on another attribute on the same member automatically turns this attribute off. This property should only be set when a property is totally dropped from a newer version of the protocol. Categorizes the various types of channel binding elements so they can be properly ordered. The order of these enum values is significant. Each successive value requires the protection offered by all the previous values in order to be reliable. For example, message expiration is meaningless without tamper protection to prevent a user from changing the timestamp on a message. No protection. A binding element that signs a message before sending and validates its signature upon receiving. A binding element that enforces a maximum message age between sending and processing on the receiving side. A binding element that prepares messages for replay detection and detects replayed messages on the receiving side. All forms of protection together. Code Contract for the interface. Prevents a default instance of the class from being created. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. An exception thrown when a message is received for the second time, signalling a possible replay attack. Initializes a new instance of the class. The replayed message. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. An exception thrown when a message is received that exceeds the maximum message age limit. Initializes a new instance of the class. The date the message expired. The expired message. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. An exception thrown when a signed message does not pass signature validation. Initializes a new instance of the class. The message with the invalid signature. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. The contract a message that has an allowable time window for processing must implement. All replay-protected messages must also be set to expire so the nonces do not have to be stored indefinitely. The contract a message that has an allowable time window for processing must implement. All expiring messages must also be signed to prevent tampering with the creation date. Gets or sets the UTC date/time the message was originally sent onto the network. The property setter should ensure a UTC date/time, and throw an exception if this is not possible. Thrown when a DateTime that cannot be converted to UTC is set. Gets the context within which the nonce must be unique. The value of this property must be a value assigned by the nonce consumer to represent the entity that generated the nonce. The value must never be null but may be the empty string. This value is treated as case-sensitive. Gets or sets the nonce that will protect the message from replay attacks. A property store of details of an incoming HTTP request. This serves a very similar purpose to , except that ASP.NET does not let us fully initialize that class, so we have to write one of our one. The HTTP verb in the request. The full request URL. The HTTP headers. The variables defined in the query part of the URL. The POSTed form variables. The server variables collection. The backing field for the property. Initializes a new instance of the class. The request. The request URI. Initializes a new instance of the class. The HTTP method. The request URI. The form variables. The HTTP headers. The cookies in the request. Initializes a new instance of the class. Details on the incoming HTTP request. Initializes a new instance of the class. The HTTP method. The request URI. The headers. The input stream. Creates an instance that describes the specified HTTP request. The request. The request URI. An instance of . Creates an instance that describes the specified HTTP request. The listener request. An instance of . Creates an instance that describes the specified HTTP request. The HTTP method. The request URI. The form variables. The HTTP headers. An instance of . Creates an instance that describes the specified HTTP request. The HTTP method. The request URI. The headers. The input stream. An instance of . Reads name=value pairs from the POSTed form entity when the HTTP headers indicate that that is the payload of the entity. The HTTP method. The headers. A function that returns the input stream. The non-null collection of form variables. Gets the HTTP method. Gets the headers. Gets the URL. Gets the raw URL. Gets the form. Gets the query string. Gets the server variables. Gets the collection of cookies that were sent by the client. The client's cookies. Code contract for the interface. Prevents a default instance of the class from being created. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. The contract a message that is signed must implement. This type might have appeared in the DotNetOpenAuth.Messaging.Bindings namespace since it is only used by types in that namespace, but all those types are internal and this is the only one that was public. Gets or sets the message signature. Serializes/deserializes OAuth messages for/from transit. The specific -derived type that will be serialized and deserialized using this class. Initializes a new instance of the MessageSerializer class. The specific -derived type that will be serialized and deserialized using this class. Creates or reuses a message serializer for a given message type. The type of message that will be serialized/deserialized. A message serializer for the given message type. Reads JSON as a flat dictionary into a message. The message dictionary to fill with the JSON-deserialized data. The JSON reader. Reads the data from a message instance and writes an XML/JSON encoding of it. The message to be serialized. The writer to use for the serialized form. Use to create the instance capable of emitting JSON. Reads XML/JSON into a message dictionary. The message to deserialize into. The XML/JSON to read into the message. Thrown when protocol rules are broken by the incoming message. Use to create the instance capable of reading JSON. Reads the data from a message instance and returns a series of name=value pairs for the fields that must be included in the message. The message to be serialized. The dictionary of values to send for the message. Reads name=value pairs into a message. The name=value pairs that were read in from the transport. The message to deserialize into. Thrown when protocol rules are broken by the incoming message. Determines whether the specified type is numeric. The type to test. true if the specified type is numeric; otherwise, false. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to Argument's {0}.{1} property is required but is empty or null.. Looks up a localized string similar to Unable to send all message data because some of it requires multi-part POST, but IMessageWithBinaryData.SendAsMultipart was false.. Looks up a localized string similar to HttpContext.Current is null. There must be an ASP.NET request in process for this operation to succeed.. Looks up a localized string similar to DataContractSerializer could not be initialized on message type {0}. Is it missing a [DataContract] attribute?. Looks up a localized string similar to DataContractSerializer could not be initialized on message type {0} because the DataContractAttribute.Namespace property is not set.. Looks up a localized string similar to Decoding failed due to data corruption.. Looks up a localized string similar to An instance of type {0} was expected, but received unexpected derived type {1}.. Looks up a localized string similar to The directed message's Recipient property must not be null.. Looks up a localized string similar to The given set of options is not supported by this web request handler.. Looks up a localized string similar to Unable to instantiate the message part encoder/decoder type {0}.. Looks up a localized string similar to Error while deserializing message {0}.. Looks up a localized string similar to Error occurred while sending a direct message or getting the response.. Looks up a localized string similar to This exception was not constructed with a root request message that caused it.. Looks up a localized string similar to This exception must be instantiated with a recipient that will receive the error message, or a direct request message instance that this exception will respond to.. Looks up a localized string similar to Expected {0} message but received no recognizable message.. Looks up a localized string similar to The message part {0} was expected in the {1} message but was not found.. Looks up a localized string similar to The message expired at {0} and it is now {1}.. Looks up a localized string similar to Failed to add extra parameter '{0}' with value '{1}'.. Looks up a localized string similar to At least one of GET or POST flags must be present.. Looks up a localized string similar to This method requires a current HttpContext. Alternatively, use an overload of this method that allows you to pass in information without an HttpContext.. Looks up a localized string similar to Messages that indicate indirect transport must implement the {0} interface.. Looks up a localized string similar to Insecure web request for '{0}' aborted due to security requirements demanding HTTPS.. Looks up a localized string similar to The {0} message required protections {{{1}}} but the channel could only apply {{{2}}}.. Looks up a localized string similar to The customized binding element ordering is invalid.. Looks up a localized string similar to Some part(s) of the message have invalid values: {0}. Looks up a localized string similar to The incoming message had an invalid or missing nonce.. Looks up a localized string similar to An item with the same key has already been added.. Looks up a localized string similar to Message too large for a HTTP GET, and HTTP POST is not allowed for this message type.. Looks up a localized string similar to The {0} message does not support extensions.. Looks up a localized string similar to The value for {0}.{1} on member {1} was expected to derive from {2} but was {3}.. Looks up a localized string similar to Error while reading message '{0}' parameter '{1}' with value '{2}'.. Looks up a localized string similar to Message parameter '{0}' with value '{1}' failed to base64 decode.. Looks up a localized string similar to Error while preparing message '{0}' parameter '{1}' for sending.. Looks up a localized string similar to This message has a timestamp of {0}, which is beyond the allowable clock skew for in the future.. Looks up a localized string similar to Missing decryption key for bucket "{0}" handle "{1}". Looks up a localized string similar to A non-empty string was expected.. Looks up a localized string similar to A message response is already queued for sending in the response stream.. Looks up a localized string similar to This message has already been processed. This could indicate a replay attack in progress.. Looks up a localized string similar to This channel does not support replay protection.. Looks up a localized string similar to The following message parts had constant value requirements that were unsatisfied: {0}. Looks up a localized string similar to The following required non-empty parameters were empty in the {0} message: {1}. Looks up a localized string similar to The following required parameters were missing from the {0} message: {1}. Looks up a localized string similar to The binding element offering the {0} protection requires other protection that is not provided.. Looks up a localized string similar to The list is empty.. Looks up a localized string similar to The list contains a null element.. Looks up a localized string similar to An HttpContext.Current.Session object is required.. Looks up a localized string similar to Message signature was incorrect.. Looks up a localized string similar to This channel does not support signing messages. To support signing messages, a derived Channel type must override the Sign and IsSignatureValid methods.. Looks up a localized string similar to This message factory does not support message type(s): {0}. Looks up a localized string similar to The stream must have a known length.. Looks up a localized string similar to The stream's CanRead property returned false.. Looks up a localized string similar to The stream's CanWrite property returned false.. Looks up a localized string similar to Expected at most 1 binding element to apply the {0} protection, but more than one applied.. Looks up a localized string similar to The maximum allowable number of redirects were exceeded while requesting '{0}'.. Looks up a localized string similar to Unexpected buffer length.. Looks up a localized string similar to The array must not be empty.. Looks up a localized string similar to The empty string is not allowed.. Looks up a localized string similar to Expected direct response to use HTTP status code {0} but was {1} instead.. Looks up a localized string similar to Message parameter '{0}' had unexpected value '{1}'.. Looks up a localized string similar to Expected message {0} parameter '{1}' to have value '{2}' but had '{3}' instead.. Looks up a localized string similar to Expected message {0} but received {1} instead.. Looks up a localized string similar to Unexpected message type received.. Looks up a localized string similar to A null key was included and is not allowed.. Looks up a localized string similar to A null or empty key was included and is not allowed.. Looks up a localized string similar to A null value was included for key '{0}' and is not allowed.. Looks up a localized string similar to The type {0} or a derived type was expected, but {1} was given.. Looks up a localized string similar to {0} property has unrecognized value {1}.. Looks up a localized string similar to The URL '{0}' is rated unsafe and cannot be requested this way.. Looks up a localized string similar to This blob is not a recognized encryption format.. Looks up a localized string similar to The HTTP verb '{0}' is unrecognized and unsupported.. Looks up a localized string similar to '{0}' messages cannot be received with HTTP verb '{1}'.. Looks up a localized string similar to Redirects on POST requests that are to untrusted servers is not supported.. Looks up a localized string similar to Web request to '{0}' failed.. A grab-bag of utility methods useful for the channel stack of the protocol. The uppercase alphabet. The lowercase alphabet. The set of base 10 digits. The set of digits and alphabetic letters (upper and lowercase). All the characters that are allowed for use as a base64 encoding character. All the characters that are allowed for use as a base64 encoding character in the "web safe" context. The set of digits, and alphabetic letters (upper and lowercase) that are clearly visually distinguishable. The length of private symmetric secret handles. This value needn't be high, as we only expect to have a small handful of unexpired secrets at a time, and handle recycling is permissible. The cryptographically strong random data generator used for creating secrets. The random number generator is thread-safe. The default lifetime of a private secret. A character array containing just the = character. A character array containing just the , character. A character array containing just the " character. The set of characters that are unreserved in RFC 2396 but are NOT unreserved in RFC 3986. A set of escaping mappings that help secure a string from javscript execution. The characters to escape here are inspired by http://code.google.com/p/doctype/wiki/ArticleXSSInJavaScript Transforms an OutgoingWebResponse to an MVC-friendly ActionResult. The response to send to the user agent. The instance to be returned by the Controller's action method. Gets the original request URL, as seen from the browser before any URL rewrites on the server if any. Cookieless session directory (if applicable) is also included. The URL in the user agent's Location bar. Strips any and all URI query parameters that start with some prefix. The URI that may have a query with parameters to remove. The prefix for parameters to remove. A period is NOT automatically appended. Either a new Uri with the parameters removed if there were any to remove, or the same Uri instance if no parameters needed to be removed. Sends a multipart HTTP POST request (useful for posting files). The HTTP request. The request handler. The parts to include in the POST entity. The HTTP response. Assembles a message comprised of the message on a given exception and all inner exceptions. The exception. The assembled message. Flattens the specified sequence of sequences. The type of element contained in the sequence. The sequence of sequences to flatten. A sequence of the contained items. Cuts off precision beyond a second on a DateTime value. The value. A DateTime with a 0 millisecond component. Adds a name-value pair to the end of a given URL as part of the querystring piece. Prefixes a ? or & before first element as necessary. The UriBuilder to add arguments to. The name of the parameter to add. The value of the argument. If the parameters to add match names of parameters that already are defined in the query string, the existing ones are not replaced. Adds a set of values to a collection. The type of value kept in the collection. The collection to add to. The values to add to the collection. Tests whether two timespans are within reasonable approximation of each other. One TimeSpan. The other TimeSpan. The allowable margin of error. true if the two TimeSpans are within of each other. Compares to string values for ordinal equality in such a way that its execution time does not depend on how much of the value matches. The first value. The second value. A value indicating whether the two strings share ordinal equality. In signature equality checks, a difference in execution time based on how many initial characters match MAY be used as an attack to figure out the expected signature. It is therefore important to make a signature equality check's execution time independent of how many characters match the expected value. See http://codahale.com/a-lesson-in-timing-attacks/ for more information. Gets the public facing URL for the given incoming HTTP request. The incoming request. Cannot be null. The server variables to consider part of the request. Cannot be null. The URI that the outside world used to create this request. Although the value can be obtained from , it's useful to be able to pass them in so we can simulate injected values from our unit tests since the actual property is a read-only kind of . Gets the public facing URL for the given incoming HTTP request. The incoming request. Cannot be null. Server variables are read from this request. The URI that the outside world used to create this request. Gets the URL to the root of a web site, which may include a virtual directory path. An absolute URI. Creates the XML reader settings to use for reading XML from untrusted sources. The new instance of . The default values set here are based on recommendations from http://msdn.microsoft.com/en-us/magazine/ee335713.aspx Clears any existing elements in a collection and fills the collection with a given set of values. The type of value kept in the collection. The collection to modify. The new values to fill the collection. Strips any and all URI query parameters that serve as parts of a message. The URI that may contain query parameters to remove. The message description whose parts should be removed from the URL. A cleaned URL. Sends a multipart HTTP POST request (useful for posting files) but doesn't call GetResponse on it. The HTTP request. The request handler. The parts to include in the POST entity. Assembles the content of the HTTP Authorization or WWW-Authenticate header. The fields to include. A value prepared for an HTTP header. Assembles the content of the HTTP Authorization or WWW-Authenticate header. The scheme. The fields to include. A value prepared for an HTTP header. Parses the authorization header. The scheme. Must not be null or empty. The authorization header. May be null or empty. A sequence of key=value pairs discovered in the header. Never null, but may be empty. Encodes a symmetric key handle and the blob that is encrypted/signed with that key into a single string that can be decoded by . The cryptographic key handle. The encrypted/signed blob. The combined encoded value. Extracts the key handle and encrypted blob from a string previously returned from . The message part. May be null if not applicable. The value previously returned from . The crypto key handle. The encrypted/signed data. Gets a buffer of random data (not cryptographically strong). The length of the sequence to generate. The generated values, which may contain zeros. Gets a cryptographically strong random sequence of values. The length of the sequence to generate. The generated values, which may contain zeros. Gets a cryptographically strong random string of base64 characters. The length of the byte sequence to generate. A base64 encoding of the generated random data, whose length in characters will likely be greater than . Gets a NON-cryptographically strong random string of base64 characters. The length of the byte sequence to generate. A value indicating whether web64 encoding is used to avoid the need to escape characters. A base64 encoding of the generated random data, whose length in characters will likely be greater than . Gets a random string made up of a given set of allowable characters. The length of the desired random string. The allowable characters. A random string. Computes the hash of a string. The hash algorithm to use. The value to hash. The encoding to use when converting the string to a byte array. A base64 encoded string. Computes the hash of a sequence of key=value pairs. The hash algorithm to use. The data to hash. The encoding to use when converting the string to a byte array. A base64 encoded string. Computes the hash of a sequence of key=value pairs. The hash algorithm to use. The data to hash. The encoding to use when converting the string to a byte array. A base64 encoded string. Encrypts a byte buffer. The buffer to encrypt. The symmetric secret to use to encrypt the buffer. Allowed values are 128, 192, or 256 bytes in length. The encrypted buffer Decrypts a byte buffer. The buffer to decrypt. The symmetric secret to use to decrypt the buffer. Allowed values are 128, 192, and 256. The encrypted buffer Encrypts a string. The text to encrypt. The symmetric secret to use to encrypt the buffer. Allowed values are 128, 192, and 256. The encrypted buffer Decrypts a string previously encrypted with . The text to decrypt. The symmetric secret to use to decrypt the buffer. Allowed values are 128, 192, and 256. The encrypted buffer Performs asymmetric encryption of a given buffer. The asymmetric encryption provider to use for encryption. The buffer to encrypt. The encrypted data. Performs asymmetric decryption of a given buffer. The asymmetric encryption provider to use for decryption. The buffer to decrypt. The decrypted data. Gets a key from a given bucket with the longest remaining life, or creates a new one if necessary. The crypto key store. The bucket where the key should be found or stored. The minimum remaining life required on the returned key. The required size of the key, in bits. A key-value pair whose key is the secret's handle and whose value is the cryptographic key. Compresses a given buffer. The buffer to compress. The compression algorithm to use. The compressed data. Decompresses a given buffer. The buffer to decompress. The compression algorithm used. The decompressed data. Converts to data buffer to a base64-encoded string, using web safe characters and with the padding removed. The data buffer. A web-safe base64-encoded string without padding. Decodes a (web-safe) base64-string back to its binary buffer form. The base64-encoded string. May be web-safe encoded. A data buffer. Adds a set of HTTP headers to an instance, taking care to set some headers to the appropriate properties of The headers to add. The instance to set the appropriate values to. Adds a set of HTTP headers to an instance, taking care to set some headers to the appropriate properties of The headers to add. The instance to set the appropriate values to. Copies the contents of one stream to another. The stream to copy from, at the position where copying should begin. The stream to copy to, at the position where bytes should be written. The total number of bytes copied. Copying begins at the streams' current positions. The positions are NOT reset after copying is complete. Copies the contents of one stream to another. The stream to copy from, at the position where copying should begin. The stream to copy to, at the position where bytes should be written. The maximum bytes to copy. The total number of bytes copied. Copying begins at the streams' current positions. The positions are NOT reset after copying is complete. Creates a snapshot of some stream so it is seekable, and the original can be closed. The stream to copy bytes from. A seekable stream with the same contents as the original. Clones an in order to send it again. The request to clone. The newly created instance. Clones an in order to send it again. The request to clone. The new recipient of the request. The newly created instance. Tests whether two arrays are equal in contents and ordering. The type of elements in the arrays. The first array in the comparison. May be null. The second array in the comparison. May be null. True if the arrays equal; false otherwise. Tests whether two arrays are equal in contents and ordering, guaranteeing roughly equivalent execution time regardless of where a signature mismatch may exist. The first array in the comparison. May not be null. The second array in the comparison. May not be null. True if the arrays equal; false otherwise. Guaranteeing equal execution time is useful in mitigating against timing attacks on a signature or other secret. Tests two sequences for same contents and ordering. The type of elements in the arrays. The first sequence in the comparison. May not be null. The second sequence in the comparison. May not be null. True if the arrays equal; false otherwise. Tests two unordered collections for same contents. The type of elements in the collections. The first collection in the comparison. May not be null. The second collection in the comparison. May not be null. True if the collections have the same contents; false otherwise. Tests whether two dictionaries are equal in length and contents. The type of keys in the dictionaries. The type of values in the dictionaries. The first dictionary in the comparison. May not be null. The second dictionary in the comparison. May not be null. True if the arrays equal; false otherwise. Concatenates a list of name-value pairs as key=value&key=value, taking care to properly encode each key and value for URL transmission according to RFC 3986. No ? is prefixed to the string. The dictionary of key/values to read from. The formulated querystring style string. Adds a set of name-value pairs to the end of a given URL as part of the querystring piece. Prefixes a ? or & before first element as necessary. The UriBuilder to add arguments to. The arguments to add to the query. If null, is not changed. If the parameters to add match names of parameters that already are defined in the query string, the existing ones are not replaced. Adds a set of name-value pairs to the end of a given URL as part of the fragment piece. Prefixes a # or & before first element as necessary. The UriBuilder to add arguments to. The arguments to add to the query. If null, is not changed. If the parameters to add match names of parameters that already are defined in the fragment, the existing ones are not replaced. Adds parameters to a query string, replacing parameters that match ones that already exist in the query string. The UriBuilder to add arguments to. The arguments to add to the query. If null, is not changed. Extracts the recipient from an HttpRequestInfo. The request to get recipient information from. The recipient. Thrown if the HTTP request is something we can't handle. Gets the enum value for a given HTTP verb. The HTTP verb. A enum value that is within the . Thrown if the HTTP request is something we can't handle. Gets the HTTP verb to use for a given enum value. The HTTP method. An HTTP verb, such as GET, POST, PUT, DELETE, PATCH, or OPTION. Copies some extra parameters into a message. The message to copy the extra data into. The extra data to copy into the message. May be null to do nothing. Collects a sequence of key=value pairs into a dictionary. The type of the key. The type of the value. The sequence. A dictionary. Enumerates all members of the collection as key=value pairs. The collection to enumerate. A sequence of pairs. Converts a to an IDictionary<string, string>. The NameValueCollection to convert. May be null. The generated dictionary, or null if is null. If a null key is encountered, its value is ignored since Dictionary<string, string> does not allow null keys. Converts a to an IDictionary<string, string>. The NameValueCollection to convert. May be null. A value indicating whether a null key in the should be silently skipped since it is not a valid key in a Dictionary. Use true to throw an exception if a null key is encountered. Use false to silently continue converting the valid keys. The generated dictionary, or null if is null. Thrown if is true and a null key is encountered. Converts a dictionary to a The existing dictionary. The new collection. Sorts the elements of a sequence in ascending order by using a specified comparer. The type of the elements of source. The type of the key returned by keySelector. A sequence of values to order. A function to extract a key from an element. A comparison function to compare keys. An System.Linq.IOrderedEnumerable<TElement> whose elements are sorted according to a key. Determines whether the specified message is a request (indirect message or direct request). The message in question. true if the specified message is a request; otherwise, false. Although an may implement the interface, it may only be doing that for its derived classes. These objects are only requests if their property is non-null. Determines whether the specified message is a direct response. The message in question. true if the specified message is a direct response; otherwise, false. Although an may implement the interface, it may only be doing that for its derived classes. These objects are only requests if their property is non-null. Writes a buffer, prefixed with its own length. The binary writer. The buffer. Reads a buffer that is prefixed with its own length. The binary reader positioned at the buffer length. The maximum size of the buffer that should be permitted. Although the stream will indicate the size of the buffer, this mitigates data corruption or DoS attacks causing the web server to allocate too much memory for a small data packet. The read buffer. Constructs a Javascript expression that will create an object on the user agent when assigned to a variable. The untrusted names and untrusted values to inject into the JSON object. if set to true the values will NOT be escaped as if it were a pure string. The Javascript JSON object as a string. Serializes the given message as a JSON string. The message to serialize. The cached message descriptions to use for reflection. A JSON string. Serializes the given message as a JSON string. The message to serialize. The cached message descriptions to use for reflection. The encoding to use. Defaults to A JSON string. Deserializes a JSON object into a message. The buffer containing the JSON string. The message to deserialize the object into. The cache of message descriptions. The encoding that the JSON bytes are in. Prepares what SHOULD be simply a string value for safe injection into Javascript by using appropriate character escaping. The untrusted string value to be escaped to protected against XSS attacks. May be null. The escaped string, surrounded by single-quotes. Escapes a string according to the URI data string rules given in RFC 3986. The value to escape. The escaped value. The method is supposed to take on RFC 3986 behavior if certain elements are present in a .config file. Even if this actually worked (which in my experiments it doesn't), we can't rely on every host actually having this configuration element present. Ensures that UTC times are converted to local times. Unspecified kinds are unchanged. The date-time to convert. The date-time in local time. Ensures that local times are converted to UTC times. Unspecified kinds are unchanged. The date-time to convert. The date-time in UTC time. Gets the query data from the original request (before any URL rewriting has occurred.) The request. A containing all the parameters in the query string. Gets a value indicating whether the request's URL was rewritten by ASP.NET or some other module. The request. A value indicating whether there is evidence that the URL of the request has been changed to some internal server (farm) representation. true if this request's URL was rewritten; otherwise, false. Gets the query or form data from the original request (before any URL rewriting has occurred.) The request. A set of name=value pairs. Creates a symmetric algorithm for use in encryption/decryption. The symmetric key to use for encryption/decryption. A symmetric algorithm. Gets a random number generator for use on the current thread only. The available compression algorithms. The Deflate algorithm. The GZip algorithm. A thread-safe, non-crypto random number generator. The initializer of all new instances. A thread-local instance of Gets a random number generator for use on the current thread only. A class to convert a into an . The type of objects being compared. The comparison method to use. Initializes a new instance of the ComparisonHelper class. The comparison method to use. Compares two instances of . The first object to compare. The second object to compare. Any of -1, 0, or 1 according to standard comparison rules. A message expiration enforcing binding element that supports messages implementing the interface. Initializes a new instance of the class. Sets the timestamp on an outgoing message. The outgoing message. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Reads the timestamp on a message and throws an exception if the message is too old. The incoming message. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown if the given message has already expired. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Gets the protection offered by this binding element. Gets or sets the channel that this binding element belongs to. Gets the maximum age a message implementing the interface can be before being discarded as too old. A pair of conversion functions to map some type to a string and back again. The mapping function that converts some custom type to a string. The mapping function that converts some custom type to the original string (possibly non-normalized) that represents it. The mapping function that converts a string to some custom type. Initializes a new instance of the struct. The mapping function that converts some custom value to a string. The mapping function that converts some custom value to its original (non-normalized) string. May be null if the same as the function. The mapping function that converts a string to some custom value. Initializes a new instance of the struct. The encoder. Gets the encoder. A mapping between serialized key names and instances describing those key/values pairs. A mapping between the serialized key names and their describing instances. Initializes a new instance of the class. Type of the message. The message version. Returns a that represents this instance. A that represents this instance. Gets a dictionary that provides read/write access to a message. The message the dictionary should provide access to. The dictionary accessor to the message Gets a dictionary that provides read/write access to a message. The message the dictionary should provide access to. A value indicating whether this message dictionary will retrieve original values instead of normalized ones. The dictionary accessor to the message Ensures the message parts pass basic validation. The key/value pairs of the serialized message. Tests whether all the required message parts pass basic validation for the given data. The key/value pairs of the serialized message. A value indicating whether the provided data fits the message's basic requirements. Verifies that a given set of keys include all the required parameters for this message type or throws an exception. The names of all parameters included in a message. if set to true an exception is thrown on failure with details. A value indicating whether the provided data fits the message's basic requirements. Thrown when required parts of a message are not in if is true. Ensures the protocol message parts that must not be empty are in fact not empty. A dictionary of key/value pairs that make up the serialized message. if set to true an exception is thrown on failure with details. A value indicating whether the provided data fits the message's basic requirements. Thrown when required parts of a message are not in if is true. Checks that a bunch of message part values meet the constant value requirements of this message description. The part values. if set to true, this method will throw on failure. A value indicating whether all the requirements are met. Reflects over some -implementing type and prepares to serialize/deserialize instances of that type. Gets the mapping between the serialized key names and their describing instances. Gets the message version this instance was generated from. Gets the type of message this instance was generated from. The type of the described message. Gets the constructors available on the message type. Wraps an instance in a dictionary that provides access to both well-defined message properties and "extra" name/value pairs that have no properties associated with them. The instance manipulated by this dictionary. The instance that describes the message type. Whether original string values should be retrieved instead of normalized ones. Initializes a new instance of the class. The message instance whose values will be manipulated by this dictionary. The message description. A value indicating whether this message dictionary will retrieve original values instead of normalized ones. Adds a named value to the message. The serialized form of the name whose value is being set. The serialized form of the value. Thrown if already has a set value in this message. Thrown if is null. Checks whether some named parameter has a value set in the message. The serialized form of the message part's name. True if the parameter by the given name has a set value. False otherwise. Removes a name and value from the message given its name. The serialized form of the name to remove. True if a message part by the given name was found and removed. False otherwise. Gets some named value if the key has a value. The name (in serialized form) of the value being sought. The variable where the value will be set. True if the key was found and was set. False otherwise. Sets a named value in the message. The name-value pair to add. The name is the serialized form of the key. Removes all values in the message. Removes all items from the . The is read-only. This method cannot be implemented because keys are not guaranteed to be removed since some are inherent to the type of message that this dictionary provides access to. Checks whether a named value has been set on the message. The name/value pair. True if the key exists and has the given value. False otherwise. Copies all the serializable data from the message to a key/value array. The array to copy to. The index in the to begin copying to. Removes a named value from the message if it exists. The serialized form of the name and value to remove. True if the name/value was found and removed. False otherwise. Gets an enumerator that generates KeyValuePair<string, string> instances for all the key/value pairs that are set in the message. The enumerator that can generate the name/value pairs. Gets an enumerator that generates KeyValuePair<string, string> instances for all the key/value pairs that are set in the message. The enumerator that can generate the name/value pairs. Saves the data in a message to a standard dictionary. The generated dictionary. Loads data from a dictionary into the message. The data to load into the message. Gets the message this dictionary provides access to. Gets the description of the type of message this dictionary provides access to. Gets the number of explicitly set values in the message. Gets a value indicating whether this message is read only. Gets all the keys that have values associated with them. Gets the set of official message part names that have non-null values associated with them. Gets the keys that are in the message but not declared as official OAuth properties. Gets all the values. Gets the serializer for the message this dictionary provides access to. Gets or sets a value for some named value. The serialized form of a name for the value to read or write. The named value. If the key matches a declared property or field on the message type, that type member is set. Otherwise the key/value is stored in a dictionary for extra (weakly typed) strings. Thrown when setting a value that is not allowed for a given . Describes an individual member of a message and assists in its serialization. A map of converters that help serialize custom objects to string values and back again. A map of instantiated custom encoders used to encode/decode message parts. The string-object conversion routines to use for this individual message part. The property that this message part is associated with, if aplicable. The field that this message part is associated with, if aplicable. The type of the message part. (Not the type of the message itself). The default (uninitialized) value of the member inherent in its type. Initializes static members of the class. Initializes a new instance of the class. A property or field of an implementing type that has a attached to it. The attribute discovered on that describes the serialization requirements of the message part. Sets the member of a given message to some given value. Used in deserialization. The message instance containing the member whose value should be set. The string representation of the value to set. Gets the normalized form of a value of a member of a given message. Used in serialization. The message instance to read the value from. The string representation of the member's value. Gets the value of a member of a given message. Used in serialization. The message instance to read the value from. A value indicating whether the original value should be retrieved (as opposed to a normalized form of it). The string representation of the member's value. Gets whether the value has been set to something other than its CLR type default value. The message instance to check the value on. True if the value is not the CLR default value. Adds a pair of type conversion functions to the static conversion map. The custom type to convert to and from strings. The function to convert the custom type to a string. The mapping function that converts some custom value to its original (non-normalized) string. May be null if the same as the function. The function to convert a string to the custom type. Creates a that resorts to and for the conversion. The type to create the mapping for. The value mapping. Creates the default encoder for a given type. The type to create a for. A struct. Figures out the CLR default value for a given type. The type whose default value is being sought. Either null, or some default value like 0 or 0.0. Checks whether a type is a nullable value type (i.e. int?) The type in question. True if this is a nullable value type. Retrieves a previously instantiated encoder of a given type, or creates a new one and stores it for later retrieval as well. The message part encoder type. An instance of the desired encoder. Gets the value of the message part, without converting it to/from a string. The message instance to read from. The value of the member. Sets the value of a message part directly with a given value. The message instance to read from. The value to set on the this part. Converts a string representation of the member's value to the appropriate type. The string representation of the member's value. An instance of the appropriate type for setting the member. Converts the member's value to its string representation. The value of the member. A value indicating whether a string matching the originally decoded string should be returned (as opposed to a normalized string). The string representation of the member's value. Validates that the message part and its attribute have agreeable settings. Thrown when a non-nullable value type is set as optional. Gets or sets the name to use when serializing or deserializing this parameter in a message. Gets or sets whether this message part must be signed. Gets or sets a value indicating whether this message part is required for the containing message to be valid. Gets or sets a value indicating whether the string value is allowed to be empty in the serialized message. Gets or sets a value indicating whether the field or property must remain its default value. Gets or sets a value indicating whether this part is defined as a constant field and can be read without a message instance. Gets or sets a value indicating whether the value contained by this property contains sensitive information that should generally not be logged. true if this instance is security sensitive; otherwise, false. Gets the static constant value for this message part without a message instance. Gets the type of the declared member. Gets the type of the encoded values produced by this encoder, as they would appear in their preferred form. An exception thrown when messages cannot receive all the protections they require. Initializes a new instance of the class. The message whose protection requirements could not be met. The protection requirements that were fulfilled. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. A protocol message (request or response) that passes from this to a remote party via the user agent using a redirect or form POST submission, OR a direct message response. An instance of this type describes the HTTP response that must be sent in response to the current HTTP request. It is important that this response make up the entire HTTP response. A hosting ASPX page should not be allowed to render its normal HTML output after this response is sent. The normal rendered output of an ASPX page can be canceled by calling after this message is sent on the response stream. The encoder to use for serializing the response body. Initializes a new instance of the class. Initializes a new instance of the class based on the contents of an . The to clone. The maximum bytes to read from the response stream. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Automatically sends the appropriate response to the user agent and ends execution on the current page or handler. Typically thrown by ASP.NET in order to prevent additional data from the page being sent to the client and corrupting the response. Requires a current HttpContext. Automatically sends the appropriate response to the user agent and ends execution on the current page or handler. The context of the HTTP request whose response should be set. Typically this is . Typically thrown by ASP.NET in order to prevent additional data from the page being sent to the client and corrupting the response. Automatically sends the appropriate response to the user agent and ends execution on the current page or handler. The context of the HTTP request whose response should be set. Typically this is . Typically thrown by ASP.NET in order to prevent additional data from the page being sent to the client and corrupting the response. Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. Not safe to call from ASP.NET web forms. Requires a current HttpContext. This call is not safe to make from an ASP.NET web form (.aspx file or code-behind) because ASP.NET will render HTML after the protocol message has been sent, which will corrupt the response. Use the method instead for web forms. Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. Not safe to call from ASP.NET web forms. The context of the HTTP request whose response should be set. Typically this is . This call is not safe to make from an ASP.NET web form (.aspx file or code-behind) because ASP.NET will render HTML after the protocol message has been sent, which will corrupt the response. Use the method instead for web forms. Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. Not safe to call from ASP.NET web forms. The context of the HTTP request whose response should be set. Typically this is . This call is not safe to make from an ASP.NET web form (.aspx file or code-behind) because ASP.NET will render HTML after the protocol message has been sent, which will corrupt the response. Use the method instead for web forms. Submits this response to a WCF response context. Only available when no response body is included. The response context to apply the response to. Automatically sends the appropriate response to the user agent. The response to set to this message. Gets the URI that, when requested with an HTTP GET request, would transmit the message that normally would be transmitted via a user agent redirect. The channel to use for encoding. The URL that would transmit the original message. This URL may exceed the normal 2K limit, and should therefore be broken up manually and POSTed as form fields when it exceeds this length. This is useful for desktop applications that will spawn a user agent to transmit the message rather than cause a redirect. Sets the response to some string, encoded as UTF-8. The string to set the response to. Type of the content. May be null. Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. The context of the HTTP request whose response should be set. Typically this is . If set to false, this method calls rather than to avoid a . Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. The context of the HTTP request whose response should be set. Typically this is . If set to false, this method calls rather than to avoid a . Gets the headers that must be included in the response to the user agent. The headers in this collection are not meant to be a comprehensive list of exactly what should be sent, but are meant to augment whatever headers are generally included in a typical response. Gets the body of the HTTP response. Gets a value indicating whether the response stream is incomplete due to a length limitation imposed by the HttpWebRequest or calling method. Gets the cookies collection to add as headers to the HTTP response. Gets or sets the body of the response as a string. Gets the HTTP status code to use in the HTTP response. Gets or sets a reference to the actual protocol message that is being sent via the user agent. The methods available for the local party to send messages to a remote party. See OAuth 1.0 spec section 5.2. No HTTP methods are allowed. In the HTTP Authorization header as defined in OAuth HTTP Authorization Scheme (OAuth HTTP Authorization Scheme). As the HTTP POST request body with a content-type of application/x-www-form-urlencoded. Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). The flags that control HTTP verbs. The type of transport mechanism used for a message: either direct or indirect. A message that is sent directly from the Consumer to the Service Provider, or vice versa. A message that is sent from one party to another via a redirect in the user agent. Encodes and decodes the as an integer of total seconds. Initializes a new instance of the class. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Gets the type of the encoded values produced by this encoder, as they would appear in their preferred form. A paranoid HTTP get/post request engine. It helps to protect against attacks from remote server leaving dangling connections, sending too much data, causing requests against internal servers, etc. Protections include: * Conservative maximum time to receive the complete response. * Only HTTP and HTTPS schemes are permitted. * Internal IP address ranges are not permitted: 127.*.*.*, 1::* * Internal host names are not permitted (periods must be found in the host name) If a particular host would be permitted but is in the blacklist, it is not allowed. If a particular host would not be permitted but is in the whitelist, it is allowed. The set of URI schemes allowed in untrusted web requests. The collection of blacklisted hosts. The collection of regular expressions used to identify additional blacklisted hosts. The collection of whitelisted hosts. The collection of regular expressions used to identify additional whitelisted hosts. The maximum redirections to follow in the course of a single request. The maximum number of bytes to read from the response of an untrusted server. The handler that will actually send the HTTP request and collect the response once the untrusted server gates have been satisfied. Initializes a new instance of the class. Initializes a new instance of the class. The chained web request handler. Determines whether this instance can support the specified options. The set of options that might be given in a subsequent web request. true if this instance can support the specified options; otherwise, false. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The options to apply to this web request. The writer the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Processes an and converts the to a instance. The to handle. The options to apply to this web request. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The writer the caller should write out the entity data to. Processes an and converts the to a instance. The to handle. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Determines whether an IP address is the IPv6 equivalent of "localhost/127.0.0.1". The ip address to check. true if this is a loopback IP address; false otherwise. Determines whether the given host name is in a host list or host name regex list. The host name. The list of host names. The list of regex patterns of host names. true if the specified host falls within at least one of the given lists; otherwise, false. Determines whether a given host is whitelisted. The host name to test. true if the host is whitelisted; otherwise, false. Determines whether a given host is blacklisted. The host name to test. true if the host is blacklisted; otherwise, false. Verify that the request qualifies under our security policies The request URI. If set to true, only web requests that can be made entirely over SSL will succeed. Thrown when the URI is disallowed for security reasons. Determines whether a URI is allowed based on scheme and host name. No requireSSL check is done here The URI to test for whether it should be allowed. true if [is URI allowable] [the specified URI]; otherwise, false. Prepares the request by setting timeout and redirect policies. The request to prepare. true if this is a POST request whose headers have not yet been sent out; false otherwise. Gets or sets the default maximum bytes to read in any given HTTP request. Default is 1MB. Cannot be less than 2KB. Gets or sets the total number of redirections to allow on any one request. Default is 10. Gets or sets the time allowed to wait for single read or write operation to complete. Default is 500 milliseconds. Gets or sets the time allowed for an entire HTTP request. Default is 5 seconds. Gets a collection of host name literals that should be allowed even if they don't pass standard security checks. Gets a collection of host name regular expressions that indicate hosts that should be allowed even though they don't pass standard security checks. Gets a collection of host name literals that should be rejected even if they pass standard security checks. Gets a collection of host name regular expressions that indicate hosts that should be rejected even if they pass standard security checks. Gets the configuration for this class that is specified in the host's .config file. The default handler for transmitting instances and returning the responses. The set of options this web request handler supports. The value to use for the User-Agent HTTP header. Determines whether this instance can support the specified options. The set of options that might be given in a subsequent web request. true if this instance can support the specified options; otherwise, false. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The writer the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The options to apply to this web request. The writer the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Processes an and converts the to a instance. The to handle. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Processes an and converts the to a instance. The to handle. The options to apply to this web request. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Determines whether an exception was thrown because of the remote HTTP server returning HTTP 417 Expectation Failed. The caught exception. true if the failure was originally caused by a 417 Exceptation Failed error; otherwise, false. Initiates a POST request and prepares for sending data. The HTTP request with information about the remote party to contact. The stream where the POST entity can be written. Prepares an HTTP request. The request. true if this is a POST request whose headers have not yet been sent out; false otherwise. An immutable description of a URL that receives messages. Initializes a new instance of the class. The URL of this endpoint. The HTTP method(s) allowed. Initializes a new instance of the class. The URL of this endpoint. The HTTP method(s) allowed. Gets the URL of this endpoint. Gets the HTTP method(s) allowed. Represents the section in the host's .config file that configures this library's settings. The name of the section under which this library's settings must be found. The name of the <openid> sub-element. The name of the <oauth> sub-element. Initializes a new instance of the class. Gets a named section in this section group, or null if no such section is defined. The name of the section to obtain. The desired section, or null if it could not be obtained. Gets the messaging configuration element. Gets the reporting configuration element. Represents the <messaging> element in the host's .config file. The name of the <webResourceUrlProvider> sub-element. The name of the <untrustedWebRequest> sub-element. The name of the attribute that stores the association's maximum lifetime. The name of the attribute that stores the maximum allowable clock skew. The name of the attribute that indicates whether to disable SSL requirements across the library. The name of the attribute that controls whether messaging rules are strictly followed. The default value for the property. 2KB, recommended by OpenID group The name of the attribute that controls the maximum length of a URL before it is converted to a POST payload. Gets the name of the @privateSecretMaximumAge attribute. The name of the <messaging> sub-element. Gets the configuration section from the .config file. Gets the actual maximum message lifetime that a program should allow. The sum of the and property values. Gets or sets the maximum lifetime of a private symmetric secret, that may be used for signing or encryption. The default value is 28 days (twice the age of the longest association). Gets or sets the time between a message's creation and its receipt before it is considered expired. The default value value is 3 minutes. Smaller timespans mean lower tolerance for delays in message delivery. Larger timespans mean more nonces must be stored to provide replay protection. The maximum age a message implementing the interface can be before being discarded as too old. This time limit should NOT take into account expected time skew for servers across the Internet. Time skew is added to this value and is controlled by the property. Gets or sets the maximum clock skew. The default value is 10 minutes. Smaller timespans mean lower tolerance for time variance due to server clocks not being synchronized. Larger timespans mean greater chance for replay attacks and larger nonce caches. For example, if a server could conceivably have its clock d = 5 minutes off UTC time, then any two servers could have their clocks disagree by as much as 2*d = 10 minutes. Gets or sets a value indicating whether SSL requirements within the library are disabled/relaxed. Use for TESTING ONLY. Gets or sets a value indicating whether messaging rules are strictly adhered to. true by default. Strict will require that remote parties adhere strictly to the specifications, even when a loose interpretation would not compromise security. true is a good default because it shakes out interoperability bugs in remote services so they can be identified and corrected. But some web sites want things to Just Work more than they want to file bugs against others, so false is the setting for them. Gets or sets the configuration for the class. The untrusted web request. Gets or sets the maximum allowable size for a 301 Redirect response before we send a 200 OK response with a scripted form POST with the parameters instead in order to ensure successfully sending a large payload to another server that might have a maximum allowable size restriction on its GET request. The default value is 2048. Gets or sets the embedded resource retrieval provider. The embedded resource retrieval provider. Represents the <reporting> element in the host's .config file. The name of the @enabled attribute. The name of the @minimumReportingInterval attribute. The name of the @minimumFlushInterval attribute. The name of the @includeFeatureUsage attribute. The name of the @includeEventStatistics attribute. The name of the @includeLocalRequestUris attribute. The name of the @includeCultures attribute. The name of the <reporting> sub-element. The default value for the @minimumFlushInterval attribute. Initializes a new instance of the class. Gets the configuration section from the .config file. Gets or sets a value indicating whether this reporting is enabled. true if enabled; otherwise, false. Gets or sets the maximum frequency that reports will be published. Gets or sets the maximum frequency the set can be flushed to disk. Gets or sets a value indicating whether to include a list of library features used in the report. true to include a report of features used; otherwise, false. Gets or sets a value indicating whether to include statistics of certain events such as authentication success and failure counting, and can include remote endpoint URIs. true to include event counters in the report; otherwise, false. Gets or sets a value indicating whether to include a few URLs to pages on the hosting web site that host DotNetOpenAuth components. Gets or sets a value indicating whether to include the cultures requested by the user agent on pages that host DotNetOpenAuth components. A configuration collection of trusted OP Endpoints. The name of the "rejectAssertionsFromUntrustedProviders" element. Initializes a new instance of the class. Initializes a new instance of the class. The elements to initialize the collection with. When overridden in a derived class, creates a new . A new . Gets the element key for a specified configuration element when overridden in a derived class. The to return the key for. An that acts as the key for the specified . Gets or sets a value indicating whether any login attempt coming from an OpenID Provider Endpoint that is not on this whitelist of trusted OP Endpoints will be rejected. If the trusted providers list is empty and this value is true, all assertions are rejected. A configuration element that records a trusted Provider Endpoint. The name of the attribute that stores the value. Initializes a new instance of the class. Gets or sets the OpenID Provider Endpoint (aka "OP Endpoint") that this relying party trusts. A collection of . The type that all types specified in the elements must derive from. Initializes a new instance of the TypeConfigurationCollection class. Initializes a new instance of the TypeConfigurationCollection class. The elements that should be added to the collection initially. Creates instances of all the types listed in the collection. if set to true then internal types may be instantiated. A sequence of instances generated from types in this collection. May be empty, but never null. When overridden in a derived class, creates a new . A new . Gets the element key for a specified configuration element when overridden in a derived class. The to return the key for. An that acts as the key for the specified . Represents an element in a .config file that allows the user to provide a @type attribute specifying the full type that provides some service used by this library. A constraint on the type the user may provide. The name of the attribute whose value is the full name of the type the user is specifying. The name of the attribute whose value is the path to the XAML file to deserialize to obtain the type. Initializes a new instance of the TypeConfigurationElement class. Creates an instance of the type described in the .config file. The value to return if no type is given in the .config file. The newly instantiated type. Creates an instance of the type described in the .config file. The value to return if no type is given in the .config file. if set to true then internal types may be instantiated. The newly instantiated type. Creates the instance from xaml. The stream of xaml to deserialize. The deserialized object. This exists as its own method to prevent the CLR's JIT compiler from failing to compile the CreateInstance method just because the PresentationFramework.dll may be missing (which it is on some shared web hosts). This way, if the XamlSource attribute is never used, the PresentationFramework.dll never need be present. Gets or sets the full name of the type. The full name of the type, such as: "ConsumerPortal.Code.CustomStore, ConsumerPortal". Gets or sets the path to the XAML file to deserialize to obtain the instance. Gets the type described in the .config file. Gets a value indicating whether this type has no meaningful type to instantiate. Represents the section of a .config file where security policies regarding web requests to user-provided, untrusted servers is controlled. Gets the name of the @timeout attribute. Gets the name of the @readWriteTimeout attribute. Gets the name of the @maximumBytesToRead attribute. Gets the name of the @maximumRedirections attribute. Gets the name of the @whitelistHosts attribute. Gets the name of the @whitelistHostsRegex attribute. Gets the name of the @blacklistHosts attribute. Gets the name of the @blacklistHostsRegex attribute. Gets or sets the read/write timeout after which an HTTP request will fail. Gets or sets the timeout after which an HTTP request will fail. Gets or sets the maximum bytes to read from an untrusted web server. Gets or sets the maximum redirections that will be followed before an HTTP request fails. Gets or sets the collection of hosts on the whitelist. Gets or sets the collection of hosts on the blacklist. Gets or sets the collection of regular expressions that describe hosts on the whitelist. Gets or sets the collection of regular expressions that describe hosts on the blacklist. Represents a collection of child elements that describe host names either as literal host names or regex patterns. Initializes a new instance of the class. Creates a new child host name element. A new . Gets the element key for a specified configuration element. The to return the key for. An that acts as the key for the specified . Gets all the members of the collection assuming they are all literal host names. Gets all the members of the collection assuming they are all host names regex patterns. Represents the name of a single host or a regex pattern for host names. Gets the name of the @name attribute. Initializes a new instance of the class. Initializes a new instance of the class. The default value of the property. Gets or sets the name of the host on the white or black list. An interface that provides URLs from which embedded resources can be obtained. Gets the URL from which the given manifest resource may be downloaded by the user agent. Some type in the assembly containing the desired resource. Manifest name of the desired resource. An absolute URL. A general logger for the entire DotNetOpenAuth library. Because this logger is intended for use with non-localized strings, the overloads that take have been removed, and is used implicitly. The instance that is to be used by this static Logger for the duration of the appdomain. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Creates an additional logger on demand for a subsection of the application. A name that will be included in the log file. The instance created with the given name. Creates the main logger for the library, and emits an INFO message that is the name and version of the library. A name that will be included in the log file. The instance created with the given name. Creates an additional logger on demand for a subsection of the application. A type whose full name that will be included in the log file. The instance created with the given type name. Discovers the presence of Log4net.dll and other logging mechanisms and returns the best available logger. The name of the log to initialize. The instance of the logger to use. Gets the logger for general library logging. Gets the logger for service discovery and selection events. Gets the logger for Messaging events. Gets the logger for Channel events. Gets the logger for binding elements and binding-element related events on the channel. Gets the logger specifically used for logging verbose text on everything about the signing process. Gets the logger for HTTP-level events. Gets the logger for events logged by ASP.NET controls. Gets the logger for high-level OpenID events. Gets the logger for high-level OAuth events. Gets the logger for high-level InfoCard events. The ILog interface is use by application to log messages into the log4net framework. Use the to obtain logger instances that implement this interface. The static method is used to get logger instances. This class contains methods for logging at different levels and also has properties for determining if those logging levels are enabled in the current configuration. This interface can be implemented in different ways. This documentation specifies reasonable behavior that a caller can expect from the actual implementation, however different implementations reserve the right to do things differently. Simple example of logging messages ILog log = LogManager.GetLogger("application-log"); log.Info("Application Start"); log.Debug("This is a debug message"); if (log.IsDebugEnabled) { log.Debug("This is another debug message"); } Nicko Cadell Gert Driesen Log a message object with the level. Log a message object with the level. The message object to log. This method first checks if this logger is DEBUG enabled by comparing the level of this logger with the level. If this logger is DEBUG enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. Log a message object with the level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Log a message object with the level. Logs a message object with the level. This method first checks if this logger is INFO enabled by comparing the level of this logger with the level. If this logger is INFO enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. The message object to log. Logs a message object with the INFO level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted message string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Log a message object with the level. Log a message object with the level. This method first checks if this logger is WARN enabled by comparing the level of this logger with the level. If this logger is WARN enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. The message object to log. Log a message object with the level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted message string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Log a message object with the level. Logs a message object with the level. The message object to log. This method first checks if this logger is ERROR enabled by comparing the level of this logger with the level. If this logger is ERROR enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. Log a message object with the level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted message string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Log a message object with the level. Log a message object with the level. This method first checks if this logger is FATAL enabled by comparing the level of this logger with the level. If this logger is FATAL enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. The message object to log. Log a message object with the level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted message string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. This function is intended to lessen the computational cost of disabled log debug statements. For some ILog interface log, when you write: log.Debug("This is entry number: " + i ); You incur the cost constructing the message, string construction and concatenation in this case, regardless of whether the message is logged or not. If you are worried about speed (who isn't), then you should write: if (log.IsDebugEnabled) { log.Debug("This is entry number: " + i ); } This way you will not incur the cost of parameter construction if debugging is disabled for log. On the other hand, if the log is debug enabled, you will incur the cost of evaluating whether the logger is debug enabled twice. Once in and once in the . This is an insignificant overhead since evaluating a logger takes about 1% of the time it takes to actually log. This is the preferred style of logging. Alternatively if your logger is available statically then the is debug enabled state can be stored in a static variable like this: private static readonly bool isDebugEnabled = log.IsDebugEnabled; Then when you come to log you can write: if (isDebugEnabled) { log.Debug("This is entry number: " + i ); } This way the debug enabled state is only queried once when the class is loaded. Using a private static readonly variable is the most efficient because it is a run time constant and can be heavily optimized by the JIT compiler. Of course if you use a static readonly variable to hold the enabled state of the logger then you cannot change the enabled state at runtime to vary the logging that is produced. You have to decide if you need absolute speed or runtime flexibility. Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. For more information see . Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. For more information see . Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. For more information see . Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. For more information see . Returns a new log4net logger if it exists, or returns null if the assembly cannot be found. The created instance. Creates the log4net.LogManager. Call ONLY after log4net.dll is known to be present. The created instance. Returns a new logger that does nothing when invoked. The created instance. See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . Returns a new logger that uses the class if sufficient CAS permissions are granted to use it, otherwise returns false. The created instance. See . See . See . See . See . Represents a read-only dictionary. The type of the key. The type of the value. Contains base dictionary. Initializes a new instance of the class. The base dictionary. Adds an element with the provided key and value to the . The object to use as the key of the element to add. The object to use as the value of the element to add. is null. An element with the same key already exists in the . The is read-only. Determines whether the contains an element with the specified key. The key to locate in the . true if the contains an element with the key; otherwise, false. is null. Removes the element with the specified key from the . The key of the element to remove. true if the element is successfully removed; otherwise, false. This method also returns false if was not found in the original . is null. The is read-only. Gets the value associated with the specified key. The key whose value to get. When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. true if the object that implements contains an element with the specified key; otherwise, false. is null. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Copies to. The array. Index of the array. Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Gets an containing the keys of the . An containing the keys of the object that implements . Gets an containing the values in the . An containing the values in the object that implements . Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Gets or sets the element with the specified key. The key being read or written. The element with the specified key. is null. The property is retrieved and is not found. The property is set and the is read-only. The statistical reporting mechanism used so this library's project authors know what versions and features are in use. A UTF8 encoder that doesn't emit the preamble. Used for mid-stream writers. A value indicating whether reporting is desirable or not. Must be logical-AND'd with !. A value indicating whether reporting experienced an error and cannot be enabled. A value indicating whether the reporting class has been initialized or not. The object to lock during initialization. The isolated storage to use for collecting data in between published reports. The GUID that shows up at the top of all reports from this user/machine/domain. The recipient of collected reports. The outgoing HTTP request handler to use for publishing reports. A few HTTP request hosts and paths we've seen. Cultures that have come in via HTTP requests. Features that have been used. A collection of all the observations to include in the report. The named events that we have counters for. The lock acquired while considering whether to publish a report. The time that we last published reports. Initializes static members of the class. Initializes a new instance of the class. Records an event occurrence. Name of the event. The category within the event. Null and empty strings are allowed, but considered the same. Records an event occurence. The object whose type name is the event name to record. The category within the event. Null and empty strings are allowed, but considered the same. Records the use of a feature by name. The feature. Records the use of a feature by object type. The object whose type is the feature to set as used. Records the use of a feature by object type. The object whose type is the feature to set as used. Some dependency used by . Records the use of a feature by object type. The object whose type is the feature to set as used. Some dependency used by . Some dependency used by . Records statistics collected from incoming requests. The request. Called by every internal/public method on this class to give periodic operations a chance to run. Initializes Reporting if it has not been initialized yet. Assembles a report for submission. A stream that contains the report. Sends the usage reports to the library authors. A value indicating whether submitting the report was successful. Interprets the reporting response as a log message if possible. The line from the HTTP response to interpret as a log message. Sends the stats report asynchronously, and careful to not throw any unhandled exceptions. Gets the isolated storage to use for reporting. An isolated storage location appropriate for our host. Gets a unique, pseudonymous identifier for this particular web site or application. A GUID that will serve as the identifier. The identifier is made persistent by storing the identifier in isolated storage. If an existing identifier is not found, a new one is created, persisted, and returned. Sanitizes the name of the file so it only includes valid filename characters. The filename to sanitize. The filename, with any and all invalid filename characters replaced with the hyphen (-) character. Gets or sets a value indicating whether this reporting is enabled. true if enabled; otherwise, false. Setting this property to true may have no effect if reporting has already experienced a failure of some kind. Gets the observed features. Gets the configuration to use for reporting. A set of values that persist the set to disk. The isolated persistent storage. The persistent reader. The persistent writer. The total set of elements. The maximum number of elements to track before not storing new elements. The set of new elements added to the since the last flush. The time the last flush occurred. A flag indicating whether the set has changed since it was last flushed. Initializes a new instance of the class. The storage location. Name of the file. The maximum number of elements to track. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Adds a value to the set. The value. Flushes any newly added values to disk. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets a value indicating whether the hashset has reached capacity and is not storing more elements. true if this instance is full; otherwise, false. Gets the name of the file. The name of the file. A feature usage counter. The separator to use between category names and their individual counters. The isolated persistent storage. The persistent reader. The persistent writer. The time the last flush occurred. The in-memory copy of the counter. A flag indicating whether the set has changed since it was last flushed. Initializes a new instance of the class. The storage location. Name of the file. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Increments the counter. The category within the event. Null and empty strings are allowed, but considered the same. Flushes any newly added values to disk. Resets all counters. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the name of the file. The name of the file. Argument validation checks that throw some kind of ArgumentException when they fail (unless otherwise noted). Validates that a given parameter is not null. The type of the parameter The value. Name of the parameter. The tested value, guaranteed to not be null. Validates that a parameter is not null or empty. The value. Name of the parameter. The validated value. Validates that an array is not null or empty. The type of the elements in the sequence. The value. Name of the parameter. Validates that an argument is either null or is a sequence with no null elements. The type of elements in the sequence. The sequence. Name of the parameter. Validates some expression describing the acceptable range for an argument evaluates to true. The expression that must evaluate to true to avoid an . Name of the parameter. The message to include with the exception. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . Name of the parameter. The message to include with the exception. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . Name of the parameter. The unformatted message. Formatting arguments. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . The message to include with the exception. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . The unformatted message. Formatting arguments. Validates that some argument describes a type that is or derives from a required type. The type that the argument must be or derive from. The type given in the argument. Name of the parameter. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . The message. Throws an if a condition does not evaluate to true. The expression that must evaluate to true to avoid an . The message. Throws an Name of the parameter. The message. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to The configuration-specified type {0} must be public, and is not.. Looks up a localized string similar to The configuration XAML reference to {0} requires a current HttpContext to resolve.. Looks up a localized string similar to The current IHttpHandler is not one of types: {0}. An embedded resource URL provider must be set in your .config file.. Looks up a localized string similar to The empty string is not allowed.. Looks up a localized string similar to The argument has an unexpected value.. Looks up a localized string similar to The property {0} must be set before this operation is allowed.. Looks up a localized string similar to This object contains a response body, which is not supported.. Looks up a localized string similar to No current HttpContext was detected, so an {0} instance must be explicitly provided or specified in the .config file. Call the constructor overload that takes an {0}.. Utility methods for working with URIs. Tests a URI for the presence of an OAuth payload. The URI to test. The prefix. True if the URI contains an OAuth message. Determines whether some is using HTTPS. The Uri being tested for security. true if the URI represents an encrypted request; otherwise, false. Equivalent to UriBuilder.ToString() but omits port # if it may be implied. Equivalent to UriBuilder.Uri.ToString(), but doesn't throw an exception if the Host has a wildcard. The UriBuilder to render as a string. The string version of the Uri. Validates that a URL will be resolvable at runtime. The page hosting the control that receives this URL as a property. If set to true the page is in design-time mode rather than runtime mode. The URI to check. Thrown if the given URL is not a valid, resolvable URI. A grab-bag utility class. The base namespace for this library from which all other namespaces derive. The web.config file-specified provider of web resource URLs. Tests for equality between two objects. Safely handles the case where one or both are null. The type of objects been checked for equality. The first object. The second object. true if the two objects are equal; false otherwise. Prepares a dictionary for printing as a string. The type of the key. The type of the value. The dictionary or sequence of name-value pairs. An object whose ToString method will perform the actual work of generating the string. The work isn't done until (and if) the method is actually called, which makes it great for logging complex objects without being in a conditional block. Offers deferred ToString processing for a list of elements, that are assumed to generate just a single-line string. The type of elements contained in the list. The list of elements. An object whose ToString method will perform the actual work of generating the string. Offers deferred ToString processing for a list of elements. The type of elements contained in the list. The list of elements. if set to true, special formatting will be applied to the output to make it clear where one element ends and the next begins. An object whose ToString method will perform the actual work of generating the string. Gets the web resource URL from a Page or object. Some type in resource assembly. Name of the manifest resource. An absolute URL Gets a human-readable description of the library name and version, including whether the build is an official or private one. Gets the assembly file version of the executing assembly, otherwise falls back to the assembly version. Manages an individual deferred ToString call. The type of object to be serialized as a string. The object that will be serialized if called upon. The method used to serialize to string form. Initializes a new instance of the DelayedToString class. The object that may be serialized to string form. The method that will serialize the object if called upon. Returns a that represents the current . A that represents the current . ================================================ FILE: packages/DotNetOpenAuth.Core.4.3.0.13117/lib/net40-full/DotNetOpenAuth.Core.xml ================================================ DotNetOpenAuth.Core Internal state consistency checks that throw an internal error exception when they fail. Validates some expression describing the acceptable condition evaluates to true. The expression that must evaluate to true to avoid an internal error exception. The message to include with the exception. Validates some expression describing the acceptable condition evaluates to true. The expression that must evaluate to true to avoid an internal error exception. The unformatted message. Formatting arguments. Throws an internal error exception. The message. Throws an internal error exception. Nothing. This method always throws. An internal error exception that should never be caught. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). A message part encoder that translates between byte[] and base64web encoded strings. An interface describing how various objects can be serialized and deserialized between their object and string forms. Implementations of this interface must include a default constructor and must be thread-safe. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Provides RSA encryption of symmetric keys to protect them from a theft of the persistent store. A persistent store for rotating symmetric cryptographic keys. Implementations should persist it in such a way that the keys are shared across all servers on a web farm, where applicable. The store should consider protecting the persistent store against theft resulting in the loss of the confidentiality of the keys. One possible mitigation is to asymmetrically encrypt each key using a certificate installed in the server's certificate store. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Thrown in the event of a conflict with an existing key in the same bucket and with the same handle. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. The persistent store for asymmetrically encrypted symmetric keys. The memory cache of decrypted keys. The asymmetric algorithm to use encrypting/decrypting the symmetric keys. Initializes a new instance of the class. The data store. The asymmetric protection to apply to symmetric keys. Must include the private key. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. Decrypts the specified key. The bucket. The handle. The encrypted key. The decrypted key. An encrypted key and its decrypted equivalent. A cryptographic key and metadata concerning it. Backing field for the property. Backing field for the property. Initializes a new instance of the class. The cryptographic key. The expires UTC. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. The parameter is null. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the key. Gets the expiration date of this key (UTC time). Initializes a new instance of the class. The encrypted key. The decrypted key. Invariant conditions. Gets the encrypted key. Thrown by a hosting application or web site when a cryptographic key is created with a bucket and handle that conflicts with a previously stored and unexpired key. Initializes a new instance of the class. Initializes a new instance of the class. The inner exception to include. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. Code contract for the interface. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Thrown in the event of a conflict with an existing key in the same bucket and with the same handle. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. A in-memory store of crypto keys. How frequently to check for and remove expired secrets. An in-memory cache of decrypted symmetric keys. The key is the bucket name. The value is a dictionary whose key is the handle and whose value is the cached key. The last time the cache had expired keys removed from it. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Thrown in the event of a conflict with an existing key in the same bucket and with the same handle. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. Cleans the expired keys from memory cache if the cleaning interval has passed. Weeds out expired keys from the in-memory cache. A compact binary serialization class. The -derived type to serialize/deserialize. A serializer for -derived types The DataBag-derived type that is to be serialized/deserialized. A serializer for -derived types The DataBag-derived type that is to be serialized/deserialized. Serializes the specified message. The message to serialize. Must not be null. A non-null, non-empty value. Deserializes a . The instance to deserialize into The serialized form of the to deserialize. Must not be null or empty. The message that contains the serialized value. May be null if no carrying message is applicable. The name of the parameter whose value is to be deserialized. Used for error message generation, but may be null. The length of the nonce to include in tokens that can be decoded once only. The message description cache to use for data bag types. The minimum allowable lifetime for the key used to encrypt/decrypt or sign this databag. The symmetric key store with the secret used for signing/encryption of verification codes and refresh tokens. The bucket for symmetric keys. The crypto to use for signing access tokens. The crypto to use for encrypting access tokens. A value indicating whether the data in this instance will be protected against tampering. The nonce store to use to ensure that this instance is only decoded once. The maximum age of a token that can be decoded; useful only when is true. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. Initializes a new instance of the class. The crypto service provider with the asymmetric key to use for signing or verifying the token. The crypto service provider with the asymmetric key to use for encrypting or decrypting the token. A value indicating whether the data in this instance will be GZip'd. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Initializes a new instance of the class. The crypto key store used when signing or encrypting. The bucket in which symmetric keys are stored for signing/encrypting data. A value indicating whether the data in this instance will be protected against tampering. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. The required minimum lifespan within which this token must be decodable and verifiable; useful only when and/or is true. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Initializes a new instance of the class. A value indicating whether the data in this instance will be protected against tampering. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Serializes the specified message, including compression, encryption, signing, and nonce handling where applicable. The message to serialize. Must not be null. A non-null, non-empty value. Deserializes a , including decompression, decryption, signature and nonce validation where applicable. The instance to initialize with deserialized data. The serialized form of the to deserialize. Must not be null or empty. The message that contains the serialized value. May be null if no carrying message is applicable. The name of the parameter whose value is to be deserialized. Used for error message generation, but may be null. Serializes the instance to a buffer. The message. The buffer containing the serialized data. Deserializes the instance from a buffer. The message instance to initialize with data from the buffer. The data buffer. Determines whether the signature on this instance is valid. The signed data. The signature. The symmetric secret handle. null when using an asymmetric algorithm. true if the signature is valid; otherwise, false. Calculates the signature for the data in this verification code. The bytes to sign. The symmetric secret handle. null when using an asymmetric algorithm. The calculated signature. Encrypts the specified value using either the symmetric or asymmetric encryption algorithm as appropriate. The value. Receives the symmetric secret handle. null when using an asymmetric algorithm. The encrypted value. Decrypts the specified value using either the symmetric or asymmetric encryption algorithm as appropriate. The value. The symmetric secret handle. null when using an asymmetric algorithm. The decrypted value. Initializes a new instance of the class. The crypto service provider with the asymmetric key to use for signing or verifying the token. The crypto service provider with the asymmetric key to use for encrypting or decrypting the token. A value indicating whether the data in this instance will be GZip'd. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Initializes a new instance of the class. The crypto key store used when signing or encrypting. The bucket in which symmetric keys are stored for signing/encrypting data. A value indicating whether the data in this instance will be protected against tampering. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. The minimum age. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Serializes the instance to a buffer. The message. The buffer containing the serialized data. Deserializes the instance from a buffer. The message instance to initialize with data from the buffer. The data buffer. Cached details on the response from a direct web request to a remote party. Details on the incoming response from a direct web request to a remote party. The encoding to use in reading a response that does not declare its own content encoding. Initializes a new instance of the class. Initializes a new instance of the class. The original request URI. The response to initialize from. The network stream is used by this class directly. Initializes a new instance of the class. The request URI. The final URI to respond to the request. The headers. The status code. Type of the content. The content encoding. Returns a that represents the current . A that represents the current . Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Gets an offline snapshot version of this instance. The maximum bytes from the response stream to cache. A snapshot version of this instance. If this instance is a creating a snapshot will automatically close and dispose of the underlying response stream. If this instance is a , the result will be the self same instance. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the type of the content. Gets the content encoding. Gets the URI of the initial request. Gets the URI that finally responded to the request. This can be different from the in cases of redirection during the request. Gets the headers that must be included in the response to the user agent. The headers in this collection are not meant to be a comprehensive list of exactly what should be sent, but are meant to augment whatever headers are generally included in a typical response. Gets the HTTP status code to use in the HTTP response. Gets the body of the HTTP response. A seekable, repeatable response stream. Initializes a new instance of the class. Initializes a new instance of the class. The request URI. The response. The maximum bytes to read. Initializes a new instance of the class. The request URI. The final URI to respond to the request. The headers. The status code. Type of the content. The content encoding. The response stream. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Gets the body of the response as a string. The entire body of the response. Gets an offline snapshot version of this instance. The maximum bytes from the response stream to cache. A snapshot version of this instance. If this instance is a creating a snapshot will automatically close and dispose of the underlying response stream. If this instance is a , the result will be the self same instance. Sets the response to some string, encoded as UTF-8. The string to set the response to. Caches the network stream and closes it if it is open. The response whose stream is to be cloned. The maximum bytes to cache. The seekable Stream instance that contains a copy of what was returned in the HTTP response. Gets a value indicating whether the cached response stream was truncated to a maximum allowable length. Gets the body of the HTTP response. Gets or sets the cached response stream. Code contract for the class. Manages sending direct messages to a remote party and receiving responses. The content-type used on HTTP POST requests where the POST entity is a URL-encoded series of key=value pairs. The content-type used for JSON serialized objects. The "text/javascript" content-type that some servers return instead of the standard one. The content-type for plain text. The HTML that should be returned to the user agent as part of a 301 Redirect. A string that should be used as the first argument to string.Format, where the {0} should be replaced with the URL to redirect to. The template for indirect messages that require form POST to forward through the user agent. We are intentionally using " instead of the html single quote ' below because the HtmlEncode'd values that we inject will only escape the double quote, so only the double-quote used around these values is safe. The encoding to use when writing out POST entity strings. A default set of XML dictionary reader quotas that are relatively safe from causing unbounded memory consumption. The content-type used on HTTP POST requests where the POST entity is a URL-encoded series of key=value pairs. This includes the character encoding. A list of binding elements in the order they must be applied to outgoing messages. A list of binding elements in the order they must be applied to incoming messages. The default cache of message descriptions to use unless they are customized. This is a perf optimization, so that we don't reflect over every message type every time a channel is constructed. A cache of reflected message types that may be sent or received on this channel. A tool that can figure out what kind of message is being received so it can be deserialized. Backing store for the property. Backing field for the property. Initializes a new instance of the class. A class prepared to analyze incoming messages and indicate what concrete message types can deserialize from it. The binding elements to use in sending and receiving messages. The order they are provided is used for outgoing messgaes, and reversed for incoming messages. Sends an indirect message (either a request or response) or direct message response for transmission to a remote party and ends execution on the current page or handler. The one-way message to send Thrown by ASP.NET in order to prevent additional data from the page being sent to the client and corrupting the response. Requires an HttpContext.Current context. Sends an indirect message (either a request or response) or direct message response for transmission to a remote party and skips most of the remaining ASP.NET request handling pipeline. Not safe to call from ASP.NET web forms. The one-way message to send Requires an HttpContext.Current context. This call is not safe to make from an ASP.NET web form (.aspx file or code-behind) because ASP.NET will render HTML after the protocol message has been sent, which will corrupt the response. Use the method instead for web forms. Prepares an indirect message (either a request or response) or direct message response for transmission to a remote party. The one-way message to send The pending user agent redirect based message to be sent as an HttpResponse. Gets the protocol message embedded in the given HTTP request, if present. The deserialized message, if one is found. Null otherwise. Requires an HttpContext.Current context. Thrown when is null. Gets the protocol message embedded in the given HTTP request, if present. The expected type of the message to be received. The deserialized message, if one is found. Null otherwise. True if the expected message was recognized and deserialized. False otherwise. Requires an HttpContext.Current context. Thrown when is null. Thrown when a request message of an unexpected type is received. Gets the protocol message embedded in the given HTTP request, if present. The expected type of the message to be received. The request to search for an embedded message. The deserialized message, if one is found. Null otherwise. True if the expected message was recognized and deserialized. False otherwise. Thrown when is null. Thrown when a request message of an unexpected type is received. Gets the protocol message embedded in the current HTTP request. The expected type of the message to be received. The deserialized message. Never null. Requires an HttpContext.Current context. Thrown when is null. Thrown if the expected message was not recognized in the response. Gets the protocol message embedded in the given HTTP request. The expected type of the message to be received. The request to search for an embedded message. The deserialized message. Never null. Thrown if the expected message was not recognized in the response. Gets the protocol message that may be embedded in the given HTTP request. The request to search for an embedded message. The deserialized message, if one is found. Null otherwise. Sends a direct message to a remote party and waits for the response. The expected type of the message to be received. The message to send. The remote party's response. Thrown if no message is recognized in the response or an unexpected type of message is received. Sends a direct message to a remote party and waits for the response. The message to send. The remote party's response. Guaranteed to never be null. Thrown if the response does not include a protocol message. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Verifies the integrity and applicability of an incoming message. The message just received. Thrown when the message is somehow invalid. This can be due to tampering, replay attack or expiration, among other things. Prepares an HTTP request that carries a given message. The message to send. The prepared to send the request. This method must be overridden by a derived class, unless the method is overridden and does not require this method. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec OAuth V1.0 section 5.3. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Thrown when the response is not valid. This method should NOT be called by derived types except when sending ONE WAY request messages. Prepares a message for transmit by applying signatures, nonces, etc. The message to prepare for sending. Gets the HTTP context for the current HTTP request. An HttpContextBase instance. Gets the current HTTP request being processed. The HttpRequestInfo for the current request. Requires an context. Thrown if HttpContext.Current == null. Checks whether a given HTTP method is expected to include an entity body in its request. The HTTP method. true if the HTTP method is supposed to have an entity; false otherwise. Applies message prescribed HTTP response headers to an outgoing web response. The message. The HTTP response. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Fires the event. The message about to be encoded and sent. Gets the direct response of a direct HTTP request. The web request. The response to the web request. Thrown on network or protocol errors. Submits a direct request message to some remote party and blocks waiting for an immediately reply. The request message. The response message, or null if the response did not carry a message. Typically a deriving channel will override to customize this method's behavior. However in non-HTTP frameworks, such as unit test mocks, it may be appropriate to override this method to eliminate all use of an HTTP transport. Called when receiving a direct response message, before deserialization begins. The HTTP direct response. The newly instantiated message, prior to deserialization. Gets the protocol message that may be embedded in the given HTTP request. The request to search for an embedded message. The deserialized message, if one is found. Null otherwise. Deserializes a dictionary of values into a message. The dictionary of values that were read from an HTTP request or response. Information about where the message was directed. Null for direct response messages. The deserialized message, or null if no message could be recognized in the provided data. Queues an indirect message for transmittal via the user agent. The message to send. The pending user agent redirect based message to be sent as an HttpResponse. Encodes an HTTP response that will instruct the user agent to forward a message to some remote third party using a 301 Redirect GET method. The message to forward. The pre-serialized fields from the message. if set to true the redirect will contain the message payload in the #fragment portion of the URL rather than the ?querystring. The encoded HTTP response. Encodes an HTTP response that will instruct the user agent to forward a message to some remote third party using a form POST method. The message to forward. The pre-serialized fields from the message. The encoded HTTP response. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Thrown when the response is not valid. Prepares an HTTP request that carries a given message. The message to send. The prepared to send the request. This method must be overridden by a derived class, unless the method is overridden and does not require this method. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec OAuth V1.0 section 5.3. Serializes the given message as a JSON string. The message to serialize. A JSON string. Deserializes from flat data from a JSON object. A JSON string. The simple "key":"value" pairs from a JSON-encoded object. Prepares a message for transmit by applying signatures, nonces, etc. The message to prepare for sending. This method should NOT be called by derived types except when sending ONE WAY request messages. Prepares to send a request to the Service Provider as the query string in a GET request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP Get request with the message parts serialized to the query string. This method satisfies OAuth 1.0 section 5.2, item #3. Prepares to send a request to the Service Provider as the query string in a HEAD request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP HEAD request with the message parts serialized to the query string. This method satisfies OAuth 1.0 section 5.2, item #3. Prepares to send a request to the Service Provider as the payload of a POST request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP POST request with the message parts serialized to the POST entity with the application/x-www-form-urlencoded content type This method satisfies OAuth 1.0 section 5.2, item #2 and OpenID 2.0 section 4.1.2. Prepares to send a request to the Service Provider as the query string in a PUT request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP PUT request with the message parts serialized to the query string. Prepares to send a request to the Service Provider as the query string in a DELETE request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP DELETE request with the message parts serialized to the query string. Sends the given parameters in the entity stream of an HTTP request. The HTTP request. The parameters to send. This method calls and closes the request stream, but does not call . Sends the given parameters in the entity stream of an HTTP request in multi-part format. The HTTP request. The parameters to send. This method calls and closes the request stream, but does not call . Verifies the integrity and applicability of an incoming message. The message just received. Thrown when the message is somehow invalid. This can be due to tampering, replay attack or expiration, among other things. Allows preprocessing and validation of message data before an appropriate message type is selected or deserialized. The received message data. Performs additional processing on an outgoing web request before it is sent to the remote server. The request. Customizes the binding element order for outgoing and incoming messages. The outgoing order. The incoming order. No binding elements can be added or removed from the channel using this method. Only a customized order is allowed. Thrown if a binding element is new or missing in one of the ordered lists. Ensures a consistent and secure set of binding elements and sorts them as necessary for a valid sequence of operations. The binding elements provided to the channel. The properly ordered list of elements. Thrown when the binding elements are incomplete or inconsistent with each other. Puts binding elements in their correct outgoing message processing order. The first protection type to compare. The second protection type to compare. -1 if should be applied to an outgoing message before . 1 if should be applied to an outgoing message before . 0 if it doesn't matter. Verifies that all required message parts are initialized to values prior to sending the message to a remote party. The message to verify. Thrown when any required message part does not have a value. Determines whether a given ordered list of binding elements includes every binding element in this channel exactly once. The list of binding elements to test. true if the given list is a valid description of a binding element ordering; otherwise, false. An event fired whenever a message is about to be encoded and sent. Gets or sets an instance to a that will be used when submitting HTTP requests and waiting for responses. This defaults to a straightforward implementation, but can be set to a mock object for testing purposes. Gets or sets the maximum allowable size for a 301 Redirect response before we send a 200 OK response with a scripted form POST with the parameters instead in order to ensure successfully sending a large payload to another server that might have a maximum allowable size restriction on its GET request. The default value is 2048. Gets or sets the message descriptions. Gets a tool that can figure out what kind of message is being received so it can be deserialized. Gets the binding elements used by this channel, in no particular guaranteed order. Gets the binding elements used by this channel, in the order applied to outgoing messages. Gets the binding elements used by this channel, in the order applied to incoming messages. Gets or sets a value indicating whether this instance is disposed. true if this instance is disposed; otherwise, false. Gets or sets a tool that can figure out what kind of message is being received so it can be deserialized. Gets or sets the cache policy to use for direct message requests. Default is . Gets or sets the XML dictionary reader quotas. The XML dictionary reader quotas. Prevents a default instance of the ChannelContract class from being created. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Thrown when the response is not valid. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec V1.0 section 5.3. HMAC-SHA algorithm names that can be passed to the method. The name of the HMAC-SHA1 algorithm. The name of the HMAC-SHA256 algorithm. The name of the HMAC-SHA384 algorithm. The name of the HMAC-SHA512 algorithm. Creates an HMAC-SHA algorithm with the specified name and key. A name from the available choices in the static const members of this class. The secret key used as the HMAC. The HMAC algorithm instance. Well known HTTP headers. The Authorization header, which specifies the credentials that the client presents in order to authenticate itself to the server. The WWW-Authenticate header, which is included in HTTP 401 Unauthorized responses to help the client know which authorization schemes are supported. The Content-Type header, which specifies the MIME type of the accompanying body data. An interface that allows direct request messages to capture the details of the HTTP request they arrived on. The interface that classes must implement to be serialized/deserialized as protocol or extension messages. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Gets the HTTP headers of the request. May be an empty collection, but must not be null. Contract class for the interface. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the HTTP headers of the request. May be an empty collection, but must not be null. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. An interface that allows indirect response messages to specify HTTP transport specific properties. Gets a value indicating whether the payload for the message should be included in the redirect fragment instead of the query string or POST entity. An interface that appears on messages that need to retain a description of what their literal payload was when they were deserialized. Gets or sets the original message parts, before any normalization or default values were assigned. Code contract for the interface. Gets or sets the original message parts, before any normalization or default values were assigned. A set of flags that can control the behavior of an individual web request. Indicates that default behavior is required. Indicates that any response from the remote server, even those with HTTP status codes that indicate errors, should not result in a thrown exception. Even with this flag set, should be thrown when an HTTP protocol error occurs (i.e. timeouts). Indicates that the HTTP request must be completed entirely using SSL (including any redirects). Extension methods for types. Caches the results of enumerating over a given object so that subsequence enumerations don't require interacting with the object a second time. The type of element found in the enumeration. The enumerable object. Either a new enumerable object that caches enumerated results, or the original, object if no caching is necessary to avoid additional CPU work. This is designed for use on the results of generator methods (the ones with yield return in them) so that only those elements in the sequence that are needed are ever generated, while not requiring regeneration of elements that are enumerated over multiple times. This can be a huge performance gain if enumerating multiple times over an expensive generator method. Some enumerable types such as collections, lists, and already-cached generators do not require any (additional) caching, and this method will simply return those objects rather than caching them to avoid double-caching. A wrapper for types and returns a caching from its method. The type of element in the sequence. The results from enumeration of the live object that have been collected thus far. The original generator method or other enumerable object whose contents should only be enumerated once. The enumerator we're using over the generator method's results. The sync object our caching enumerators use when adding a new live generator method result to the cache. Although individual enumerators are not thread-safe, this should be thread safe so that multiple enumerators can be created from it and used from different threads. Initializes a new instance of the EnumerableCache class. The generator. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. An enumerator that uses cached enumeration results whenever they are available, and caches whatever results it has to pull from the original object. The parent enumeration wrapper class that stores the cached results. The position of this enumerator in the cached list. Initializes a new instance of the EnumeratorCache class. The parent cached enumerable whose GetEnumerator method is calling this constructor. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Advances the enumerator to the next element of the collection. true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. The collection was modified after the enumerator was created. Sets the enumerator to its initial position, which is before the first element in the collection. The collection was modified after the enumerator was created. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the element in the collection at the current position of the enumerator. The element in the collection at the current position of the enumerator. Gets the element in the collection at the current position of the enumerator. The element in the collection at the current position of the enumerator. An exception to call out a configuration or runtime failure on the part of the (web) application that is hosting this library. This exception is used rather than for those errors that should never be caught because they indicate a major error in the app itself or its configuration. It is an internal exception to assist in making it uncatchable. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). An interface that allows direct response messages to specify HTTP transport specific properties. Gets the HTTP status code that the direct response should be sent with. Gets the HTTP headers to add to the response. May be an empty collection, but must not be null. An interface that extension messages must implement. Contract class for the interface. Gets the HTTP status code that the direct response should be sent with. Gets the HTTP headers to add to the response. May be an empty collection, but must not be null. Code contract for the interface. Prevents a default instance of the class from being created. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the version of the protocol or extension this message is prepared to implement. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Undirected messages that serve as direct responses to direct requests. The interface that classes must implement to be serialized/deserialized as protocol messages. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the originating request message that caused this response to be formed. An empty dictionary. Useful for avoiding memory allocations in creating new dictionaries to represent empty ones. The type of the key. The type of the value. The singleton instance of the empty dictionary. Prevents a default instance of the EmptyDictionary class from being created. Adds an element with the provided key and value to the . The object to use as the key of the element to add. The object to use as the value of the element to add. is null. An element with the same key already exists in the . The is read-only. Determines whether the contains an element with the specified key. The key to locate in the . true if the contains an element with the key; otherwise, false. is null. Removes the element with the specified key from the . The key of the element to remove. true if the element is successfully removed; otherwise, false. This method also returns false if was not found in the original . is null. The is read-only. Gets the value associated with the specified key. The key whose value to get. When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. true if the object that implements contains an element with the specified key; otherwise, false. is null. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Copies the elements of the to an , starting at a particular index. The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. The zero-based index in at which copying begins. is null. is less than 0. is multidimensional. -or- is equal to or greater than the length of . -or- The number of elements in the source is greater than the available space from to the end of the destination . -or- Type cannot be cast automatically to the type of the destination . Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Gets an containing the values in the . An containing the values in the object that implements . Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Gets an containing the keys of the . An containing the keys of the object that implements . Gets or sets the value with the specified key. The key being read or written. Nothing. It always throws. An enumerator that always generates zero elements. The singleton instance of this empty enumerator. Prevents a default instance of the class from being created. Advances the enumerator to the next element of the collection. true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. The collection was modified after the enumerator was created. Sets the enumerator to its initial position, which is before the first element in the collection. The collection was modified after the enumerator was created. Gets the current element in the collection. The current element in the collection. The enumerator is positioned before the first element of the collection or after the last element. An empty, read-only list. The type the list claims to include. The singleton instance of the empty list. Prevents a default instance of the EmptyList class from being created. Determines the index of a specific item in the . The object to locate in the . The index of if found in the list; otherwise, -1. Inserts an item to the at the specified index. The zero-based index at which should be inserted. The object to insert into the . is not a valid index in the . The is read-only. Removes the item at the specified index. The zero-based index of the item to remove. is not a valid index in the . The is read-only. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Copies the elements of the to an , starting at a particular index. The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. The zero-based index in at which copying begins. is null. is less than 0. is multidimensional. -or- is equal to or greater than the length of . -or- The number of elements in the source is greater than the available space from to the end of the destination . -or- Type cannot be cast automatically to the type of the destination . Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Gets or sets the at the specified index. The index of the element in the list to change. Nothing. It always throws. A collection of error checking and reporting methods. Wraps an exception in a new . The inner exception to wrap. The error message for the outer exception. The string formatting arguments, if any. The newly constructed (unthrown) exception. Throws an internal error exception. The error message. Nothing. But included here so callers can "throw" this method for C# safety. Always thrown. Checks a condition and throws an internal error exception if it evaluates to false. The condition to check. The message to include in the exception, if created. Thrown if evaluates to false. Checks a condition and throws an internal error exception if it evaluates to false. The condition to check. The message to include in the exception, if created. The formatting arguments. Thrown if evaluates to false. Checks a condition and throws an if it evaluates to false. The condition to check. The message to include in the exception, if created. Thrown if evaluates to false. Checks a condition and throws a if it evaluates to false. The condition to check. The message to include in the exception, if created. Thrown if evaluates to false. Checks a condition and throws a if it evaluates to false. The condition to check. The message to include in the exception, if created. The string formatting arguments for . Thrown if evaluates to false. Checks a condition and throws an if it evaluates to false. The condition to check. The message to include in the exception, if created. The formatting arguments. Thrown if evaluates to false. Throws a if some evaluates to false. True to do nothing; false to throw the exception. The error message for the exception. The string formatting arguments, if any. Thrown if evaluates to false. Throws a if some evaluates to false. True to do nothing; false to throw the exception. The message being processed that would be responsible for the exception if thrown. The error message for the exception. The string formatting arguments, if any. Thrown if evaluates to false. Throws a if some evaluates to false. True to do nothing; false to throw the exception. The error message for the exception. The string formatting arguments, if any. Thrown if evaluates to false. Throws a . The message to set in the exception. The formatting arguments of the message. An InternalErrorException, which may be "thrown" by the caller in order to satisfy C# rules to show that code will never be reached, but no value actually is ever returned because this method guarantees to throw. Always thrown. Throws a . The message for the exception. The string formatting arguments for . Nothing. It's just here so the caller can throw this method for C# compilation check. Throws a if some condition is false. The expression to evaluate. A value of false will cause the exception to be thrown. The message for the exception. The string formatting arguments for . Thrown when is false. Verifies something about the argument supplied to a method. The condition that must evaluate to true to avoid an exception. The message to use in the exception if the condition is false. The string formatting arguments, if any. Thrown if evaluates to false. Throws an . Name of the parameter. The message to use in the exception if the condition is false. The string formatting arguments, if any. Never returns anything. It always throws. Verifies something about the argument supplied to a method. The condition that must evaluate to true to avoid an exception. Name of the parameter. The message to use in the exception if the condition is false. The string formatting arguments, if any. Thrown if evaluates to false. Verifies that some given value is not null. The value to check. Name of the parameter, which will be used in the , if thrown. Thrown if is null. Verifies that some string is not null and has non-zero length. The value to check. Name of the parameter, which will be used in the , if thrown. Thrown if is null. Thrown if has zero length. Verifies that != null. Thrown if == null Obtains a value from the dictionary if possible, or throws a if it's missing. The type of key in the dictionary. The type of value in the dictionary. The dictionary. The key to use to look up the value. The message to claim is invalid if the key cannot be found. The value for the given key. An interface that messages wishing to perform custom serialization/deserialization may implement to be notified of events. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Code contract for the class. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Gets an offline snapshot version of this instance. The maximum bytes from the response stream to cache. A snapshot version of this instance. If this instance is a creating a snapshot will automatically close and dispose of the underlying response stream. If this instance is a , the result will be the self same instance. Gets the body of the HTTP response. A protocol message that supports adding extensions to the payload for transmission. Gets the list of extensions that are included with this message. Implementations of this interface should ensure that this property never returns null. Code contract for the interface. Prevents a default instance of the class from being created. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the list of extensions that are included with this message. Implementations of this interface should ensure that this property never returns null. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. An internal exception to throw if an internal error within the library requires an abort of the operation. This exception is internal to prevent clients of the library from catching what is really an unexpected, potentially unrecoverable exception. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). An interface implemented by -derived types that support binary serialization. Serializes the instance to the specified stream. The stream. Initializes the fields on this instance from the specified stream. The stream. Code Contract for the interface. Serializes the instance to the specified stream. The stream. Initializes the fields on this instance from the specified stream. The stream. A KeyedCollection whose item -> key transform is provided via a delegate to its constructor, and null items are disallowed. The type of the key. The type of the item. The delegate that returns a key for the given item. Initializes a new instance of the KeyedCollectionDelegate class. The delegate that gets the key for a given item. When implemented in a derived class, extracts the key from the specified element. The element from which to extract the key. The key for the specified element. Represents a single part in a HTTP multipart POST request. The "Content-Disposition" string. The two-character \r\n newline character sequence to use. Initializes a new instance of the class. The content disposition of the part. Creates a part that represents a simple form field. The name of the form field. The value. The constructed part. Creates a part that represents a file attachment. The name of the form field. The path to the file to send. Type of the content in HTTP Content-Type format. The constructed part. Creates a part that represents a file attachment. The name of the form field. Name of the file as the server should see it. Type of the content in HTTP Content-Type format. The content of the file. The constructed part. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Serializes the part to a stream. The stream writer. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets or sets the content disposition. The content disposition. Gets the key=value attributes that appear on the same line as the Content-Disposition. The content attributes. Gets the headers that appear on subsequent lines after the Content-Disposition. Gets or sets the content of the part. Gets the length of this entire part. Useful for calculating the ContentLength HTTP header to send before actually serializing the content. A live network HTTP response The network response object, used to initialize this instance, that still needs to be closed if applicable. The incoming network response stream. A value indicating whether a stream reader has already been created on this instance. Initializes a new instance of the class. The request URI. The response. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Gets an offline snapshot version of this instance. The maximum bytes from the response stream to cache. A snapshot version of this instance. If this instance is a creating a snapshot will automatically close and dispose of the underlying response stream. If this instance is a , the result will be the self same instance. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the body of the HTTP response. An ASP.NET MVC structure to represent the response to send to the user agent when the controller has finished its work. The outgoing web response to send when the ActionResult is executed. Initializes a new instance of the class. The response. Enables processing of the result of an action method by a custom type that inherits from . The context in which to set the response. An exception to represent errors in the local or remote implementation of the protocol that includes the response message that should be returned to the HTTP client to comply with the protocol specification. An exception to represent errors in the local or remote implementation of the protocol. Initializes a new instance of the class. Initializes a new instance of the class. A message describing the specific error the occurred or was detected. Initializes a new instance of the class. A message describing the specific error the occurred or was detected. The inner exception to include. Initializes a new instance of the class such that it can be sent as a protocol message response to a remote caller. The human-readable exception message. The message that was the cause of the exception. May be null. The inner exception to include. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. Gets the message that caused the exception. The channel that produced the error response message, to be used in constructing the actual HTTP response. Initializes a new instance of the class such that it can be sent as a protocol message response to a remote caller. The channel to use when encoding the response message. The message to send back to the HTTP client. The message that was the cause of the exception. May be null. The inner exception. The message for the exception. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. Creates the HTTP response to forward to the client to report the error. The HTTP response. Gets the protocol message to send back to the client to report the error. Code contract for the type. Initializes a new instance of the class. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. An interface describing how various objects can be serialized and deserialized between their object and string forms. Implementations of this interface must include a default constructor and must be thread-safe. Gets the type of the encoded values produced by this encoder, as they would appear in their preferred form. A message part encoder that has a special encoding for a null value. Gets the string representation to include in a serialized message when the message part has a null value. An interface describing how various objects can be serialized and deserialized between their object and string forms. Implementations of this interface must include a default constructor and must be thread-safe. Encodes the specified value as the original value that was formerly decoded. The value. Guaranteed to never be null. The in string form, ready for message transport. A cache of instances. A dictionary of reflected message types and the generated reflection information. Initializes a new instance of the class. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Gets a instance prepared for the given message type. A type that implements . The protocol version of the message. A instance. Gets a instance prepared for the given message type. The message for which a should be obtained. A instance. Gets the dictionary that provides read/write access to a message. The message. The dictionary. Gets the dictionary that provides read/write access to a message. The message. A value indicating whether this message dictionary will retrieve original values instead of normalized ones. The dictionary. A struct used as the key to bundle message type and version. Backing store for the property. Backing store for the property. Initializes a new instance of the struct. Type of the message. The message version. Implements the operator ==. The first object to compare. The second object to compare. The result of the operator. Implements the operator !=. The first object to compare. The second object to compare. The result of the operator. Indicates whether this instance and a specified object are equal. Another object to compare to. true if and this instance are the same type and represent the same value; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer that is the hash code for this instance. Gets the message type. Gets the message version. Allows a custom class or struct to be serializable between itself and a string representation. Initializes a new instance of the class. The implementing type to use for serializing this type. Gets the default encoder to use for the declaring class. A message factory that automatically selects the message type based on the incoming data. A tool to analyze an incoming message to figure out what concrete class is designed to deserialize it and instantiates that class. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. The request message types and their constructors to use for instantiating the messages. The response message types and their constructors to use for instantiating the messages. The value is a dictionary, whose key is the type of the constructor's lone parameter. Initializes a new instance of the class. Adds message types to the set that this factory can create. The message types that this factory may instantiate. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Gets the message type that best fits the given incoming request data. The recipient of the incoming data. Typically not used, but included just in case. The data of the incoming message. The message type that matches the incoming data; or null if no match. May be thrown if the incoming data is ambiguous. Gets the message type that best fits the given incoming direct response data. The request message that prompted the response data. The data of the incoming message. The message type that matches the incoming data; or null if no match. May be thrown if the incoming data is ambiguous. Instantiates the given request message type. The message description. The recipient. The instantiated message. Never null. Instantiates the given request message type. The message description. The request that resulted in this response. The instantiated message. Never null. Gets the hierarchical distance between a type and a type it derives from or implements. The base type or interface. The concrete class that implements the . The distance between the two types. 0 if the types are equivalent, 1 if the type immediately derives from or implements the base type, or progressively higher integers. Counts how many strings are in the intersection of two collections. The first collection. The second collection. The string comparison method to use. A non-negative integer no greater than the count of elements in the smallest collection. Finds constructors for response messages that take a given request message type. The message description. Type of the request message. A sequence of matching constructors. Contract class for the IDataBagFormatter interface. The type of DataBag to serialize. Prevents a default instance of the class from being created. Serializes the specified message. The message to serialize. Must not be null. A non-null, non-empty value. Deserializes a . The instance to deserialize into The serialized form of the to deserialize. Must not be null or empty. The message that contains the serialized value. Must not be nulll. Name of the message part whose value is to be deserialized. Used for exception messages. A serializer for -derived types The DataBag-derived type that is to be serialized/deserialized. Initializes a new instance of the class. The crypto service provider with the asymmetric key to use for signing or verifying the token. The crypto service provider with the asymmetric key to use for encrypting or decrypting the token. A value indicating whether the data in this instance will be GZip'd. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Initializes a new instance of the class. The crypto key store used when signing or encrypting. The bucket in which symmetric keys are stored for signing/encrypting data. A value indicating whether the data in this instance will be protected against tampering. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. The minimum age. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Serializes the instance to a buffer. The message. The buffer containing the serialized data. Deserializes the instance from a buffer. The message instance to initialize with data from the buffer. The data buffer. A channel that uses the standard message factory. The message types receivable by this channel. The protocol versions supported by this channel. Initializes a new instance of the class. The message types that might be encountered. All the possible message versions that might be encountered. The binding elements to use in sending and receiving messages. The order they are provided is used for outgoing messgaes, and reversed for incoming messages. Generates all the message descriptions for a given set of message types and versions. The message types. The message versions. The cache to use when obtaining the message descriptions. The generated/retrieved message descriptions. Gets or sets a tool that can figure out what kind of message is being received so it can be deserialized. Gets or sets the message descriptions. Gets or sets a tool that can figure out what kind of message is being received so it can be deserialized. A collection of message parts that will be serialized into a single string, to be set into a larger message. The default version for DataBags. The backing field for the property. A dictionary to contain extra message data. Initializes a new instance of the class. Initializes a new instance of the class. The DataBag version. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Gets or sets the nonce. The nonce. Gets or sets the UTC creation date of this token. The UTC creation date. Gets or sets the signature. The signature. Gets or sets the message that delivered this DataBag instance to this host. Gets the type of this instance. The type of the bag. This ensures that one token cannot be misused as another kind of token. Translates between a and the number of seconds between it and 1/1/1970 12 AM The reference date and time for calculating time stamps. Initializes a new instance of the class. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. The interface that classes must implement to be serialized/deserialized as protocol or extension messages that uses POST multi-part data for binary content. Implemented by messages that have explicit recipients (direct requests and all indirect messages). Gets the preferred method of transport for the message. For indirect messages this will likely be GET+POST, which both can be simulated in the user agent: the GET with a simple 301 Redirect, and the POST with an HTML form in the response with javascript to automate submission. Gets the URL of the intended receiver of this message. Gets the parts of the message that carry binary data. A list of parts. Never null. Gets a value indicating whether this message should be sent as multi-part POST. The contract class for the interface. Prevents a default instance of the class from being created. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the parts of the message that carry binary data. A list of parts. Never null. Gets a value indicating whether this message should be sent as multi-part POST. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Gets the preferred method of transport for the message. For indirect messages this will likely be GET+POST, which both can be simulated in the user agent: the GET with a simple 301 Redirect, and the POST with an HTML form in the response with javascript to automate submission. Gets the URL of the intended receiver of this message. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. The data packet sent with Channel events. Initializes a new instance of the class. The message behind the fired event.. Gets the message that caused the event to fire. An in-memory nonce store. Useful for single-server web applications. NOT for web farms. Describes the contract a nonce store must fulfill. Stores a given nonce and timestamp. The context, or namespace, within which the must be unique. The context SHOULD be treated as case-sensitive. The value will never be null but may be the empty string. A series of random characters. The UTC timestamp that together with the nonce string make it unique within the given . The timestamp may also be used by the data store to clear out old nonces. True if the context+nonce+timestamp (combination) was not previously in the database. False if the nonce was stored previously with the same timestamp and context. The nonce must be stored for no less than the maximum time window a message may be processed within before being discarded as an expired message. This maximum message age can be looked up via the property, accessible via the property. How frequently we should take time to clear out old nonces. The maximum age a message can be before it is discarded. This is useful for knowing how long used nonces must be retained. A list of the consumed nonces. A lock object used around accesses to the field. Where we're currently at in our periodic nonce cleaning cycle. Initializes a new instance of the class. Initializes a new instance of the class. The maximum age a message can be before it is discarded. Stores a given nonce and timestamp. The context, or namespace, within which the must be unique. A series of random characters. The timestamp that together with the nonce string make it unique. The timestamp may also be used by the data store to clear out old nonces. True if the nonce+timestamp (combination) was not previously in the database. False if the nonce was stored previously with the same timestamp. The nonce must be stored for no less than the maximum time window a message may be processed within before being discarded as an expired message. If the binding element is applicable to your channel, this expiration window is retrieved or set using the property. Clears consumed nonces from the cache that are so old they would be rejected if replayed because it is expired. A contract for handling. Implementations of this interface must be thread safe. Determines whether this instance can support the specified options. The set of options that might be given in a subsequent web request. true if this instance can support the specified options; otherwise, false. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The stream the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Callers must close and dispose of the request stream when they are done writing to it to avoid taking up the connection too long and causing long waits on subsequent requests. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The options to apply to this web request. The stream the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Callers must close and dispose of the request stream when they are done writing to it to avoid taking up the connection too long and causing long waits on subsequent requests. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Processes an and converts the to a instance. The to handle. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Processes an and converts the to a instance. The to handle. The options to apply to this web request. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Code contract for the type. Determines whether this instance can support the specified options. The set of options that might be given in a subsequent web request. true if this instance can support the specified options; otherwise, false. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The stream the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Callers must close and dispose of the request stream when they are done writing to it to avoid taking up the connection too long and causing long waits on subsequent requests. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The options to apply to this web request. The stream the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Callers must close and dispose of the request stream when they are done writing to it to avoid taking up the connection too long and causing long waits on subsequent requests. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Processes an and converts the to a instance. The to handle. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Processes an and converts the to a instance. The to handle. The options to apply to this web request. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. A binding element that checks/verifies a nonce message part. An interface that must be implemented by message transforms/validators in order to be included in the channel stack. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. These are the characters that may be chosen from when forming a random nonce. The persistent store for nonces received. The length of generated nonces. Initializes a new instance of the class. The store where nonces will be persisted and checked. Initializes a new instance of the class. The store where nonces will be persisted and checked. A value indicating whether zero-length nonces will be allowed. Applies a nonce to the message. The message to apply replay protection to. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Verifies that the nonce in an incoming message has not been seen before. The incoming message. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the nonce check revealed a replayed message. Generates a string of random characters for use as a nonce. The nonce string. Gets the protection that this binding element provides messages. Gets or sets the channel that this binding element belongs to. Gets or sets the strength of the nonce, which is measured by the number of nonces that could theoretically be generated. The strength of the nonce is equal to the number of characters that might appear in the nonce to the power of the length of the nonce. Gets or sets a value indicating whether empty nonces are allowed. Default is false. Applied to fields and properties that form a key/value in a protocol message. The overridden name to use as the serialized name for the property. Initializes a new instance of the class. Initializes a new instance of the class. A special name to give the value of this member in the serialized message. When null or empty, the name of the member will be used in the serialized message. Gets the name of the serialized form of this member in the message. Gets or sets the level of protection required by this member in the serialized message. Message part protection must be provided and verified by the channel binding element(s) that provide security. Gets or sets a value indicating whether this member is a required part of the serialized message. Gets or sets a value indicating whether the string value is allowed to be empty in the serialized message. Default is true. Gets or sets an IMessagePartEncoder custom encoder to use to translate the applied member to and from a string. Gets or sets the minimum version of the protocol this attribute applies to and overrides any attributes with lower values for this property. Defaults to 0.0. Gets or sets the maximum version of the protocol this attribute applies to. Defaults to int.MaxValue for the major version number. Specifying on another attribute on the same member automatically turns this attribute off. This property should only be set when a property is totally dropped from a newer version of the protocol. Gets or sets a value indicating whether the value contained by this property contains sensitive information that should generally not be logged. true if this instance is security sensitive; otherwise, false. Gets or sets the minimum version of the protocol this attribute applies to and overrides any attributes with lower values for this property. Defaults to 0.0. Gets or sets the maximum version of the protocol this attribute applies to. Defaults to int.MaxValue for the major version number. Specifying on another attribute on the same member automatically turns this attribute off. This property should only be set when a property is totally dropped from a newer version of the protocol. Categorizes the various types of channel binding elements so they can be properly ordered. The order of these enum values is significant. Each successive value requires the protection offered by all the previous values in order to be reliable. For example, message expiration is meaningless without tamper protection to prevent a user from changing the timestamp on a message. No protection. A binding element that signs a message before sending and validates its signature upon receiving. A binding element that enforces a maximum message age between sending and processing on the receiving side. A binding element that prepares messages for replay detection and detects replayed messages on the receiving side. All forms of protection together. Code Contract for the interface. Prevents a default instance of the class from being created. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. An exception thrown when a message is received for the second time, signalling a possible replay attack. Initializes a new instance of the class. The replayed message. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. An exception thrown when a message is received that exceeds the maximum message age limit. Initializes a new instance of the class. The date the message expired. The expired message. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. An exception thrown when a signed message does not pass signature validation. Initializes a new instance of the class. The message with the invalid signature. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. The contract a message that has an allowable time window for processing must implement. All replay-protected messages must also be set to expire so the nonces do not have to be stored indefinitely. The contract a message that has an allowable time window for processing must implement. All expiring messages must also be signed to prevent tampering with the creation date. Gets or sets the UTC date/time the message was originally sent onto the network. The property setter should ensure a UTC date/time, and throw an exception if this is not possible. Thrown when a DateTime that cannot be converted to UTC is set. Gets the context within which the nonce must be unique. The value of this property must be a value assigned by the nonce consumer to represent the entity that generated the nonce. The value must never be null but may be the empty string. This value is treated as case-sensitive. Gets or sets the nonce that will protect the message from replay attacks. A property store of details of an incoming HTTP request. This serves a very similar purpose to , except that ASP.NET does not let us fully initialize that class, so we have to write one of our one. The HTTP verb in the request. The full request URL. The HTTP headers. The variables defined in the query part of the URL. The POSTed form variables. The server variables collection. The backing field for the property. Initializes a new instance of the class. The request. The request URI. Initializes a new instance of the class. The HTTP method. The request URI. The form variables. The HTTP headers. The cookies in the request. Initializes a new instance of the class. Details on the incoming HTTP request. Initializes a new instance of the class. The request. Initializes a new instance of the class. The HTTP method. The request URI. The headers. The input stream. Creates an instance that describes the specified HTTP request. The request. The request URI. An instance of . Creates an instance that describes the specified HTTP request. The listener request. An instance of . Creates an instance that describes the specified HTTP request. The HTTP request. An instance of . Creates an instance that describes the specified HTTP request. The HTTP method. The request URI. The form variables. The HTTP headers. An instance of . Creates an instance that describes the specified HTTP request. The HTTP method. The request URI. The headers. The input stream. An instance of . Reads name=value pairs from the POSTed form entity when the HTTP headers indicate that that is the payload of the entity. The HTTP method. The headers. A function that returns the input stream. The non-null collection of form variables. Adds HTTP headers to a . The collection to be modified with added entries. The collection to read from. Gets the HTTP method. Gets the headers. Gets the URL. Gets the raw URL. Gets the form. Gets the query string. Gets the server variables. Gets the collection of cookies that were sent by the client. The client's cookies. Code contract for the interface. Prevents a default instance of the class from being created. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. The contract a message that is signed must implement. This type might have appeared in the DotNetOpenAuth.Messaging.Bindings namespace since it is only used by types in that namespace, but all those types are internal and this is the only one that was public. Gets or sets the message signature. Serializes/deserializes OAuth messages for/from transit. The specific -derived type that will be serialized and deserialized using this class. Initializes a new instance of the MessageSerializer class. The specific -derived type that will be serialized and deserialized using this class. Creates or reuses a message serializer for a given message type. The type of message that will be serialized/deserialized. A message serializer for the given message type. Reads JSON as a flat dictionary into a message. The message dictionary to fill with the JSON-deserialized data. The JSON reader. Reads the data from a message instance and writes an XML/JSON encoding of it. The message to be serialized. The writer to use for the serialized form. Use to create the instance capable of emitting JSON. Reads XML/JSON into a message dictionary. The message to deserialize into. The XML/JSON to read into the message. Thrown when protocol rules are broken by the incoming message. Use to create the instance capable of reading JSON. Reads the data from a message instance and returns a series of name=value pairs for the fields that must be included in the message. The message to be serialized. The dictionary of values to send for the message. Reads name=value pairs into a message. The name=value pairs that were read in from the transport. The message to deserialize into. Thrown when protocol rules are broken by the incoming message. Determines whether the specified type is numeric. The type to test. true if the specified type is numeric; otherwise, false. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to Argument's {0}.{1} property is required but is empty or null.. Looks up a localized string similar to Unable to send all message data because some of it requires multi-part POST, but IMessageWithBinaryData.SendAsMultipart was false.. Looks up a localized string similar to HttpContext.Current is null. There must be an ASP.NET request in process for this operation to succeed.. Looks up a localized string similar to DataContractSerializer could not be initialized on message type {0}. Is it missing a [DataContract] attribute?. Looks up a localized string similar to DataContractSerializer could not be initialized on message type {0} because the DataContractAttribute.Namespace property is not set.. Looks up a localized string similar to Decoding failed due to data corruption.. Looks up a localized string similar to An instance of type {0} was expected, but received unexpected derived type {1}.. Looks up a localized string similar to The directed message's Recipient property must not be null.. Looks up a localized string similar to The given set of options is not supported by this web request handler.. Looks up a localized string similar to Unable to instantiate the message part encoder/decoder type {0}.. Looks up a localized string similar to Error while deserializing message {0}.. Looks up a localized string similar to Error occurred while sending a direct message or getting the response.. Looks up a localized string similar to This exception was not constructed with a root request message that caused it.. Looks up a localized string similar to This exception must be instantiated with a recipient that will receive the error message, or a direct request message instance that this exception will respond to.. Looks up a localized string similar to Expected {0} message but received no recognizable message.. Looks up a localized string similar to The message part {0} was expected in the {1} message but was not found.. Looks up a localized string similar to The message expired at {0} and it is now {1}.. Looks up a localized string similar to Failed to add extra parameter '{0}' with value '{1}'.. Looks up a localized string similar to At least one of GET or POST flags must be present.. Looks up a localized string similar to This method requires a current HttpContext. Alternatively, use an overload of this method that allows you to pass in information without an HttpContext.. Looks up a localized string similar to Messages that indicate indirect transport must implement the {0} interface.. Looks up a localized string similar to Insecure web request for '{0}' aborted due to security requirements demanding HTTPS.. Looks up a localized string similar to The {0} message required protections {{{1}}} but the channel could only apply {{{2}}}.. Looks up a localized string similar to The customized binding element ordering is invalid.. Looks up a localized string similar to Some part(s) of the message have invalid values: {0}. Looks up a localized string similar to The incoming message had an invalid or missing nonce.. Looks up a localized string similar to An item with the same key has already been added.. Looks up a localized string similar to Message too large for a HTTP GET, and HTTP POST is not allowed for this message type.. Looks up a localized string similar to The {0} message does not support extensions.. Looks up a localized string similar to The value for {0}.{1} on member {1} was expected to derive from {2} but was {3}.. Looks up a localized string similar to Error while reading message '{0}' parameter '{1}' with value '{2}'.. Looks up a localized string similar to Message parameter '{0}' with value '{1}' failed to base64 decode.. Looks up a localized string similar to Error while preparing message '{0}' parameter '{1}' for sending.. Looks up a localized string similar to This message has a timestamp of {0}, which is beyond the allowable clock skew for in the future.. Looks up a localized string similar to Missing decryption key for bucket "{0}" handle "{1}". Looks up a localized string similar to A non-empty string was expected.. Looks up a localized string similar to A message response is already queued for sending in the response stream.. Looks up a localized string similar to This message has already been processed. This could indicate a replay attack in progress.. Looks up a localized string similar to This channel does not support replay protection.. Looks up a localized string similar to The following message parts had constant value requirements that were unsatisfied: {0}. Looks up a localized string similar to The following required non-empty parameters were empty in the {0} message: {1}. Looks up a localized string similar to The following required parameters were missing from the {0} message: {1}. Looks up a localized string similar to The binding element offering the {0} protection requires other protection that is not provided.. Looks up a localized string similar to The list is empty.. Looks up a localized string similar to The list contains a null element.. Looks up a localized string similar to An HttpContext.Current.Session object is required.. Looks up a localized string similar to Message signature was incorrect.. Looks up a localized string similar to This channel does not support signing messages. To support signing messages, a derived Channel type must override the Sign and IsSignatureValid methods.. Looks up a localized string similar to This message factory does not support message type(s): {0}. Looks up a localized string similar to The stream must have a known length.. Looks up a localized string similar to The stream's CanRead property returned false.. Looks up a localized string similar to The stream's CanWrite property returned false.. Looks up a localized string similar to Expected at most 1 binding element to apply the {0} protection, but more than one applied.. Looks up a localized string similar to The maximum allowable number of redirects were exceeded while requesting '{0}'.. Looks up a localized string similar to Unexpected buffer length.. Looks up a localized string similar to The array must not be empty.. Looks up a localized string similar to The empty string is not allowed.. Looks up a localized string similar to Expected direct response to use HTTP status code {0} but was {1} instead.. Looks up a localized string similar to Message parameter '{0}' had unexpected value '{1}'.. Looks up a localized string similar to Expected message {0} parameter '{1}' to have value '{2}' but had '{3}' instead.. Looks up a localized string similar to Expected message {0} but received {1} instead.. Looks up a localized string similar to Unexpected message type received.. Looks up a localized string similar to A null key was included and is not allowed.. Looks up a localized string similar to A null or empty key was included and is not allowed.. Looks up a localized string similar to A null value was included for key '{0}' and is not allowed.. Looks up a localized string similar to The type {0} or a derived type was expected, but {1} was given.. Looks up a localized string similar to {0} property has unrecognized value {1}.. Looks up a localized string similar to The URL '{0}' is rated unsafe and cannot be requested this way.. Looks up a localized string similar to This blob is not a recognized encryption format.. Looks up a localized string similar to The HTTP verb '{0}' is unrecognized and unsupported.. Looks up a localized string similar to '{0}' messages cannot be received with HTTP verb '{1}'.. Looks up a localized string similar to Redirects on POST requests that are to untrusted servers is not supported.. Looks up a localized string similar to Web request to '{0}' failed.. A grab-bag of utility methods useful for the channel stack of the protocol. The uppercase alphabet. The lowercase alphabet. The set of base 10 digits. The set of digits and alphabetic letters (upper and lowercase). All the characters that are allowed for use as a base64 encoding character. All the characters that are allowed for use as a base64 encoding character in the "web safe" context. The set of digits, and alphabetic letters (upper and lowercase) that are clearly visually distinguishable. The length of private symmetric secret handles. This value needn't be high, as we only expect to have a small handful of unexpired secrets at a time, and handle recycling is permissible. The cryptographically strong random data generator used for creating secrets. The random number generator is thread-safe. The default lifetime of a private secret. A character array containing just the = character. A character array containing just the , character. A character array containing just the " character. The set of characters that are unreserved in RFC 2396 but are NOT unreserved in RFC 3986. A set of escaping mappings that help secure a string from javscript execution. The characters to escape here are inspired by http://code.google.com/p/doctype/wiki/ArticleXSSInJavaScript Transforms an OutgoingWebResponse to an MVC-friendly ActionResult. The response to send to the user agent. The instance to be returned by the Controller's action method. Transforms an OutgoingWebResponse to a Web API-friendly HttpResponseMessage. The response to send to the user agent. The instance to be returned by the Web API method. Gets the original request URL, as seen from the browser before any URL rewrites on the server if any. Cookieless session directory (if applicable) is also included. The URL in the user agent's Location bar. Strips any and all URI query parameters that start with some prefix. The URI that may have a query with parameters to remove. The prefix for parameters to remove. A period is NOT automatically appended. Either a new Uri with the parameters removed if there were any to remove, or the same Uri instance if no parameters needed to be removed. Sends a multipart HTTP POST request (useful for posting files). The HTTP request. The request handler. The parts to include in the POST entity. The HTTP response. Assembles a message comprised of the message on a given exception and all inner exceptions. The exception. The assembled message. Flattens the specified sequence of sequences. The type of element contained in the sequence. The sequence of sequences to flatten. A sequence of the contained items. Cuts off precision beyond a second on a DateTime value. The value. A DateTime with a 0 millisecond component. Adds a name-value pair to the end of a given URL as part of the querystring piece. Prefixes a ? or & before first element as necessary. The UriBuilder to add arguments to. The name of the parameter to add. The value of the argument. If the parameters to add match names of parameters that already are defined in the query string, the existing ones are not replaced. Adds a set of values to a collection. The type of value kept in the collection. The collection to add to. The values to add to the collection. Tests whether two timespans are within reasonable approximation of each other. One TimeSpan. The other TimeSpan. The allowable margin of error. true if the two TimeSpans are within of each other. Compares to string values for ordinal equality in such a way that its execution time does not depend on how much of the value matches. The first value. The second value. A value indicating whether the two strings share ordinal equality. In signature equality checks, a difference in execution time based on how many initial characters match MAY be used as an attack to figure out the expected signature. It is therefore important to make a signature equality check's execution time independent of how many characters match the expected value. See http://codahale.com/a-lesson-in-timing-attacks/ for more information. Gets the public facing URL for the given incoming HTTP request. The incoming request. Cannot be null. The server variables to consider part of the request. Cannot be null. The URI that the outside world used to create this request. Although the value can be obtained from , it's useful to be able to pass them in so we can simulate injected values from our unit tests since the actual property is a read-only kind of . Gets the public facing URL for the given incoming HTTP request. The incoming request. Cannot be null. Server variables are read from this request. The URI that the outside world used to create this request. Gets the URL to the root of a web site, which may include a virtual directory path. An absolute URI. Creates the XML reader settings to use for reading XML from untrusted sources. The new instance of . The default values set here are based on recommendations from http://msdn.microsoft.com/en-us/magazine/ee335713.aspx Clears any existing elements in a collection and fills the collection with a given set of values. The type of value kept in the collection. The collection to modify. The new values to fill the collection. Strips any and all URI query parameters that serve as parts of a message. The URI that may contain query parameters to remove. The message description whose parts should be removed from the URL. A cleaned URL. Sends a multipart HTTP POST request (useful for posting files) but doesn't call GetResponse on it. The HTTP request. The request handler. The parts to include in the POST entity. Assembles the content of the HTTP Authorization or WWW-Authenticate header. The fields to include. A value prepared for an HTTP header. Assembles the content of the HTTP Authorization or WWW-Authenticate header. The scheme. The fields to include. A value prepared for an HTTP header. Parses the authorization header. The scheme. Must not be null or empty. The authorization header. May be null or empty. A sequence of key=value pairs discovered in the header. Never null, but may be empty. Encodes a symmetric key handle and the blob that is encrypted/signed with that key into a single string that can be decoded by . The cryptographic key handle. The encrypted/signed blob. The combined encoded value. Extracts the key handle and encrypted blob from a string previously returned from . The message part. May be null if not applicable. The value previously returned from . The crypto key handle. The encrypted/signed data. Gets a buffer of random data (not cryptographically strong). The length of the sequence to generate. The generated values, which may contain zeros. Gets a cryptographically strong random sequence of values. The length of the sequence to generate. The generated values, which may contain zeros. Gets a cryptographically strong random string of base64 characters. The length of the byte sequence to generate. A base64 encoding of the generated random data, whose length in characters will likely be greater than . Gets a NON-cryptographically strong random string of base64 characters. The length of the byte sequence to generate. A value indicating whether web64 encoding is used to avoid the need to escape characters. A base64 encoding of the generated random data, whose length in characters will likely be greater than . Gets a random string made up of a given set of allowable characters. The length of the desired random string. The allowable characters. A random string. Computes the hash of a string. The hash algorithm to use. The value to hash. The encoding to use when converting the string to a byte array. A base64 encoded string. Computes the hash of a sequence of key=value pairs. The hash algorithm to use. The data to hash. The encoding to use when converting the string to a byte array. A base64 encoded string. Computes the hash of a sequence of key=value pairs. The hash algorithm to use. The data to hash. The encoding to use when converting the string to a byte array. A base64 encoded string. Encrypts a byte buffer. The buffer to encrypt. The symmetric secret to use to encrypt the buffer. Allowed values are 128, 192, or 256 bytes in length. The encrypted buffer Decrypts a byte buffer. The buffer to decrypt. The symmetric secret to use to decrypt the buffer. Allowed values are 128, 192, and 256. The encrypted buffer Encrypts a string. The text to encrypt. The symmetric secret to use to encrypt the buffer. Allowed values are 128, 192, and 256. The encrypted buffer Decrypts a string previously encrypted with . The text to decrypt. The symmetric secret to use to decrypt the buffer. Allowed values are 128, 192, and 256. The encrypted buffer Performs asymmetric encryption of a given buffer. The asymmetric encryption provider to use for encryption. The buffer to encrypt. The encrypted data. Performs asymmetric decryption of a given buffer. The asymmetric encryption provider to use for decryption. The buffer to decrypt. The decrypted data. Gets a key from a given bucket with the longest remaining life, or creates a new one if necessary. The crypto key store. The bucket where the key should be found or stored. The minimum remaining life required on the returned key. The required size of the key, in bits. A key-value pair whose key is the secret's handle and whose value is the cryptographic key. Compresses a given buffer. The buffer to compress. The compression algorithm to use. The compressed data. Decompresses a given buffer. The buffer to decompress. The compression algorithm used. The decompressed data. Converts to data buffer to a base64-encoded string, using web safe characters and with the padding removed. The data buffer. A web-safe base64-encoded string without padding. Decodes a (web-safe) base64-string back to its binary buffer form. The base64-encoded string. May be web-safe encoded. A data buffer. Adds a set of HTTP headers to an instance, taking care to set some headers to the appropriate properties of The headers to add. The instance to set the appropriate values to. Adds a set of HTTP headers to an instance, taking care to set some headers to the appropriate properties of The headers to add. The instance to set the appropriate values to. Copies the contents of one stream to another. The stream to copy from, at the position where copying should begin. The stream to copy to, at the position where bytes should be written. The maximum bytes to copy. The total number of bytes copied. Copying begins at the streams' current positions. The positions are NOT reset after copying is complete. Creates a snapshot of some stream so it is seekable, and the original can be closed. The stream to copy bytes from. A seekable stream with the same contents as the original. Clones an in order to send it again. The request to clone. The newly created instance. Clones an in order to send it again. The request to clone. The new recipient of the request. The newly created instance. Tests whether two arrays are equal in contents and ordering. The type of elements in the arrays. The first array in the comparison. May be null. The second array in the comparison. May be null. True if the arrays equal; false otherwise. Tests whether two arrays are equal in contents and ordering, guaranteeing roughly equivalent execution time regardless of where a signature mismatch may exist. The first array in the comparison. May not be null. The second array in the comparison. May not be null. True if the arrays equal; false otherwise. Guaranteeing equal execution time is useful in mitigating against timing attacks on a signature or other secret. Tests two sequences for same contents and ordering. The type of elements in the arrays. The first sequence in the comparison. May not be null. The second sequence in the comparison. May not be null. True if the arrays equal; false otherwise. Tests two unordered collections for same contents. The type of elements in the collections. The first collection in the comparison. May not be null. The second collection in the comparison. May not be null. True if the collections have the same contents; false otherwise. Tests whether two dictionaries are equal in length and contents. The type of keys in the dictionaries. The type of values in the dictionaries. The first dictionary in the comparison. May not be null. The second dictionary in the comparison. May not be null. True if the arrays equal; false otherwise. Concatenates a list of name-value pairs as key=value&key=value, taking care to properly encode each key and value for URL transmission according to RFC 3986. No ? is prefixed to the string. The dictionary of key/values to read from. The formulated querystring style string. Adds a set of name-value pairs to the end of a given URL as part of the querystring piece. Prefixes a ? or & before first element as necessary. The UriBuilder to add arguments to. The arguments to add to the query. If null, is not changed. If the parameters to add match names of parameters that already are defined in the query string, the existing ones are not replaced. Adds a set of name-value pairs to the end of a given URL as part of the fragment piece. Prefixes a # or & before first element as necessary. The UriBuilder to add arguments to. The arguments to add to the query. If null, is not changed. If the parameters to add match names of parameters that already are defined in the fragment, the existing ones are not replaced. Adds parameters to a query string, replacing parameters that match ones that already exist in the query string. The UriBuilder to add arguments to. The arguments to add to the query. If null, is not changed. Extracts the recipient from an HttpRequestInfo. The request to get recipient information from. The recipient. Thrown if the HTTP request is something we can't handle. Gets the enum value for a given HTTP verb. The HTTP verb. A enum value that is within the . Thrown if the HTTP request is something we can't handle. Gets the HTTP verb to use for a given enum value. The HTTP method. An HTTP verb, such as GET, POST, PUT, DELETE, PATCH, or OPTION. Copies some extra parameters into a message. The message to copy the extra data into. The extra data to copy into the message. May be null to do nothing. Collects a sequence of key=value pairs into a dictionary. The type of the key. The type of the value. The sequence. A dictionary. Enumerates all members of the collection as key=value pairs. The collection to enumerate. A sequence of pairs. Converts a to an IDictionary<string, string>. The NameValueCollection to convert. May be null. The generated dictionary, or null if is null. If a null key is encountered, its value is ignored since Dictionary<string, string> does not allow null keys. Converts a to an IDictionary<string, string>. The NameValueCollection to convert. May be null. A value indicating whether a null key in the should be silently skipped since it is not a valid key in a Dictionary. Use true to throw an exception if a null key is encountered. Use false to silently continue converting the valid keys. The generated dictionary, or null if is null. Thrown if is true and a null key is encountered. Converts a dictionary to a The existing dictionary. The new collection. Sorts the elements of a sequence in ascending order by using a specified comparer. The type of the elements of source. The type of the key returned by keySelector. A sequence of values to order. A function to extract a key from an element. A comparison function to compare keys. An System.Linq.IOrderedEnumerable<TElement> whose elements are sorted according to a key. Determines whether the specified message is a request (indirect message or direct request). The message in question. true if the specified message is a request; otherwise, false. Although an may implement the interface, it may only be doing that for its derived classes. These objects are only requests if their property is non-null. Determines whether the specified message is a direct response. The message in question. true if the specified message is a direct response; otherwise, false. Although an may implement the interface, it may only be doing that for its derived classes. These objects are only requests if their property is non-null. Writes a buffer, prefixed with its own length. The binary writer. The buffer. Reads a buffer that is prefixed with its own length. The binary reader positioned at the buffer length. The maximum size of the buffer that should be permitted. Although the stream will indicate the size of the buffer, this mitigates data corruption or DoS attacks causing the web server to allocate too much memory for a small data packet. The read buffer. Constructs a Javascript expression that will create an object on the user agent when assigned to a variable. The untrusted names and untrusted values to inject into the JSON object. if set to true the values will NOT be escaped as if it were a pure string. The Javascript JSON object as a string. Serializes the given message as a JSON string. The message to serialize. The cached message descriptions to use for reflection. A JSON string. Serializes the given message as a JSON string. The message to serialize. The cached message descriptions to use for reflection. The encoding to use. Defaults to A JSON string. Deserializes a JSON object into a message. The buffer containing the JSON string. The message to deserialize the object into. The cache of message descriptions. The encoding that the JSON bytes are in. Prepares what SHOULD be simply a string value for safe injection into Javascript by using appropriate character escaping. The untrusted string value to be escaped to protected against XSS attacks. May be null. The escaped string, surrounded by single-quotes. Escapes a string according to the URI data string rules given in RFC 3986. The value to escape. The escaped value. The method is supposed to take on RFC 3986 behavior if certain elements are present in a .config file. Even if this actually worked (which in my experiments it doesn't), we can't rely on every host actually having this configuration element present. Ensures that UTC times are converted to local times. Unspecified kinds are unchanged. The date-time to convert. The date-time in local time. Ensures that local times are converted to UTC times. Unspecified kinds are unchanged. The date-time to convert. The date-time in UTC time. Gets the query data from the original request (before any URL rewriting has occurred.) The request. A containing all the parameters in the query string. Gets a value indicating whether the request's URL was rewritten by ASP.NET or some other module. The request. A value indicating whether there is evidence that the URL of the request has been changed to some internal server (farm) representation. true if this request's URL was rewritten; otherwise, false. Gets the query or form data from the original request (before any URL rewriting has occurred.) The request. A set of name=value pairs. Creates a symmetric algorithm for use in encryption/decryption. The symmetric key to use for encryption/decryption. A symmetric algorithm. Gets a random number generator for use on the current thread only. The available compression algorithms. The Deflate algorithm. The GZip algorithm. A thread-safe, non-crypto random number generator. The initializer of all new instances. A thread-local instance of Gets a random number generator for use on the current thread only. A class to convert a into an . The type of objects being compared. The comparison method to use. Initializes a new instance of the ComparisonHelper class. The comparison method to use. Compares two instances of . The first object to compare. The second object to compare. Any of -1, 0, or 1 according to standard comparison rules. A message expiration enforcing binding element that supports messages implementing the interface. Initializes a new instance of the class. Sets the timestamp on an outgoing message. The outgoing message. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Reads the timestamp on a message and throws an exception if the message is too old. The incoming message. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown if the given message has already expired. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Gets the protection offered by this binding element. Gets or sets the channel that this binding element belongs to. Gets the maximum age a message implementing the interface can be before being discarded as too old. A pair of conversion functions to map some type to a string and back again. The mapping function that converts some custom type to a string. The mapping function that converts some custom type to the original string (possibly non-normalized) that represents it. The mapping function that converts a string to some custom type. Initializes a new instance of the struct. The mapping function that converts some custom value to a string. The mapping function that converts some custom value to its original (non-normalized) string. May be null if the same as the function. The mapping function that converts a string to some custom value. Initializes a new instance of the struct. The encoder. Gets the encoder. A mapping between serialized key names and instances describing those key/values pairs. A mapping between the serialized key names and their describing instances. Initializes a new instance of the class. Type of the message. The message version. Returns a that represents this instance. A that represents this instance. Gets a dictionary that provides read/write access to a message. The message the dictionary should provide access to. The dictionary accessor to the message Gets a dictionary that provides read/write access to a message. The message the dictionary should provide access to. A value indicating whether this message dictionary will retrieve original values instead of normalized ones. The dictionary accessor to the message Ensures the message parts pass basic validation. The key/value pairs of the serialized message. Tests whether all the required message parts pass basic validation for the given data. The key/value pairs of the serialized message. A value indicating whether the provided data fits the message's basic requirements. Verifies that a given set of keys include all the required parameters for this message type or throws an exception. The names of all parameters included in a message. if set to true an exception is thrown on failure with details. A value indicating whether the provided data fits the message's basic requirements. Thrown when required parts of a message are not in if is true. Ensures the protocol message parts that must not be empty are in fact not empty. A dictionary of key/value pairs that make up the serialized message. if set to true an exception is thrown on failure with details. A value indicating whether the provided data fits the message's basic requirements. Thrown when required parts of a message are not in if is true. Checks that a bunch of message part values meet the constant value requirements of this message description. The part values. if set to true, this method will throw on failure. A value indicating whether all the requirements are met. Reflects over some -implementing type and prepares to serialize/deserialize instances of that type. Gets the mapping between the serialized key names and their describing instances. Gets the message version this instance was generated from. Gets the type of message this instance was generated from. The type of the described message. Gets the constructors available on the message type. Wraps an instance in a dictionary that provides access to both well-defined message properties and "extra" name/value pairs that have no properties associated with them. The instance manipulated by this dictionary. The instance that describes the message type. Whether original string values should be retrieved instead of normalized ones. Initializes a new instance of the class. The message instance whose values will be manipulated by this dictionary. The message description. A value indicating whether this message dictionary will retrieve original values instead of normalized ones. Adds a named value to the message. The serialized form of the name whose value is being set. The serialized form of the value. Thrown if already has a set value in this message. Thrown if is null. Checks whether some named parameter has a value set in the message. The serialized form of the message part's name. True if the parameter by the given name has a set value. False otherwise. Removes a name and value from the message given its name. The serialized form of the name to remove. True if a message part by the given name was found and removed. False otherwise. Gets some named value if the key has a value. The name (in serialized form) of the value being sought. The variable where the value will be set. True if the key was found and was set. False otherwise. Sets a named value in the message. The name-value pair to add. The name is the serialized form of the key. Removes all values in the message. Removes all items from the . The is read-only. This method cannot be implemented because keys are not guaranteed to be removed since some are inherent to the type of message that this dictionary provides access to. Checks whether a named value has been set on the message. The name/value pair. True if the key exists and has the given value. False otherwise. Copies all the serializable data from the message to a key/value array. The array to copy to. The index in the to begin copying to. Removes a named value from the message if it exists. The serialized form of the name and value to remove. True if the name/value was found and removed. False otherwise. Gets an enumerator that generates KeyValuePair<string, string> instances for all the key/value pairs that are set in the message. The enumerator that can generate the name/value pairs. Gets an enumerator that generates KeyValuePair<string, string> instances for all the key/value pairs that are set in the message. The enumerator that can generate the name/value pairs. Saves the data in a message to a standard dictionary. The generated dictionary. Loads data from a dictionary into the message. The data to load into the message. Gets the message this dictionary provides access to. Gets the description of the type of message this dictionary provides access to. Gets the number of explicitly set values in the message. Gets a value indicating whether this message is read only. Gets all the keys that have values associated with them. Gets the set of official message part names that have non-null values associated with them. Gets the keys that are in the message but not declared as official OAuth properties. Gets all the values. Gets the serializer for the message this dictionary provides access to. Gets or sets a value for some named value. The serialized form of a name for the value to read or write. The named value. If the key matches a declared property or field on the message type, that type member is set. Otherwise the key/value is stored in a dictionary for extra (weakly typed) strings. Thrown when setting a value that is not allowed for a given . Describes an individual member of a message and assists in its serialization. A map of converters that help serialize custom objects to string values and back again. A map of instantiated custom encoders used to encode/decode message parts. The string-object conversion routines to use for this individual message part. The property that this message part is associated with, if aplicable. The field that this message part is associated with, if aplicable. The type of the message part. (Not the type of the message itself). The default (uninitialized) value of the member inherent in its type. Initializes static members of the class. Initializes a new instance of the class. A property or field of an implementing type that has a attached to it. The attribute discovered on that describes the serialization requirements of the message part. Sets the member of a given message to some given value. Used in deserialization. The message instance containing the member whose value should be set. The string representation of the value to set. Gets the normalized form of a value of a member of a given message. Used in serialization. The message instance to read the value from. The string representation of the member's value. Gets the value of a member of a given message. Used in serialization. The message instance to read the value from. A value indicating whether the original value should be retrieved (as opposed to a normalized form of it). The string representation of the member's value. Gets whether the value has been set to something other than its CLR type default value. The message instance to check the value on. True if the value is not the CLR default value. Adds a pair of type conversion functions to the static conversion map. The custom type to convert to and from strings. The function to convert the custom type to a string. The mapping function that converts some custom value to its original (non-normalized) string. May be null if the same as the function. The function to convert a string to the custom type. Creates a that resorts to and for the conversion. The type to create the mapping for. The value mapping. Creates the default encoder for a given type. The type to create a for. A struct. Figures out the CLR default value for a given type. The type whose default value is being sought. Either null, or some default value like 0 or 0.0. Checks whether a type is a nullable value type (i.e. int?) The type in question. True if this is a nullable value type. Retrieves a previously instantiated encoder of a given type, or creates a new one and stores it for later retrieval as well. The message part encoder type. An instance of the desired encoder. Gets the value of the message part, without converting it to/from a string. The message instance to read from. The value of the member. Sets the value of a message part directly with a given value. The message instance to read from. The value to set on the this part. Converts a string representation of the member's value to the appropriate type. The string representation of the member's value. An instance of the appropriate type for setting the member. Converts the member's value to its string representation. The value of the member. A value indicating whether a string matching the originally decoded string should be returned (as opposed to a normalized string). The string representation of the member's value. Validates that the message part and its attribute have agreeable settings. Thrown when a non-nullable value type is set as optional. Gets or sets the name to use when serializing or deserializing this parameter in a message. Gets or sets whether this message part must be signed. Gets or sets a value indicating whether this message part is required for the containing message to be valid. Gets or sets a value indicating whether the string value is allowed to be empty in the serialized message. Gets or sets a value indicating whether the field or property must remain its default value. Gets or sets a value indicating whether this part is defined as a constant field and can be read without a message instance. Gets or sets a value indicating whether the value contained by this property contains sensitive information that should generally not be logged. true if this instance is security sensitive; otherwise, false. Gets the static constant value for this message part without a message instance. Gets the type of the declared member. Gets the type of the encoded values produced by this encoder, as they would appear in their preferred form. An exception thrown when messages cannot receive all the protections they require. Initializes a new instance of the class. The message whose protection requirements could not be met. The protection requirements that were fulfilled. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. A protocol message (request or response) that passes from this to a remote party via the user agent using a redirect or form POST submission, OR a direct message response. An instance of this type describes the HTTP response that must be sent in response to the current HTTP request. It is important that this response make up the entire HTTP response. A hosting ASPX page should not be allowed to render its normal HTML output after this response is sent. The normal rendered output of an ASPX page can be canceled by calling after this message is sent on the response stream. The encoder to use for serializing the response body. Initializes a new instance of the class. Initializes a new instance of the class based on the contents of an . The to clone. The maximum bytes to read from the response stream. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Automatically sends the appropriate response to the user agent and ends execution on the current page or handler. Typically thrown by ASP.NET in order to prevent additional data from the page being sent to the client and corrupting the response. Requires a current HttpContext. Automatically sends the appropriate response to the user agent and ends execution on the current page or handler. The context of the HTTP request whose response should be set. Typically this is . Typically thrown by ASP.NET in order to prevent additional data from the page being sent to the client and corrupting the response. Automatically sends the appropriate response to the user agent and ends execution on the current page or handler. The context of the HTTP request whose response should be set. Typically this is . Typically thrown by ASP.NET in order to prevent additional data from the page being sent to the client and corrupting the response. Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. Not safe to call from ASP.NET web forms. Requires a current HttpContext. This call is not safe to make from an ASP.NET web form (.aspx file or code-behind) because ASP.NET will render HTML after the protocol message has been sent, which will corrupt the response. Use the method instead for web forms. Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. Not safe to call from ASP.NET web forms. The context of the HTTP request whose response should be set. Typically this is . This call is not safe to make from an ASP.NET web form (.aspx file or code-behind) because ASP.NET will render HTML after the protocol message has been sent, which will corrupt the response. Use the method instead for web forms. Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. Not safe to call from ASP.NET web forms. The context of the HTTP request whose response should be set. Typically this is . This call is not safe to make from an ASP.NET web form (.aspx file or code-behind) because ASP.NET will render HTML after the protocol message has been sent, which will corrupt the response. Use the method instead for web forms. Submits this response to a WCF response context. Only available when no response body is included. The response context to apply the response to. Automatically sends the appropriate response to the user agent. The response to set to this message. Gets the URI that, when requested with an HTTP GET request, would transmit the message that normally would be transmitted via a user agent redirect. The channel to use for encoding. The URL that would transmit the original message. This URL may exceed the normal 2K limit, and should therefore be broken up manually and POSTed as form fields when it exceeds this length. This is useful for desktop applications that will spawn a user agent to transmit the message rather than cause a redirect. Sets the response to some string, encoded as UTF-8. The string to set the response to. Type of the content. May be null. Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. The context of the HTTP request whose response should be set. Typically this is . If set to false, this method calls rather than to avoid a . Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. The context of the HTTP request whose response should be set. Typically this is . If set to false, this method calls rather than to avoid a . Gets the headers that must be included in the response to the user agent. The headers in this collection are not meant to be a comprehensive list of exactly what should be sent, but are meant to augment whatever headers are generally included in a typical response. Gets the body of the HTTP response. Gets a value indicating whether the response stream is incomplete due to a length limitation imposed by the HttpWebRequest or calling method. Gets the cookies collection to add as headers to the HTTP response. Gets or sets the body of the response as a string. Gets the HTTP status code to use in the HTTP response. Gets or sets a reference to the actual protocol message that is being sent via the user agent. The methods available for the local party to send messages to a remote party. See OAuth 1.0 spec section 5.2. No HTTP methods are allowed. In the HTTP Authorization header as defined in OAuth HTTP Authorization Scheme (OAuth HTTP Authorization Scheme). As the HTTP POST request body with a content-type of application/x-www-form-urlencoded. Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). The flags that control HTTP verbs. The type of transport mechanism used for a message: either direct or indirect. A message that is sent directly from the Consumer to the Service Provider, or vice versa. A message that is sent from one party to another via a redirect in the user agent. Encodes and decodes the as an integer of total seconds. Initializes a new instance of the class. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Gets the type of the encoded values produced by this encoder, as they would appear in their preferred form. A paranoid HTTP get/post request engine. It helps to protect against attacks from remote server leaving dangling connections, sending too much data, causing requests against internal servers, etc. Protections include: * Conservative maximum time to receive the complete response. * Only HTTP and HTTPS schemes are permitted. * Internal IP address ranges are not permitted: 127.*.*.*, 1::* * Internal host names are not permitted (periods must be found in the host name) If a particular host would be permitted but is in the blacklist, it is not allowed. If a particular host would not be permitted but is in the whitelist, it is allowed. The set of URI schemes allowed in untrusted web requests. The collection of blacklisted hosts. The collection of regular expressions used to identify additional blacklisted hosts. The collection of whitelisted hosts. The collection of regular expressions used to identify additional whitelisted hosts. The maximum redirections to follow in the course of a single request. The maximum number of bytes to read from the response of an untrusted server. The handler that will actually send the HTTP request and collect the response once the untrusted server gates have been satisfied. Initializes a new instance of the class. Initializes a new instance of the class. The chained web request handler. Determines whether this instance can support the specified options. The set of options that might be given in a subsequent web request. true if this instance can support the specified options; otherwise, false. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The options to apply to this web request. The writer the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Processes an and converts the to a instance. The to handle. The options to apply to this web request. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The writer the caller should write out the entity data to. Processes an and converts the to a instance. The to handle. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Determines whether an IP address is the IPv6 equivalent of "localhost/127.0.0.1". The ip address to check. true if this is a loopback IP address; false otherwise. Determines whether the given host name is in a host list or host name regex list. The host name. The list of host names. The list of regex patterns of host names. true if the specified host falls within at least one of the given lists; otherwise, false. Determines whether a given host is whitelisted. The host name to test. true if the host is whitelisted; otherwise, false. Determines whether a given host is blacklisted. The host name to test. true if the host is blacklisted; otherwise, false. Verify that the request qualifies under our security policies The request URI. If set to true, only web requests that can be made entirely over SSL will succeed. Thrown when the URI is disallowed for security reasons. Determines whether a URI is allowed based on scheme and host name. No requireSSL check is done here The URI to test for whether it should be allowed. true if [is URI allowable] [the specified URI]; otherwise, false. Prepares the request by setting timeout and redirect policies. The request to prepare. true if this is a POST request whose headers have not yet been sent out; false otherwise. Gets or sets the default maximum bytes to read in any given HTTP request. Default is 1MB. Cannot be less than 2KB. Gets or sets the total number of redirections to allow on any one request. Default is 10. Gets or sets the time allowed to wait for single read or write operation to complete. Default is 500 milliseconds. Gets or sets the time allowed for an entire HTTP request. Default is 5 seconds. Gets a collection of host name literals that should be allowed even if they don't pass standard security checks. Gets a collection of host name regular expressions that indicate hosts that should be allowed even though they don't pass standard security checks. Gets a collection of host name literals that should be rejected even if they pass standard security checks. Gets a collection of host name regular expressions that indicate hosts that should be rejected even if they pass standard security checks. Gets the configuration for this class that is specified in the host's .config file. The default handler for transmitting instances and returning the responses. The set of options this web request handler supports. The value to use for the User-Agent HTTP header. Determines whether this instance can support the specified options. The set of options that might be given in a subsequent web request. true if this instance can support the specified options; otherwise, false. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The writer the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The options to apply to this web request. The writer the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Processes an and converts the to a instance. The to handle. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Processes an and converts the to a instance. The to handle. The options to apply to this web request. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Determines whether an exception was thrown because of the remote HTTP server returning HTTP 417 Expectation Failed. The caught exception. true if the failure was originally caused by a 417 Exceptation Failed error; otherwise, false. Initiates a POST request and prepares for sending data. The HTTP request with information about the remote party to contact. The stream where the POST entity can be written. Prepares an HTTP request. The request. true if this is a POST request whose headers have not yet been sent out; false otherwise. An immutable description of a URL that receives messages. Initializes a new instance of the class. The URL of this endpoint. The HTTP method(s) allowed. Initializes a new instance of the class. The URL of this endpoint. The HTTP method(s) allowed. Gets the URL of this endpoint. Gets the HTTP method(s) allowed. Represents the section in the host's .config file that configures this library's settings. The name of the section under which this library's settings must be found. The name of the <openid> sub-element. The name of the <oauth> sub-element. Initializes a new instance of the class. Gets a named section in this section group, or null if no such section is defined. The name of the section to obtain. The desired section, or null if it could not be obtained. Gets the messaging configuration element. Gets the reporting configuration element. Represents the <messaging> element in the host's .config file. The name of the <webResourceUrlProvider> sub-element. The name of the <untrustedWebRequest> sub-element. The name of the attribute that stores the association's maximum lifetime. The name of the attribute that stores the maximum allowable clock skew. The name of the attribute that indicates whether to disable SSL requirements across the library. The name of the attribute that controls whether messaging rules are strictly followed. The default value for the property. 2KB, recommended by OpenID group The name of the attribute that controls the maximum length of a URL before it is converted to a POST payload. Gets the name of the @privateSecretMaximumAge attribute. The name of the <messaging> sub-element. Gets the configuration section from the .config file. Gets the actual maximum message lifetime that a program should allow. The sum of the and property values. Gets or sets the maximum lifetime of a private symmetric secret, that may be used for signing or encryption. The default value is 28 days (twice the age of the longest association). Gets or sets the time between a message's creation and its receipt before it is considered expired. The default value value is 3 minutes. Smaller timespans mean lower tolerance for delays in message delivery. Larger timespans mean more nonces must be stored to provide replay protection. The maximum age a message implementing the interface can be before being discarded as too old. This time limit should NOT take into account expected time skew for servers across the Internet. Time skew is added to this value and is controlled by the property. Gets or sets the maximum clock skew. The default value is 10 minutes. Smaller timespans mean lower tolerance for time variance due to server clocks not being synchronized. Larger timespans mean greater chance for replay attacks and larger nonce caches. For example, if a server could conceivably have its clock d = 5 minutes off UTC time, then any two servers could have their clocks disagree by as much as 2*d = 10 minutes. Gets or sets a value indicating whether SSL requirements within the library are disabled/relaxed. Use for TESTING ONLY. Gets or sets a value indicating whether messaging rules are strictly adhered to. true by default. Strict will require that remote parties adhere strictly to the specifications, even when a loose interpretation would not compromise security. true is a good default because it shakes out interoperability bugs in remote services so they can be identified and corrected. But some web sites want things to Just Work more than they want to file bugs against others, so false is the setting for them. Gets or sets the configuration for the class. The untrusted web request. Gets or sets the maximum allowable size for a 301 Redirect response before we send a 200 OK response with a scripted form POST with the parameters instead in order to ensure successfully sending a large payload to another server that might have a maximum allowable size restriction on its GET request. The default value is 2048. Gets or sets the embedded resource retrieval provider. The embedded resource retrieval provider. Represents the <reporting> element in the host's .config file. The name of the @enabled attribute. The name of the @minimumReportingInterval attribute. The name of the @minimumFlushInterval attribute. The name of the @includeFeatureUsage attribute. The name of the @includeEventStatistics attribute. The name of the @includeLocalRequestUris attribute. The name of the @includeCultures attribute. The name of the <reporting> sub-element. The default value for the @minimumFlushInterval attribute. Initializes a new instance of the class. Gets the configuration section from the .config file. Gets or sets a value indicating whether this reporting is enabled. true if enabled; otherwise, false. Gets or sets the maximum frequency that reports will be published. Gets or sets the maximum frequency the set can be flushed to disk. Gets or sets a value indicating whether to include a list of library features used in the report. true to include a report of features used; otherwise, false. Gets or sets a value indicating whether to include statistics of certain events such as authentication success and failure counting, and can include remote endpoint URIs. true to include event counters in the report; otherwise, false. Gets or sets a value indicating whether to include a few URLs to pages on the hosting web site that host DotNetOpenAuth components. Gets or sets a value indicating whether to include the cultures requested by the user agent on pages that host DotNetOpenAuth components. A configuration collection of trusted OP Endpoints. The name of the "rejectAssertionsFromUntrustedProviders" element. Initializes a new instance of the class. Initializes a new instance of the class. The elements to initialize the collection with. When overridden in a derived class, creates a new . A new . Gets the element key for a specified configuration element when overridden in a derived class. The to return the key for. An that acts as the key for the specified . Gets or sets a value indicating whether any login attempt coming from an OpenID Provider Endpoint that is not on this whitelist of trusted OP Endpoints will be rejected. If the trusted providers list is empty and this value is true, all assertions are rejected. A configuration element that records a trusted Provider Endpoint. The name of the attribute that stores the value. Initializes a new instance of the class. Gets or sets the OpenID Provider Endpoint (aka "OP Endpoint") that this relying party trusts. A collection of . The type that all types specified in the elements must derive from. Initializes a new instance of the TypeConfigurationCollection class. Initializes a new instance of the TypeConfigurationCollection class. The elements that should be added to the collection initially. Creates instances of all the types listed in the collection. if set to true then internal types may be instantiated. A sequence of instances generated from types in this collection. May be empty, but never null. When overridden in a derived class, creates a new . A new . Gets the element key for a specified configuration element when overridden in a derived class. The to return the key for. An that acts as the key for the specified . Represents an element in a .config file that allows the user to provide a @type attribute specifying the full type that provides some service used by this library. A constraint on the type the user may provide. The name of the attribute whose value is the full name of the type the user is specifying. The name of the attribute whose value is the path to the XAML file to deserialize to obtain the type. Initializes a new instance of the TypeConfigurationElement class. Creates an instance of the type described in the .config file. The value to return if no type is given in the .config file. The newly instantiated type. Creates an instance of the type described in the .config file. The value to return if no type is given in the .config file. if set to true then internal types may be instantiated. The newly instantiated type. Creates the instance from xaml. The stream of xaml to deserialize. The deserialized object. This exists as its own method to prevent the CLR's JIT compiler from failing to compile the CreateInstance method just because the PresentationFramework.dll may be missing (which it is on some shared web hosts). This way, if the XamlSource attribute is never used, the PresentationFramework.dll never need be present. Gets or sets the full name of the type. The full name of the type, such as: "ConsumerPortal.Code.CustomStore, ConsumerPortal". Gets or sets the path to the XAML file to deserialize to obtain the instance. Gets the type described in the .config file. Gets a value indicating whether this type has no meaningful type to instantiate. Represents the section of a .config file where security policies regarding web requests to user-provided, untrusted servers is controlled. Gets the name of the @timeout attribute. Gets the name of the @readWriteTimeout attribute. Gets the name of the @maximumBytesToRead attribute. Gets the name of the @maximumRedirections attribute. Gets the name of the @whitelistHosts attribute. Gets the name of the @whitelistHostsRegex attribute. Gets the name of the @blacklistHosts attribute. Gets the name of the @blacklistHostsRegex attribute. Gets or sets the read/write timeout after which an HTTP request will fail. Gets or sets the timeout after which an HTTP request will fail. Gets or sets the maximum bytes to read from an untrusted web server. Gets or sets the maximum redirections that will be followed before an HTTP request fails. Gets or sets the collection of hosts on the whitelist. Gets or sets the collection of hosts on the blacklist. Gets or sets the collection of regular expressions that describe hosts on the whitelist. Gets or sets the collection of regular expressions that describe hosts on the blacklist. Represents a collection of child elements that describe host names either as literal host names or regex patterns. Initializes a new instance of the class. Creates a new child host name element. A new . Gets the element key for a specified configuration element. The to return the key for. An that acts as the key for the specified . Gets all the members of the collection assuming they are all literal host names. Gets all the members of the collection assuming they are all host names regex patterns. Represents the name of a single host or a regex pattern for host names. Gets the name of the @name attribute. Initializes a new instance of the class. Initializes a new instance of the class. The default value of the property. Gets or sets the name of the host on the white or black list. An interface that provides URLs from which embedded resources can be obtained. Gets the URL from which the given manifest resource may be downloaded by the user agent. Some type in the assembly containing the desired resource. Manifest name of the desired resource. An absolute URL. A general logger for the entire DotNetOpenAuth library. Because this logger is intended for use with non-localized strings, the overloads that take have been removed, and is used implicitly. The instance that is to be used by this static Logger for the duration of the appdomain. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Creates an additional logger on demand for a subsection of the application. A name that will be included in the log file. The instance created with the given name. Creates the main logger for the library, and emits an INFO message that is the name and version of the library. A name that will be included in the log file. The instance created with the given name. Creates an additional logger on demand for a subsection of the application. A type whose full name that will be included in the log file. The instance created with the given type name. Discovers the presence of Log4net.dll and other logging mechanisms and returns the best available logger. The name of the log to initialize. The instance of the logger to use. Gets the logger for general library logging. Gets the logger for service discovery and selection events. Gets the logger for Messaging events. Gets the logger for Channel events. Gets the logger for binding elements and binding-element related events on the channel. Gets the logger specifically used for logging verbose text on everything about the signing process. Gets the logger for HTTP-level events. Gets the logger for events logged by ASP.NET controls. Gets the logger for high-level OpenID events. Gets the logger for high-level OAuth events. Gets the logger for high-level InfoCard events. The ILog interface is use by application to log messages into the log4net framework. Use the to obtain logger instances that implement this interface. The static method is used to get logger instances. This class contains methods for logging at different levels and also has properties for determining if those logging levels are enabled in the current configuration. This interface can be implemented in different ways. This documentation specifies reasonable behavior that a caller can expect from the actual implementation, however different implementations reserve the right to do things differently. Simple example of logging messages ILog log = LogManager.GetLogger("application-log"); log.Info("Application Start"); log.Debug("This is a debug message"); if (log.IsDebugEnabled) { log.Debug("This is another debug message"); } Nicko Cadell Gert Driesen Log a message object with the level. Log a message object with the level. The message object to log. This method first checks if this logger is DEBUG enabled by comparing the level of this logger with the level. If this logger is DEBUG enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. Log a message object with the level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Log a message object with the level. Logs a message object with the level. This method first checks if this logger is INFO enabled by comparing the level of this logger with the level. If this logger is INFO enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. The message object to log. Logs a message object with the INFO level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted message string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Log a message object with the level. Log a message object with the level. This method first checks if this logger is WARN enabled by comparing the level of this logger with the level. If this logger is WARN enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. The message object to log. Log a message object with the level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted message string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Log a message object with the level. Logs a message object with the level. The message object to log. This method first checks if this logger is ERROR enabled by comparing the level of this logger with the level. If this logger is ERROR enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. Log a message object with the level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted message string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Log a message object with the level. Log a message object with the level. This method first checks if this logger is FATAL enabled by comparing the level of this logger with the level. If this logger is FATAL enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. The message object to log. Log a message object with the level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted message string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. This function is intended to lessen the computational cost of disabled log debug statements. For some ILog interface log, when you write: log.Debug("This is entry number: " + i ); You incur the cost constructing the message, string construction and concatenation in this case, regardless of whether the message is logged or not. If you are worried about speed (who isn't), then you should write: if (log.IsDebugEnabled) { log.Debug("This is entry number: " + i ); } This way you will not incur the cost of parameter construction if debugging is disabled for log. On the other hand, if the log is debug enabled, you will incur the cost of evaluating whether the logger is debug enabled twice. Once in and once in the . This is an insignificant overhead since evaluating a logger takes about 1% of the time it takes to actually log. This is the preferred style of logging. Alternatively if your logger is available statically then the is debug enabled state can be stored in a static variable like this: private static readonly bool isDebugEnabled = log.IsDebugEnabled; Then when you come to log you can write: if (isDebugEnabled) { log.Debug("This is entry number: " + i ); } This way the debug enabled state is only queried once when the class is loaded. Using a private static readonly variable is the most efficient because it is a run time constant and can be heavily optimized by the JIT compiler. Of course if you use a static readonly variable to hold the enabled state of the logger then you cannot change the enabled state at runtime to vary the logging that is produced. You have to decide if you need absolute speed or runtime flexibility. Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. For more information see . Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. For more information see . Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. For more information see . Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. For more information see . Returns a new log4net logger if it exists, or returns null if the assembly cannot be found. The created instance. Creates the log4net.LogManager. Call ONLY after log4net.dll is known to be present. The created instance. Returns a new logger that does nothing when invoked. The created instance. See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . Returns a new logger that uses the class if sufficient CAS permissions are granted to use it, otherwise returns false. The created instance. See . See . See . See . See . Represents a read-only dictionary. The type of the key. The type of the value. Contains base dictionary. Initializes a new instance of the class. The base dictionary. Adds an element with the provided key and value to the . The object to use as the key of the element to add. The object to use as the value of the element to add. is null. An element with the same key already exists in the . The is read-only. Determines whether the contains an element with the specified key. The key to locate in the . true if the contains an element with the key; otherwise, false. is null. Removes the element with the specified key from the . The key of the element to remove. true if the element is successfully removed; otherwise, false. This method also returns false if was not found in the original . is null. The is read-only. Gets the value associated with the specified key. The key whose value to get. When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. true if the object that implements contains an element with the specified key; otherwise, false. is null. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Copies to. The array. Index of the array. Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Gets an containing the keys of the . An containing the keys of the object that implements . Gets an containing the values in the . An containing the values in the object that implements . Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Gets or sets the element with the specified key. The key being read or written. The element with the specified key. is null. The property is retrieved and is not found. The property is set and the is read-only. The statistical reporting mechanism used so this library's project authors know what versions and features are in use. A UTF8 encoder that doesn't emit the preamble. Used for mid-stream writers. A value indicating whether reporting is desirable or not. Must be logical-AND'd with !. A value indicating whether reporting experienced an error and cannot be enabled. A value indicating whether the reporting class has been initialized or not. The object to lock during initialization. The isolated storage to use for collecting data in between published reports. The GUID that shows up at the top of all reports from this user/machine/domain. The recipient of collected reports. The outgoing HTTP request handler to use for publishing reports. A few HTTP request hosts and paths we've seen. Cultures that have come in via HTTP requests. Features that have been used. A collection of all the observations to include in the report. The named events that we have counters for. The lock acquired while considering whether to publish a report. The time that we last published reports. Initializes static members of the class. Initializes a new instance of the class. Records an event occurrence. Name of the event. The category within the event. Null and empty strings are allowed, but considered the same. Records an event occurence. The object whose type name is the event name to record. The category within the event. Null and empty strings are allowed, but considered the same. Records the use of a feature by name. The feature. Records the use of a feature by object type. The object whose type is the feature to set as used. Records the use of a feature by object type. The object whose type is the feature to set as used. Some dependency used by . Records the use of a feature by object type. The object whose type is the feature to set as used. Some dependency used by . Some dependency used by . Records statistics collected from incoming requests. The request. Called by every internal/public method on this class to give periodic operations a chance to run. Initializes Reporting if it has not been initialized yet. Assembles a report for submission. A stream that contains the report. Sends the usage reports to the library authors. A value indicating whether submitting the report was successful. Interprets the reporting response as a log message if possible. The line from the HTTP response to interpret as a log message. Sends the stats report asynchronously, and careful to not throw any unhandled exceptions. Gets the isolated storage to use for reporting. An isolated storage location appropriate for our host. Gets a unique, pseudonymous identifier for this particular web site or application. A GUID that will serve as the identifier. The identifier is made persistent by storing the identifier in isolated storage. If an existing identifier is not found, a new one is created, persisted, and returned. Sanitizes the name of the file so it only includes valid filename characters. The filename to sanitize. The filename, with any and all invalid filename characters replaced with the hyphen (-) character. Gets or sets a value indicating whether this reporting is enabled. true if enabled; otherwise, false. Setting this property to true may have no effect if reporting has already experienced a failure of some kind. Gets the observed features. Gets the configuration to use for reporting. A set of values that persist the set to disk. The isolated persistent storage. The persistent reader. The persistent writer. The total set of elements. The maximum number of elements to track before not storing new elements. The set of new elements added to the since the last flush. The time the last flush occurred. A flag indicating whether the set has changed since it was last flushed. Initializes a new instance of the class. The storage location. Name of the file. The maximum number of elements to track. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Adds a value to the set. The value. Flushes any newly added values to disk. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets a value indicating whether the hashset has reached capacity and is not storing more elements. true if this instance is full; otherwise, false. Gets the name of the file. The name of the file. A feature usage counter. The separator to use between category names and their individual counters. The isolated persistent storage. The persistent reader. The persistent writer. The time the last flush occurred. The in-memory copy of the counter. A flag indicating whether the set has changed since it was last flushed. Initializes a new instance of the class. The storage location. Name of the file. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Increments the counter. The category within the event. Null and empty strings are allowed, but considered the same. Flushes any newly added values to disk. Resets all counters. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the name of the file. The name of the file. Argument validation checks that throw some kind of ArgumentException when they fail (unless otherwise noted). Validates that a given parameter is not null. The type of the parameter The value. Name of the parameter. The tested value, guaranteed to not be null. Validates that a parameter is not null or empty. The value. Name of the parameter. The validated value. Validates that an array is not null or empty. The type of the elements in the sequence. The value. Name of the parameter. Validates that an argument is either null or is a sequence with no null elements. The type of elements in the sequence. The sequence. Name of the parameter. Validates some expression describing the acceptable range for an argument evaluates to true. The expression that must evaluate to true to avoid an . Name of the parameter. The message to include with the exception. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . Name of the parameter. The message to include with the exception. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . Name of the parameter. The unformatted message. Formatting arguments. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . The message to include with the exception. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . The unformatted message. Formatting arguments. Validates that some argument describes a type that is or derives from a required type. The type that the argument must be or derive from. The type given in the argument. Name of the parameter. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . The message. Throws an if a condition does not evaluate to true. The expression that must evaluate to true to avoid an . The message. Throws an Name of the parameter. The message. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to The configuration-specified type {0} must be public, and is not.. Looks up a localized string similar to The configuration XAML reference to {0} requires a current HttpContext to resolve.. Looks up a localized string similar to The current IHttpHandler is not one of types: {0}. An embedded resource URL provider must be set in your .config file.. Looks up a localized string similar to The empty string is not allowed.. Looks up a localized string similar to The argument has an unexpected value.. Looks up a localized string similar to The property {0} must be set before this operation is allowed.. Looks up a localized string similar to This object contains a response body, which is not supported.. Looks up a localized string similar to No current HttpContext was detected, so an {0} instance must be explicitly provided or specified in the .config file. Call the constructor overload that takes an {0}.. Utility methods for working with URIs. Tests a URI for the presence of an OAuth payload. The URI to test. The prefix. True if the URI contains an OAuth message. Determines whether some is using HTTPS. The Uri being tested for security. true if the URI represents an encrypted request; otherwise, false. Equivalent to UriBuilder.ToString() but omits port # if it may be implied. Equivalent to UriBuilder.Uri.ToString(), but doesn't throw an exception if the Host has a wildcard. The UriBuilder to render as a string. The string version of the Uri. Validates that a URL will be resolvable at runtime. The page hosting the control that receives this URL as a property. If set to true the page is in design-time mode rather than runtime mode. The URI to check. Thrown if the given URL is not a valid, resolvable URI. A grab-bag utility class. The base namespace for this library from which all other namespaces derive. The web.config file-specified provider of web resource URLs. Tests for equality between two objects. Safely handles the case where one or both are null. The type of objects been checked for equality. The first object. The second object. true if the two objects are equal; false otherwise. Prepares a dictionary for printing as a string. The type of the key. The type of the value. The dictionary or sequence of name-value pairs. An object whose ToString method will perform the actual work of generating the string. The work isn't done until (and if) the method is actually called, which makes it great for logging complex objects without being in a conditional block. Offers deferred ToString processing for a list of elements, that are assumed to generate just a single-line string. The type of elements contained in the list. The list of elements. An object whose ToString method will perform the actual work of generating the string. Offers deferred ToString processing for a list of elements. The type of elements contained in the list. The list of elements. if set to true, special formatting will be applied to the output to make it clear where one element ends and the next begins. An object whose ToString method will perform the actual work of generating the string. Gets the web resource URL from a Page or object. Some type in resource assembly. Name of the manifest resource. An absolute URL Gets a human-readable description of the library name and version, including whether the build is an official or private one. Gets the assembly file version of the executing assembly, otherwise falls back to the assembly version. Manages an individual deferred ToString call. The type of object to be serialized as a string. The object that will be serialized if called upon. The method used to serialize to string form. Initializes a new instance of the DelayedToString class. The object that may be serialized to string form. The method that will serialize the object if called upon. Returns a that represents the current . A that represents the current . ================================================ FILE: packages/DotNetOpenAuth.Core.4.3.0.13117/lib/net45-full/DotNetOpenAuth.Core.xml ================================================ DotNetOpenAuth.Core Internal state consistency checks that throw an internal error exception when they fail. Validates some expression describing the acceptable condition evaluates to true. The expression that must evaluate to true to avoid an internal error exception. The message to include with the exception. Validates some expression describing the acceptable condition evaluates to true. The expression that must evaluate to true to avoid an internal error exception. The unformatted message. Formatting arguments. Throws an internal error exception. The message. Throws an internal error exception. Nothing. This method always throws. An internal error exception that should never be caught. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). A message part encoder that translates between byte[] and base64web encoded strings. An interface describing how various objects can be serialized and deserialized between their object and string forms. Implementations of this interface must include a default constructor and must be thread-safe. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Provides RSA encryption of symmetric keys to protect them from a theft of the persistent store. A persistent store for rotating symmetric cryptographic keys. Implementations should persist it in such a way that the keys are shared across all servers on a web farm, where applicable. The store should consider protecting the persistent store against theft resulting in the loss of the confidentiality of the keys. One possible mitigation is to asymmetrically encrypt each key using a certificate installed in the server's certificate store. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Thrown in the event of a conflict with an existing key in the same bucket and with the same handle. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. The persistent store for asymmetrically encrypted symmetric keys. The memory cache of decrypted keys. The asymmetric algorithm to use encrypting/decrypting the symmetric keys. Initializes a new instance of the class. The data store. The asymmetric protection to apply to symmetric keys. Must include the private key. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. Decrypts the specified key. The bucket. The handle. The encrypted key. The decrypted key. An encrypted key and its decrypted equivalent. A cryptographic key and metadata concerning it. Backing field for the property. Backing field for the property. Initializes a new instance of the class. The cryptographic key. The expires UTC. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. The parameter is null. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the key. Gets the expiration date of this key (UTC time). Initializes a new instance of the class. The encrypted key. The decrypted key. Invariant conditions. Gets the encrypted key. Thrown by a hosting application or web site when a cryptographic key is created with a bucket and handle that conflicts with a previously stored and unexpired key. Initializes a new instance of the class. Initializes a new instance of the class. The inner exception to include. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. Code contract for the interface. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Thrown in the event of a conflict with an existing key in the same bucket and with the same handle. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. A in-memory store of crypto keys. How frequently to check for and remove expired secrets. An in-memory cache of decrypted symmetric keys. The key is the bucket name. The value is a dictionary whose key is the handle and whose value is the cached key. The last time the cache had expired keys removed from it. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Thrown in the event of a conflict with an existing key in the same bucket and with the same handle. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. Cleans the expired keys from memory cache if the cleaning interval has passed. Weeds out expired keys from the in-memory cache. A compact binary serialization class. The -derived type to serialize/deserialize. A serializer for -derived types The DataBag-derived type that is to be serialized/deserialized. A serializer for -derived types The DataBag-derived type that is to be serialized/deserialized. Serializes the specified message. The message to serialize. Must not be null. A non-null, non-empty value. Deserializes a . The instance to deserialize into The serialized form of the to deserialize. Must not be null or empty. The message that contains the serialized value. May be null if no carrying message is applicable. The name of the parameter whose value is to be deserialized. Used for error message generation, but may be null. The length of the nonce to include in tokens that can be decoded once only. The message description cache to use for data bag types. The minimum allowable lifetime for the key used to encrypt/decrypt or sign this databag. The symmetric key store with the secret used for signing/encryption of verification codes and refresh tokens. The bucket for symmetric keys. The crypto to use for signing access tokens. The crypto to use for encrypting access tokens. A value indicating whether the data in this instance will be protected against tampering. The nonce store to use to ensure that this instance is only decoded once. The maximum age of a token that can be decoded; useful only when is true. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. Initializes a new instance of the class. The crypto service provider with the asymmetric key to use for signing or verifying the token. The crypto service provider with the asymmetric key to use for encrypting or decrypting the token. A value indicating whether the data in this instance will be GZip'd. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Initializes a new instance of the class. The crypto key store used when signing or encrypting. The bucket in which symmetric keys are stored for signing/encrypting data. A value indicating whether the data in this instance will be protected against tampering. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. The required minimum lifespan within which this token must be decodable and verifiable; useful only when and/or is true. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Initializes a new instance of the class. A value indicating whether the data in this instance will be protected against tampering. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Serializes the specified message, including compression, encryption, signing, and nonce handling where applicable. The message to serialize. Must not be null. A non-null, non-empty value. Deserializes a , including decompression, decryption, signature and nonce validation where applicable. The instance to initialize with deserialized data. The serialized form of the to deserialize. Must not be null or empty. The message that contains the serialized value. May be null if no carrying message is applicable. The name of the parameter whose value is to be deserialized. Used for error message generation, but may be null. Serializes the instance to a buffer. The message. The buffer containing the serialized data. Deserializes the instance from a buffer. The message instance to initialize with data from the buffer. The data buffer. Determines whether the signature on this instance is valid. The signed data. The signature. The symmetric secret handle. null when using an asymmetric algorithm. true if the signature is valid; otherwise, false. Calculates the signature for the data in this verification code. The bytes to sign. The symmetric secret handle. null when using an asymmetric algorithm. The calculated signature. Encrypts the specified value using either the symmetric or asymmetric encryption algorithm as appropriate. The value. Receives the symmetric secret handle. null when using an asymmetric algorithm. The encrypted value. Decrypts the specified value using either the symmetric or asymmetric encryption algorithm as appropriate. The value. The symmetric secret handle. null when using an asymmetric algorithm. The decrypted value. Initializes a new instance of the class. The crypto service provider with the asymmetric key to use for signing or verifying the token. The crypto service provider with the asymmetric key to use for encrypting or decrypting the token. A value indicating whether the data in this instance will be GZip'd. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Initializes a new instance of the class. The crypto key store used when signing or encrypting. The bucket in which symmetric keys are stored for signing/encrypting data. A value indicating whether the data in this instance will be protected against tampering. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. The minimum age. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Serializes the instance to a buffer. The message. The buffer containing the serialized data. Deserializes the instance from a buffer. The message instance to initialize with data from the buffer. The data buffer. Cached details on the response from a direct web request to a remote party. Details on the incoming response from a direct web request to a remote party. The encoding to use in reading a response that does not declare its own content encoding. Initializes a new instance of the class. Initializes a new instance of the class. The original request URI. The response to initialize from. The network stream is used by this class directly. Initializes a new instance of the class. The request URI. The final URI to respond to the request. The headers. The status code. Type of the content. The content encoding. Returns a that represents the current . A that represents the current . Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Gets an offline snapshot version of this instance. The maximum bytes from the response stream to cache. A snapshot version of this instance. If this instance is a creating a snapshot will automatically close and dispose of the underlying response stream. If this instance is a , the result will be the self same instance. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the type of the content. Gets the content encoding. Gets the URI of the initial request. Gets the URI that finally responded to the request. This can be different from the in cases of redirection during the request. Gets the headers that must be included in the response to the user agent. The headers in this collection are not meant to be a comprehensive list of exactly what should be sent, but are meant to augment whatever headers are generally included in a typical response. Gets the HTTP status code to use in the HTTP response. Gets the body of the HTTP response. A seekable, repeatable response stream. Initializes a new instance of the class. Initializes a new instance of the class. The request URI. The response. The maximum bytes to read. Initializes a new instance of the class. The request URI. The final URI to respond to the request. The headers. The status code. Type of the content. The content encoding. The response stream. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Gets the body of the response as a string. The entire body of the response. Gets an offline snapshot version of this instance. The maximum bytes from the response stream to cache. A snapshot version of this instance. If this instance is a creating a snapshot will automatically close and dispose of the underlying response stream. If this instance is a , the result will be the self same instance. Sets the response to some string, encoded as UTF-8. The string to set the response to. Caches the network stream and closes it if it is open. The response whose stream is to be cloned. The maximum bytes to cache. The seekable Stream instance that contains a copy of what was returned in the HTTP response. Gets a value indicating whether the cached response stream was truncated to a maximum allowable length. Gets the body of the HTTP response. Gets or sets the cached response stream. Code contract for the class. Manages sending direct messages to a remote party and receiving responses. The content-type used on HTTP POST requests where the POST entity is a URL-encoded series of key=value pairs. The content-type used for JSON serialized objects. The "text/javascript" content-type that some servers return instead of the standard one. The content-type for plain text. The HTML that should be returned to the user agent as part of a 301 Redirect. A string that should be used as the first argument to string.Format, where the {0} should be replaced with the URL to redirect to. The template for indirect messages that require form POST to forward through the user agent. We are intentionally using " instead of the html single quote ' below because the HtmlEncode'd values that we inject will only escape the double quote, so only the double-quote used around these values is safe. The encoding to use when writing out POST entity strings. A default set of XML dictionary reader quotas that are relatively safe from causing unbounded memory consumption. The content-type used on HTTP POST requests where the POST entity is a URL-encoded series of key=value pairs. This includes the character encoding. A list of binding elements in the order they must be applied to outgoing messages. A list of binding elements in the order they must be applied to incoming messages. The default cache of message descriptions to use unless they are customized. This is a perf optimization, so that we don't reflect over every message type every time a channel is constructed. A cache of reflected message types that may be sent or received on this channel. A tool that can figure out what kind of message is being received so it can be deserialized. Backing store for the property. Backing field for the property. Initializes a new instance of the class. A class prepared to analyze incoming messages and indicate what concrete message types can deserialize from it. The binding elements to use in sending and receiving messages. The order they are provided is used for outgoing messgaes, and reversed for incoming messages. Sends an indirect message (either a request or response) or direct message response for transmission to a remote party and ends execution on the current page or handler. The one-way message to send Thrown by ASP.NET in order to prevent additional data from the page being sent to the client and corrupting the response. Requires an HttpContext.Current context. Sends an indirect message (either a request or response) or direct message response for transmission to a remote party and skips most of the remaining ASP.NET request handling pipeline. Not safe to call from ASP.NET web forms. The one-way message to send Requires an HttpContext.Current context. This call is not safe to make from an ASP.NET web form (.aspx file or code-behind) because ASP.NET will render HTML after the protocol message has been sent, which will corrupt the response. Use the method instead for web forms. Prepares an indirect message (either a request or response) or direct message response for transmission to a remote party. The one-way message to send The pending user agent redirect based message to be sent as an HttpResponse. Gets the protocol message embedded in the given HTTP request, if present. The deserialized message, if one is found. Null otherwise. Requires an HttpContext.Current context. Thrown when is null. Gets the protocol message embedded in the given HTTP request, if present. The expected type of the message to be received. The deserialized message, if one is found. Null otherwise. True if the expected message was recognized and deserialized. False otherwise. Requires an HttpContext.Current context. Thrown when is null. Thrown when a request message of an unexpected type is received. Gets the protocol message embedded in the given HTTP request, if present. The expected type of the message to be received. The request to search for an embedded message. The deserialized message, if one is found. Null otherwise. True if the expected message was recognized and deserialized. False otherwise. Thrown when is null. Thrown when a request message of an unexpected type is received. Gets the protocol message embedded in the current HTTP request. The expected type of the message to be received. The deserialized message. Never null. Requires an HttpContext.Current context. Thrown when is null. Thrown if the expected message was not recognized in the response. Gets the protocol message embedded in the given HTTP request. The expected type of the message to be received. The request to search for an embedded message. The deserialized message. Never null. Thrown if the expected message was not recognized in the response. Gets the protocol message that may be embedded in the given HTTP request. The request to search for an embedded message. The deserialized message, if one is found. Null otherwise. Sends a direct message to a remote party and waits for the response. The expected type of the message to be received. The message to send. The remote party's response. Thrown if no message is recognized in the response or an unexpected type of message is received. Sends a direct message to a remote party and waits for the response. The message to send. The remote party's response. Guaranteed to never be null. Thrown if the response does not include a protocol message. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Verifies the integrity and applicability of an incoming message. The message just received. Thrown when the message is somehow invalid. This can be due to tampering, replay attack or expiration, among other things. Prepares an HTTP request that carries a given message. The message to send. The prepared to send the request. This method must be overridden by a derived class, unless the method is overridden and does not require this method. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec OAuth V1.0 section 5.3. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Thrown when the response is not valid. This method should NOT be called by derived types except when sending ONE WAY request messages. Prepares a message for transmit by applying signatures, nonces, etc. The message to prepare for sending. Gets the HTTP context for the current HTTP request. An HttpContextBase instance. Gets the current HTTP request being processed. The HttpRequestInfo for the current request. Requires an context. Thrown if HttpContext.Current == null. Checks whether a given HTTP method is expected to include an entity body in its request. The HTTP method. true if the HTTP method is supposed to have an entity; false otherwise. Applies message prescribed HTTP response headers to an outgoing web response. The message. The HTTP response. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Fires the event. The message about to be encoded and sent. Gets the direct response of a direct HTTP request. The web request. The response to the web request. Thrown on network or protocol errors. Submits a direct request message to some remote party and blocks waiting for an immediately reply. The request message. The response message, or null if the response did not carry a message. Typically a deriving channel will override to customize this method's behavior. However in non-HTTP frameworks, such as unit test mocks, it may be appropriate to override this method to eliminate all use of an HTTP transport. Called when receiving a direct response message, before deserialization begins. The HTTP direct response. The newly instantiated message, prior to deserialization. Gets the protocol message that may be embedded in the given HTTP request. The request to search for an embedded message. The deserialized message, if one is found. Null otherwise. Deserializes a dictionary of values into a message. The dictionary of values that were read from an HTTP request or response. Information about where the message was directed. Null for direct response messages. The deserialized message, or null if no message could be recognized in the provided data. Queues an indirect message for transmittal via the user agent. The message to send. The pending user agent redirect based message to be sent as an HttpResponse. Encodes an HTTP response that will instruct the user agent to forward a message to some remote third party using a 301 Redirect GET method. The message to forward. The pre-serialized fields from the message. if set to true the redirect will contain the message payload in the #fragment portion of the URL rather than the ?querystring. The encoded HTTP response. Encodes an HTTP response that will instruct the user agent to forward a message to some remote third party using a form POST method. The message to forward. The pre-serialized fields from the message. The encoded HTTP response. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Thrown when the response is not valid. Prepares an HTTP request that carries a given message. The message to send. The prepared to send the request. This method must be overridden by a derived class, unless the method is overridden and does not require this method. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec OAuth V1.0 section 5.3. Serializes the given message as a JSON string. The message to serialize. A JSON string. Deserializes from flat data from a JSON object. A JSON string. The simple "key":"value" pairs from a JSON-encoded object. Prepares a message for transmit by applying signatures, nonces, etc. The message to prepare for sending. This method should NOT be called by derived types except when sending ONE WAY request messages. Prepares to send a request to the Service Provider as the query string in a GET request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP Get request with the message parts serialized to the query string. This method satisfies OAuth 1.0 section 5.2, item #3. Prepares to send a request to the Service Provider as the query string in a HEAD request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP HEAD request with the message parts serialized to the query string. This method satisfies OAuth 1.0 section 5.2, item #3. Prepares to send a request to the Service Provider as the payload of a POST request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP POST request with the message parts serialized to the POST entity with the application/x-www-form-urlencoded content type This method satisfies OAuth 1.0 section 5.2, item #2 and OpenID 2.0 section 4.1.2. Prepares to send a request to the Service Provider as the query string in a PUT request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP PUT request with the message parts serialized to the query string. Prepares to send a request to the Service Provider as the query string in a DELETE request. The message to be transmitted to the ServiceProvider. The web request ready to send. This method is simply a standard HTTP DELETE request with the message parts serialized to the query string. Sends the given parameters in the entity stream of an HTTP request. The HTTP request. The parameters to send. This method calls and closes the request stream, but does not call . Sends the given parameters in the entity stream of an HTTP request in multi-part format. The HTTP request. The parameters to send. This method calls and closes the request stream, but does not call . Verifies the integrity and applicability of an incoming message. The message just received. Thrown when the message is somehow invalid. This can be due to tampering, replay attack or expiration, among other things. Allows preprocessing and validation of message data before an appropriate message type is selected or deserialized. The received message data. Performs additional processing on an outgoing web request before it is sent to the remote server. The request. Customizes the binding element order for outgoing and incoming messages. The outgoing order. The incoming order. No binding elements can be added or removed from the channel using this method. Only a customized order is allowed. Thrown if a binding element is new or missing in one of the ordered lists. Ensures a consistent and secure set of binding elements and sorts them as necessary for a valid sequence of operations. The binding elements provided to the channel. The properly ordered list of elements. Thrown when the binding elements are incomplete or inconsistent with each other. Puts binding elements in their correct outgoing message processing order. The first protection type to compare. The second protection type to compare. -1 if should be applied to an outgoing message before . 1 if should be applied to an outgoing message before . 0 if it doesn't matter. Verifies that all required message parts are initialized to values prior to sending the message to a remote party. The message to verify. Thrown when any required message part does not have a value. Determines whether a given ordered list of binding elements includes every binding element in this channel exactly once. The list of binding elements to test. true if the given list is a valid description of a binding element ordering; otherwise, false. An event fired whenever a message is about to be encoded and sent. Gets or sets an instance to a that will be used when submitting HTTP requests and waiting for responses. This defaults to a straightforward implementation, but can be set to a mock object for testing purposes. Gets or sets the maximum allowable size for a 301 Redirect response before we send a 200 OK response with a scripted form POST with the parameters instead in order to ensure successfully sending a large payload to another server that might have a maximum allowable size restriction on its GET request. The default value is 2048. Gets or sets the message descriptions. Gets a tool that can figure out what kind of message is being received so it can be deserialized. Gets the binding elements used by this channel, in no particular guaranteed order. Gets the binding elements used by this channel, in the order applied to outgoing messages. Gets the binding elements used by this channel, in the order applied to incoming messages. Gets or sets a value indicating whether this instance is disposed. true if this instance is disposed; otherwise, false. Gets or sets a tool that can figure out what kind of message is being received so it can be deserialized. Gets or sets the cache policy to use for direct message requests. Default is . Gets or sets the XML dictionary reader quotas. The XML dictionary reader quotas. Prevents a default instance of the ChannelContract class from being created. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Thrown when the response is not valid. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec V1.0 section 5.3. HMAC-SHA algorithm names that can be passed to the method. The name of the HMAC-SHA1 algorithm. The name of the HMAC-SHA256 algorithm. The name of the HMAC-SHA384 algorithm. The name of the HMAC-SHA512 algorithm. Creates an HMAC-SHA algorithm with the specified name and key. A name from the available choices in the static const members of this class. The secret key used as the HMAC. The HMAC algorithm instance. Well known HTTP headers. The Authorization header, which specifies the credentials that the client presents in order to authenticate itself to the server. The WWW-Authenticate header, which is included in HTTP 401 Unauthorized responses to help the client know which authorization schemes are supported. The Content-Type header, which specifies the MIME type of the accompanying body data. An interface that allows direct request messages to capture the details of the HTTP request they arrived on. The interface that classes must implement to be serialized/deserialized as protocol or extension messages. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Gets the HTTP headers of the request. May be an empty collection, but must not be null. Contract class for the interface. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the HTTP headers of the request. May be an empty collection, but must not be null. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. An interface that allows indirect response messages to specify HTTP transport specific properties. Gets a value indicating whether the payload for the message should be included in the redirect fragment instead of the query string or POST entity. An interface that appears on messages that need to retain a description of what their literal payload was when they were deserialized. Gets or sets the original message parts, before any normalization or default values were assigned. Code contract for the interface. Gets or sets the original message parts, before any normalization or default values were assigned. A set of flags that can control the behavior of an individual web request. Indicates that default behavior is required. Indicates that any response from the remote server, even those with HTTP status codes that indicate errors, should not result in a thrown exception. Even with this flag set, should be thrown when an HTTP protocol error occurs (i.e. timeouts). Indicates that the HTTP request must be completed entirely using SSL (including any redirects). Extension methods for types. Caches the results of enumerating over a given object so that subsequence enumerations don't require interacting with the object a second time. The type of element found in the enumeration. The enumerable object. Either a new enumerable object that caches enumerated results, or the original, object if no caching is necessary to avoid additional CPU work. This is designed for use on the results of generator methods (the ones with yield return in them) so that only those elements in the sequence that are needed are ever generated, while not requiring regeneration of elements that are enumerated over multiple times. This can be a huge performance gain if enumerating multiple times over an expensive generator method. Some enumerable types such as collections, lists, and already-cached generators do not require any (additional) caching, and this method will simply return those objects rather than caching them to avoid double-caching. A wrapper for types and returns a caching from its method. The type of element in the sequence. The results from enumeration of the live object that have been collected thus far. The original generator method or other enumerable object whose contents should only be enumerated once. The enumerator we're using over the generator method's results. The sync object our caching enumerators use when adding a new live generator method result to the cache. Although individual enumerators are not thread-safe, this should be thread safe so that multiple enumerators can be created from it and used from different threads. Initializes a new instance of the EnumerableCache class. The generator. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. An enumerator that uses cached enumeration results whenever they are available, and caches whatever results it has to pull from the original object. The parent enumeration wrapper class that stores the cached results. The position of this enumerator in the cached list. Initializes a new instance of the EnumeratorCache class. The parent cached enumerable whose GetEnumerator method is calling this constructor. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Advances the enumerator to the next element of the collection. true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. The collection was modified after the enumerator was created. Sets the enumerator to its initial position, which is before the first element in the collection. The collection was modified after the enumerator was created. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the element in the collection at the current position of the enumerator. The element in the collection at the current position of the enumerator. Gets the element in the collection at the current position of the enumerator. The element in the collection at the current position of the enumerator. An exception to call out a configuration or runtime failure on the part of the (web) application that is hosting this library. This exception is used rather than for those errors that should never be caught because they indicate a major error in the app itself or its configuration. It is an internal exception to assist in making it uncatchable. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). An interface that allows direct response messages to specify HTTP transport specific properties. Gets the HTTP status code that the direct response should be sent with. Gets the HTTP headers to add to the response. May be an empty collection, but must not be null. An interface that extension messages must implement. Contract class for the interface. Gets the HTTP status code that the direct response should be sent with. Gets the HTTP headers to add to the response. May be an empty collection, but must not be null. Code contract for the interface. Prevents a default instance of the class from being created. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the version of the protocol or extension this message is prepared to implement. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Undirected messages that serve as direct responses to direct requests. The interface that classes must implement to be serialized/deserialized as protocol messages. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the originating request message that caused this response to be formed. An empty dictionary. Useful for avoiding memory allocations in creating new dictionaries to represent empty ones. The type of the key. The type of the value. The singleton instance of the empty dictionary. Prevents a default instance of the EmptyDictionary class from being created. Adds an element with the provided key and value to the . The object to use as the key of the element to add. The object to use as the value of the element to add. is null. An element with the same key already exists in the . The is read-only. Determines whether the contains an element with the specified key. The key to locate in the . true if the contains an element with the key; otherwise, false. is null. Removes the element with the specified key from the . The key of the element to remove. true if the element is successfully removed; otherwise, false. This method also returns false if was not found in the original . is null. The is read-only. Gets the value associated with the specified key. The key whose value to get. When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. true if the object that implements contains an element with the specified key; otherwise, false. is null. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Copies the elements of the to an , starting at a particular index. The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. The zero-based index in at which copying begins. is null. is less than 0. is multidimensional. -or- is equal to or greater than the length of . -or- The number of elements in the source is greater than the available space from to the end of the destination . -or- Type cannot be cast automatically to the type of the destination . Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Gets an containing the values in the . An containing the values in the object that implements . Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Gets an containing the keys of the . An containing the keys of the object that implements . Gets or sets the value with the specified key. The key being read or written. Nothing. It always throws. An enumerator that always generates zero elements. The singleton instance of this empty enumerator. Prevents a default instance of the class from being created. Advances the enumerator to the next element of the collection. true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. The collection was modified after the enumerator was created. Sets the enumerator to its initial position, which is before the first element in the collection. The collection was modified after the enumerator was created. Gets the current element in the collection. The current element in the collection. The enumerator is positioned before the first element of the collection or after the last element. An empty, read-only list. The type the list claims to include. The singleton instance of the empty list. Prevents a default instance of the EmptyList class from being created. Determines the index of a specific item in the . The object to locate in the . The index of if found in the list; otherwise, -1. Inserts an item to the at the specified index. The zero-based index at which should be inserted. The object to insert into the . is not a valid index in the . The is read-only. Removes the item at the specified index. The zero-based index of the item to remove. is not a valid index in the . The is read-only. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Copies the elements of the to an , starting at a particular index. The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. The zero-based index in at which copying begins. is null. is less than 0. is multidimensional. -or- is equal to or greater than the length of . -or- The number of elements in the source is greater than the available space from to the end of the destination . -or- Type cannot be cast automatically to the type of the destination . Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Gets or sets the at the specified index. The index of the element in the list to change. Nothing. It always throws. A collection of error checking and reporting methods. Wraps an exception in a new . The inner exception to wrap. The error message for the outer exception. The string formatting arguments, if any. The newly constructed (unthrown) exception. Throws an internal error exception. The error message. Nothing. But included here so callers can "throw" this method for C# safety. Always thrown. Checks a condition and throws an internal error exception if it evaluates to false. The condition to check. The message to include in the exception, if created. Thrown if evaluates to false. Checks a condition and throws an internal error exception if it evaluates to false. The condition to check. The message to include in the exception, if created. The formatting arguments. Thrown if evaluates to false. Checks a condition and throws an if it evaluates to false. The condition to check. The message to include in the exception, if created. Thrown if evaluates to false. Checks a condition and throws a if it evaluates to false. The condition to check. The message to include in the exception, if created. Thrown if evaluates to false. Checks a condition and throws a if it evaluates to false. The condition to check. The message to include in the exception, if created. The string formatting arguments for . Thrown if evaluates to false. Checks a condition and throws an if it evaluates to false. The condition to check. The message to include in the exception, if created. The formatting arguments. Thrown if evaluates to false. Throws a if some evaluates to false. True to do nothing; false to throw the exception. The error message for the exception. The string formatting arguments, if any. Thrown if evaluates to false. Throws a if some evaluates to false. True to do nothing; false to throw the exception. The message being processed that would be responsible for the exception if thrown. The error message for the exception. The string formatting arguments, if any. Thrown if evaluates to false. Throws a if some evaluates to false. True to do nothing; false to throw the exception. The error message for the exception. The string formatting arguments, if any. Thrown if evaluates to false. Throws a . The message to set in the exception. The formatting arguments of the message. An InternalErrorException, which may be "thrown" by the caller in order to satisfy C# rules to show that code will never be reached, but no value actually is ever returned because this method guarantees to throw. Always thrown. Throws a . The message for the exception. The string formatting arguments for . Nothing. It's just here so the caller can throw this method for C# compilation check. Throws a if some condition is false. The expression to evaluate. A value of false will cause the exception to be thrown. The message for the exception. The string formatting arguments for . Thrown when is false. Verifies something about the argument supplied to a method. The condition that must evaluate to true to avoid an exception. The message to use in the exception if the condition is false. The string formatting arguments, if any. Thrown if evaluates to false. Throws an . Name of the parameter. The message to use in the exception if the condition is false. The string formatting arguments, if any. Never returns anything. It always throws. Verifies something about the argument supplied to a method. The condition that must evaluate to true to avoid an exception. Name of the parameter. The message to use in the exception if the condition is false. The string formatting arguments, if any. Thrown if evaluates to false. Verifies that some given value is not null. The value to check. Name of the parameter, which will be used in the , if thrown. Thrown if is null. Verifies that some string is not null and has non-zero length. The value to check. Name of the parameter, which will be used in the , if thrown. Thrown if is null. Thrown if has zero length. Verifies that != null. Thrown if == null Obtains a value from the dictionary if possible, or throws a if it's missing. The type of key in the dictionary. The type of value in the dictionary. The dictionary. The key to use to look up the value. The message to claim is invalid if the key cannot be found. The value for the given key. An interface that messages wishing to perform custom serialization/deserialization may implement to be notified of events. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Code contract for the class. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Gets an offline snapshot version of this instance. The maximum bytes from the response stream to cache. A snapshot version of this instance. If this instance is a creating a snapshot will automatically close and dispose of the underlying response stream. If this instance is a , the result will be the self same instance. Gets the body of the HTTP response. A protocol message that supports adding extensions to the payload for transmission. Gets the list of extensions that are included with this message. Implementations of this interface should ensure that this property never returns null. Code contract for the interface. Prevents a default instance of the class from being created. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the list of extensions that are included with this message. Implementations of this interface should ensure that this property never returns null. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. An internal exception to throw if an internal error within the library requires an abort of the operation. This exception is internal to prevent clients of the library from catching what is really an unexpected, potentially unrecoverable exception. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). An interface implemented by -derived types that support binary serialization. Serializes the instance to the specified stream. The stream. Initializes the fields on this instance from the specified stream. The stream. Code Contract for the interface. Serializes the instance to the specified stream. The stream. Initializes the fields on this instance from the specified stream. The stream. A KeyedCollection whose item -> key transform is provided via a delegate to its constructor, and null items are disallowed. The type of the key. The type of the item. The delegate that returns a key for the given item. Initializes a new instance of the KeyedCollectionDelegate class. The delegate that gets the key for a given item. When implemented in a derived class, extracts the key from the specified element. The element from which to extract the key. The key for the specified element. Represents a single part in a HTTP multipart POST request. The "Content-Disposition" string. The two-character \r\n newline character sequence to use. Initializes a new instance of the class. The content disposition of the part. Creates a part that represents a simple form field. The name of the form field. The value. The constructed part. Creates a part that represents a file attachment. The name of the form field. The path to the file to send. Type of the content in HTTP Content-Type format. The constructed part. Creates a part that represents a file attachment. The name of the form field. Name of the file as the server should see it. Type of the content in HTTP Content-Type format. The content of the file. The constructed part. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Serializes the part to a stream. The stream writer. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets or sets the content disposition. The content disposition. Gets the key=value attributes that appear on the same line as the Content-Disposition. The content attributes. Gets the headers that appear on subsequent lines after the Content-Disposition. Gets or sets the content of the part. Gets the length of this entire part. Useful for calculating the ContentLength HTTP header to send before actually serializing the content. A live network HTTP response The network response object, used to initialize this instance, that still needs to be closed if applicable. The incoming network response stream. A value indicating whether a stream reader has already been created on this instance. Initializes a new instance of the class. The request URI. The response. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Gets an offline snapshot version of this instance. The maximum bytes from the response stream to cache. A snapshot version of this instance. If this instance is a creating a snapshot will automatically close and dispose of the underlying response stream. If this instance is a , the result will be the self same instance. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the body of the HTTP response. An ASP.NET MVC structure to represent the response to send to the user agent when the controller has finished its work. The outgoing web response to send when the ActionResult is executed. Initializes a new instance of the class. The response. Enables processing of the result of an action method by a custom type that inherits from . The context in which to set the response. An exception to represent errors in the local or remote implementation of the protocol that includes the response message that should be returned to the HTTP client to comply with the protocol specification. An exception to represent errors in the local or remote implementation of the protocol. Initializes a new instance of the class. Initializes a new instance of the class. A message describing the specific error the occurred or was detected. Initializes a new instance of the class. A message describing the specific error the occurred or was detected. The inner exception to include. Initializes a new instance of the class such that it can be sent as a protocol message response to a remote caller. The human-readable exception message. The message that was the cause of the exception. May be null. The inner exception to include. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. Gets the message that caused the exception. The channel that produced the error response message, to be used in constructing the actual HTTP response. Initializes a new instance of the class such that it can be sent as a protocol message response to a remote caller. The channel to use when encoding the response message. The message to send back to the HTTP client. The message that was the cause of the exception. May be null. The inner exception. The message for the exception. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. Creates the HTTP response to forward to the client to report the error. The HTTP response. Gets the protocol message to send back to the client to report the error. Code contract for the type. Initializes a new instance of the class. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. An interface describing how various objects can be serialized and deserialized between their object and string forms. Implementations of this interface must include a default constructor and must be thread-safe. Gets the type of the encoded values produced by this encoder, as they would appear in their preferred form. A message part encoder that has a special encoding for a null value. Gets the string representation to include in a serialized message when the message part has a null value. An interface describing how various objects can be serialized and deserialized between their object and string forms. Implementations of this interface must include a default constructor and must be thread-safe. Encodes the specified value as the original value that was formerly decoded. The value. Guaranteed to never be null. The in string form, ready for message transport. A cache of instances. A dictionary of reflected message types and the generated reflection information. Initializes a new instance of the class. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Gets a instance prepared for the given message type. A type that implements . The protocol version of the message. A instance. Gets a instance prepared for the given message type. The message for which a should be obtained. A instance. Gets the dictionary that provides read/write access to a message. The message. The dictionary. Gets the dictionary that provides read/write access to a message. The message. A value indicating whether this message dictionary will retrieve original values instead of normalized ones. The dictionary. A struct used as the key to bundle message type and version. Backing store for the property. Backing store for the property. Initializes a new instance of the struct. Type of the message. The message version. Implements the operator ==. The first object to compare. The second object to compare. The result of the operator. Implements the operator !=. The first object to compare. The second object to compare. The result of the operator. Indicates whether this instance and a specified object are equal. Another object to compare to. true if and this instance are the same type and represent the same value; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer that is the hash code for this instance. Gets the message type. Gets the message version. Allows a custom class or struct to be serializable between itself and a string representation. Initializes a new instance of the class. The implementing type to use for serializing this type. Gets the default encoder to use for the declaring class. A message factory that automatically selects the message type based on the incoming data. A tool to analyze an incoming message to figure out what concrete class is designed to deserialize it and instantiates that class. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. The request message types and their constructors to use for instantiating the messages. The response message types and their constructors to use for instantiating the messages. The value is a dictionary, whose key is the type of the constructor's lone parameter. Initializes a new instance of the class. Adds message types to the set that this factory can create. The message types that this factory may instantiate. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Gets the message type that best fits the given incoming request data. The recipient of the incoming data. Typically not used, but included just in case. The data of the incoming message. The message type that matches the incoming data; or null if no match. May be thrown if the incoming data is ambiguous. Gets the message type that best fits the given incoming direct response data. The request message that prompted the response data. The data of the incoming message. The message type that matches the incoming data; or null if no match. May be thrown if the incoming data is ambiguous. Instantiates the given request message type. The message description. The recipient. The instantiated message. Never null. Instantiates the given request message type. The message description. The request that resulted in this response. The instantiated message. Never null. Gets the hierarchical distance between a type and a type it derives from or implements. The base type or interface. The concrete class that implements the . The distance between the two types. 0 if the types are equivalent, 1 if the type immediately derives from or implements the base type, or progressively higher integers. Counts how many strings are in the intersection of two collections. The first collection. The second collection. The string comparison method to use. A non-negative integer no greater than the count of elements in the smallest collection. Finds constructors for response messages that take a given request message type. The message description. Type of the request message. A sequence of matching constructors. Contract class for the IDataBagFormatter interface. The type of DataBag to serialize. Prevents a default instance of the class from being created. Serializes the specified message. The message to serialize. Must not be null. A non-null, non-empty value. Deserializes a . The instance to deserialize into The serialized form of the to deserialize. Must not be null or empty. The message that contains the serialized value. Must not be nulll. Name of the message part whose value is to be deserialized. Used for exception messages. A serializer for -derived types The DataBag-derived type that is to be serialized/deserialized. Initializes a new instance of the class. The crypto service provider with the asymmetric key to use for signing or verifying the token. The crypto service provider with the asymmetric key to use for encrypting or decrypting the token. A value indicating whether the data in this instance will be GZip'd. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Initializes a new instance of the class. The crypto key store used when signing or encrypting. The bucket in which symmetric keys are stored for signing/encrypting data. A value indicating whether the data in this instance will be protected against tampering. A value indicating whether the data in this instance will be protected against eavesdropping. A value indicating whether the data in this instance will be GZip'd. The minimum age. The maximum age of a token that can be decoded; useful only when is true. The nonce store to use to ensure that this instance is only decoded once. Serializes the instance to a buffer. The message. The buffer containing the serialized data. Deserializes the instance from a buffer. The message instance to initialize with data from the buffer. The data buffer. A channel that uses the standard message factory. The message types receivable by this channel. The protocol versions supported by this channel. Initializes a new instance of the class. The message types that might be encountered. All the possible message versions that might be encountered. The binding elements to use in sending and receiving messages. The order they are provided is used for outgoing messgaes, and reversed for incoming messages. Generates all the message descriptions for a given set of message types and versions. The message types. The message versions. The cache to use when obtaining the message descriptions. The generated/retrieved message descriptions. Gets or sets a tool that can figure out what kind of message is being received so it can be deserialized. Gets or sets the message descriptions. Gets or sets a tool that can figure out what kind of message is being received so it can be deserialized. A collection of message parts that will be serialized into a single string, to be set into a larger message. The default version for DataBags. The backing field for the property. A dictionary to contain extra message data. Initializes a new instance of the class. Initializes a new instance of the class. The DataBag version. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Gets or sets the nonce. The nonce. Gets or sets the UTC creation date of this token. The UTC creation date. Gets or sets the signature. The signature. Gets or sets the message that delivered this DataBag instance to this host. Gets the type of this instance. The type of the bag. This ensures that one token cannot be misused as another kind of token. Translates between a and the number of seconds between it and 1/1/1970 12 AM The reference date and time for calculating time stamps. Initializes a new instance of the class. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. The interface that classes must implement to be serialized/deserialized as protocol or extension messages that uses POST multi-part data for binary content. Implemented by messages that have explicit recipients (direct requests and all indirect messages). Gets the preferred method of transport for the message. For indirect messages this will likely be GET+POST, which both can be simulated in the user agent: the GET with a simple 301 Redirect, and the POST with an HTML form in the response with javascript to automate submission. Gets the URL of the intended receiver of this message. Gets the parts of the message that carry binary data. A list of parts. Never null. Gets a value indicating whether this message should be sent as multi-part POST. The contract class for the interface. Prevents a default instance of the class from being created. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the parts of the message that carry binary data. A list of parts. Never null. Gets a value indicating whether this message should be sent as multi-part POST. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Gets the preferred method of transport for the message. For indirect messages this will likely be GET+POST, which both can be simulated in the user agent: the GET with a simple 301 Redirect, and the POST with an HTML form in the response with javascript to automate submission. Gets the URL of the intended receiver of this message. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. The data packet sent with Channel events. Initializes a new instance of the class. The message behind the fired event.. Gets the message that caused the event to fire. An in-memory nonce store. Useful for single-server web applications. NOT for web farms. Describes the contract a nonce store must fulfill. Stores a given nonce and timestamp. The context, or namespace, within which the must be unique. The context SHOULD be treated as case-sensitive. The value will never be null but may be the empty string. A series of random characters. The UTC timestamp that together with the nonce string make it unique within the given . The timestamp may also be used by the data store to clear out old nonces. True if the context+nonce+timestamp (combination) was not previously in the database. False if the nonce was stored previously with the same timestamp and context. The nonce must be stored for no less than the maximum time window a message may be processed within before being discarded as an expired message. This maximum message age can be looked up via the property, accessible via the property. How frequently we should take time to clear out old nonces. The maximum age a message can be before it is discarded. This is useful for knowing how long used nonces must be retained. A list of the consumed nonces. A lock object used around accesses to the field. Where we're currently at in our periodic nonce cleaning cycle. Initializes a new instance of the class. Initializes a new instance of the class. The maximum age a message can be before it is discarded. Stores a given nonce and timestamp. The context, or namespace, within which the must be unique. A series of random characters. The timestamp that together with the nonce string make it unique. The timestamp may also be used by the data store to clear out old nonces. True if the nonce+timestamp (combination) was not previously in the database. False if the nonce was stored previously with the same timestamp. The nonce must be stored for no less than the maximum time window a message may be processed within before being discarded as an expired message. If the binding element is applicable to your channel, this expiration window is retrieved or set using the property. Clears consumed nonces from the cache that are so old they would be rejected if replayed because it is expired. A contract for handling. Implementations of this interface must be thread safe. Determines whether this instance can support the specified options. The set of options that might be given in a subsequent web request. true if this instance can support the specified options; otherwise, false. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The stream the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Callers must close and dispose of the request stream when they are done writing to it to avoid taking up the connection too long and causing long waits on subsequent requests. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The options to apply to this web request. The stream the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Callers must close and dispose of the request stream when they are done writing to it to avoid taking up the connection too long and causing long waits on subsequent requests. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Processes an and converts the to a instance. The to handle. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Processes an and converts the to a instance. The to handle. The options to apply to this web request. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Code contract for the type. Determines whether this instance can support the specified options. The set of options that might be given in a subsequent web request. true if this instance can support the specified options; otherwise, false. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The stream the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Callers must close and dispose of the request stream when they are done writing to it to avoid taking up the connection too long and causing long waits on subsequent requests. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The options to apply to this web request. The stream the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Callers must close and dispose of the request stream when they are done writing to it to avoid taking up the connection too long and causing long waits on subsequent requests. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Processes an and converts the to a instance. The to handle. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Processes an and converts the to a instance. The to handle. The options to apply to this web request. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. A binding element that checks/verifies a nonce message part. An interface that must be implemented by message transforms/validators in order to be included in the channel stack. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. These are the characters that may be chosen from when forming a random nonce. The persistent store for nonces received. The length of generated nonces. Initializes a new instance of the class. The store where nonces will be persisted and checked. Initializes a new instance of the class. The store where nonces will be persisted and checked. A value indicating whether zero-length nonces will be allowed. Applies a nonce to the message. The message to apply replay protection to. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Verifies that the nonce in an incoming message has not been seen before. The incoming message. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the nonce check revealed a replayed message. Generates a string of random characters for use as a nonce. The nonce string. Gets the protection that this binding element provides messages. Gets or sets the channel that this binding element belongs to. Gets or sets the strength of the nonce, which is measured by the number of nonces that could theoretically be generated. The strength of the nonce is equal to the number of characters that might appear in the nonce to the power of the length of the nonce. Gets or sets a value indicating whether empty nonces are allowed. Default is false. Applied to fields and properties that form a key/value in a protocol message. The overridden name to use as the serialized name for the property. Initializes a new instance of the class. Initializes a new instance of the class. A special name to give the value of this member in the serialized message. When null or empty, the name of the member will be used in the serialized message. Gets the name of the serialized form of this member in the message. Gets or sets the level of protection required by this member in the serialized message. Message part protection must be provided and verified by the channel binding element(s) that provide security. Gets or sets a value indicating whether this member is a required part of the serialized message. Gets or sets a value indicating whether the string value is allowed to be empty in the serialized message. Default is true. Gets or sets an IMessagePartEncoder custom encoder to use to translate the applied member to and from a string. Gets or sets the minimum version of the protocol this attribute applies to and overrides any attributes with lower values for this property. Defaults to 0.0. Gets or sets the maximum version of the protocol this attribute applies to. Defaults to int.MaxValue for the major version number. Specifying on another attribute on the same member automatically turns this attribute off. This property should only be set when a property is totally dropped from a newer version of the protocol. Gets or sets a value indicating whether the value contained by this property contains sensitive information that should generally not be logged. true if this instance is security sensitive; otherwise, false. Gets or sets the minimum version of the protocol this attribute applies to and overrides any attributes with lower values for this property. Defaults to 0.0. Gets or sets the maximum version of the protocol this attribute applies to. Defaults to int.MaxValue for the major version number. Specifying on another attribute on the same member automatically turns this attribute off. This property should only be set when a property is totally dropped from a newer version of the protocol. Categorizes the various types of channel binding elements so they can be properly ordered. The order of these enum values is significant. Each successive value requires the protection offered by all the previous values in order to be reliable. For example, message expiration is meaningless without tamper protection to prevent a user from changing the timestamp on a message. No protection. A binding element that signs a message before sending and validates its signature upon receiving. A binding element that enforces a maximum message age between sending and processing on the receiving side. A binding element that prepares messages for replay detection and detects replayed messages on the receiving side. All forms of protection together. Code Contract for the interface. Prevents a default instance of the class from being created. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. An exception thrown when a message is received for the second time, signalling a possible replay attack. Initializes a new instance of the class. The replayed message. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. An exception thrown when a message is received that exceeds the maximum message age limit. Initializes a new instance of the class. The date the message expired. The expired message. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. An exception thrown when a signed message does not pass signature validation. Initializes a new instance of the class. The message with the invalid signature. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. The contract a message that has an allowable time window for processing must implement. All replay-protected messages must also be set to expire so the nonces do not have to be stored indefinitely. The contract a message that has an allowable time window for processing must implement. All expiring messages must also be signed to prevent tampering with the creation date. Gets or sets the UTC date/time the message was originally sent onto the network. The property setter should ensure a UTC date/time, and throw an exception if this is not possible. Thrown when a DateTime that cannot be converted to UTC is set. Gets the context within which the nonce must be unique. The value of this property must be a value assigned by the nonce consumer to represent the entity that generated the nonce. The value must never be null but may be the empty string. This value is treated as case-sensitive. Gets or sets the nonce that will protect the message from replay attacks. A property store of details of an incoming HTTP request. This serves a very similar purpose to , except that ASP.NET does not let us fully initialize that class, so we have to write one of our one. The HTTP verb in the request. The full request URL. The HTTP headers. The variables defined in the query part of the URL. The POSTed form variables. The server variables collection. The backing field for the property. Initializes a new instance of the class. The request. The request URI. Initializes a new instance of the class. The HTTP method. The request URI. The form variables. The HTTP headers. The cookies in the request. Initializes a new instance of the class. Details on the incoming HTTP request. Initializes a new instance of the class. The request. Initializes a new instance of the class. The HTTP method. The request URI. The headers. The input stream. Creates an instance that describes the specified HTTP request. The request. The request URI. An instance of . Creates an instance that describes the specified HTTP request. The listener request. An instance of . Creates an instance that describes the specified HTTP request. The HTTP request. An instance of . Creates an instance that describes the specified HTTP request. The HTTP method. The request URI. The form variables. The HTTP headers. An instance of . Creates an instance that describes the specified HTTP request. The HTTP method. The request URI. The headers. The input stream. An instance of . Reads name=value pairs from the POSTed form entity when the HTTP headers indicate that that is the payload of the entity. The HTTP method. The headers. A function that returns the input stream. The non-null collection of form variables. Adds HTTP headers to a . The collection to be modified with added entries. The collection to read from. Gets the HTTP method. Gets the headers. Gets the URL. Gets the raw URL. Gets the form. Gets the query string. Gets the server variables. Gets the collection of cookies that were sent by the client. The client's cookies. Code contract for the interface. Prevents a default instance of the class from being created. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. The contract a message that is signed must implement. This type might have appeared in the DotNetOpenAuth.Messaging.Bindings namespace since it is only used by types in that namespace, but all those types are internal and this is the only one that was public. Gets or sets the message signature. Serializes/deserializes OAuth messages for/from transit. The specific -derived type that will be serialized and deserialized using this class. Initializes a new instance of the MessageSerializer class. The specific -derived type that will be serialized and deserialized using this class. Creates or reuses a message serializer for a given message type. The type of message that will be serialized/deserialized. A message serializer for the given message type. Reads JSON as a flat dictionary into a message. The message dictionary to fill with the JSON-deserialized data. The JSON reader. Reads the data from a message instance and writes an XML/JSON encoding of it. The message to be serialized. The writer to use for the serialized form. Use to create the instance capable of emitting JSON. Reads XML/JSON into a message dictionary. The message to deserialize into. The XML/JSON to read into the message. Thrown when protocol rules are broken by the incoming message. Use to create the instance capable of reading JSON. Reads the data from a message instance and returns a series of name=value pairs for the fields that must be included in the message. The message to be serialized. The dictionary of values to send for the message. Reads name=value pairs into a message. The name=value pairs that were read in from the transport. The message to deserialize into. Thrown when protocol rules are broken by the incoming message. Determines whether the specified type is numeric. The type to test. true if the specified type is numeric; otherwise, false. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to Argument's {0}.{1} property is required but is empty or null.. Looks up a localized string similar to Unable to send all message data because some of it requires multi-part POST, but IMessageWithBinaryData.SendAsMultipart was false.. Looks up a localized string similar to HttpContext.Current is null. There must be an ASP.NET request in process for this operation to succeed.. Looks up a localized string similar to DataContractSerializer could not be initialized on message type {0}. Is it missing a [DataContract] attribute?. Looks up a localized string similar to DataContractSerializer could not be initialized on message type {0} because the DataContractAttribute.Namespace property is not set.. Looks up a localized string similar to Decoding failed due to data corruption.. Looks up a localized string similar to An instance of type {0} was expected, but received unexpected derived type {1}.. Looks up a localized string similar to The directed message's Recipient property must not be null.. Looks up a localized string similar to The given set of options is not supported by this web request handler.. Looks up a localized string similar to Unable to instantiate the message part encoder/decoder type {0}.. Looks up a localized string similar to Error while deserializing message {0}.. Looks up a localized string similar to Error occurred while sending a direct message or getting the response.. Looks up a localized string similar to This exception was not constructed with a root request message that caused it.. Looks up a localized string similar to This exception must be instantiated with a recipient that will receive the error message, or a direct request message instance that this exception will respond to.. Looks up a localized string similar to Expected {0} message but received no recognizable message.. Looks up a localized string similar to The message part {0} was expected in the {1} message but was not found.. Looks up a localized string similar to The message expired at {0} and it is now {1}.. Looks up a localized string similar to Failed to add extra parameter '{0}' with value '{1}'.. Looks up a localized string similar to At least one of GET or POST flags must be present.. Looks up a localized string similar to This method requires a current HttpContext. Alternatively, use an overload of this method that allows you to pass in information without an HttpContext.. Looks up a localized string similar to Messages that indicate indirect transport must implement the {0} interface.. Looks up a localized string similar to Insecure web request for '{0}' aborted due to security requirements demanding HTTPS.. Looks up a localized string similar to The {0} message required protections {{{1}}} but the channel could only apply {{{2}}}.. Looks up a localized string similar to The customized binding element ordering is invalid.. Looks up a localized string similar to Some part(s) of the message have invalid values: {0}. Looks up a localized string similar to The incoming message had an invalid or missing nonce.. Looks up a localized string similar to An item with the same key has already been added.. Looks up a localized string similar to Message too large for a HTTP GET, and HTTP POST is not allowed for this message type.. Looks up a localized string similar to The {0} message does not support extensions.. Looks up a localized string similar to The value for {0}.{1} on member {1} was expected to derive from {2} but was {3}.. Looks up a localized string similar to Error while reading message '{0}' parameter '{1}' with value '{2}'.. Looks up a localized string similar to Message parameter '{0}' with value '{1}' failed to base64 decode.. Looks up a localized string similar to Error while preparing message '{0}' parameter '{1}' for sending.. Looks up a localized string similar to This message has a timestamp of {0}, which is beyond the allowable clock skew for in the future.. Looks up a localized string similar to Missing decryption key for bucket "{0}" handle "{1}". Looks up a localized string similar to A non-empty string was expected.. Looks up a localized string similar to A message response is already queued for sending in the response stream.. Looks up a localized string similar to This message has already been processed. This could indicate a replay attack in progress.. Looks up a localized string similar to This channel does not support replay protection.. Looks up a localized string similar to The following message parts had constant value requirements that were unsatisfied: {0}. Looks up a localized string similar to The following required non-empty parameters were empty in the {0} message: {1}. Looks up a localized string similar to The following required parameters were missing from the {0} message: {1}. Looks up a localized string similar to The binding element offering the {0} protection requires other protection that is not provided.. Looks up a localized string similar to The list is empty.. Looks up a localized string similar to The list contains a null element.. Looks up a localized string similar to An HttpContext.Current.Session object is required.. Looks up a localized string similar to Message signature was incorrect.. Looks up a localized string similar to This channel does not support signing messages. To support signing messages, a derived Channel type must override the Sign and IsSignatureValid methods.. Looks up a localized string similar to This message factory does not support message type(s): {0}. Looks up a localized string similar to The stream must have a known length.. Looks up a localized string similar to The stream's CanRead property returned false.. Looks up a localized string similar to The stream's CanWrite property returned false.. Looks up a localized string similar to Expected at most 1 binding element to apply the {0} protection, but more than one applied.. Looks up a localized string similar to The maximum allowable number of redirects were exceeded while requesting '{0}'.. Looks up a localized string similar to Unexpected buffer length.. Looks up a localized string similar to The array must not be empty.. Looks up a localized string similar to The empty string is not allowed.. Looks up a localized string similar to Expected direct response to use HTTP status code {0} but was {1} instead.. Looks up a localized string similar to Message parameter '{0}' had unexpected value '{1}'.. Looks up a localized string similar to Expected message {0} parameter '{1}' to have value '{2}' but had '{3}' instead.. Looks up a localized string similar to Expected message {0} but received {1} instead.. Looks up a localized string similar to Unexpected message type received.. Looks up a localized string similar to A null key was included and is not allowed.. Looks up a localized string similar to A null or empty key was included and is not allowed.. Looks up a localized string similar to A null value was included for key '{0}' and is not allowed.. Looks up a localized string similar to The type {0} or a derived type was expected, but {1} was given.. Looks up a localized string similar to {0} property has unrecognized value {1}.. Looks up a localized string similar to The URL '{0}' is rated unsafe and cannot be requested this way.. Looks up a localized string similar to This blob is not a recognized encryption format.. Looks up a localized string similar to The HTTP verb '{0}' is unrecognized and unsupported.. Looks up a localized string similar to '{0}' messages cannot be received with HTTP verb '{1}'.. Looks up a localized string similar to Redirects on POST requests that are to untrusted servers is not supported.. Looks up a localized string similar to Web request to '{0}' failed.. A grab-bag of utility methods useful for the channel stack of the protocol. The uppercase alphabet. The lowercase alphabet. The set of base 10 digits. The set of digits and alphabetic letters (upper and lowercase). All the characters that are allowed for use as a base64 encoding character. All the characters that are allowed for use as a base64 encoding character in the "web safe" context. The set of digits, and alphabetic letters (upper and lowercase) that are clearly visually distinguishable. The length of private symmetric secret handles. This value needn't be high, as we only expect to have a small handful of unexpired secrets at a time, and handle recycling is permissible. The cryptographically strong random data generator used for creating secrets. The random number generator is thread-safe. The default lifetime of a private secret. A character array containing just the = character. A character array containing just the , character. A character array containing just the " character. The set of characters that are unreserved in RFC 2396 but are NOT unreserved in RFC 3986. A set of escaping mappings that help secure a string from javscript execution. The characters to escape here are inspired by http://code.google.com/p/doctype/wiki/ArticleXSSInJavaScript Transforms an OutgoingWebResponse to an MVC-friendly ActionResult. The response to send to the user agent. The instance to be returned by the Controller's action method. Transforms an OutgoingWebResponse to a Web API-friendly HttpResponseMessage. The response to send to the user agent. The instance to be returned by the Web API method. Gets the original request URL, as seen from the browser before any URL rewrites on the server if any. Cookieless session directory (if applicable) is also included. The URL in the user agent's Location bar. Strips any and all URI query parameters that start with some prefix. The URI that may have a query with parameters to remove. The prefix for parameters to remove. A period is NOT automatically appended. Either a new Uri with the parameters removed if there were any to remove, or the same Uri instance if no parameters needed to be removed. Sends a multipart HTTP POST request (useful for posting files). The HTTP request. The request handler. The parts to include in the POST entity. The HTTP response. Assembles a message comprised of the message on a given exception and all inner exceptions. The exception. The assembled message. Flattens the specified sequence of sequences. The type of element contained in the sequence. The sequence of sequences to flatten. A sequence of the contained items. Cuts off precision beyond a second on a DateTime value. The value. A DateTime with a 0 millisecond component. Adds a name-value pair to the end of a given URL as part of the querystring piece. Prefixes a ? or & before first element as necessary. The UriBuilder to add arguments to. The name of the parameter to add. The value of the argument. If the parameters to add match names of parameters that already are defined in the query string, the existing ones are not replaced. Adds a set of values to a collection. The type of value kept in the collection. The collection to add to. The values to add to the collection. Tests whether two timespans are within reasonable approximation of each other. One TimeSpan. The other TimeSpan. The allowable margin of error. true if the two TimeSpans are within of each other. Compares to string values for ordinal equality in such a way that its execution time does not depend on how much of the value matches. The first value. The second value. A value indicating whether the two strings share ordinal equality. In signature equality checks, a difference in execution time based on how many initial characters match MAY be used as an attack to figure out the expected signature. It is therefore important to make a signature equality check's execution time independent of how many characters match the expected value. See http://codahale.com/a-lesson-in-timing-attacks/ for more information. Gets the public facing URL for the given incoming HTTP request. The incoming request. Cannot be null. The server variables to consider part of the request. Cannot be null. The URI that the outside world used to create this request. Although the value can be obtained from , it's useful to be able to pass them in so we can simulate injected values from our unit tests since the actual property is a read-only kind of . Gets the public facing URL for the given incoming HTTP request. The incoming request. Cannot be null. Server variables are read from this request. The URI that the outside world used to create this request. Gets the URL to the root of a web site, which may include a virtual directory path. An absolute URI. Creates the XML reader settings to use for reading XML from untrusted sources. The new instance of . The default values set here are based on recommendations from http://msdn.microsoft.com/en-us/magazine/ee335713.aspx Clears any existing elements in a collection and fills the collection with a given set of values. The type of value kept in the collection. The collection to modify. The new values to fill the collection. Strips any and all URI query parameters that serve as parts of a message. The URI that may contain query parameters to remove. The message description whose parts should be removed from the URL. A cleaned URL. Sends a multipart HTTP POST request (useful for posting files) but doesn't call GetResponse on it. The HTTP request. The request handler. The parts to include in the POST entity. Assembles the content of the HTTP Authorization or WWW-Authenticate header. The fields to include. A value prepared for an HTTP header. Assembles the content of the HTTP Authorization or WWW-Authenticate header. The scheme. The fields to include. A value prepared for an HTTP header. Parses the authorization header. The scheme. Must not be null or empty. The authorization header. May be null or empty. A sequence of key=value pairs discovered in the header. Never null, but may be empty. Encodes a symmetric key handle and the blob that is encrypted/signed with that key into a single string that can be decoded by . The cryptographic key handle. The encrypted/signed blob. The combined encoded value. Extracts the key handle and encrypted blob from a string previously returned from . The message part. May be null if not applicable. The value previously returned from . The crypto key handle. The encrypted/signed data. Gets a buffer of random data (not cryptographically strong). The length of the sequence to generate. The generated values, which may contain zeros. Gets a cryptographically strong random sequence of values. The length of the sequence to generate. The generated values, which may contain zeros. Gets a cryptographically strong random string of base64 characters. The length of the byte sequence to generate. A base64 encoding of the generated random data, whose length in characters will likely be greater than . Gets a NON-cryptographically strong random string of base64 characters. The length of the byte sequence to generate. A value indicating whether web64 encoding is used to avoid the need to escape characters. A base64 encoding of the generated random data, whose length in characters will likely be greater than . Gets a random string made up of a given set of allowable characters. The length of the desired random string. The allowable characters. A random string. Computes the hash of a string. The hash algorithm to use. The value to hash. The encoding to use when converting the string to a byte array. A base64 encoded string. Computes the hash of a sequence of key=value pairs. The hash algorithm to use. The data to hash. The encoding to use when converting the string to a byte array. A base64 encoded string. Computes the hash of a sequence of key=value pairs. The hash algorithm to use. The data to hash. The encoding to use when converting the string to a byte array. A base64 encoded string. Encrypts a byte buffer. The buffer to encrypt. The symmetric secret to use to encrypt the buffer. Allowed values are 128, 192, or 256 bytes in length. The encrypted buffer Decrypts a byte buffer. The buffer to decrypt. The symmetric secret to use to decrypt the buffer. Allowed values are 128, 192, and 256. The encrypted buffer Encrypts a string. The text to encrypt. The symmetric secret to use to encrypt the buffer. Allowed values are 128, 192, and 256. The encrypted buffer Decrypts a string previously encrypted with . The text to decrypt. The symmetric secret to use to decrypt the buffer. Allowed values are 128, 192, and 256. The encrypted buffer Performs asymmetric encryption of a given buffer. The asymmetric encryption provider to use for encryption. The buffer to encrypt. The encrypted data. Performs asymmetric decryption of a given buffer. The asymmetric encryption provider to use for decryption. The buffer to decrypt. The decrypted data. Gets a key from a given bucket with the longest remaining life, or creates a new one if necessary. The crypto key store. The bucket where the key should be found or stored. The minimum remaining life required on the returned key. The required size of the key, in bits. A key-value pair whose key is the secret's handle and whose value is the cryptographic key. Compresses a given buffer. The buffer to compress. The compression algorithm to use. The compressed data. Decompresses a given buffer. The buffer to decompress. The compression algorithm used. The decompressed data. Converts to data buffer to a base64-encoded string, using web safe characters and with the padding removed. The data buffer. A web-safe base64-encoded string without padding. Decodes a (web-safe) base64-string back to its binary buffer form. The base64-encoded string. May be web-safe encoded. A data buffer. Adds a set of HTTP headers to an instance, taking care to set some headers to the appropriate properties of The headers to add. The instance to set the appropriate values to. Adds a set of HTTP headers to an instance, taking care to set some headers to the appropriate properties of The headers to add. The instance to set the appropriate values to. Copies the contents of one stream to another. The stream to copy from, at the position where copying should begin. The stream to copy to, at the position where bytes should be written. The maximum bytes to copy. The total number of bytes copied. Copying begins at the streams' current positions. The positions are NOT reset after copying is complete. Creates a snapshot of some stream so it is seekable, and the original can be closed. The stream to copy bytes from. A seekable stream with the same contents as the original. Clones an in order to send it again. The request to clone. The newly created instance. Clones an in order to send it again. The request to clone. The new recipient of the request. The newly created instance. Tests whether two arrays are equal in contents and ordering. The type of elements in the arrays. The first array in the comparison. May be null. The second array in the comparison. May be null. True if the arrays equal; false otherwise. Tests whether two arrays are equal in contents and ordering, guaranteeing roughly equivalent execution time regardless of where a signature mismatch may exist. The first array in the comparison. May not be null. The second array in the comparison. May not be null. True if the arrays equal; false otherwise. Guaranteeing equal execution time is useful in mitigating against timing attacks on a signature or other secret. Tests two sequences for same contents and ordering. The type of elements in the arrays. The first sequence in the comparison. May not be null. The second sequence in the comparison. May not be null. True if the arrays equal; false otherwise. Tests two unordered collections for same contents. The type of elements in the collections. The first collection in the comparison. May not be null. The second collection in the comparison. May not be null. True if the collections have the same contents; false otherwise. Tests whether two dictionaries are equal in length and contents. The type of keys in the dictionaries. The type of values in the dictionaries. The first dictionary in the comparison. May not be null. The second dictionary in the comparison. May not be null. True if the arrays equal; false otherwise. Concatenates a list of name-value pairs as key=value&key=value, taking care to properly encode each key and value for URL transmission according to RFC 3986. No ? is prefixed to the string. The dictionary of key/values to read from. The formulated querystring style string. Adds a set of name-value pairs to the end of a given URL as part of the querystring piece. Prefixes a ? or & before first element as necessary. The UriBuilder to add arguments to. The arguments to add to the query. If null, is not changed. If the parameters to add match names of parameters that already are defined in the query string, the existing ones are not replaced. Adds a set of name-value pairs to the end of a given URL as part of the fragment piece. Prefixes a # or & before first element as necessary. The UriBuilder to add arguments to. The arguments to add to the query. If null, is not changed. If the parameters to add match names of parameters that already are defined in the fragment, the existing ones are not replaced. Adds parameters to a query string, replacing parameters that match ones that already exist in the query string. The UriBuilder to add arguments to. The arguments to add to the query. If null, is not changed. Extracts the recipient from an HttpRequestInfo. The request to get recipient information from. The recipient. Thrown if the HTTP request is something we can't handle. Gets the enum value for a given HTTP verb. The HTTP verb. A enum value that is within the . Thrown if the HTTP request is something we can't handle. Gets the HTTP verb to use for a given enum value. The HTTP method. An HTTP verb, such as GET, POST, PUT, DELETE, PATCH, or OPTION. Copies some extra parameters into a message. The message to copy the extra data into. The extra data to copy into the message. May be null to do nothing. Collects a sequence of key=value pairs into a dictionary. The type of the key. The type of the value. The sequence. A dictionary. Enumerates all members of the collection as key=value pairs. The collection to enumerate. A sequence of pairs. Converts a to an IDictionary<string, string>. The NameValueCollection to convert. May be null. The generated dictionary, or null if is null. If a null key is encountered, its value is ignored since Dictionary<string, string> does not allow null keys. Converts a to an IDictionary<string, string>. The NameValueCollection to convert. May be null. A value indicating whether a null key in the should be silently skipped since it is not a valid key in a Dictionary. Use true to throw an exception if a null key is encountered. Use false to silently continue converting the valid keys. The generated dictionary, or null if is null. Thrown if is true and a null key is encountered. Converts a dictionary to a The existing dictionary. The new collection. Sorts the elements of a sequence in ascending order by using a specified comparer. The type of the elements of source. The type of the key returned by keySelector. A sequence of values to order. A function to extract a key from an element. A comparison function to compare keys. An System.Linq.IOrderedEnumerable<TElement> whose elements are sorted according to a key. Determines whether the specified message is a request (indirect message or direct request). The message in question. true if the specified message is a request; otherwise, false. Although an may implement the interface, it may only be doing that for its derived classes. These objects are only requests if their property is non-null. Determines whether the specified message is a direct response. The message in question. true if the specified message is a direct response; otherwise, false. Although an may implement the interface, it may only be doing that for its derived classes. These objects are only requests if their property is non-null. Writes a buffer, prefixed with its own length. The binary writer. The buffer. Reads a buffer that is prefixed with its own length. The binary reader positioned at the buffer length. The maximum size of the buffer that should be permitted. Although the stream will indicate the size of the buffer, this mitigates data corruption or DoS attacks causing the web server to allocate too much memory for a small data packet. The read buffer. Constructs a Javascript expression that will create an object on the user agent when assigned to a variable. The untrusted names and untrusted values to inject into the JSON object. if set to true the values will NOT be escaped as if it were a pure string. The Javascript JSON object as a string. Serializes the given message as a JSON string. The message to serialize. The cached message descriptions to use for reflection. A JSON string. Serializes the given message as a JSON string. The message to serialize. The cached message descriptions to use for reflection. The encoding to use. Defaults to A JSON string. Deserializes a JSON object into a message. The buffer containing the JSON string. The message to deserialize the object into. The cache of message descriptions. The encoding that the JSON bytes are in. Prepares what SHOULD be simply a string value for safe injection into Javascript by using appropriate character escaping. The untrusted string value to be escaped to protected against XSS attacks. May be null. The escaped string, surrounded by single-quotes. Escapes a string according to the URI data string rules given in RFC 3986. The value to escape. The escaped value. The method is supposed to take on RFC 3986 behavior if certain elements are present in a .config file. Even if this actually worked (which in my experiments it doesn't), we can't rely on every host actually having this configuration element present. Ensures that UTC times are converted to local times. Unspecified kinds are unchanged. The date-time to convert. The date-time in local time. Ensures that local times are converted to UTC times. Unspecified kinds are unchanged. The date-time to convert. The date-time in UTC time. Gets the query data from the original request (before any URL rewriting has occurred.) The request. A containing all the parameters in the query string. Gets a value indicating whether the request's URL was rewritten by ASP.NET or some other module. The request. A value indicating whether there is evidence that the URL of the request has been changed to some internal server (farm) representation. true if this request's URL was rewritten; otherwise, false. Gets the query or form data from the original request (before any URL rewriting has occurred.) The request. A set of name=value pairs. Creates a symmetric algorithm for use in encryption/decryption. The symmetric key to use for encryption/decryption. A symmetric algorithm. Gets a random number generator for use on the current thread only. The available compression algorithms. The Deflate algorithm. The GZip algorithm. A thread-safe, non-crypto random number generator. The initializer of all new instances. A thread-local instance of Gets a random number generator for use on the current thread only. A class to convert a into an . The type of objects being compared. The comparison method to use. Initializes a new instance of the ComparisonHelper class. The comparison method to use. Compares two instances of . The first object to compare. The second object to compare. Any of -1, 0, or 1 according to standard comparison rules. A message expiration enforcing binding element that supports messages implementing the interface. Initializes a new instance of the class. Sets the timestamp on an outgoing message. The outgoing message. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Reads the timestamp on a message and throws an exception if the message is too old. The incoming message. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown if the given message has already expired. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Gets the protection offered by this binding element. Gets or sets the channel that this binding element belongs to. Gets the maximum age a message implementing the interface can be before being discarded as too old. A pair of conversion functions to map some type to a string and back again. The mapping function that converts some custom type to a string. The mapping function that converts some custom type to the original string (possibly non-normalized) that represents it. The mapping function that converts a string to some custom type. Initializes a new instance of the struct. The mapping function that converts some custom value to a string. The mapping function that converts some custom value to its original (non-normalized) string. May be null if the same as the function. The mapping function that converts a string to some custom value. Initializes a new instance of the struct. The encoder. Gets the encoder. A mapping between serialized key names and instances describing those key/values pairs. A mapping between the serialized key names and their describing instances. Initializes a new instance of the class. Type of the message. The message version. Returns a that represents this instance. A that represents this instance. Gets a dictionary that provides read/write access to a message. The message the dictionary should provide access to. The dictionary accessor to the message Gets a dictionary that provides read/write access to a message. The message the dictionary should provide access to. A value indicating whether this message dictionary will retrieve original values instead of normalized ones. The dictionary accessor to the message Ensures the message parts pass basic validation. The key/value pairs of the serialized message. Tests whether all the required message parts pass basic validation for the given data. The key/value pairs of the serialized message. A value indicating whether the provided data fits the message's basic requirements. Verifies that a given set of keys include all the required parameters for this message type or throws an exception. The names of all parameters included in a message. if set to true an exception is thrown on failure with details. A value indicating whether the provided data fits the message's basic requirements. Thrown when required parts of a message are not in if is true. Ensures the protocol message parts that must not be empty are in fact not empty. A dictionary of key/value pairs that make up the serialized message. if set to true an exception is thrown on failure with details. A value indicating whether the provided data fits the message's basic requirements. Thrown when required parts of a message are not in if is true. Checks that a bunch of message part values meet the constant value requirements of this message description. The part values. if set to true, this method will throw on failure. A value indicating whether all the requirements are met. Reflects over some -implementing type and prepares to serialize/deserialize instances of that type. Gets the mapping between the serialized key names and their describing instances. Gets the message version this instance was generated from. Gets the type of message this instance was generated from. The type of the described message. Gets the constructors available on the message type. Wraps an instance in a dictionary that provides access to both well-defined message properties and "extra" name/value pairs that have no properties associated with them. The instance manipulated by this dictionary. The instance that describes the message type. Whether original string values should be retrieved instead of normalized ones. Initializes a new instance of the class. The message instance whose values will be manipulated by this dictionary. The message description. A value indicating whether this message dictionary will retrieve original values instead of normalized ones. Adds a named value to the message. The serialized form of the name whose value is being set. The serialized form of the value. Thrown if already has a set value in this message. Thrown if is null. Checks whether some named parameter has a value set in the message. The serialized form of the message part's name. True if the parameter by the given name has a set value. False otherwise. Removes a name and value from the message given its name. The serialized form of the name to remove. True if a message part by the given name was found and removed. False otherwise. Gets some named value if the key has a value. The name (in serialized form) of the value being sought. The variable where the value will be set. True if the key was found and was set. False otherwise. Sets a named value in the message. The name-value pair to add. The name is the serialized form of the key. Removes all values in the message. Removes all items from the . The is read-only. This method cannot be implemented because keys are not guaranteed to be removed since some are inherent to the type of message that this dictionary provides access to. Checks whether a named value has been set on the message. The name/value pair. True if the key exists and has the given value. False otherwise. Copies all the serializable data from the message to a key/value array. The array to copy to. The index in the to begin copying to. Removes a named value from the message if it exists. The serialized form of the name and value to remove. True if the name/value was found and removed. False otherwise. Gets an enumerator that generates KeyValuePair<string, string> instances for all the key/value pairs that are set in the message. The enumerator that can generate the name/value pairs. Gets an enumerator that generates KeyValuePair<string, string> instances for all the key/value pairs that are set in the message. The enumerator that can generate the name/value pairs. Saves the data in a message to a standard dictionary. The generated dictionary. Loads data from a dictionary into the message. The data to load into the message. Gets the message this dictionary provides access to. Gets the description of the type of message this dictionary provides access to. Gets the number of explicitly set values in the message. Gets a value indicating whether this message is read only. Gets all the keys that have values associated with them. Gets the set of official message part names that have non-null values associated with them. Gets the keys that are in the message but not declared as official OAuth properties. Gets all the values. Gets the serializer for the message this dictionary provides access to. Gets or sets a value for some named value. The serialized form of a name for the value to read or write. The named value. If the key matches a declared property or field on the message type, that type member is set. Otherwise the key/value is stored in a dictionary for extra (weakly typed) strings. Thrown when setting a value that is not allowed for a given . Describes an individual member of a message and assists in its serialization. A map of converters that help serialize custom objects to string values and back again. A map of instantiated custom encoders used to encode/decode message parts. The string-object conversion routines to use for this individual message part. The property that this message part is associated with, if aplicable. The field that this message part is associated with, if aplicable. The type of the message part. (Not the type of the message itself). The default (uninitialized) value of the member inherent in its type. Initializes static members of the class. Initializes a new instance of the class. A property or field of an implementing type that has a attached to it. The attribute discovered on that describes the serialization requirements of the message part. Sets the member of a given message to some given value. Used in deserialization. The message instance containing the member whose value should be set. The string representation of the value to set. Gets the normalized form of a value of a member of a given message. Used in serialization. The message instance to read the value from. The string representation of the member's value. Gets the value of a member of a given message. Used in serialization. The message instance to read the value from. A value indicating whether the original value should be retrieved (as opposed to a normalized form of it). The string representation of the member's value. Gets whether the value has been set to something other than its CLR type default value. The message instance to check the value on. True if the value is not the CLR default value. Adds a pair of type conversion functions to the static conversion map. The custom type to convert to and from strings. The function to convert the custom type to a string. The mapping function that converts some custom value to its original (non-normalized) string. May be null if the same as the function. The function to convert a string to the custom type. Creates a that resorts to and for the conversion. The type to create the mapping for. The value mapping. Creates the default encoder for a given type. The type to create a for. A struct. Figures out the CLR default value for a given type. The type whose default value is being sought. Either null, or some default value like 0 or 0.0. Checks whether a type is a nullable value type (i.e. int?) The type in question. True if this is a nullable value type. Retrieves a previously instantiated encoder of a given type, or creates a new one and stores it for later retrieval as well. The message part encoder type. An instance of the desired encoder. Gets the value of the message part, without converting it to/from a string. The message instance to read from. The value of the member. Sets the value of a message part directly with a given value. The message instance to read from. The value to set on the this part. Converts a string representation of the member's value to the appropriate type. The string representation of the member's value. An instance of the appropriate type for setting the member. Converts the member's value to its string representation. The value of the member. A value indicating whether a string matching the originally decoded string should be returned (as opposed to a normalized string). The string representation of the member's value. Validates that the message part and its attribute have agreeable settings. Thrown when a non-nullable value type is set as optional. Gets or sets the name to use when serializing or deserializing this parameter in a message. Gets or sets whether this message part must be signed. Gets or sets a value indicating whether this message part is required for the containing message to be valid. Gets or sets a value indicating whether the string value is allowed to be empty in the serialized message. Gets or sets a value indicating whether the field or property must remain its default value. Gets or sets a value indicating whether this part is defined as a constant field and can be read without a message instance. Gets or sets a value indicating whether the value contained by this property contains sensitive information that should generally not be logged. true if this instance is security sensitive; otherwise, false. Gets the static constant value for this message part without a message instance. Gets the type of the declared member. Gets the type of the encoded values produced by this encoder, as they would appear in their preferred form. An exception thrown when messages cannot receive all the protections they require. Initializes a new instance of the class. The message whose protection requirements could not be met. The protection requirements that were fulfilled. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The System.Runtime.Serialization.StreamingContext that contains contextual information about the source or destination. A protocol message (request or response) that passes from this to a remote party via the user agent using a redirect or form POST submission, OR a direct message response. An instance of this type describes the HTTP response that must be sent in response to the current HTTP request. It is important that this response make up the entire HTTP response. A hosting ASPX page should not be allowed to render its normal HTML output after this response is sent. The normal rendered output of an ASPX page can be canceled by calling after this message is sent on the response stream. The encoder to use for serializing the response body. Initializes a new instance of the class. Initializes a new instance of the class based on the contents of an . The to clone. The maximum bytes to read from the response stream. Creates a text reader for the response stream. The text reader, initialized for the proper encoding. Automatically sends the appropriate response to the user agent and ends execution on the current page or handler. Typically thrown by ASP.NET in order to prevent additional data from the page being sent to the client and corrupting the response. Requires a current HttpContext. Automatically sends the appropriate response to the user agent and ends execution on the current page or handler. The context of the HTTP request whose response should be set. Typically this is . Typically thrown by ASP.NET in order to prevent additional data from the page being sent to the client and corrupting the response. Automatically sends the appropriate response to the user agent and ends execution on the current page or handler. The context of the HTTP request whose response should be set. Typically this is . Typically thrown by ASP.NET in order to prevent additional data from the page being sent to the client and corrupting the response. Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. Not safe to call from ASP.NET web forms. Requires a current HttpContext. This call is not safe to make from an ASP.NET web form (.aspx file or code-behind) because ASP.NET will render HTML after the protocol message has been sent, which will corrupt the response. Use the method instead for web forms. Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. Not safe to call from ASP.NET web forms. The context of the HTTP request whose response should be set. Typically this is . This call is not safe to make from an ASP.NET web form (.aspx file or code-behind) because ASP.NET will render HTML after the protocol message has been sent, which will corrupt the response. Use the method instead for web forms. Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. Not safe to call from ASP.NET web forms. The context of the HTTP request whose response should be set. Typically this is . This call is not safe to make from an ASP.NET web form (.aspx file or code-behind) because ASP.NET will render HTML after the protocol message has been sent, which will corrupt the response. Use the method instead for web forms. Submits this response to a WCF response context. Only available when no response body is included. The response context to apply the response to. Automatically sends the appropriate response to the user agent. The response to set to this message. Gets the URI that, when requested with an HTTP GET request, would transmit the message that normally would be transmitted via a user agent redirect. The channel to use for encoding. The URL that would transmit the original message. This URL may exceed the normal 2K limit, and should therefore be broken up manually and POSTed as form fields when it exceeds this length. This is useful for desktop applications that will spawn a user agent to transmit the message rather than cause a redirect. Sets the response to some string, encoded as UTF-8. The string to set the response to. Type of the content. May be null. Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. The context of the HTTP request whose response should be set. Typically this is . If set to false, this method calls rather than to avoid a . Automatically sends the appropriate response to the user agent and signals ASP.NET to short-circuit the page execution pipeline now that the response has been completed. The context of the HTTP request whose response should be set. Typically this is . If set to false, this method calls rather than to avoid a . Gets the headers that must be included in the response to the user agent. The headers in this collection are not meant to be a comprehensive list of exactly what should be sent, but are meant to augment whatever headers are generally included in a typical response. Gets the body of the HTTP response. Gets a value indicating whether the response stream is incomplete due to a length limitation imposed by the HttpWebRequest or calling method. Gets the cookies collection to add as headers to the HTTP response. Gets or sets the body of the response as a string. Gets the HTTP status code to use in the HTTP response. Gets or sets a reference to the actual protocol message that is being sent via the user agent. The methods available for the local party to send messages to a remote party. See OAuth 1.0 spec section 5.2. No HTTP methods are allowed. In the HTTP Authorization header as defined in OAuth HTTP Authorization Scheme (OAuth HTTP Authorization Scheme). As the HTTP POST request body with a content-type of application/x-www-form-urlencoded. Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). Added to the URLs in the query part (as defined by [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .) section 3). The flags that control HTTP verbs. The type of transport mechanism used for a message: either direct or indirect. A message that is sent directly from the Consumer to the Service Provider, or vice versa. A message that is sent from one party to another via a redirect in the user agent. Encodes and decodes the as an integer of total seconds. Initializes a new instance of the class. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Gets the type of the encoded values produced by this encoder, as they would appear in their preferred form. A paranoid HTTP get/post request engine. It helps to protect against attacks from remote server leaving dangling connections, sending too much data, causing requests against internal servers, etc. Protections include: * Conservative maximum time to receive the complete response. * Only HTTP and HTTPS schemes are permitted. * Internal IP address ranges are not permitted: 127.*.*.*, 1::* * Internal host names are not permitted (periods must be found in the host name) If a particular host would be permitted but is in the blacklist, it is not allowed. If a particular host would not be permitted but is in the whitelist, it is allowed. The set of URI schemes allowed in untrusted web requests. The collection of blacklisted hosts. The collection of regular expressions used to identify additional blacklisted hosts. The collection of whitelisted hosts. The collection of regular expressions used to identify additional whitelisted hosts. The maximum redirections to follow in the course of a single request. The maximum number of bytes to read from the response of an untrusted server. The handler that will actually send the HTTP request and collect the response once the untrusted server gates have been satisfied. Initializes a new instance of the class. Initializes a new instance of the class. The chained web request handler. Determines whether this instance can support the specified options. The set of options that might be given in a subsequent web request. true if this instance can support the specified options; otherwise, false. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The options to apply to this web request. The writer the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Processes an and converts the to a instance. The to handle. The options to apply to this web request. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The writer the caller should write out the entity data to. Processes an and converts the to a instance. The to handle. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Determines whether an IP address is the IPv6 equivalent of "localhost/127.0.0.1". The ip address to check. true if this is a loopback IP address; false otherwise. Determines whether the given host name is in a host list or host name regex list. The host name. The list of host names. The list of regex patterns of host names. true if the specified host falls within at least one of the given lists; otherwise, false. Determines whether a given host is whitelisted. The host name to test. true if the host is whitelisted; otherwise, false. Determines whether a given host is blacklisted. The host name to test. true if the host is blacklisted; otherwise, false. Verify that the request qualifies under our security policies The request URI. If set to true, only web requests that can be made entirely over SSL will succeed. Thrown when the URI is disallowed for security reasons. Determines whether a URI is allowed based on scheme and host name. No requireSSL check is done here The URI to test for whether it should be allowed. true if [is URI allowable] [the specified URI]; otherwise, false. Prepares the request by setting timeout and redirect policies. The request to prepare. true if this is a POST request whose headers have not yet been sent out; false otherwise. Gets or sets the default maximum bytes to read in any given HTTP request. Default is 1MB. Cannot be less than 2KB. Gets or sets the total number of redirections to allow on any one request. Default is 10. Gets or sets the time allowed to wait for single read or write operation to complete. Default is 500 milliseconds. Gets or sets the time allowed for an entire HTTP request. Default is 5 seconds. Gets a collection of host name literals that should be allowed even if they don't pass standard security checks. Gets a collection of host name regular expressions that indicate hosts that should be allowed even though they don't pass standard security checks. Gets a collection of host name literals that should be rejected even if they pass standard security checks. Gets a collection of host name regular expressions that indicate hosts that should be rejected even if they pass standard security checks. Gets the configuration for this class that is specified in the host's .config file. The default handler for transmitting instances and returning the responses. The set of options this web request handler supports. The value to use for the User-Agent HTTP header. Determines whether this instance can support the specified options. The set of options that might be given in a subsequent web request. true if this instance can support the specified options; otherwise, false. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The writer the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Prepares an that contains an POST entity for sending the entity. The that should contain the entity. The options to apply to this web request. The writer the caller should write out the entity data to. Thrown for any network error. The caller should have set the and any other appropriate properties before calling this method. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. Processes an and converts the to a instance. The to handle. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Processes an and converts the to a instance. The to handle. The options to apply to this web request. An instance of describing the response. Thrown for any network error. Implementations should catch and wrap it in a to abstract away the transport and provide a single exception type for hosts to catch. The value, if set, should be Closed before throwing. Determines whether an exception was thrown because of the remote HTTP server returning HTTP 417 Expectation Failed. The caught exception. true if the failure was originally caused by a 417 Exceptation Failed error; otherwise, false. Initiates a POST request and prepares for sending data. The HTTP request with information about the remote party to contact. The stream where the POST entity can be written. Prepares an HTTP request. The request. true if this is a POST request whose headers have not yet been sent out; false otherwise. An immutable description of a URL that receives messages. Initializes a new instance of the class. The URL of this endpoint. The HTTP method(s) allowed. Initializes a new instance of the class. The URL of this endpoint. The HTTP method(s) allowed. Gets the URL of this endpoint. Gets the HTTP method(s) allowed. Represents the section in the host's .config file that configures this library's settings. The name of the section under which this library's settings must be found. The name of the <openid> sub-element. The name of the <oauth> sub-element. Initializes a new instance of the class. Gets a named section in this section group, or null if no such section is defined. The name of the section to obtain. The desired section, or null if it could not be obtained. Gets the messaging configuration element. Gets the reporting configuration element. Represents the <messaging> element in the host's .config file. The name of the <webResourceUrlProvider> sub-element. The name of the <untrustedWebRequest> sub-element. The name of the attribute that stores the association's maximum lifetime. The name of the attribute that stores the maximum allowable clock skew. The name of the attribute that indicates whether to disable SSL requirements across the library. The name of the attribute that controls whether messaging rules are strictly followed. The default value for the property. 2KB, recommended by OpenID group The name of the attribute that controls the maximum length of a URL before it is converted to a POST payload. Gets the name of the @privateSecretMaximumAge attribute. The name of the <messaging> sub-element. Gets the configuration section from the .config file. Gets the actual maximum message lifetime that a program should allow. The sum of the and property values. Gets or sets the maximum lifetime of a private symmetric secret, that may be used for signing or encryption. The default value is 28 days (twice the age of the longest association). Gets or sets the time between a message's creation and its receipt before it is considered expired. The default value value is 3 minutes. Smaller timespans mean lower tolerance for delays in message delivery. Larger timespans mean more nonces must be stored to provide replay protection. The maximum age a message implementing the interface can be before being discarded as too old. This time limit should NOT take into account expected time skew for servers across the Internet. Time skew is added to this value and is controlled by the property. Gets or sets the maximum clock skew. The default value is 10 minutes. Smaller timespans mean lower tolerance for time variance due to server clocks not being synchronized. Larger timespans mean greater chance for replay attacks and larger nonce caches. For example, if a server could conceivably have its clock d = 5 minutes off UTC time, then any two servers could have their clocks disagree by as much as 2*d = 10 minutes. Gets or sets a value indicating whether SSL requirements within the library are disabled/relaxed. Use for TESTING ONLY. Gets or sets a value indicating whether messaging rules are strictly adhered to. true by default. Strict will require that remote parties adhere strictly to the specifications, even when a loose interpretation would not compromise security. true is a good default because it shakes out interoperability bugs in remote services so they can be identified and corrected. But some web sites want things to Just Work more than they want to file bugs against others, so false is the setting for them. Gets or sets the configuration for the class. The untrusted web request. Gets or sets the maximum allowable size for a 301 Redirect response before we send a 200 OK response with a scripted form POST with the parameters instead in order to ensure successfully sending a large payload to another server that might have a maximum allowable size restriction on its GET request. The default value is 2048. Gets or sets the embedded resource retrieval provider. The embedded resource retrieval provider. Represents the <reporting> element in the host's .config file. The name of the @enabled attribute. The name of the @minimumReportingInterval attribute. The name of the @minimumFlushInterval attribute. The name of the @includeFeatureUsage attribute. The name of the @includeEventStatistics attribute. The name of the @includeLocalRequestUris attribute. The name of the @includeCultures attribute. The name of the <reporting> sub-element. The default value for the @minimumFlushInterval attribute. Initializes a new instance of the class. Gets the configuration section from the .config file. Gets or sets a value indicating whether this reporting is enabled. true if enabled; otherwise, false. Gets or sets the maximum frequency that reports will be published. Gets or sets the maximum frequency the set can be flushed to disk. Gets or sets a value indicating whether to include a list of library features used in the report. true to include a report of features used; otherwise, false. Gets or sets a value indicating whether to include statistics of certain events such as authentication success and failure counting, and can include remote endpoint URIs. true to include event counters in the report; otherwise, false. Gets or sets a value indicating whether to include a few URLs to pages on the hosting web site that host DotNetOpenAuth components. Gets or sets a value indicating whether to include the cultures requested by the user agent on pages that host DotNetOpenAuth components. A configuration collection of trusted OP Endpoints. The name of the "rejectAssertionsFromUntrustedProviders" element. Initializes a new instance of the class. Initializes a new instance of the class. The elements to initialize the collection with. When overridden in a derived class, creates a new . A new . Gets the element key for a specified configuration element when overridden in a derived class. The to return the key for. An that acts as the key for the specified . Gets or sets a value indicating whether any login attempt coming from an OpenID Provider Endpoint that is not on this whitelist of trusted OP Endpoints will be rejected. If the trusted providers list is empty and this value is true, all assertions are rejected. A configuration element that records a trusted Provider Endpoint. The name of the attribute that stores the value. Initializes a new instance of the class. Gets or sets the OpenID Provider Endpoint (aka "OP Endpoint") that this relying party trusts. A collection of . The type that all types specified in the elements must derive from. Initializes a new instance of the TypeConfigurationCollection class. Initializes a new instance of the TypeConfigurationCollection class. The elements that should be added to the collection initially. Creates instances of all the types listed in the collection. if set to true then internal types may be instantiated. A sequence of instances generated from types in this collection. May be empty, but never null. When overridden in a derived class, creates a new . A new . Gets the element key for a specified configuration element when overridden in a derived class. The to return the key for. An that acts as the key for the specified . Represents an element in a .config file that allows the user to provide a @type attribute specifying the full type that provides some service used by this library. A constraint on the type the user may provide. The name of the attribute whose value is the full name of the type the user is specifying. The name of the attribute whose value is the path to the XAML file to deserialize to obtain the type. Initializes a new instance of the TypeConfigurationElement class. Creates an instance of the type described in the .config file. The value to return if no type is given in the .config file. The newly instantiated type. Creates an instance of the type described in the .config file. The value to return if no type is given in the .config file. if set to true then internal types may be instantiated. The newly instantiated type. Creates the instance from xaml. The stream of xaml to deserialize. The deserialized object. This exists as its own method to prevent the CLR's JIT compiler from failing to compile the CreateInstance method just because the PresentationFramework.dll may be missing (which it is on some shared web hosts). This way, if the XamlSource attribute is never used, the PresentationFramework.dll never need be present. Gets or sets the full name of the type. The full name of the type, such as: "ConsumerPortal.Code.CustomStore, ConsumerPortal". Gets or sets the path to the XAML file to deserialize to obtain the instance. Gets the type described in the .config file. Gets a value indicating whether this type has no meaningful type to instantiate. Represents the section of a .config file where security policies regarding web requests to user-provided, untrusted servers is controlled. Gets the name of the @timeout attribute. Gets the name of the @readWriteTimeout attribute. Gets the name of the @maximumBytesToRead attribute. Gets the name of the @maximumRedirections attribute. Gets the name of the @whitelistHosts attribute. Gets the name of the @whitelistHostsRegex attribute. Gets the name of the @blacklistHosts attribute. Gets the name of the @blacklistHostsRegex attribute. Gets or sets the read/write timeout after which an HTTP request will fail. Gets or sets the timeout after which an HTTP request will fail. Gets or sets the maximum bytes to read from an untrusted web server. Gets or sets the maximum redirections that will be followed before an HTTP request fails. Gets or sets the collection of hosts on the whitelist. Gets or sets the collection of hosts on the blacklist. Gets or sets the collection of regular expressions that describe hosts on the whitelist. Gets or sets the collection of regular expressions that describe hosts on the blacklist. Represents a collection of child elements that describe host names either as literal host names or regex patterns. Initializes a new instance of the class. Creates a new child host name element. A new . Gets the element key for a specified configuration element. The to return the key for. An that acts as the key for the specified . Gets all the members of the collection assuming they are all literal host names. Gets all the members of the collection assuming they are all host names regex patterns. Represents the name of a single host or a regex pattern for host names. Gets the name of the @name attribute. Initializes a new instance of the class. Initializes a new instance of the class. The default value of the property. Gets or sets the name of the host on the white or black list. An interface that provides URLs from which embedded resources can be obtained. Gets the URL from which the given manifest resource may be downloaded by the user agent. Some type in the assembly containing the desired resource. Manifest name of the desired resource. An absolute URL. A general logger for the entire DotNetOpenAuth library. Because this logger is intended for use with non-localized strings, the overloads that take have been removed, and is used implicitly. The instance that is to be used by this static Logger for the duration of the appdomain. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Backing field for the property. Creates an additional logger on demand for a subsection of the application. A name that will be included in the log file. The instance created with the given name. Creates the main logger for the library, and emits an INFO message that is the name and version of the library. A name that will be included in the log file. The instance created with the given name. Creates an additional logger on demand for a subsection of the application. A type whose full name that will be included in the log file. The instance created with the given type name. Discovers the presence of Log4net.dll and other logging mechanisms and returns the best available logger. The name of the log to initialize. The instance of the logger to use. Gets the logger for general library logging. Gets the logger for service discovery and selection events. Gets the logger for Messaging events. Gets the logger for Channel events. Gets the logger for binding elements and binding-element related events on the channel. Gets the logger specifically used for logging verbose text on everything about the signing process. Gets the logger for HTTP-level events. Gets the logger for events logged by ASP.NET controls. Gets the logger for high-level OpenID events. Gets the logger for high-level OAuth events. Gets the logger for high-level InfoCard events. The ILog interface is use by application to log messages into the log4net framework. Use the to obtain logger instances that implement this interface. The static method is used to get logger instances. This class contains methods for logging at different levels and also has properties for determining if those logging levels are enabled in the current configuration. This interface can be implemented in different ways. This documentation specifies reasonable behavior that a caller can expect from the actual implementation, however different implementations reserve the right to do things differently. Simple example of logging messages ILog log = LogManager.GetLogger("application-log"); log.Info("Application Start"); log.Debug("This is a debug message"); if (log.IsDebugEnabled) { log.Debug("This is another debug message"); } Nicko Cadell Gert Driesen Log a message object with the level. Log a message object with the level. The message object to log. This method first checks if this logger is DEBUG enabled by comparing the level of this logger with the level. If this logger is DEBUG enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. Log a message object with the level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Log a message object with the level. Logs a message object with the level. This method first checks if this logger is INFO enabled by comparing the level of this logger with the level. If this logger is INFO enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. The message object to log. Logs a message object with the INFO level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted message string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Log a message object with the level. Log a message object with the level. This method first checks if this logger is WARN enabled by comparing the level of this logger with the level. If this logger is WARN enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. The message object to log. Log a message object with the level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted message string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Log a message object with the level. Logs a message object with the level. The message object to log. This method first checks if this logger is ERROR enabled by comparing the level of this logger with the level. If this logger is ERROR enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. Log a message object with the level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted message string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Log a message object with the level. Log a message object with the level. This method first checks if this logger is FATAL enabled by comparing the level of this logger with the level. If this logger is FATAL enabled, then it converts the message object (passed as parameter) to a string by invoking the appropriate . It then proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. WARNING Note that passing an to this method will print the name of the but no stack trace. To print a stack trace use the form instead. The message object to log. Log a message object with the level including the stack trace of the passed as a parameter. The message object to log. The exception to log, including its stack trace. See the form for more detailed information. Log a formatted message string with the level. Logs a formatted message string with the level. A String containing zero or more format items An Object array containing zero or more objects to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Logs a formatted message string with the level. A String containing zero or more format items An Object to format An Object to format An Object to format The message is formatted using the string.Format method. See for details of the syntax of the format string and the behavior of the formatting. This method does not take an object to include in the log event. To pass an use one of the methods instead. Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. This function is intended to lessen the computational cost of disabled log debug statements. For some ILog interface log, when you write: log.Debug("This is entry number: " + i ); You incur the cost constructing the message, string construction and concatenation in this case, regardless of whether the message is logged or not. If you are worried about speed (who isn't), then you should write: if (log.IsDebugEnabled) { log.Debug("This is entry number: " + i ); } This way you will not incur the cost of parameter construction if debugging is disabled for log. On the other hand, if the log is debug enabled, you will incur the cost of evaluating whether the logger is debug enabled twice. Once in and once in the . This is an insignificant overhead since evaluating a logger takes about 1% of the time it takes to actually log. This is the preferred style of logging. Alternatively if your logger is available statically then the is debug enabled state can be stored in a static variable like this: private static readonly bool isDebugEnabled = log.IsDebugEnabled; Then when you come to log you can write: if (isDebugEnabled) { log.Debug("This is entry number: " + i ); } This way the debug enabled state is only queried once when the class is loaded. Using a private static readonly variable is the most efficient because it is a run time constant and can be heavily optimized by the JIT compiler. Of course if you use a static readonly variable to hold the enabled state of the logger then you cannot change the enabled state at runtime to vary the logging that is produced. You have to decide if you need absolute speed or runtime flexibility. Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. For more information see . Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. For more information see . Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. For more information see . Checks if this logger is enabled for the level. true if this logger is enabled for events, false otherwise. For more information see . Returns a new log4net logger if it exists, or returns null if the assembly cannot be found. The created instance. Creates the log4net.LogManager. Call ONLY after log4net.dll is known to be present. The created instance. Returns a new logger that does nothing when invoked. The created instance. See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . See . Returns a new logger that uses the class if sufficient CAS permissions are granted to use it, otherwise returns false. The created instance. See . See . See . See . See . Represents a read-only dictionary. The type of the key. The type of the value. Contains base dictionary. Initializes a new instance of the class. The base dictionary. Adds an element with the provided key and value to the . The object to use as the key of the element to add. The object to use as the value of the element to add. is null. An element with the same key already exists in the . The is read-only. Determines whether the contains an element with the specified key. The key to locate in the . true if the contains an element with the key; otherwise, false. is null. Removes the element with the specified key from the . The key of the element to remove. true if the element is successfully removed; otherwise, false. This method also returns false if was not found in the original . is null. The is read-only. Gets the value associated with the specified key. The key whose value to get. When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. true if the object that implements contains an element with the specified key; otherwise, false. is null. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Copies to. The array. Index of the array. Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Gets an containing the keys of the . An containing the keys of the object that implements . Gets an containing the values in the . An containing the values in the object that implements . Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Gets or sets the element with the specified key. The key being read or written. The element with the specified key. is null. The property is retrieved and is not found. The property is set and the is read-only. The statistical reporting mechanism used so this library's project authors know what versions and features are in use. A UTF8 encoder that doesn't emit the preamble. Used for mid-stream writers. A value indicating whether reporting is desirable or not. Must be logical-AND'd with !. A value indicating whether reporting experienced an error and cannot be enabled. A value indicating whether the reporting class has been initialized or not. The object to lock during initialization. The isolated storage to use for collecting data in between published reports. The GUID that shows up at the top of all reports from this user/machine/domain. The recipient of collected reports. The outgoing HTTP request handler to use for publishing reports. A few HTTP request hosts and paths we've seen. Cultures that have come in via HTTP requests. Features that have been used. A collection of all the observations to include in the report. The named events that we have counters for. The lock acquired while considering whether to publish a report. The time that we last published reports. Initializes static members of the class. Initializes a new instance of the class. Records an event occurrence. Name of the event. The category within the event. Null and empty strings are allowed, but considered the same. Records an event occurence. The object whose type name is the event name to record. The category within the event. Null and empty strings are allowed, but considered the same. Records the use of a feature by name. The feature. Records the use of a feature by object type. The object whose type is the feature to set as used. Records the use of a feature by object type. The object whose type is the feature to set as used. Some dependency used by . Records the use of a feature by object type. The object whose type is the feature to set as used. Some dependency used by . Some dependency used by . Records statistics collected from incoming requests. The request. Called by every internal/public method on this class to give periodic operations a chance to run. Initializes Reporting if it has not been initialized yet. Assembles a report for submission. A stream that contains the report. Sends the usage reports to the library authors. A value indicating whether submitting the report was successful. Interprets the reporting response as a log message if possible. The line from the HTTP response to interpret as a log message. Sends the stats report asynchronously, and careful to not throw any unhandled exceptions. Gets the isolated storage to use for reporting. An isolated storage location appropriate for our host. Gets a unique, pseudonymous identifier for this particular web site or application. A GUID that will serve as the identifier. The identifier is made persistent by storing the identifier in isolated storage. If an existing identifier is not found, a new one is created, persisted, and returned. Sanitizes the name of the file so it only includes valid filename characters. The filename to sanitize. The filename, with any and all invalid filename characters replaced with the hyphen (-) character. Gets or sets a value indicating whether this reporting is enabled. true if enabled; otherwise, false. Setting this property to true may have no effect if reporting has already experienced a failure of some kind. Gets the observed features. Gets the configuration to use for reporting. A set of values that persist the set to disk. The isolated persistent storage. The persistent reader. The persistent writer. The total set of elements. The maximum number of elements to track before not storing new elements. The set of new elements added to the since the last flush. The time the last flush occurred. A flag indicating whether the set has changed since it was last flushed. Initializes a new instance of the class. The storage location. Name of the file. The maximum number of elements to track. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Adds a value to the set. The value. Flushes any newly added values to disk. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets a value indicating whether the hashset has reached capacity and is not storing more elements. true if this instance is full; otherwise, false. Gets the name of the file. The name of the file. A feature usage counter. The separator to use between category names and their individual counters. The isolated persistent storage. The persistent reader. The persistent writer. The time the last flush occurred. The in-memory copy of the counter. A flag indicating whether the set has changed since it was last flushed. Initializes a new instance of the class. The storage location. Name of the file. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Increments the counter. The category within the event. Null and empty strings are allowed, but considered the same. Flushes any newly added values to disk. Resets all counters. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the name of the file. The name of the file. Argument validation checks that throw some kind of ArgumentException when they fail (unless otherwise noted). Validates that a given parameter is not null. The type of the parameter The value. Name of the parameter. The tested value, guaranteed to not be null. Validates that a parameter is not null or empty. The value. Name of the parameter. The validated value. Validates that an array is not null or empty. The type of the elements in the sequence. The value. Name of the parameter. Validates that an argument is either null or is a sequence with no null elements. The type of elements in the sequence. The sequence. Name of the parameter. Validates some expression describing the acceptable range for an argument evaluates to true. The expression that must evaluate to true to avoid an . Name of the parameter. The message to include with the exception. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . Name of the parameter. The message to include with the exception. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . Name of the parameter. The unformatted message. Formatting arguments. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . The message to include with the exception. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . The unformatted message. Formatting arguments. Validates that some argument describes a type that is or derives from a required type. The type that the argument must be or derive from. The type given in the argument. Name of the parameter. Validates some expression describing the acceptable condition for an argument evaluates to true. The expression that must evaluate to true to avoid an . The message. Throws an if a condition does not evaluate to true. The expression that must evaluate to true to avoid an . The message. Throws an Name of the parameter. The message. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to The configuration-specified type {0} must be public, and is not.. Looks up a localized string similar to The configuration XAML reference to {0} requires a current HttpContext to resolve.. Looks up a localized string similar to The current IHttpHandler is not one of types: {0}. An embedded resource URL provider must be set in your .config file.. Looks up a localized string similar to The empty string is not allowed.. Looks up a localized string similar to The argument has an unexpected value.. Looks up a localized string similar to The property {0} must be set before this operation is allowed.. Looks up a localized string similar to This object contains a response body, which is not supported.. Looks up a localized string similar to No current HttpContext was detected, so an {0} instance must be explicitly provided or specified in the .config file. Call the constructor overload that takes an {0}.. Utility methods for working with URIs. Tests a URI for the presence of an OAuth payload. The URI to test. The prefix. True if the URI contains an OAuth message. Determines whether some is using HTTPS. The Uri being tested for security. true if the URI represents an encrypted request; otherwise, false. Equivalent to UriBuilder.ToString() but omits port # if it may be implied. Equivalent to UriBuilder.Uri.ToString(), but doesn't throw an exception if the Host has a wildcard. The UriBuilder to render as a string. The string version of the Uri. Validates that a URL will be resolvable at runtime. The page hosting the control that receives this URL as a property. If set to true the page is in design-time mode rather than runtime mode. The URI to check. Thrown if the given URL is not a valid, resolvable URI. A grab-bag utility class. The base namespace for this library from which all other namespaces derive. The web.config file-specified provider of web resource URLs. Tests for equality between two objects. Safely handles the case where one or both are null. The type of objects been checked for equality. The first object. The second object. true if the two objects are equal; false otherwise. Prepares a dictionary for printing as a string. The type of the key. The type of the value. The dictionary or sequence of name-value pairs. An object whose ToString method will perform the actual work of generating the string. The work isn't done until (and if) the method is actually called, which makes it great for logging complex objects without being in a conditional block. Offers deferred ToString processing for a list of elements, that are assumed to generate just a single-line string. The type of elements contained in the list. The list of elements. An object whose ToString method will perform the actual work of generating the string. Offers deferred ToString processing for a list of elements. The type of elements contained in the list. The list of elements. if set to true, special formatting will be applied to the output to make it clear where one element ends and the next begins. An object whose ToString method will perform the actual work of generating the string. Gets the web resource URL from a Page or object. Some type in resource assembly. Name of the manifest resource. An absolute URL Gets a human-readable description of the library name and version, including whether the build is an official or private one. Gets the assembly file version of the executing assembly, otherwise falls back to the assembly version. Manages an individual deferred ToString call. The type of object to be serialized as a string. The object that will be serialized if called upon. The method used to serialize to string form. Initializes a new instance of the DelayedToString class. The object that may be serialized to string form. The method that will serialize the object if called upon. Returns a that represents the current . A that represents the current . ================================================ FILE: packages/DotNetOpenAuth.OAuth.Consumer.4.0.3.12153/lib/net35-full/DotNetOpenAuth.OAuth.Consumer.xml ================================================ DotNetOpenAuth.OAuth.Consumer A token manager for use by a web site in its role as a consumer of an individual ServiceProvider. Gets the consumer key. The consumer key. Gets the consumer secret. The consumer secret. The messaging channel for OAuth 1.0(a) Consumers. Initializes a new instance of the class. The binding element to use for signing. The web application store to use for nonces. The token manager instance to use. The security settings. The message factory. Gets the consumer secret for a given consumer key. The consumer key. The consumer secret. Initializes the binding elements for the OAuth channel. The signing binding element. The nonce store. An array of binding elements used to initialize the channel. An OAuth-protocol specific implementation of the interface. Initializes a new instance of the class. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. The request messages are: UserAuthorizationResponse Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. Null on a Consumer site that is receiving an indirect message from the Service Provider. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. The response messages are: UnauthorizedTokenResponse AuthorizedTokenResponse A binding element that signs outgoing messages and verifies the signature on incoming messages. Initializes a new instance of the class. The certificate used to sign outgoing messages. Determines whether the signature on some message is valid. The message to check the signature on. true if the signature on the message is valid; otherwise, false. Calculates a signature for a given message. The message to sign. The signature for the message. This method signs the message per OAuth 1.0 section 9.3. Creates a new object that is a copy of the current instance. A new object that is a copy of this instance. Gets or sets the certificate used to sign outgoing messages. Used only by Consumers. Base class for and types. Initializes a new instance of the class. The endpoints and behavior of the Service Provider. The host's method of storing and recalling tokens and secrets. Obtains an access token for a new account at the Service Provider via 2-legged OAuth. Any applicable parameters to include in the query string of the token request. The access token. The token secret is stored in the . Creates a web request prepared with OAuth authorization that may be further tailored by adding parameters by the caller. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. The initialized WebRequest object. Creates a web request prepared with OAuth authorization that may be further tailored by adding parameters by the caller. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. Extra parameters to include in the message. Must not be null, but may be empty. The initialized WebRequest object. Prepares an authorized request that carries an HTTP multi-part POST, allowing for binary data. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. Extra parameters to include in the message. Must not be null, but may be empty. The initialized WebRequest object. Prepares an HTTP request that has OAuth authorization already attached to it. The OAuth authorization message to attach to the HTTP request. The HttpWebRequest that can be used to send the HTTP request to the remote service provider. If property on the has the flag set and is set to an HTTP method that includes an entity body, the request stream is automatically sent if and only if the dictionary is non-empty. Creates a web request prepared with OAuth authorization that may be further tailored by adding parameters by the caller. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. The initialized WebRequest object. Thrown if the request fails for any reason after it is sent to the Service Provider. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Creates a web request prepared with OAuth authorization that may be further tailored by adding parameters by the caller. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. The initialized WebRequest object. Prepares an OAuth message that begins an authorization request that will redirect the user to the Service Provider to provide that authorization. An optional Consumer URL that the Service Provider should redirect the User Agent to upon successful authorization. Extra parameters to add to the request token message. Optional. Extra parameters to add to the redirect to Service Provider message. Optional. The request token that must be exchanged for an access token after the user has provided authorization. The pending user agent redirect based message to be sent as an HttpResponse. Exchanges a given request token for access token. The request token that the user has authorized. The verifier code. The access token assigned by the Service Provider. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the Consumer Key used to communicate with the Service Provider. Gets the Service Provider that will be accessed. Gets the persistence store for tokens and secrets. Gets the channel to use for sending/receiving messages. Gets the security settings for this consumer. Gets or sets the channel to use for sending/receiving messages. Used by a desktop application to use OAuth to access the Service Provider on behalf of the User. The methods on this class are thread-safe. Provided the properties are set and not changed afterward, a single instance of this class may be used by an entire desktop application safely. Initializes a new instance of the class. The endpoints and behavior of the Service Provider. The host's method of storing and recalling tokens and secrets. Begins an OAuth authorization request. Extra parameters to add to the request token message. Optional. Extra parameters to add to the redirect to Service Provider message. Optional. The request token that must be exchanged for an access token after the user has provided authorization. The URL to open a browser window to allow the user to provide authorization. Exchanges a given request token for access token. The request token that the user has authorized. The access token assigned by the Service Provider. Exchanges a given request token for access token. The request token that the user has authorized. The verifier code typed in by the user. Must not be Null for OAuth 1.0a service providers and later. The access token assigned by the Service Provider. A website or application that uses OAuth to access the Service Provider on behalf of the User. The methods on this class are thread-safe. Provided the properties are set and not changed afterward, a single instance of this class may be used by an entire web application safely. Initializes a new instance of the class. The endpoints and behavior of the Service Provider. The host's method of storing and recalling tokens and secrets. Begins an OAuth authorization request and redirects the user to the Service Provider to provide that authorization. Upon successful authorization, the user is redirected back to the current page. The pending user agent redirect based message to be sent as an HttpResponse. Requires HttpContext.Current. Prepares an OAuth message that begins an authorization request that will redirect the user to the Service Provider to provide that authorization. An optional Consumer URL that the Service Provider should redirect the User Agent to upon successful authorization. Extra parameters to add to the request token message. Optional. Extra parameters to add to the redirect to Service Provider message. Optional. The pending user agent redirect based message to be sent as an HttpResponse. Processes an incoming authorization-granted message from an SP and obtains an access token. The access token, or null if no incoming authorization message was recognized. Requires HttpContext.Current. Processes an incoming authorization-granted message from an SP and obtains an access token. The incoming HTTP request. The access token, or null if no incoming authorization message was recognized. ================================================ FILE: packages/DotNetOpenAuth.OAuth.Consumer.4.0.3.12153/lib/net40-full/DotNetOpenAuth.OAuth.Consumer.xml ================================================ DotNetOpenAuth.OAuth.Consumer A token manager for use by a web site in its role as a consumer of an individual ServiceProvider. Gets the consumer key. The consumer key. Gets the consumer secret. The consumer secret. The messaging channel for OAuth 1.0(a) Consumers. Initializes a new instance of the class. The binding element to use for signing. The web application store to use for nonces. The token manager instance to use. The security settings. The message factory. Gets the consumer secret for a given consumer key. The consumer key. The consumer secret. Initializes the binding elements for the OAuth channel. The signing binding element. The nonce store. An array of binding elements used to initialize the channel. An OAuth-protocol specific implementation of the interface. Initializes a new instance of the class. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. The request messages are: UserAuthorizationResponse Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. Null on a Consumer site that is receiving an indirect message from the Service Provider. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. The response messages are: UnauthorizedTokenResponse AuthorizedTokenResponse A binding element that signs outgoing messages and verifies the signature on incoming messages. Initializes a new instance of the class. The certificate used to sign outgoing messages. Determines whether the signature on some message is valid. The message to check the signature on. true if the signature on the message is valid; otherwise, false. Calculates a signature for a given message. The message to sign. The signature for the message. This method signs the message per OAuth 1.0 section 9.3. Creates a new object that is a copy of the current instance. A new object that is a copy of this instance. Gets or sets the certificate used to sign outgoing messages. Used only by Consumers. Base class for and types. Initializes a new instance of the class. The endpoints and behavior of the Service Provider. The host's method of storing and recalling tokens and secrets. Obtains an access token for a new account at the Service Provider via 2-legged OAuth. Any applicable parameters to include in the query string of the token request. The access token. The token secret is stored in the . Creates a web request prepared with OAuth authorization that may be further tailored by adding parameters by the caller. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. The initialized WebRequest object. Creates a web request prepared with OAuth authorization that may be further tailored by adding parameters by the caller. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. Extra parameters to include in the message. Must not be null, but may be empty. The initialized WebRequest object. Prepares an authorized request that carries an HTTP multi-part POST, allowing for binary data. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. Extra parameters to include in the message. Must not be null, but may be empty. The initialized WebRequest object. Prepares an HTTP request that has OAuth authorization already attached to it. The OAuth authorization message to attach to the HTTP request. The HttpWebRequest that can be used to send the HTTP request to the remote service provider. If property on the has the flag set and is set to an HTTP method that includes an entity body, the request stream is automatically sent if and only if the dictionary is non-empty. Creates a web request prepared with OAuth authorization that may be further tailored by adding parameters by the caller. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. The initialized WebRequest object. Thrown if the request fails for any reason after it is sent to the Service Provider. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Creates a web request prepared with OAuth authorization that may be further tailored by adding parameters by the caller. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. The initialized WebRequest object. Prepares an OAuth message that begins an authorization request that will redirect the user to the Service Provider to provide that authorization. An optional Consumer URL that the Service Provider should redirect the User Agent to upon successful authorization. Extra parameters to add to the request token message. Optional. Extra parameters to add to the redirect to Service Provider message. Optional. The request token that must be exchanged for an access token after the user has provided authorization. The pending user agent redirect based message to be sent as an HttpResponse. Exchanges a given request token for access token. The request token that the user has authorized. The verifier code. The access token assigned by the Service Provider. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the Consumer Key used to communicate with the Service Provider. Gets the Service Provider that will be accessed. Gets the persistence store for tokens and secrets. Gets the channel to use for sending/receiving messages. Gets the security settings for this consumer. Gets or sets the channel to use for sending/receiving messages. Used by a desktop application to use OAuth to access the Service Provider on behalf of the User. The methods on this class are thread-safe. Provided the properties are set and not changed afterward, a single instance of this class may be used by an entire desktop application safely. Initializes a new instance of the class. The endpoints and behavior of the Service Provider. The host's method of storing and recalling tokens and secrets. Begins an OAuth authorization request. Extra parameters to add to the request token message. Optional. Extra parameters to add to the redirect to Service Provider message. Optional. The request token that must be exchanged for an access token after the user has provided authorization. The URL to open a browser window to allow the user to provide authorization. Exchanges a given request token for access token. The request token that the user has authorized. The access token assigned by the Service Provider. Exchanges a given request token for access token. The request token that the user has authorized. The verifier code typed in by the user. Must not be Null for OAuth 1.0a service providers and later. The access token assigned by the Service Provider. A website or application that uses OAuth to access the Service Provider on behalf of the User. The methods on this class are thread-safe. Provided the properties are set and not changed afterward, a single instance of this class may be used by an entire web application safely. Initializes a new instance of the class. The endpoints and behavior of the Service Provider. The host's method of storing and recalling tokens and secrets. Begins an OAuth authorization request and redirects the user to the Service Provider to provide that authorization. Upon successful authorization, the user is redirected back to the current page. The pending user agent redirect based message to be sent as an HttpResponse. Requires HttpContext.Current. Prepares an OAuth message that begins an authorization request that will redirect the user to the Service Provider to provide that authorization. An optional Consumer URL that the Service Provider should redirect the User Agent to upon successful authorization. Extra parameters to add to the request token message. Optional. Extra parameters to add to the redirect to Service Provider message. Optional. The pending user agent redirect based message to be sent as an HttpResponse. Processes an incoming authorization-granted message from an SP and obtains an access token. The access token, or null if no incoming authorization message was recognized. Requires HttpContext.Current. Processes an incoming authorization-granted message from an SP and obtains an access token. The incoming HTTP request. The access token, or null if no incoming authorization message was recognized. ================================================ FILE: packages/DotNetOpenAuth.OAuth.Consumer.4.3.0.13117/lib/net35-full/DotNetOpenAuth.OAuth.Consumer.xml ================================================ DotNetOpenAuth.OAuth.Consumer A token manager for use by a web site in its role as a consumer of an individual ServiceProvider. Gets the consumer key. The consumer key. Gets the consumer secret. The consumer secret. The messaging channel for OAuth 1.0(a) Consumers. Initializes a new instance of the class. The binding element to use for signing. The web application store to use for nonces. The token manager instance to use. The security settings. The message factory. Gets the consumer secret for a given consumer key. The consumer key. The consumer secret. Initializes the binding elements for the OAuth channel. The signing binding element. The nonce store. An array of binding elements used to initialize the channel. An OAuth-protocol specific implementation of the interface. Initializes a new instance of the class. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. The request messages are: UserAuthorizationResponse Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. Null on a Consumer site that is receiving an indirect message from the Service Provider. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. The response messages are: UnauthorizedTokenResponse AuthorizedTokenResponse A binding element that signs outgoing messages and verifies the signature on incoming messages. Initializes a new instance of the class. The certificate used to sign outgoing messages. Determines whether the signature on some message is valid. The message to check the signature on. true if the signature on the message is valid; otherwise, false. Calculates a signature for a given message. The message to sign. The signature for the message. This method signs the message per OAuth 1.0 section 9.3. Creates a new object that is a copy of the current instance. A new object that is a copy of this instance. Gets or sets the certificate used to sign outgoing messages. Used only by Consumers. Base class for and types. Initializes a new instance of the class. The endpoints and behavior of the Service Provider. The host's method of storing and recalling tokens and secrets. Obtains an access token for a new account at the Service Provider via 2-legged OAuth. Any applicable parameters to include in the query string of the token request. The access token. The token secret is stored in the . Creates a web request prepared with OAuth authorization that may be further tailored by adding parameters by the caller. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. The initialized WebRequest object. Creates a web request prepared with OAuth authorization that may be further tailored by adding parameters by the caller. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. Extra parameters to include in the message. Must not be null, but may be empty. The initialized WebRequest object. Prepares an authorized request that carries an HTTP multi-part POST, allowing for binary data. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. Extra parameters to include in the message. Must not be null, but may be empty. The initialized WebRequest object. Prepares an HTTP request that has OAuth authorization already attached to it. The OAuth authorization message to attach to the HTTP request. The HttpWebRequest that can be used to send the HTTP request to the remote service provider. If property on the has the flag set and is set to an HTTP method that includes an entity body, the request stream is automatically sent if and only if the dictionary is non-empty. Creates a web request prepared with OAuth authorization that may be further tailored by adding parameters by the caller. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. The initialized WebRequest object. Thrown if the request fails for any reason after it is sent to the Service Provider. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Creates a web request prepared with OAuth authorization that may be further tailored by adding parameters by the caller. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. The initialized WebRequest object. Prepares an OAuth message that begins an authorization request that will redirect the user to the Service Provider to provide that authorization. An optional Consumer URL that the Service Provider should redirect the User Agent to upon successful authorization. Extra parameters to add to the request token message. Optional. Extra parameters to add to the redirect to Service Provider message. Optional. The request token that must be exchanged for an access token after the user has provided authorization. The pending user agent redirect based message to be sent as an HttpResponse. Exchanges a given request token for access token. The request token that the user has authorized. The verifier code. The access token assigned by the Service Provider. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the Consumer Key used to communicate with the Service Provider. Gets the Service Provider that will be accessed. Gets the persistence store for tokens and secrets. Gets the channel to use for sending/receiving messages. Gets the security settings for this consumer. Gets or sets the channel to use for sending/receiving messages. Used by a desktop application to use OAuth to access the Service Provider on behalf of the User. The methods on this class are thread-safe. Provided the properties are set and not changed afterward, a single instance of this class may be used by an entire desktop application safely. Initializes a new instance of the class. The endpoints and behavior of the Service Provider. The host's method of storing and recalling tokens and secrets. Begins an OAuth authorization request. Extra parameters to add to the request token message. Optional. Extra parameters to add to the redirect to Service Provider message. Optional. The request token that must be exchanged for an access token after the user has provided authorization. The URL to open a browser window to allow the user to provide authorization. Exchanges a given request token for access token. The request token that the user has authorized. The access token assigned by the Service Provider. Exchanges a given request token for access token. The request token that the user has authorized. The verifier code typed in by the user. Must not be Null for OAuth 1.0a service providers and later. The access token assigned by the Service Provider. A website or application that uses OAuth to access the Service Provider on behalf of the User. The methods on this class are thread-safe. Provided the properties are set and not changed afterward, a single instance of this class may be used by an entire web application safely. Initializes a new instance of the class. The endpoints and behavior of the Service Provider. The host's method of storing and recalling tokens and secrets. Begins an OAuth authorization request and redirects the user to the Service Provider to provide that authorization. Upon successful authorization, the user is redirected back to the current page. The pending user agent redirect based message to be sent as an HttpResponse. Requires HttpContext.Current. Prepares an OAuth message that begins an authorization request that will redirect the user to the Service Provider to provide that authorization. An optional Consumer URL that the Service Provider should redirect the User Agent to upon successful authorization. Extra parameters to add to the request token message. Optional. Extra parameters to add to the redirect to Service Provider message. Optional. The pending user agent redirect based message to be sent as an HttpResponse. Processes an incoming authorization-granted message from an SP and obtains an access token. The access token, or null if no incoming authorization message was recognized. Requires HttpContext.Current. Processes an incoming authorization-granted message from an SP and obtains an access token. The incoming HTTP request. The access token, or null if no incoming authorization message was recognized. ================================================ FILE: packages/DotNetOpenAuth.OAuth.Consumer.4.3.0.13117/lib/net40-full/DotNetOpenAuth.OAuth.Consumer.xml ================================================ DotNetOpenAuth.OAuth.Consumer A token manager for use by a web site in its role as a consumer of an individual ServiceProvider. Gets the consumer key. The consumer key. Gets the consumer secret. The consumer secret. The messaging channel for OAuth 1.0(a) Consumers. Initializes a new instance of the class. The binding element to use for signing. The web application store to use for nonces. The token manager instance to use. The security settings. The message factory. Gets the consumer secret for a given consumer key. The consumer key. The consumer secret. Initializes the binding elements for the OAuth channel. The signing binding element. The nonce store. An array of binding elements used to initialize the channel. An OAuth-protocol specific implementation of the interface. Initializes a new instance of the class. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. The request messages are: UserAuthorizationResponse Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. Null on a Consumer site that is receiving an indirect message from the Service Provider. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. The response messages are: UnauthorizedTokenResponse AuthorizedTokenResponse A binding element that signs outgoing messages and verifies the signature on incoming messages. Initializes a new instance of the class. The certificate used to sign outgoing messages. Determines whether the signature on some message is valid. The message to check the signature on. true if the signature on the message is valid; otherwise, false. Calculates a signature for a given message. The message to sign. The signature for the message. This method signs the message per OAuth 1.0 section 9.3. Creates a new object that is a copy of the current instance. A new object that is a copy of this instance. Gets or sets the certificate used to sign outgoing messages. Used only by Consumers. Base class for and types. Initializes a new instance of the class. The endpoints and behavior of the Service Provider. The host's method of storing and recalling tokens and secrets. Obtains an access token for a new account at the Service Provider via 2-legged OAuth. Any applicable parameters to include in the query string of the token request. The access token. The token secret is stored in the . Creates an HTTP handler that automatically applies an OAuth 1 access token and signature to outbound HTTP requests. The result of this method can be supplied to the constructor. The access token to use to authorize each outbound HTTP message. The inner HTTP handler to use. The default uses as the inner handler. An instance. Creates a web request prepared with OAuth authorization that may be further tailored by adding parameters by the caller. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. The initialized WebRequest object. Creates a web request prepared with OAuth authorization that may be further tailored by adding parameters by the caller. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. Extra parameters to include in the message. Must not be null, but may be empty. The initialized WebRequest object. Prepares an authorized request that carries an HTTP multi-part POST, allowing for binary data. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. Extra parameters to include in the message. Must not be null, but may be empty. The initialized WebRequest object. Prepares an HTTP request that has OAuth authorization already attached to it. The OAuth authorization message to attach to the HTTP request. The HttpWebRequest that can be used to send the HTTP request to the remote service provider. If property on the has the flag set and is set to an HTTP method that includes an entity body, the request stream is automatically sent if and only if the dictionary is non-empty. Creates a web request prepared with OAuth authorization that may be further tailored by adding parameters by the caller. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. The initialized WebRequest object. Thrown if the request fails for any reason after it is sent to the Service Provider. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Creates a web request prepared with OAuth authorization that may be further tailored by adding parameters by the caller. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. The initialized WebRequest object. Prepares an OAuth message that begins an authorization request that will redirect the user to the Service Provider to provide that authorization. An optional Consumer URL that the Service Provider should redirect the User Agent to upon successful authorization. Extra parameters to add to the request token message. Optional. Extra parameters to add to the redirect to Service Provider message. Optional. The request token that must be exchanged for an access token after the user has provided authorization. The pending user agent redirect based message to be sent as an HttpResponse. Exchanges a given request token for access token. The request token that the user has authorized. The verifier code. The access token assigned by the Service Provider. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the Consumer Key used to communicate with the Service Provider. Gets the Service Provider that will be accessed. Gets the persistence store for tokens and secrets. Gets the channel to use for sending/receiving messages. Gets the security settings for this consumer. Gets or sets the channel to use for sending/receiving messages. Used by a desktop application to use OAuth to access the Service Provider on behalf of the User. The methods on this class are thread-safe. Provided the properties are set and not changed afterward, a single instance of this class may be used by an entire desktop application safely. Initializes a new instance of the class. The endpoints and behavior of the Service Provider. The host's method of storing and recalling tokens and secrets. Begins an OAuth authorization request. Extra parameters to add to the request token message. Optional. Extra parameters to add to the redirect to Service Provider message. Optional. The request token that must be exchanged for an access token after the user has provided authorization. The URL to open a browser window to allow the user to provide authorization. Exchanges a given request token for access token. The request token that the user has authorized. The access token assigned by the Service Provider. Exchanges a given request token for access token. The request token that the user has authorized. The verifier code typed in by the user. Must not be Null for OAuth 1.0a service providers and later. The access token assigned by the Service Provider. A delegating HTTP handler that signs outgoing HTTP requests with an HMAC-SHA1 signature. A base class for delegating s that sign outgoing HTTP requests per the OAuth 1.0 "3.4 Signature" in RFC 5849. This implements http://tools.ietf.org/html/rfc5849#section-3.4 These are the characters that may be chosen from when forming a random nonce. The default nonce length. The default parameters location. The reference date and time for calculating time stamps. An array containing simply the amperstand character. Initializes a new instance of the class. Initializes a new instance of the class. The inner handler which is responsible for processing the HTTP response messages. Applies OAuth authorization to the specified request. This method is applied automatically to outbound requests that use this message handler instance. However this method may be useful for obtaining the OAuth 1.0 signature without actually sending the request. The request. Sends an HTTP request to the inner handler to send to the server as an asynchronous operation. The HTTP request message to send to the server. A cancellation token to cancel operation. Returns . The task object representing the asynchronous operation. Calculates the signature for the specified buffer. The payload to calculate the signature for. The signature. Gets the OAuth 1.0 signature to apply to the specified request. The outbound HTTP request. The oauth parameters. The value for the "oauth_signature" parameter. Gets the "ConsumerSecret&AccessTokenSecret" string, allowing either property to be empty or null. The concatenated string. This is useful in the PLAINTEXT and HMAC-SHA1 signature algorithms. Escapes a value for transport in a URI, per RFC 3986. The value to escape. Null and empty strings are OK. The escaped value. Never null. Returns the OAuth 1.0 timestamp for the current time. The date time. A string representation of the number of seconds since "the epoch". Constructs the "Base String URI" as described in http://tools.ietf.org/html/rfc5849#section-3.4.1.2 The request URI. The string to include in the signature base string. Constructs the "Signature Base String" as described in http://tools.ietf.org/html/rfc5849#section-3.4.1 The HTTP request message. The oauth parameters. The signature base string. Generates a string of random characters for use as a nonce. The nonce string. Gets the "oauth_" prefixed parameters that should be added to an outbound request. A collection of name=value pairs. Gets a normalized string of the query string parameters included in the request and the additional OAuth parameters. The HTTP request. The oauth parameters that will be added to the request. The normalized string of parameters to included in the signature base string. Gets or sets the location to add OAuth parameters to outbound HTTP requests. Gets or sets the consumer key. The consumer key. Gets or sets the consumer secret. The consumer secret. Gets or sets the access token. The access token. Gets or sets the access token secret. The access token secret. Gets or sets the length of the nonce. The length of the nonce. Gets the signature method to include in the oauth_signature_method parameter. The signature method. The locations that oauth parameters may be added to HTTP requests. The oauth parameters are added to the query string in the URL. An HTTP Authorization header is added with the OAuth scheme. Initializes a new instance of the class. Initializes a new instance of the class. The inner handler which is responsible for processing the HTTP response messages. Calculates the signature for the specified buffer. The payload to calculate the signature for. The signature. Gets the signature method to include in the oauth_signature_method parameter. The signature method. A delegating HTTP handler that signs outgoing HTTP requests with the PLAINTEXT signature. Calculates the signature for the specified buffer. The payload to calculate the signature for. The signature. Always thrown. Gets the OAuth 1.0 signature to apply to the specified request. The outbound HTTP request. The oauth parameters. The value for the "oauth_signature" parameter. Gets the signature method to include in the oauth_signature_method parameter. The signature method. A delegating HTTP handler that signs outgoing HTTP requests with an RSA-SHA1 signature. Calculates the signature for the specified buffer. The payload to calculate the signature for. The signature. Gets or sets the certificate used to sign outgoing messages. Used only by Consumers. Gets the signature method to include in the oauth_signature_method parameter. The signature method. A website or application that uses OAuth to access the Service Provider on behalf of the User. The methods on this class are thread-safe. Provided the properties are set and not changed afterward, a single instance of this class may be used by an entire web application safely. Initializes a new instance of the class. The endpoints and behavior of the Service Provider. The host's method of storing and recalling tokens and secrets. Begins an OAuth authorization request and redirects the user to the Service Provider to provide that authorization. Upon successful authorization, the user is redirected back to the current page. The pending user agent redirect based message to be sent as an HttpResponse. Requires HttpContext.Current. Prepares an OAuth message that begins an authorization request that will redirect the user to the Service Provider to provide that authorization. An optional Consumer URL that the Service Provider should redirect the User Agent to upon successful authorization. Extra parameters to add to the request token message. Optional. Extra parameters to add to the redirect to Service Provider message. Optional. The pending user agent redirect based message to be sent as an HttpResponse. Processes an incoming authorization-granted message from an SP and obtains an access token. The access token, or null if no incoming authorization message was recognized. Requires HttpContext.Current. Processes an incoming authorization-granted message from an SP and obtains an access token. The incoming HTTP request. The access token, or null if no incoming authorization message was recognized. ================================================ FILE: packages/DotNetOpenAuth.OAuth.Consumer.4.3.0.13117/lib/net45-full/DotNetOpenAuth.OAuth.Consumer.xml ================================================ DotNetOpenAuth.OAuth.Consumer A token manager for use by a web site in its role as a consumer of an individual ServiceProvider. Gets the consumer key. The consumer key. Gets the consumer secret. The consumer secret. The messaging channel for OAuth 1.0(a) Consumers. Initializes a new instance of the class. The binding element to use for signing. The web application store to use for nonces. The token manager instance to use. The security settings. The message factory. Gets the consumer secret for a given consumer key. The consumer key. The consumer secret. Initializes the binding elements for the OAuth channel. The signing binding element. The nonce store. An array of binding elements used to initialize the channel. An OAuth-protocol specific implementation of the interface. Initializes a new instance of the class. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. The request messages are: UserAuthorizationResponse Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. Null on a Consumer site that is receiving an indirect message from the Service Provider. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. The response messages are: UnauthorizedTokenResponse AuthorizedTokenResponse A binding element that signs outgoing messages and verifies the signature on incoming messages. Initializes a new instance of the class. The certificate used to sign outgoing messages. Determines whether the signature on some message is valid. The message to check the signature on. true if the signature on the message is valid; otherwise, false. Calculates a signature for a given message. The message to sign. The signature for the message. This method signs the message per OAuth 1.0 section 9.3. Creates a new object that is a copy of the current instance. A new object that is a copy of this instance. Gets or sets the certificate used to sign outgoing messages. Used only by Consumers. Base class for and types. Initializes a new instance of the class. The endpoints and behavior of the Service Provider. The host's method of storing and recalling tokens and secrets. Obtains an access token for a new account at the Service Provider via 2-legged OAuth. Any applicable parameters to include in the query string of the token request. The access token. The token secret is stored in the . Creates an HTTP handler that automatically applies an OAuth 1 access token and signature to outbound HTTP requests. The result of this method can be supplied to the constructor. The access token to use to authorize each outbound HTTP message. The inner HTTP handler to use. The default uses as the inner handler. An instance. Creates a web request prepared with OAuth authorization that may be further tailored by adding parameters by the caller. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. The initialized WebRequest object. Creates a web request prepared with OAuth authorization that may be further tailored by adding parameters by the caller. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. Extra parameters to include in the message. Must not be null, but may be empty. The initialized WebRequest object. Prepares an authorized request that carries an HTTP multi-part POST, allowing for binary data. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. Extra parameters to include in the message. Must not be null, but may be empty. The initialized WebRequest object. Prepares an HTTP request that has OAuth authorization already attached to it. The OAuth authorization message to attach to the HTTP request. The HttpWebRequest that can be used to send the HTTP request to the remote service provider. If property on the has the flag set and is set to an HTTP method that includes an entity body, the request stream is automatically sent if and only if the dictionary is non-empty. Creates a web request prepared with OAuth authorization that may be further tailored by adding parameters by the caller. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. The initialized WebRequest object. Thrown if the request fails for any reason after it is sent to the Service Provider. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Creates a web request prepared with OAuth authorization that may be further tailored by adding parameters by the caller. The URL and method on the Service Provider to send the request to. The access token that permits access to the protected resource. The initialized WebRequest object. Prepares an OAuth message that begins an authorization request that will redirect the user to the Service Provider to provide that authorization. An optional Consumer URL that the Service Provider should redirect the User Agent to upon successful authorization. Extra parameters to add to the request token message. Optional. Extra parameters to add to the redirect to Service Provider message. Optional. The request token that must be exchanged for an access token after the user has provided authorization. The pending user agent redirect based message to be sent as an HttpResponse. Exchanges a given request token for access token. The request token that the user has authorized. The verifier code. The access token assigned by the Service Provider. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the Consumer Key used to communicate with the Service Provider. Gets the Service Provider that will be accessed. Gets the persistence store for tokens and secrets. Gets the channel to use for sending/receiving messages. Gets the security settings for this consumer. Gets or sets the channel to use for sending/receiving messages. Used by a desktop application to use OAuth to access the Service Provider on behalf of the User. The methods on this class are thread-safe. Provided the properties are set and not changed afterward, a single instance of this class may be used by an entire desktop application safely. Initializes a new instance of the class. The endpoints and behavior of the Service Provider. The host's method of storing and recalling tokens and secrets. Begins an OAuth authorization request. Extra parameters to add to the request token message. Optional. Extra parameters to add to the redirect to Service Provider message. Optional. The request token that must be exchanged for an access token after the user has provided authorization. The URL to open a browser window to allow the user to provide authorization. Exchanges a given request token for access token. The request token that the user has authorized. The access token assigned by the Service Provider. Exchanges a given request token for access token. The request token that the user has authorized. The verifier code typed in by the user. Must not be Null for OAuth 1.0a service providers and later. The access token assigned by the Service Provider. A delegating HTTP handler that signs outgoing HTTP requests with an HMAC-SHA1 signature. A base class for delegating s that sign outgoing HTTP requests per the OAuth 1.0 "3.4 Signature" in RFC 5849. This implements http://tools.ietf.org/html/rfc5849#section-3.4 These are the characters that may be chosen from when forming a random nonce. The default nonce length. The default parameters location. The reference date and time for calculating time stamps. An array containing simply the amperstand character. Initializes a new instance of the class. Initializes a new instance of the class. The inner handler which is responsible for processing the HTTP response messages. Applies OAuth authorization to the specified request. This method is applied automatically to outbound requests that use this message handler instance. However this method may be useful for obtaining the OAuth 1.0 signature without actually sending the request. The request. Sends an HTTP request to the inner handler to send to the server as an asynchronous operation. The HTTP request message to send to the server. A cancellation token to cancel operation. Returns . The task object representing the asynchronous operation. Calculates the signature for the specified buffer. The payload to calculate the signature for. The signature. Gets the OAuth 1.0 signature to apply to the specified request. The outbound HTTP request. The oauth parameters. The value for the "oauth_signature" parameter. Gets the "ConsumerSecret&AccessTokenSecret" string, allowing either property to be empty or null. The concatenated string. This is useful in the PLAINTEXT and HMAC-SHA1 signature algorithms. Escapes a value for transport in a URI, per RFC 3986. The value to escape. Null and empty strings are OK. The escaped value. Never null. Returns the OAuth 1.0 timestamp for the current time. The date time. A string representation of the number of seconds since "the epoch". Constructs the "Base String URI" as described in http://tools.ietf.org/html/rfc5849#section-3.4.1.2 The request URI. The string to include in the signature base string. Constructs the "Signature Base String" as described in http://tools.ietf.org/html/rfc5849#section-3.4.1 The HTTP request message. The oauth parameters. The signature base string. Generates a string of random characters for use as a nonce. The nonce string. Gets the "oauth_" prefixed parameters that should be added to an outbound request. A collection of name=value pairs. Gets a normalized string of the query string parameters included in the request and the additional OAuth parameters. The HTTP request. The oauth parameters that will be added to the request. The normalized string of parameters to included in the signature base string. Gets or sets the location to add OAuth parameters to outbound HTTP requests. Gets or sets the consumer key. The consumer key. Gets or sets the consumer secret. The consumer secret. Gets or sets the access token. The access token. Gets or sets the access token secret. The access token secret. Gets or sets the length of the nonce. The length of the nonce. Gets the signature method to include in the oauth_signature_method parameter. The signature method. The locations that oauth parameters may be added to HTTP requests. The oauth parameters are added to the query string in the URL. An HTTP Authorization header is added with the OAuth scheme. Initializes a new instance of the class. Initializes a new instance of the class. The inner handler which is responsible for processing the HTTP response messages. Calculates the signature for the specified buffer. The payload to calculate the signature for. The signature. Gets the signature method to include in the oauth_signature_method parameter. The signature method. A delegating HTTP handler that signs outgoing HTTP requests with the PLAINTEXT signature. Calculates the signature for the specified buffer. The payload to calculate the signature for. The signature. Always thrown. Gets the OAuth 1.0 signature to apply to the specified request. The outbound HTTP request. The oauth parameters. The value for the "oauth_signature" parameter. Gets the signature method to include in the oauth_signature_method parameter. The signature method. A delegating HTTP handler that signs outgoing HTTP requests with an RSA-SHA1 signature. Calculates the signature for the specified buffer. The payload to calculate the signature for. The signature. Gets or sets the certificate used to sign outgoing messages. Used only by Consumers. Gets the signature method to include in the oauth_signature_method parameter. The signature method. A website or application that uses OAuth to access the Service Provider on behalf of the User. The methods on this class are thread-safe. Provided the properties are set and not changed afterward, a single instance of this class may be used by an entire web application safely. Initializes a new instance of the class. The endpoints and behavior of the Service Provider. The host's method of storing and recalling tokens and secrets. Begins an OAuth authorization request and redirects the user to the Service Provider to provide that authorization. Upon successful authorization, the user is redirected back to the current page. The pending user agent redirect based message to be sent as an HttpResponse. Requires HttpContext.Current. Prepares an OAuth message that begins an authorization request that will redirect the user to the Service Provider to provide that authorization. An optional Consumer URL that the Service Provider should redirect the User Agent to upon successful authorization. Extra parameters to add to the request token message. Optional. Extra parameters to add to the redirect to Service Provider message. Optional. The pending user agent redirect based message to be sent as an HttpResponse. Processes an incoming authorization-granted message from an SP and obtains an access token. The access token, or null if no incoming authorization message was recognized. Requires HttpContext.Current. Processes an incoming authorization-granted message from an SP and obtains an access token. The incoming HTTP request. The access token, or null if no incoming authorization message was recognized. ================================================ FILE: packages/DotNetOpenAuth.OAuth.Core.4.0.3.12153/content/web.config.transform ================================================
================================================ FILE: packages/DotNetOpenAuth.OAuth.Core.4.0.3.12153/lib/net35-full/DotNetOpenAuth.OAuth.xml ================================================ DotNetOpenAuth.OAuth Represents the <oauth/consumer> element in the host's .config file. Gets the name of the security sub-element. Initializes a new instance of the class. Gets or sets the security settings. Security settings that are applicable to consumers. Initializes a new instance of the class. Initializes a programmatically manipulatable bag of these security settings with the settings from the config file. The newly created security settings object. Represents the <oauth> element in the host's .config file. The name of the oauth section. The name of the <consumer> sub-element. The name of the <serviceProvider> sub-element. Initializes a new instance of the class. Gets the configuration section from the .config file. Gets or sets the configuration specific for Consumers. Gets or sets the configuration specific for Service Providers. Represents the <oauth/serviceProvider> element in the host's .config file. The name of the custom store sub-element. Gets the name of the security sub-element. Initializes a new instance of the class. Gets or sets the type to use for storing application state. Gets or sets the security settings. Security settings that are applicable to service providers. Gets the name of the @minimumRequiredOAuthVersion attribute. Gets the name of the @maxAuthorizationTime attribute. Initializes a new instance of the class. Initializes a programmatically manipulatable bag of these security settings with the settings from the config file. The newly created security settings object. Gets or sets the minimum OAuth version a Consumer is required to support in order for this library to interoperate with it. Although the earliest versions of OAuth are supported, for security reasons it may be desirable to require the remote party to support a later version of OAuth. Gets or sets the maximum time a user can take to complete authorization. This time limit serves as a security mitigation against brute force attacks to compromise (unauthorized or authorized) request tokens. Longer time limits is more friendly to slow users or consumers, while shorter time limits provide better security. An interface that must be implemented by message transforms/validators in order to be included in the channel stack. Clones this instance. The cloned instance. Gets or sets the delegate that will initialize the non-serialized properties necessary on a signable message so that its signature can be correctly calculated or verified. Contract class for the interface. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Clones this instance. The cloned instance. Gets or sets the delegate that will initialize the non-serialized properties necessary on a signable message so that its signature can be correctly calculated or verified. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. Utility methods specific to OAuth feature reporting. Records the feature and dependency use. The consumer or service provider. The service. The token manager. The nonce store. An interface OAuth hosts must implement for persistent storage and recall of tokens and secrets for an individual OAuth consumer or service provider. Gets the Token Secret given a request or access token. The request or access token. The secret associated with the given token. Thrown if the secret cannot be found for the given token. Stores a newly generated unauthorized request token, secret, and optional application-specific parameters for later recall. The request message that resulted in the generation of a new unauthorized request token. The response message that includes the unauthorized request token. Thrown if the consumer key is not registered, or a required parameter was not found in the parameters collection. Request tokens stored by this method SHOULD NOT associate any user account with this token. It usually opens up security holes in your application to do so. Instead, you associate a user account with access tokens (not request tokens) in the method. Deletes a request token and its associated secret and stores a new access token and secret. The Consumer that is exchanging its request token for an access token. The Consumer's request token that should be deleted/expired. The new access token that is being issued to the Consumer. The secret associated with the newly issued access token. Any scope of granted privileges associated with the request token from the original call to should be carried over to the new Access Token. To associate a user account with the new access token, HttpContext.Current.User may be useful in an ASP.NET web application within the implementation of this method. Alternatively you may store the access token here without associating with a user account, and wait until WebConsumer.ProcessUserAuthorization or DesktopConsumer.ProcessUserAuthorization return the access token to associate the access token with a user account at that point. Classifies a token as a request token or an access token. The token to classify. Request or Access token, or invalid if the token is not recognized. The code contract class for the interface. Prevents a default instance of the class from being created. Gets the Token Secret given a request or access token. The request or access token. The secret associated with the given token. Thrown if the secret cannot be found for the given token. Stores a newly generated unauthorized request token, secret, and optional application-specific parameters for later recall. The request message that resulted in the generation of a new unauthorized request token. The response message that includes the unauthorized request token. Thrown if the consumer key is not registered, or a required parameter was not found in the parameters collection. Request tokens stored by this method SHOULD NOT associate any user account with this token. It usually opens up security holes in your application to do so. Instead, you associate a user account with access tokens (not request tokens) in the method. Deletes a request token and its associated secret and stores a new access token and secret. The Consumer that is exchanging its request token for an access token. The Consumer's request token that should be deleted/expired. The new access token that is being issued to the Consumer. The secret associated with the newly issued access token. Any scope of granted privileges associated with the request token from the original call to should be carried over to the new Access Token. To associate a user account with the new access token, HttpContext.Current.User may be useful in an ASP.NET web application within the implementation of this method. Alternatively you may store the access token here without associating with a user account, and wait until WebConsumer.ProcessUserAuthorization or DesktopConsumer.ProcessUserAuthorization return the access token to associate the access token with a user account at that point. Classifies a token as a request token or an access token. The token to classify. Request or Access token, or invalid if the token is not recognized. Sets the HTTP Method property on a signed message before the signing module gets to it. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. True if the applied to this binding element and the operation was successful. False otherwise. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. True if the applied to this binding element and the operation was successful. False if the operation did not apply to this message. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Gets the protection offered (if any) by this binding element. Gets or sets the channel that this binding element belongs to. A binding element that signs outgoing messages and verifies the signature on incoming messages. A binding element that signs outgoing messages and verifies the signature on incoming messages. The signature method this binding element uses. Initializes a new instance of the class. The OAuth signature method that the binding element uses. Creates a new object that is a copy of the current instance. A new object that is a copy of this instance. Signs the outgoing message. The message to sign. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Verifies the signature on an incoming message. The message whose signature should be verified. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown if the signature is invalid. Constructs the OAuth Signature Base String and returns the result. The message. The message to derive the signature base string from. The signature base string. This method implements OAuth 1.0 section 9.1. Calculates a signature for a given message. The message to sign. The signature for the message. This method signs the message per OAuth 1.0 section 9.2. Gets the "ConsumerSecret&TokenSecret" string, allowing either property to be empty or null. The message to extract the secrets from. The concatenated string. Determines whether the signature on some message is valid. The message to check the signature on. true if the signature on the message is valid; otherwise, false. Clones this instance. A new instance of the binding element. Implementations of this method need not clone the SignatureVerificationCallback member, as the class does this. Calculates a signature for a given message. The message to sign. The signature for the message. Checks whether this binding element applies to this message. The message that needs to be signed. True if this binding element can be used to sign the message. False otherwise. Sorts parameters according to OAuth signature base string rules. The first parameter to compare. The second parameter to compare. Negative, zero or positive. Gets the message protection provided by this binding element. Gets or sets the channel that this binding element belongs to. Gets or sets the delegate that will initialize the non-serialized properties necessary on a signed message so that its signature can be correctly calculated for verification. Initializes a new instance of the class. Calculates a signature for a given message. The message to sign. The signature for the message. This method signs the message according to OAuth 1.0 section 9.4.1. Checks whether this binding element applies to this message. The message that needs to be signed. True if this binding element can be used to sign the message. False otherwise. Clones this instance. A new instance of the binding element. A binding element that signs outgoing messages and verifies the signature on incoming messages. Initializes a new instance of the class Calculates a signature for a given message. The message to sign. The signature for the message. This method signs the message per OAuth 1.0 section 9.2. Clones this instance. A new instance of the binding element. Code Contract for the class. Prevents a default instance of the SigningBindingElementBaseContract class from being created. Clones this instance. A new instance of the binding element. Implementations of this method need not clone the SignatureVerificationCallback member, as the class does this. Calculates a signature for a given message. The message to sign. The signature for the message. A tamper protection applying binding element that can use any of several given binding elements to apply the protection. The various signing binding elements that may be applicable to a message in preferred use order. Initializes a new instance of the class. The signing binding elements that may be used for some outgoing message, in preferred use order. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Creates a new object that is a copy of the current instance. A new object that is a copy of this instance. Gets or sets the delegate that will initialize the non-serialized properties necessary on a signed message so that its signature can be correctly calculated for verification. May be null for Consumers (who never have to verify signatures). Gets the protection offered (if any) by this binding element. Gets or sets the channel that this binding element belongs to. The two types of tokens that exist in the OAuth protocol. A token that is freely issued to any known Consumer. It does not grant any authorization to access protected resources, but is used as a step in obtaining that access. A token only obtained after the owner of some protected resource(s) has approved a Consumer's access to said resource(s). An unrecognized, expired or invalid token. An URI encoder that translates null references as "oob" instead of an empty/missing argument. The string constant "oob", used to indicate an out-of-band configuration. Initializes a new instance of the class. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Gets the string representation to include in a serialized message when the message part has a null value. Security settings that are applicable to consumers. Security settings that may be applicable to both consumers and service providers. Initializes a new instance of the class. Initializes a new instance of the class. An interface implemented by all OAuth messages that have a request or access token and secret properties. An interface implemented by all OAuth messages that have a request or access token property. Gets or sets the Request or Access Token. Gets or sets the Request or Access Token secret. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to Cannot send access token to Consumer for request token '{0}' before it has been authorized.. Looks up a localized string similar to The access token '{0}' is invalid or expired.. Looks up a localized string similar to Failure looking up secret for consumer or token.. Looks up a localized string similar to oauth_verifier argument was incorrect.. Looks up a localized string similar to An invalid OAuth message received and discarded.. Looks up a localized string similar to The {0} message included extra data which is not allowed.. Looks up a localized string similar to This OAuth service provider requires OAuth consumers to implement OAuth {0}, but this consumer appears to only support {1}.. Looks up a localized string similar to Cannot send OAuth message as multipart POST without an authorization HTTP header because sensitive data would not be signed.. Looks up a localized string similar to Use of the OpenID+OAuth extension requires that the token manager in use implement the {0} interface.. Looks up a localized string similar to The OpenID Relying Party's realm is not recognized as belonging to the OAuth Consumer identified by the consumer key given.. Looks up a localized string similar to The request URL query MUST NOT contain any OAuth Protocol Parameters.. Looks up a localized string similar to The signing element already has been associated with a channel.. Looks up a localized string similar to All signing elements must offer the same message protection.. Looks up a localized string similar to A token in the message was not recognized by the service provider.. Looks up a localized string similar to The RSA-SHA1 signing binding element has not been set with a certificate for signing.. A description of the endpoints on a Service Provider. The field used to store the value of the property. Initializes a new instance of the class. Creates a signing element that includes all the signing elements this service provider supports. The created signing element. Gets or sets the OAuth version supported by the Service Provider. Gets or sets the URL used to obtain an unauthorized Request Token, described in Section 6.1 (Obtaining an Unauthorized Request Token). The request URL query MUST NOT contain any OAuth Protocol Parameters. This is the URL that messages are directed to. Thrown if this property is set to a URI with OAuth protocol parameters. Gets or sets the URL used to obtain User authorization for Consumer access, described in Section 6.2 (Obtaining User Authorization). This is the URL that messages are indirectly (via the user agent) sent to. Gets or sets the URL used to exchange the User-authorized Request Token for an Access Token, described in Section 6.3 (Obtaining an Access Token). This is the URL that messages are directed to. Gets or sets the signing policies that apply to this Service Provider. Gets the OAuth version supported by the Service Provider. A base class for all signed OAuth messages. A base class for all OAuth messages. A store for extra name/value data pairs that are attached to this message. Gets a value indicating whether signing this message is required. Gets a value indicating whether this is a direct or indirect message. The URI to the remote endpoint to send this message to. Backing store for the properties. Backing store for the properties. Initializes a new instance of the class for direct response messages. The level of protection the message requires. The request that asked for this direct response. The OAuth version. Initializes a new instance of the class for direct requests or indirect messages. The level of protection the message requires. A value indicating whether this message requires a direct or indirect transport. The URI that a directed message will be delivered to. The OAuth version. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Returns a human-friendly string describing the message and all serializable properties. The channel that will carry this message. The string representation of this object. Sets a flag indicating that this message is received (as opposed to sent). Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Gets the version of the protocol this message is prepared to implement. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the dictionary of additional name/value fields tacked on to this message. Gets the URI to the Service Provider endpoint to send this message to. Gets the preferred method of transport for the message. Gets the originating request message that caused this response to be formed. Gets or sets a value indicating whether security sensitive strings are emitted from the ToString() method. Gets a value indicating whether this message was deserialized as an incoming message. Gets the version of the protocol this message is prepared to implement. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the dictionary of additional name/value fields tacked on to this message. Gets the preferred method of transport for the message. Gets or sets the URI to the Service Provider endpoint to send this message to. Gets the originating request message that caused this response to be formed. An interface that OAuth messages implement to support signing. Gets or sets the method used to sign the message. Gets or sets the Token Secret used to sign the message. Gets or sets the Consumer key. Gets or sets the Consumer Secret used to sign the message. Gets or sets the HTTP method that will be used to transmit the message. Gets or sets the URL of the intended receiver of this message. The reference date and time for calculating time stamps. The number of seconds since 1/1/1970, consistent with the OAuth timestamp requirement. Initializes a new instance of the class. A value indicating whether this message requires a direct or indirect transport. The URI that a directed message will be delivered to. The OAuth version. Gets or sets the signature method used to sign the request. Gets or sets the Token Secret used to sign the message. Gets or sets the Consumer key. Gets or sets the Consumer Secret used to sign the message. Gets or sets the HTTP method that will be used to transmit the message. Gets or sets the URI to the Service Provider endpoint to send this message to. Gets or sets the message signature. Gets or sets the OAuth timestamp of the message. Gets the context within which the nonce must be unique. The consumer key. Gets or sets the message nonce used for replay detection. Gets or sets the original message parts, before any normalization or default values were assigned. Gets or sets the original message parts, before any normalization or default values were assigned. Gets or sets the signature method used to sign the request. Gets or sets the Token Secret used to sign the message. Gets or sets the Consumer Secret used to sign the message. Gets or sets the HTTP method that will be used to transmit the message. Gets or sets the message signature. Gets or sets the version of the protocol this message was created with. Security settings that are applicable to service providers. Initializes a new instance of the class. Gets or sets the minimum required version of OAuth that must be implemented by a Consumer. Gets or sets the maximum time a user can take to complete authorization. This time limit serves as a security mitigation against brute force attacks to compromise (unauthorized or authorized) request tokens. Longer time limits is more friendly to slow users or consumers, while shorter time limits provide better security. A direct message sent by the Consumer to exchange an authorized Request Token for an Access Token and Token Secret. The class is sealed because the OAuth spec forbids adding parameters to this message. Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The OAuth version. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Gets or sets the Token. Gets or sets the verification code received by the Consumer from the Service Provider in the property. Gets or sets the authorized Request Token used to obtain authorization. A message attached to a request for protected resources that provides the necessary credentials to be granted access to those resources. A store for the binary data that is carried in the message. Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The OAuth version. Gets or sets the Token. Gets or sets the Access Token. In addition to just allowing OAuth to verify a valid message, this property is useful on the Service Provider to verify that the access token has proper authorization for the resource being requested, and to know the context around which user provided the authorization. Gets the parts of the message that carry binary data. A list of parts. Never null. Gets a value indicating whether this message should be sent as multi-part POST. A direct message sent from Service Provider to Consumer in response to a Consumer's request. Initializes a new instance of the class. The originating request. Gets or sets the Access Token assigned by the Service Provider. Gets or sets the Request or Access Token. Gets or sets the Request or Access Token secret. Gets the extra, non-OAuth parameters that will be included in the message. Gets or sets the Token Secret. A message used to redirect the user from a Service Provider to a Consumer's web site. The class is sealed because extra parameters are determined by the callback URI provided by the Consumer. Initializes a new instance of the class. The URI of the Consumer endpoint to send this message to. The OAuth version. Gets or sets the Request or Access Token. Gets or sets the verification code that must accompany the request to exchange the authorized request token for an access token. An unguessable value passed to the Consumer via the User and REQUIRED to complete the process. If the Consumer did not provide a callback URL, the Service Provider SHOULD display the value of the verification code, and instruct the User to manually inform the Consumer that authorization is completed. If the Service Provider knows a Consumer to be running on a mobile device or set-top box, the Service Provider SHOULD ensure that the verifier value is suitable for manual entry. Gets or sets the Request Token. A message used to redirect the user from a Consumer to a Service Provider's web site so the Service Provider can ask the user to authorize the Consumer's access to some protected resource(s). Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The request token. The OAuth version. Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The OAuth version. Gets or sets the Request or Access Token. Gets the extra, non-OAuth parameters that will be included in the message. Gets a value indicating whether this is a safe OAuth authorization request. true if the Consumer is using OAuth 1.0a or later; otherwise, false. Gets or sets the Request Token obtained in the previous step. The Service Provider MAY declare this parameter as REQUIRED, or accept requests to the User Authorization URL without it, in which case it will prompt the User to enter it manually. Gets or sets a URL the Service Provider will use to redirect the User back to the Consumer when Obtaining User Authorization is complete. Optional. A direct message sent from Service Provider to Consumer in response to a Consumer's request. Initializes a new instance of the class. The unauthorized request token message that this message is being generated in response to. The request token. The token secret. This constructor is used by the Service Provider to send the message. Initializes a new instance of the class. The originating request. The OAuth version. This constructor is used by the consumer to deserialize the message. Gets or sets the Request or Access Token. Gets or sets the Request or Access Token secret. Gets the extra, non-OAuth parameters that will be included in the message. Gets or sets the Request Token. Gets the original request for an unauthorized token. Gets or sets the Token Secret. Gets a value indicating whether the Service Provider recognized the callback parameter in the request. An OAuth-specific implementation of the class. Initializes a new instance of the class. The binding element to use for signing. The ITokenManager instance to use. The security settings. An injected message type provider instance. Except for mock testing, this should always be one of OAuthConsumerMessageFactory or OAuthServiceProviderMessageFactory. The binding elements. Uri-escapes the names and values in a dictionary per OAuth 1.0 section 5.1. The message with data to encode. A dictionary of name-value pairs with their strings encoded. Initializes a web request for sending by attaching a message to it. Use this method to prepare a protected resource request that you do NOT expect an OAuth message response to. The message to attach. The initialized web request. Initializes the binding elements for the OAuth channel. The signing binding element. The nonce store. An array of binding elements used to initialize the channel. Searches an incoming HTTP request for data that could be used to assemble a protocol request message. The HTTP request to search. The deserialized message, if one is found. Null otherwise. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Prepares an HTTP request that carries a given message. The message to send. The prepared to send the request. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec V1.0 section 5.3. Gets the consumer secret for a given consumer key. The consumer key. A consumer secret. Uri-escapes the names and values in a dictionary per OAuth 1.0 section 5.1. The dictionary with names and values to encode. The dictionary to add the encoded pairs to. Gets the HTTP method to use for a message. The message. "POST", "GET" or some other similar http verb. Prepares to send a request to the Service Provider via the Authorization header. The message to be transmitted to the ServiceProvider. The web request ready to send. If the message has non-empty ExtraData in it, the request stream is sent to the server automatically. If it is empty, the request stream must be sent by the caller. This method implements OAuth 1.0 section 5.2, item #1 (described in section 5.4). Fills out the secrets in a message so that signing/verification can be performed. The message about to be signed or whose signature is about to be verified. Gets or sets the Consumer web application path. Gets the token manager being used. A direct message sent from Consumer to Service Provider to request a Request Token. Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The OAuth version. Gets or sets the absolute URL to which the Service Provider will redirect the User back when the Obtaining User Authorization step is completed. The callback URL; or null if the Consumer is unable to receive callbacks or a callback URL has been established via other means. Gets the extra, non-OAuth parameters that will be included in the message. A binding element that signs outgoing messages and verifies the signature on incoming messages. The name of the hash algorithm to use. Initializes a new instance of the class. An enumeration of the OAuth protocol versions supported by this library. OAuth 1.0 specification OAuth 1.0a specification Constants used in the OAuth protocol. OAuth Protocol Parameter names and values are case sensitive. Each OAuth Protocol Parameters MUST NOT appear more than once per request, and are REQUIRED unless otherwise noted, per OAuth 1.0 section 5. The namespace to use for V1.0 of the protocol. The prefix used for all key names in the protocol. The string representation of a instance to be used to represent OAuth 1.0a. The scheme to use in Authorization header message requests. Gets the instance with values initialized for V1.0 of the protocol. Gets the instance with values initialized for V1.0a of the protocol. A list of all supported OAuth versions, in order starting from newest version. The default (or most recent) supported version of the OAuth protocol. The namespace to use for this version of the protocol. Initializes a new instance of the class. Gets the OAuth Protocol instance to use for the given version. The OAuth version to get. A matching instance. Gets the OAuth Protocol instance to use for the given version. The OAuth version to get. A matching instance. Gets the OAuth version this instance represents. Gets the version to declare on the wire. Gets the enum value for the instance. Gets the namespace to use for this version of the protocol. ================================================ FILE: packages/DotNetOpenAuth.OAuth.Core.4.0.3.12153/lib/net40-full/DotNetOpenAuth.OAuth.xml ================================================ DotNetOpenAuth.OAuth Represents the <oauth/consumer> element in the host's .config file. Gets the name of the security sub-element. Initializes a new instance of the class. Gets or sets the security settings. Security settings that are applicable to consumers. Initializes a new instance of the class. Initializes a programmatically manipulatable bag of these security settings with the settings from the config file. The newly created security settings object. Represents the <oauth> element in the host's .config file. The name of the oauth section. The name of the <consumer> sub-element. The name of the <serviceProvider> sub-element. Initializes a new instance of the class. Gets the configuration section from the .config file. Gets or sets the configuration specific for Consumers. Gets or sets the configuration specific for Service Providers. Represents the <oauth/serviceProvider> element in the host's .config file. The name of the custom store sub-element. Gets the name of the security sub-element. Initializes a new instance of the class. Gets or sets the type to use for storing application state. Gets or sets the security settings. Security settings that are applicable to service providers. Gets the name of the @minimumRequiredOAuthVersion attribute. Gets the name of the @maxAuthorizationTime attribute. Initializes a new instance of the class. Initializes a programmatically manipulatable bag of these security settings with the settings from the config file. The newly created security settings object. Gets or sets the minimum OAuth version a Consumer is required to support in order for this library to interoperate with it. Although the earliest versions of OAuth are supported, for security reasons it may be desirable to require the remote party to support a later version of OAuth. Gets or sets the maximum time a user can take to complete authorization. This time limit serves as a security mitigation against brute force attacks to compromise (unauthorized or authorized) request tokens. Longer time limits is more friendly to slow users or consumers, while shorter time limits provide better security. An interface that must be implemented by message transforms/validators in order to be included in the channel stack. Clones this instance. The cloned instance. Gets or sets the delegate that will initialize the non-serialized properties necessary on a signable message so that its signature can be correctly calculated or verified. Contract class for the interface. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Clones this instance. The cloned instance. Gets or sets the delegate that will initialize the non-serialized properties necessary on a signable message so that its signature can be correctly calculated or verified. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. Utility methods specific to OAuth feature reporting. Records the feature and dependency use. The consumer or service provider. The service. The token manager. The nonce store. An interface OAuth hosts must implement for persistent storage and recall of tokens and secrets for an individual OAuth consumer or service provider. Gets the Token Secret given a request or access token. The request or access token. The secret associated with the given token. Thrown if the secret cannot be found for the given token. Stores a newly generated unauthorized request token, secret, and optional application-specific parameters for later recall. The request message that resulted in the generation of a new unauthorized request token. The response message that includes the unauthorized request token. Thrown if the consumer key is not registered, or a required parameter was not found in the parameters collection. Request tokens stored by this method SHOULD NOT associate any user account with this token. It usually opens up security holes in your application to do so. Instead, you associate a user account with access tokens (not request tokens) in the method. Deletes a request token and its associated secret and stores a new access token and secret. The Consumer that is exchanging its request token for an access token. The Consumer's request token that should be deleted/expired. The new access token that is being issued to the Consumer. The secret associated with the newly issued access token. Any scope of granted privileges associated with the request token from the original call to should be carried over to the new Access Token. To associate a user account with the new access token, HttpContext.Current.User may be useful in an ASP.NET web application within the implementation of this method. Alternatively you may store the access token here without associating with a user account, and wait until WebConsumer.ProcessUserAuthorization or DesktopConsumer.ProcessUserAuthorization return the access token to associate the access token with a user account at that point. Classifies a token as a request token or an access token. The token to classify. Request or Access token, or invalid if the token is not recognized. The code contract class for the interface. Prevents a default instance of the class from being created. Gets the Token Secret given a request or access token. The request or access token. The secret associated with the given token. Thrown if the secret cannot be found for the given token. Stores a newly generated unauthorized request token, secret, and optional application-specific parameters for later recall. The request message that resulted in the generation of a new unauthorized request token. The response message that includes the unauthorized request token. Thrown if the consumer key is not registered, or a required parameter was not found in the parameters collection. Request tokens stored by this method SHOULD NOT associate any user account with this token. It usually opens up security holes in your application to do so. Instead, you associate a user account with access tokens (not request tokens) in the method. Deletes a request token and its associated secret and stores a new access token and secret. The Consumer that is exchanging its request token for an access token. The Consumer's request token that should be deleted/expired. The new access token that is being issued to the Consumer. The secret associated with the newly issued access token. Any scope of granted privileges associated with the request token from the original call to should be carried over to the new Access Token. To associate a user account with the new access token, HttpContext.Current.User may be useful in an ASP.NET web application within the implementation of this method. Alternatively you may store the access token here without associating with a user account, and wait until WebConsumer.ProcessUserAuthorization or DesktopConsumer.ProcessUserAuthorization return the access token to associate the access token with a user account at that point. Classifies a token as a request token or an access token. The token to classify. Request or Access token, or invalid if the token is not recognized. Sets the HTTP Method property on a signed message before the signing module gets to it. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. True if the applied to this binding element and the operation was successful. False otherwise. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. True if the applied to this binding element and the operation was successful. False if the operation did not apply to this message. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Gets the protection offered (if any) by this binding element. Gets or sets the channel that this binding element belongs to. A binding element that signs outgoing messages and verifies the signature on incoming messages. A binding element that signs outgoing messages and verifies the signature on incoming messages. The signature method this binding element uses. Initializes a new instance of the class. The OAuth signature method that the binding element uses. Creates a new object that is a copy of the current instance. A new object that is a copy of this instance. Signs the outgoing message. The message to sign. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Verifies the signature on an incoming message. The message whose signature should be verified. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown if the signature is invalid. Constructs the OAuth Signature Base String and returns the result. The message. The message to derive the signature base string from. The signature base string. This method implements OAuth 1.0 section 9.1. Calculates a signature for a given message. The message to sign. The signature for the message. This method signs the message per OAuth 1.0 section 9.2. Gets the "ConsumerSecret&TokenSecret" string, allowing either property to be empty or null. The message to extract the secrets from. The concatenated string. Determines whether the signature on some message is valid. The message to check the signature on. true if the signature on the message is valid; otherwise, false. Clones this instance. A new instance of the binding element. Implementations of this method need not clone the SignatureVerificationCallback member, as the class does this. Calculates a signature for a given message. The message to sign. The signature for the message. Checks whether this binding element applies to this message. The message that needs to be signed. True if this binding element can be used to sign the message. False otherwise. Sorts parameters according to OAuth signature base string rules. The first parameter to compare. The second parameter to compare. Negative, zero or positive. Gets the message protection provided by this binding element. Gets or sets the channel that this binding element belongs to. Gets or sets the delegate that will initialize the non-serialized properties necessary on a signed message so that its signature can be correctly calculated for verification. Initializes a new instance of the class. Calculates a signature for a given message. The message to sign. The signature for the message. This method signs the message according to OAuth 1.0 section 9.4.1. Checks whether this binding element applies to this message. The message that needs to be signed. True if this binding element can be used to sign the message. False otherwise. Clones this instance. A new instance of the binding element. A binding element that signs outgoing messages and verifies the signature on incoming messages. Initializes a new instance of the class Calculates a signature for a given message. The message to sign. The signature for the message. This method signs the message per OAuth 1.0 section 9.2. Clones this instance. A new instance of the binding element. Code Contract for the class. Prevents a default instance of the SigningBindingElementBaseContract class from being created. Clones this instance. A new instance of the binding element. Implementations of this method need not clone the SignatureVerificationCallback member, as the class does this. Calculates a signature for a given message. The message to sign. The signature for the message. A tamper protection applying binding element that can use any of several given binding elements to apply the protection. The various signing binding elements that may be applicable to a message in preferred use order. Initializes a new instance of the class. The signing binding elements that may be used for some outgoing message, in preferred use order. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Creates a new object that is a copy of the current instance. A new object that is a copy of this instance. Gets or sets the delegate that will initialize the non-serialized properties necessary on a signed message so that its signature can be correctly calculated for verification. May be null for Consumers (who never have to verify signatures). Gets the protection offered (if any) by this binding element. Gets or sets the channel that this binding element belongs to. The two types of tokens that exist in the OAuth protocol. A token that is freely issued to any known Consumer. It does not grant any authorization to access protected resources, but is used as a step in obtaining that access. A token only obtained after the owner of some protected resource(s) has approved a Consumer's access to said resource(s). An unrecognized, expired or invalid token. An URI encoder that translates null references as "oob" instead of an empty/missing argument. The string constant "oob", used to indicate an out-of-band configuration. Initializes a new instance of the class. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Gets the string representation to include in a serialized message when the message part has a null value. Security settings that are applicable to consumers. Security settings that may be applicable to both consumers and service providers. Initializes a new instance of the class. Initializes a new instance of the class. An interface implemented by all OAuth messages that have a request or access token and secret properties. An interface implemented by all OAuth messages that have a request or access token property. Gets or sets the Request or Access Token. Gets or sets the Request or Access Token secret. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to Cannot send access token to Consumer for request token '{0}' before it has been authorized.. Looks up a localized string similar to The access token '{0}' is invalid or expired.. Looks up a localized string similar to Failure looking up secret for consumer or token.. Looks up a localized string similar to oauth_verifier argument was incorrect.. Looks up a localized string similar to An invalid OAuth message received and discarded.. Looks up a localized string similar to The {0} message included extra data which is not allowed.. Looks up a localized string similar to This OAuth service provider requires OAuth consumers to implement OAuth {0}, but this consumer appears to only support {1}.. Looks up a localized string similar to Cannot send OAuth message as multipart POST without an authorization HTTP header because sensitive data would not be signed.. Looks up a localized string similar to Use of the OpenID+OAuth extension requires that the token manager in use implement the {0} interface.. Looks up a localized string similar to The OpenID Relying Party's realm is not recognized as belonging to the OAuth Consumer identified by the consumer key given.. Looks up a localized string similar to The request URL query MUST NOT contain any OAuth Protocol Parameters.. Looks up a localized string similar to The signing element already has been associated with a channel.. Looks up a localized string similar to All signing elements must offer the same message protection.. Looks up a localized string similar to A token in the message was not recognized by the service provider.. Looks up a localized string similar to The RSA-SHA1 signing binding element has not been set with a certificate for signing.. A description of the endpoints on a Service Provider. The field used to store the value of the property. Initializes a new instance of the class. Creates a signing element that includes all the signing elements this service provider supports. The created signing element. Gets or sets the OAuth version supported by the Service Provider. Gets or sets the URL used to obtain an unauthorized Request Token, described in Section 6.1 (Obtaining an Unauthorized Request Token). The request URL query MUST NOT contain any OAuth Protocol Parameters. This is the URL that messages are directed to. Thrown if this property is set to a URI with OAuth protocol parameters. Gets or sets the URL used to obtain User authorization for Consumer access, described in Section 6.2 (Obtaining User Authorization). This is the URL that messages are indirectly (via the user agent) sent to. Gets or sets the URL used to exchange the User-authorized Request Token for an Access Token, described in Section 6.3 (Obtaining an Access Token). This is the URL that messages are directed to. Gets or sets the signing policies that apply to this Service Provider. Gets the OAuth version supported by the Service Provider. A base class for all signed OAuth messages. A base class for all OAuth messages. A store for extra name/value data pairs that are attached to this message. Gets a value indicating whether signing this message is required. Gets a value indicating whether this is a direct or indirect message. The URI to the remote endpoint to send this message to. Backing store for the properties. Backing store for the properties. Initializes a new instance of the class for direct response messages. The level of protection the message requires. The request that asked for this direct response. The OAuth version. Initializes a new instance of the class for direct requests or indirect messages. The level of protection the message requires. A value indicating whether this message requires a direct or indirect transport. The URI that a directed message will be delivered to. The OAuth version. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Returns a human-friendly string describing the message and all serializable properties. The channel that will carry this message. The string representation of this object. Sets a flag indicating that this message is received (as opposed to sent). Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Gets the version of the protocol this message is prepared to implement. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the dictionary of additional name/value fields tacked on to this message. Gets the URI to the Service Provider endpoint to send this message to. Gets the preferred method of transport for the message. Gets the originating request message that caused this response to be formed. Gets or sets a value indicating whether security sensitive strings are emitted from the ToString() method. Gets a value indicating whether this message was deserialized as an incoming message. Gets the version of the protocol this message is prepared to implement. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the dictionary of additional name/value fields tacked on to this message. Gets the preferred method of transport for the message. Gets or sets the URI to the Service Provider endpoint to send this message to. Gets the originating request message that caused this response to be formed. An interface that OAuth messages implement to support signing. Gets or sets the method used to sign the message. Gets or sets the Token Secret used to sign the message. Gets or sets the Consumer key. Gets or sets the Consumer Secret used to sign the message. Gets or sets the HTTP method that will be used to transmit the message. Gets or sets the URL of the intended receiver of this message. The reference date and time for calculating time stamps. The number of seconds since 1/1/1970, consistent with the OAuth timestamp requirement. Initializes a new instance of the class. A value indicating whether this message requires a direct or indirect transport. The URI that a directed message will be delivered to. The OAuth version. Gets or sets the signature method used to sign the request. Gets or sets the Token Secret used to sign the message. Gets or sets the Consumer key. Gets or sets the Consumer Secret used to sign the message. Gets or sets the HTTP method that will be used to transmit the message. Gets or sets the URI to the Service Provider endpoint to send this message to. Gets or sets the message signature. Gets or sets the OAuth timestamp of the message. Gets the context within which the nonce must be unique. The consumer key. Gets or sets the message nonce used for replay detection. Gets or sets the original message parts, before any normalization or default values were assigned. Gets or sets the original message parts, before any normalization or default values were assigned. Gets or sets the signature method used to sign the request. Gets or sets the Token Secret used to sign the message. Gets or sets the Consumer Secret used to sign the message. Gets or sets the HTTP method that will be used to transmit the message. Gets or sets the message signature. Gets or sets the version of the protocol this message was created with. Security settings that are applicable to service providers. Initializes a new instance of the class. Gets or sets the minimum required version of OAuth that must be implemented by a Consumer. Gets or sets the maximum time a user can take to complete authorization. This time limit serves as a security mitigation against brute force attacks to compromise (unauthorized or authorized) request tokens. Longer time limits is more friendly to slow users or consumers, while shorter time limits provide better security. A direct message sent by the Consumer to exchange an authorized Request Token for an Access Token and Token Secret. The class is sealed because the OAuth spec forbids adding parameters to this message. Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The OAuth version. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Gets or sets the Token. Gets or sets the verification code received by the Consumer from the Service Provider in the property. Gets or sets the authorized Request Token used to obtain authorization. A message attached to a request for protected resources that provides the necessary credentials to be granted access to those resources. A store for the binary data that is carried in the message. Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The OAuth version. Gets or sets the Token. Gets or sets the Access Token. In addition to just allowing OAuth to verify a valid message, this property is useful on the Service Provider to verify that the access token has proper authorization for the resource being requested, and to know the context around which user provided the authorization. Gets the parts of the message that carry binary data. A list of parts. Never null. Gets a value indicating whether this message should be sent as multi-part POST. A direct message sent from Service Provider to Consumer in response to a Consumer's request. Initializes a new instance of the class. The originating request. Gets or sets the Access Token assigned by the Service Provider. Gets or sets the Request or Access Token. Gets or sets the Request or Access Token secret. Gets the extra, non-OAuth parameters that will be included in the message. Gets or sets the Token Secret. A message used to redirect the user from a Service Provider to a Consumer's web site. The class is sealed because extra parameters are determined by the callback URI provided by the Consumer. Initializes a new instance of the class. The URI of the Consumer endpoint to send this message to. The OAuth version. Gets or sets the Request or Access Token. Gets or sets the verification code that must accompany the request to exchange the authorized request token for an access token. An unguessable value passed to the Consumer via the User and REQUIRED to complete the process. If the Consumer did not provide a callback URL, the Service Provider SHOULD display the value of the verification code, and instruct the User to manually inform the Consumer that authorization is completed. If the Service Provider knows a Consumer to be running on a mobile device or set-top box, the Service Provider SHOULD ensure that the verifier value is suitable for manual entry. Gets or sets the Request Token. A message used to redirect the user from a Consumer to a Service Provider's web site so the Service Provider can ask the user to authorize the Consumer's access to some protected resource(s). Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The request token. The OAuth version. Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The OAuth version. Gets or sets the Request or Access Token. Gets the extra, non-OAuth parameters that will be included in the message. Gets a value indicating whether this is a safe OAuth authorization request. true if the Consumer is using OAuth 1.0a or later; otherwise, false. Gets or sets the Request Token obtained in the previous step. The Service Provider MAY declare this parameter as REQUIRED, or accept requests to the User Authorization URL without it, in which case it will prompt the User to enter it manually. Gets or sets a URL the Service Provider will use to redirect the User back to the Consumer when Obtaining User Authorization is complete. Optional. A direct message sent from Service Provider to Consumer in response to a Consumer's request. Initializes a new instance of the class. The unauthorized request token message that this message is being generated in response to. The request token. The token secret. This constructor is used by the Service Provider to send the message. Initializes a new instance of the class. The originating request. The OAuth version. This constructor is used by the consumer to deserialize the message. Gets or sets the Request or Access Token. Gets or sets the Request or Access Token secret. Gets the extra, non-OAuth parameters that will be included in the message. Gets or sets the Request Token. Gets the original request for an unauthorized token. Gets or sets the Token Secret. Gets a value indicating whether the Service Provider recognized the callback parameter in the request. An OAuth-specific implementation of the class. Initializes a new instance of the class. The binding element to use for signing. The ITokenManager instance to use. The security settings. An injected message type provider instance. Except for mock testing, this should always be one of OAuthConsumerMessageFactory or OAuthServiceProviderMessageFactory. The binding elements. Uri-escapes the names and values in a dictionary per OAuth 1.0 section 5.1. The message with data to encode. A dictionary of name-value pairs with their strings encoded. Initializes a web request for sending by attaching a message to it. Use this method to prepare a protected resource request that you do NOT expect an OAuth message response to. The message to attach. The initialized web request. Initializes the binding elements for the OAuth channel. The signing binding element. The nonce store. An array of binding elements used to initialize the channel. Searches an incoming HTTP request for data that could be used to assemble a protocol request message. The HTTP request to search. The deserialized message, if one is found. Null otherwise. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Prepares an HTTP request that carries a given message. The message to send. The prepared to send the request. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec V1.0 section 5.3. Gets the consumer secret for a given consumer key. The consumer key. A consumer secret. Uri-escapes the names and values in a dictionary per OAuth 1.0 section 5.1. The dictionary with names and values to encode. The dictionary to add the encoded pairs to. Gets the HTTP method to use for a message. The message. "POST", "GET" or some other similar http verb. Prepares to send a request to the Service Provider via the Authorization header. The message to be transmitted to the ServiceProvider. The web request ready to send. If the message has non-empty ExtraData in it, the request stream is sent to the server automatically. If it is empty, the request stream must be sent by the caller. This method implements OAuth 1.0 section 5.2, item #1 (described in section 5.4). Fills out the secrets in a message so that signing/verification can be performed. The message about to be signed or whose signature is about to be verified. Gets or sets the Consumer web application path. Gets the token manager being used. A direct message sent from Consumer to Service Provider to request a Request Token. Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The OAuth version. Gets or sets the absolute URL to which the Service Provider will redirect the User back when the Obtaining User Authorization step is completed. The callback URL; or null if the Consumer is unable to receive callbacks or a callback URL has been established via other means. Gets the extra, non-OAuth parameters that will be included in the message. A binding element that signs outgoing messages and verifies the signature on incoming messages. The name of the hash algorithm to use. Initializes a new instance of the class. An enumeration of the OAuth protocol versions supported by this library. OAuth 1.0 specification OAuth 1.0a specification Constants used in the OAuth protocol. OAuth Protocol Parameter names and values are case sensitive. Each OAuth Protocol Parameters MUST NOT appear more than once per request, and are REQUIRED unless otherwise noted, per OAuth 1.0 section 5. The namespace to use for V1.0 of the protocol. The prefix used for all key names in the protocol. The string representation of a instance to be used to represent OAuth 1.0a. The scheme to use in Authorization header message requests. Gets the instance with values initialized for V1.0 of the protocol. Gets the instance with values initialized for V1.0a of the protocol. A list of all supported OAuth versions, in order starting from newest version. The default (or most recent) supported version of the OAuth protocol. The namespace to use for this version of the protocol. Initializes a new instance of the class. Gets the OAuth Protocol instance to use for the given version. The OAuth version to get. A matching instance. Gets the OAuth Protocol instance to use for the given version. The OAuth version to get. A matching instance. Gets the OAuth version this instance represents. Gets the version to declare on the wire. Gets the enum value for the instance. Gets the namespace to use for this version of the protocol. ================================================ FILE: packages/DotNetOpenAuth.OAuth.Core.4.3.0.13117/content/web.config.transform ================================================
================================================ FILE: packages/DotNetOpenAuth.OAuth.Core.4.3.0.13117/lib/net35-full/DotNetOpenAuth.OAuth.xml ================================================ DotNetOpenAuth.OAuth Represents the <oauth/consumer> element in the host's .config file. Gets the name of the security sub-element. Initializes a new instance of the class. Gets or sets the security settings. Security settings that are applicable to consumers. Initializes a new instance of the class. Initializes a programmatically manipulatable bag of these security settings with the settings from the config file. The newly created security settings object. Represents the <oauth> element in the host's .config file. The name of the oauth section. The name of the <consumer> sub-element. The name of the <serviceProvider> sub-element. Initializes a new instance of the class. Gets the configuration section from the .config file. Gets or sets the configuration specific for Consumers. Gets or sets the configuration specific for Service Providers. Represents the <oauth/serviceProvider> element in the host's .config file. The name of the custom store sub-element. Gets the name of the security sub-element. Initializes a new instance of the class. Gets or sets the type to use for storing application state. Gets or sets the security settings. Security settings that are applicable to service providers. Gets the name of the @minimumRequiredOAuthVersion attribute. Gets the name of the @maxAuthorizationTime attribute. Initializes a new instance of the class. Initializes a programmatically manipulatable bag of these security settings with the settings from the config file. The newly created security settings object. Gets or sets the minimum OAuth version a Consumer is required to support in order for this library to interoperate with it. Although the earliest versions of OAuth are supported, for security reasons it may be desirable to require the remote party to support a later version of OAuth. Gets or sets the maximum time a user can take to complete authorization. This time limit serves as a security mitigation against brute force attacks to compromise (unauthorized or authorized) request tokens. Longer time limits is more friendly to slow users or consumers, while shorter time limits provide better security. An interface that must be implemented by message transforms/validators in order to be included in the channel stack. Clones this instance. The cloned instance. Gets or sets the delegate that will initialize the non-serialized properties necessary on a signable message so that its signature can be correctly calculated or verified. Contract class for the interface. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Clones this instance. The cloned instance. Gets or sets the delegate that will initialize the non-serialized properties necessary on a signable message so that its signature can be correctly calculated or verified. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. Utility methods specific to OAuth feature reporting. Records the feature and dependency use. The consumer or service provider. The service. The token manager. The nonce store. An interface OAuth hosts must implement for persistent storage and recall of tokens and secrets for an individual OAuth consumer or service provider. Gets the Token Secret given a request or access token. The request or access token. The secret associated with the given token. Thrown if the secret cannot be found for the given token. Stores a newly generated unauthorized request token, secret, and optional application-specific parameters for later recall. The request message that resulted in the generation of a new unauthorized request token. The response message that includes the unauthorized request token. Thrown if the consumer key is not registered, or a required parameter was not found in the parameters collection. Request tokens stored by this method SHOULD NOT associate any user account with this token. It usually opens up security holes in your application to do so. Instead, you associate a user account with access tokens (not request tokens) in the method. Deletes a request token and its associated secret and stores a new access token and secret. The Consumer that is exchanging its request token for an access token. The Consumer's request token that should be deleted/expired. The new access token that is being issued to the Consumer. The secret associated with the newly issued access token. Any scope of granted privileges associated with the request token from the original call to should be carried over to the new Access Token. To associate a user account with the new access token, HttpContext.Current.User may be useful in an ASP.NET web application within the implementation of this method. Alternatively you may store the access token here without associating with a user account, and wait until WebConsumer.ProcessUserAuthorization or DesktopConsumer.ProcessUserAuthorization return the access token to associate the access token with a user account at that point. Classifies a token as a request token or an access token. The token to classify. Request or Access token, or invalid if the token is not recognized. The code contract class for the interface. Prevents a default instance of the class from being created. Gets the Token Secret given a request or access token. The request or access token. The secret associated with the given token. Thrown if the secret cannot be found for the given token. Stores a newly generated unauthorized request token, secret, and optional application-specific parameters for later recall. The request message that resulted in the generation of a new unauthorized request token. The response message that includes the unauthorized request token. Thrown if the consumer key is not registered, or a required parameter was not found in the parameters collection. Request tokens stored by this method SHOULD NOT associate any user account with this token. It usually opens up security holes in your application to do so. Instead, you associate a user account with access tokens (not request tokens) in the method. Deletes a request token and its associated secret and stores a new access token and secret. The Consumer that is exchanging its request token for an access token. The Consumer's request token that should be deleted/expired. The new access token that is being issued to the Consumer. The secret associated with the newly issued access token. Any scope of granted privileges associated with the request token from the original call to should be carried over to the new Access Token. To associate a user account with the new access token, HttpContext.Current.User may be useful in an ASP.NET web application within the implementation of this method. Alternatively you may store the access token here without associating with a user account, and wait until WebConsumer.ProcessUserAuthorization or DesktopConsumer.ProcessUserAuthorization return the access token to associate the access token with a user account at that point. Classifies a token as a request token or an access token. The token to classify. Request or Access token, or invalid if the token is not recognized. Sets the HTTP Method property on a signed message before the signing module gets to it. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. True if the applied to this binding element and the operation was successful. False otherwise. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. True if the applied to this binding element and the operation was successful. False if the operation did not apply to this message. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Gets the protection offered (if any) by this binding element. Gets or sets the channel that this binding element belongs to. A binding element that signs outgoing messages and verifies the signature on incoming messages. A binding element that signs outgoing messages and verifies the signature on incoming messages. The signature method this binding element uses. Initializes a new instance of the class. The OAuth signature method that the binding element uses. Creates a new object that is a copy of the current instance. A new object that is a copy of this instance. Signs the outgoing message. The message to sign. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Verifies the signature on an incoming message. The message whose signature should be verified. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown if the signature is invalid. Constructs the OAuth Signature Base String and returns the result. The message. The message to derive the signature base string from. The signature base string. This method implements OAuth 1.0 section 9.1. Calculates a signature for a given message. The message to sign. The signature for the message. This method signs the message per OAuth 1.0 section 9.2. Gets the "ConsumerSecret&TokenSecret" string, allowing either property to be empty or null. The message to extract the secrets from. The concatenated string. Determines whether the signature on some message is valid. The message to check the signature on. true if the signature on the message is valid; otherwise, false. Clones this instance. A new instance of the binding element. Implementations of this method need not clone the SignatureVerificationCallback member, as the class does this. Calculates a signature for a given message. The message to sign. The signature for the message. Checks whether this binding element applies to this message. The message that needs to be signed. True if this binding element can be used to sign the message. False otherwise. Sorts parameters according to OAuth signature base string rules. The first parameter to compare. The second parameter to compare. Negative, zero or positive. Gets the message protection provided by this binding element. Gets or sets the channel that this binding element belongs to. Gets or sets the delegate that will initialize the non-serialized properties necessary on a signed message so that its signature can be correctly calculated for verification. Initializes a new instance of the class. Calculates a signature for a given message. The message to sign. The signature for the message. This method signs the message according to OAuth 1.0 section 9.4.1. Checks whether this binding element applies to this message. The message that needs to be signed. True if this binding element can be used to sign the message. False otherwise. Clones this instance. A new instance of the binding element. A binding element that signs outgoing messages and verifies the signature on incoming messages. Initializes a new instance of the class Calculates a signature for a given message. The message to sign. The signature for the message. This method signs the message per OAuth 1.0 section 9.2. Clones this instance. A new instance of the binding element. Code Contract for the class. Prevents a default instance of the SigningBindingElementBaseContract class from being created. Clones this instance. A new instance of the binding element. Implementations of this method need not clone the SignatureVerificationCallback member, as the class does this. Calculates a signature for a given message. The message to sign. The signature for the message. A tamper protection applying binding element that can use any of several given binding elements to apply the protection. The various signing binding elements that may be applicable to a message in preferred use order. Initializes a new instance of the class. The signing binding elements that may be used for some outgoing message, in preferred use order. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Creates a new object that is a copy of the current instance. A new object that is a copy of this instance. Gets or sets the delegate that will initialize the non-serialized properties necessary on a signed message so that its signature can be correctly calculated for verification. May be null for Consumers (who never have to verify signatures). Gets the protection offered (if any) by this binding element. Gets or sets the channel that this binding element belongs to. The two types of tokens that exist in the OAuth protocol. A token that is freely issued to any known Consumer. It does not grant any authorization to access protected resources, but is used as a step in obtaining that access. A token only obtained after the owner of some protected resource(s) has approved a Consumer's access to said resource(s). An unrecognized, expired or invalid token. An URI encoder that translates null references as "oob" instead of an empty/missing argument. The string constant "oob", used to indicate an out-of-band configuration. Initializes a new instance of the class. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Gets the string representation to include in a serialized message when the message part has a null value. Security settings that are applicable to consumers. Security settings that may be applicable to both consumers and service providers. Initializes a new instance of the class. Initializes a new instance of the class. An interface implemented by all OAuth messages that have a request or access token and secret properties. An interface implemented by all OAuth messages that have a request or access token property. Gets or sets the Request or Access Token. Gets or sets the Request or Access Token secret. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to Cannot send access token to Consumer for request token '{0}' before it has been authorized.. Looks up a localized string similar to The access token '{0}' is invalid or expired.. Looks up a localized string similar to Failure looking up secret for consumer or token.. Looks up a localized string similar to oauth_verifier argument was incorrect.. Looks up a localized string similar to An invalid OAuth message received and discarded.. Looks up a localized string similar to The {0} message included extra data which is not allowed.. Looks up a localized string similar to This OAuth service provider requires OAuth consumers to implement OAuth {0}, but this consumer appears to only support {1}.. Looks up a localized string similar to Cannot send OAuth message as multipart POST without an authorization HTTP header because sensitive data would not be signed.. Looks up a localized string similar to Use of the OpenID+OAuth extension requires that the token manager in use implement the {0} interface.. Looks up a localized string similar to The OpenID Relying Party's realm is not recognized as belonging to the OAuth Consumer identified by the consumer key given.. Looks up a localized string similar to The request URL query MUST NOT contain any OAuth Protocol Parameters.. Looks up a localized string similar to The signing element already has been associated with a channel.. Looks up a localized string similar to All signing elements must offer the same message protection.. Looks up a localized string similar to A token in the message was not recognized by the service provider.. Looks up a localized string similar to The RSA-SHA1 signing binding element has not been set with a certificate for signing.. A description of the endpoints on a Service Provider. The field used to store the value of the property. Initializes a new instance of the class. Creates a signing element that includes all the signing elements this service provider supports. The created signing element. Gets or sets the OAuth version supported by the Service Provider. Gets or sets the URL used to obtain an unauthorized Request Token, described in Section 6.1 (Obtaining an Unauthorized Request Token). The request URL query MUST NOT contain any OAuth Protocol Parameters. This is the URL that messages are directed to. Thrown if this property is set to a URI with OAuth protocol parameters. Gets or sets the URL used to obtain User authorization for Consumer access, described in Section 6.2 (Obtaining User Authorization). This is the URL that messages are indirectly (via the user agent) sent to. Gets or sets the URL used to exchange the User-authorized Request Token for an Access Token, described in Section 6.3 (Obtaining an Access Token). This is the URL that messages are directed to. Gets or sets the signing policies that apply to this Service Provider. Gets the OAuth version supported by the Service Provider. A base class for all signed OAuth messages. A base class for all OAuth messages. A store for extra name/value data pairs that are attached to this message. Gets a value indicating whether signing this message is required. Gets a value indicating whether this is a direct or indirect message. The URI to the remote endpoint to send this message to. Backing store for the properties. Backing store for the properties. Initializes a new instance of the class for direct response messages. The level of protection the message requires. The request that asked for this direct response. The OAuth version. Initializes a new instance of the class for direct requests or indirect messages. The level of protection the message requires. A value indicating whether this message requires a direct or indirect transport. The URI that a directed message will be delivered to. The OAuth version. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Returns a human-friendly string describing the message and all serializable properties. The channel that will carry this message. The string representation of this object. Sets a flag indicating that this message is received (as opposed to sent). Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Gets the version of the protocol this message is prepared to implement. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the dictionary of additional name/value fields tacked on to this message. Gets the URI to the Service Provider endpoint to send this message to. Gets the preferred method of transport for the message. Gets the originating request message that caused this response to be formed. Gets or sets a value indicating whether security sensitive strings are emitted from the ToString() method. Gets a value indicating whether this message was deserialized as an incoming message. Gets the version of the protocol this message is prepared to implement. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the dictionary of additional name/value fields tacked on to this message. Gets the preferred method of transport for the message. Gets or sets the URI to the Service Provider endpoint to send this message to. Gets the originating request message that caused this response to be formed. An interface that OAuth messages implement to support signing. Gets or sets the method used to sign the message. Gets or sets the Token Secret used to sign the message. Gets or sets the Consumer key. Gets or sets the Consumer Secret used to sign the message. Gets or sets the HTTP method that will be used to transmit the message. Gets or sets the URL of the intended receiver of this message. The reference date and time for calculating time stamps. The number of seconds since 1/1/1970, consistent with the OAuth timestamp requirement. Initializes a new instance of the class. A value indicating whether this message requires a direct or indirect transport. The URI that a directed message will be delivered to. The OAuth version. Gets or sets the signature method used to sign the request. Gets or sets the Token Secret used to sign the message. Gets or sets the Consumer key. Gets or sets the Consumer Secret used to sign the message. Gets or sets the HTTP method that will be used to transmit the message. Gets or sets the URI to the Service Provider endpoint to send this message to. Gets or sets the message signature. Gets or sets the OAuth timestamp of the message. Gets the context within which the nonce must be unique. The consumer key. Gets or sets the message nonce used for replay detection. Gets or sets the original message parts, before any normalization or default values were assigned. Gets or sets the original message parts, before any normalization or default values were assigned. Gets or sets the signature method used to sign the request. Gets or sets the Token Secret used to sign the message. Gets or sets the Consumer Secret used to sign the message. Gets or sets the HTTP method that will be used to transmit the message. Gets or sets the message signature. Gets or sets the version of the protocol this message was created with. Security settings that are applicable to service providers. Initializes a new instance of the class. Gets or sets the minimum required version of OAuth that must be implemented by a Consumer. Gets or sets the maximum time a user can take to complete authorization. This time limit serves as a security mitigation against brute force attacks to compromise (unauthorized or authorized) request tokens. Longer time limits is more friendly to slow users or consumers, while shorter time limits provide better security. A direct message sent by the Consumer to exchange an authorized Request Token for an Access Token and Token Secret. The class is sealed because the OAuth spec forbids adding parameters to this message. Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The OAuth version. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Gets or sets the Token. Gets or sets the verification code received by the Consumer from the Service Provider in the property. Gets or sets the authorized Request Token used to obtain authorization. A message attached to a request for protected resources that provides the necessary credentials to be granted access to those resources. A store for the binary data that is carried in the message. Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The OAuth version. Gets or sets the Token. Gets or sets the Access Token. In addition to just allowing OAuth to verify a valid message, this property is useful on the Service Provider to verify that the access token has proper authorization for the resource being requested, and to know the context around which user provided the authorization. Gets the parts of the message that carry binary data. A list of parts. Never null. Gets a value indicating whether this message should be sent as multi-part POST. A direct message sent from Service Provider to Consumer in response to a Consumer's request. Initializes a new instance of the class. The originating request. Gets or sets the Access Token assigned by the Service Provider. Gets or sets the Request or Access Token. Gets or sets the Request or Access Token secret. Gets the extra, non-OAuth parameters that will be included in the message. Gets or sets the Token Secret. A message used to redirect the user from a Service Provider to a Consumer's web site. The class is sealed because extra parameters are determined by the callback URI provided by the Consumer. Initializes a new instance of the class. The URI of the Consumer endpoint to send this message to. The OAuth version. Gets or sets the Request or Access Token. Gets or sets the verification code that must accompany the request to exchange the authorized request token for an access token. An unguessable value passed to the Consumer via the User and REQUIRED to complete the process. If the Consumer did not provide a callback URL, the Service Provider SHOULD display the value of the verification code, and instruct the User to manually inform the Consumer that authorization is completed. If the Service Provider knows a Consumer to be running on a mobile device or set-top box, the Service Provider SHOULD ensure that the verifier value is suitable for manual entry. Gets or sets the Request Token. A message used to redirect the user from a Consumer to a Service Provider's web site so the Service Provider can ask the user to authorize the Consumer's access to some protected resource(s). Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The request token. The OAuth version. Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The OAuth version. Gets or sets the Request or Access Token. Gets the extra, non-OAuth parameters that will be included in the message. Gets a value indicating whether this is a safe OAuth authorization request. true if the Consumer is using OAuth 1.0a or later; otherwise, false. Gets or sets the Request Token obtained in the previous step. The Service Provider MAY declare this parameter as REQUIRED, or accept requests to the User Authorization URL without it, in which case it will prompt the User to enter it manually. Gets or sets a URL the Service Provider will use to redirect the User back to the Consumer when Obtaining User Authorization is complete. Optional. A direct message sent from Service Provider to Consumer in response to a Consumer's request. Initializes a new instance of the class. The unauthorized request token message that this message is being generated in response to. The request token. The token secret. This constructor is used by the Service Provider to send the message. Initializes a new instance of the class. The originating request. The OAuth version. This constructor is used by the consumer to deserialize the message. Gets or sets the Request or Access Token. Gets or sets the Request or Access Token secret. Gets the extra, non-OAuth parameters that will be included in the message. Gets or sets the Request Token. Gets the original request for an unauthorized token. Gets or sets the Token Secret. Gets a value indicating whether the Service Provider recognized the callback parameter in the request. An OAuth-specific implementation of the class. Initializes a new instance of the class. The binding element to use for signing. The ITokenManager instance to use. The security settings. An injected message type provider instance. Except for mock testing, this should always be one of OAuthConsumerMessageFactory or OAuthServiceProviderMessageFactory. The binding elements. Uri-escapes the names and values in a dictionary per OAuth 1.0 section 5.1. The message with data to encode. A dictionary of name-value pairs with their strings encoded. Initializes a web request for sending by attaching a message to it. Use this method to prepare a protected resource request that you do NOT expect an OAuth message response to. The message to attach. The initialized web request. Initializes the binding elements for the OAuth channel. The signing binding element. The nonce store. An array of binding elements used to initialize the channel. Searches an incoming HTTP request for data that could be used to assemble a protocol request message. The HTTP request to search. The deserialized message, if one is found. Null otherwise. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Prepares an HTTP request that carries a given message. The message to send. The prepared to send the request. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec V1.0 section 5.3. Gets the consumer secret for a given consumer key. The consumer key. A consumer secret. Uri-escapes the names and values in a dictionary per OAuth 1.0 section 5.1. The dictionary with names and values to encode. The dictionary to add the encoded pairs to. Gets the HTTP method to use for a message. The message. "POST", "GET" or some other similar http verb. Prepares to send a request to the Service Provider via the Authorization header. The message to be transmitted to the ServiceProvider. The web request ready to send. If the message has non-empty ExtraData in it, the request stream is sent to the server automatically. If it is empty, the request stream must be sent by the caller. This method implements OAuth 1.0 section 5.2, item #1 (described in section 5.4). Fills out the secrets in a message so that signing/verification can be performed. The message about to be signed or whose signature is about to be verified. Gets or sets the Consumer web application path. Gets the token manager being used. A direct message sent from Consumer to Service Provider to request a Request Token. Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The OAuth version. Gets or sets the absolute URL to which the Service Provider will redirect the User back when the Obtaining User Authorization step is completed. The callback URL; or null if the Consumer is unable to receive callbacks or a callback URL has been established via other means. Gets the extra, non-OAuth parameters that will be included in the message. A binding element that signs outgoing messages and verifies the signature on incoming messages. The name of the hash algorithm to use. Initializes a new instance of the class. An enumeration of the OAuth protocol versions supported by this library. OAuth 1.0 specification OAuth 1.0a specification Constants used in the OAuth protocol. OAuth Protocol Parameter names and values are case sensitive. Each OAuth Protocol Parameters MUST NOT appear more than once per request, and are REQUIRED unless otherwise noted, per OAuth 1.0 section 5. The namespace to use for V1.0 of the protocol. The prefix used for all key names in the protocol. The string representation of a instance to be used to represent OAuth 1.0a. The scheme to use in Authorization header message requests. Gets the instance with values initialized for V1.0 of the protocol. Gets the instance with values initialized for V1.0a of the protocol. A list of all supported OAuth versions, in order starting from newest version. The default (or most recent) supported version of the OAuth protocol. The namespace to use for this version of the protocol. Initializes a new instance of the class. Gets the OAuth Protocol instance to use for the given version. The OAuth version to get. A matching instance. Gets the OAuth Protocol instance to use for the given version. The OAuth version to get. A matching instance. Gets the OAuth version this instance represents. Gets the version to declare on the wire. Gets the enum value for the instance. Gets the namespace to use for this version of the protocol. ================================================ FILE: packages/DotNetOpenAuth.OAuth.Core.4.3.0.13117/lib/net40-full/DotNetOpenAuth.OAuth.xml ================================================ DotNetOpenAuth.OAuth Represents the <oauth/consumer> element in the host's .config file. Gets the name of the security sub-element. Initializes a new instance of the class. Gets or sets the security settings. Security settings that are applicable to consumers. Initializes a new instance of the class. Initializes a programmatically manipulatable bag of these security settings with the settings from the config file. The newly created security settings object. Represents the <oauth> element in the host's .config file. The name of the oauth section. The name of the <consumer> sub-element. The name of the <serviceProvider> sub-element. Initializes a new instance of the class. Gets the configuration section from the .config file. Gets or sets the configuration specific for Consumers. Gets or sets the configuration specific for Service Providers. Represents the <oauth/serviceProvider> element in the host's .config file. The name of the custom store sub-element. Gets the name of the security sub-element. Initializes a new instance of the class. Gets or sets the type to use for storing application state. Gets or sets the security settings. Security settings that are applicable to service providers. Gets the name of the @minimumRequiredOAuthVersion attribute. Gets the name of the @maxAuthorizationTime attribute. Initializes a new instance of the class. Initializes a programmatically manipulatable bag of these security settings with the settings from the config file. The newly created security settings object. Gets or sets the minimum OAuth version a Consumer is required to support in order for this library to interoperate with it. Although the earliest versions of OAuth are supported, for security reasons it may be desirable to require the remote party to support a later version of OAuth. Gets or sets the maximum time a user can take to complete authorization. This time limit serves as a security mitigation against brute force attacks to compromise (unauthorized or authorized) request tokens. Longer time limits is more friendly to slow users or consumers, while shorter time limits provide better security. An interface that must be implemented by message transforms/validators in order to be included in the channel stack. Clones this instance. The cloned instance. Gets or sets the delegate that will initialize the non-serialized properties necessary on a signable message so that its signature can be correctly calculated or verified. Contract class for the interface. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Clones this instance. The cloned instance. Gets or sets the delegate that will initialize the non-serialized properties necessary on a signable message so that its signature can be correctly calculated or verified. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. Utility methods specific to OAuth feature reporting. Records the feature and dependency use. The consumer or service provider. The service. The token manager. The nonce store. An interface OAuth hosts must implement for persistent storage and recall of tokens and secrets for an individual OAuth consumer or service provider. Gets the Token Secret given a request or access token. The request or access token. The secret associated with the given token. Thrown if the secret cannot be found for the given token. Stores a newly generated unauthorized request token, secret, and optional application-specific parameters for later recall. The request message that resulted in the generation of a new unauthorized request token. The response message that includes the unauthorized request token. Thrown if the consumer key is not registered, or a required parameter was not found in the parameters collection. Request tokens stored by this method SHOULD NOT associate any user account with this token. It usually opens up security holes in your application to do so. Instead, you associate a user account with access tokens (not request tokens) in the method. Deletes a request token and its associated secret and stores a new access token and secret. The Consumer that is exchanging its request token for an access token. The Consumer's request token that should be deleted/expired. The new access token that is being issued to the Consumer. The secret associated with the newly issued access token. Any scope of granted privileges associated with the request token from the original call to should be carried over to the new Access Token. To associate a user account with the new access token, HttpContext.Current.User may be useful in an ASP.NET web application within the implementation of this method. Alternatively you may store the access token here without associating with a user account, and wait until WebConsumer.ProcessUserAuthorization or DesktopConsumer.ProcessUserAuthorization return the access token to associate the access token with a user account at that point. Classifies a token as a request token or an access token. The token to classify. Request or Access token, or invalid if the token is not recognized. The code contract class for the interface. Prevents a default instance of the class from being created. Gets the Token Secret given a request or access token. The request or access token. The secret associated with the given token. Thrown if the secret cannot be found for the given token. Stores a newly generated unauthorized request token, secret, and optional application-specific parameters for later recall. The request message that resulted in the generation of a new unauthorized request token. The response message that includes the unauthorized request token. Thrown if the consumer key is not registered, or a required parameter was not found in the parameters collection. Request tokens stored by this method SHOULD NOT associate any user account with this token. It usually opens up security holes in your application to do so. Instead, you associate a user account with access tokens (not request tokens) in the method. Deletes a request token and its associated secret and stores a new access token and secret. The Consumer that is exchanging its request token for an access token. The Consumer's request token that should be deleted/expired. The new access token that is being issued to the Consumer. The secret associated with the newly issued access token. Any scope of granted privileges associated with the request token from the original call to should be carried over to the new Access Token. To associate a user account with the new access token, HttpContext.Current.User may be useful in an ASP.NET web application within the implementation of this method. Alternatively you may store the access token here without associating with a user account, and wait until WebConsumer.ProcessUserAuthorization or DesktopConsumer.ProcessUserAuthorization return the access token to associate the access token with a user account at that point. Classifies a token as a request token or an access token. The token to classify. Request or Access token, or invalid if the token is not recognized. Sets the HTTP Method property on a signed message before the signing module gets to it. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. True if the applied to this binding element and the operation was successful. False otherwise. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. True if the applied to this binding element and the operation was successful. False if the operation did not apply to this message. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Gets the protection offered (if any) by this binding element. Gets or sets the channel that this binding element belongs to. A binding element that signs outgoing messages and verifies the signature on incoming messages. A binding element that signs outgoing messages and verifies the signature on incoming messages. The signature method this binding element uses. Initializes a new instance of the class. The OAuth signature method that the binding element uses. Creates a new object that is a copy of the current instance. A new object that is a copy of this instance. Signs the outgoing message. The message to sign. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Verifies the signature on an incoming message. The message whose signature should be verified. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown if the signature is invalid. Constructs the OAuth Signature Base String and returns the result. The message. The message to derive the signature base string from. The signature base string. This method implements OAuth 1.0 section 9.1. Calculates a signature for a given message. The message to sign. The signature for the message. This method signs the message per OAuth 1.0 section 9.2. Gets the "ConsumerSecret&TokenSecret" string, allowing either property to be empty or null. The message to extract the secrets from. The concatenated string. Determines whether the signature on some message is valid. The message to check the signature on. true if the signature on the message is valid; otherwise, false. Clones this instance. A new instance of the binding element. Implementations of this method need not clone the SignatureVerificationCallback member, as the class does this. Calculates a signature for a given message. The message to sign. The signature for the message. Checks whether this binding element applies to this message. The message that needs to be signed. True if this binding element can be used to sign the message. False otherwise. Sorts parameters according to OAuth signature base string rules. The first parameter to compare. The second parameter to compare. Negative, zero or positive. Gets the message protection provided by this binding element. Gets or sets the channel that this binding element belongs to. Gets or sets the delegate that will initialize the non-serialized properties necessary on a signed message so that its signature can be correctly calculated for verification. Initializes a new instance of the class. Calculates a signature for a given message. The message to sign. The signature for the message. This method signs the message according to OAuth 1.0 section 9.4.1. Checks whether this binding element applies to this message. The message that needs to be signed. True if this binding element can be used to sign the message. False otherwise. Clones this instance. A new instance of the binding element. A binding element that signs outgoing messages and verifies the signature on incoming messages. Initializes a new instance of the class Calculates a signature for a given message. The message to sign. The signature for the message. This method signs the message per OAuth 1.0 section 9.2. Clones this instance. A new instance of the binding element. Code Contract for the class. Prevents a default instance of the SigningBindingElementBaseContract class from being created. Clones this instance. A new instance of the binding element. Implementations of this method need not clone the SignatureVerificationCallback member, as the class does this. Calculates a signature for a given message. The message to sign. The signature for the message. A tamper protection applying binding element that can use any of several given binding elements to apply the protection. The various signing binding elements that may be applicable to a message in preferred use order. Initializes a new instance of the class. The signing binding elements that may be used for some outgoing message, in preferred use order. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Creates a new object that is a copy of the current instance. A new object that is a copy of this instance. Gets or sets the delegate that will initialize the non-serialized properties necessary on a signed message so that its signature can be correctly calculated for verification. May be null for Consumers (who never have to verify signatures). Gets the protection offered (if any) by this binding element. Gets or sets the channel that this binding element belongs to. The two types of tokens that exist in the OAuth protocol. A token that is freely issued to any known Consumer. It does not grant any authorization to access protected resources, but is used as a step in obtaining that access. A token only obtained after the owner of some protected resource(s) has approved a Consumer's access to said resource(s). An unrecognized, expired or invalid token. An URI encoder that translates null references as "oob" instead of an empty/missing argument. The string constant "oob", used to indicate an out-of-band configuration. Initializes a new instance of the class. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Gets the string representation to include in a serialized message when the message part has a null value. Security settings that are applicable to consumers. Security settings that may be applicable to both consumers and service providers. Initializes a new instance of the class. Initializes a new instance of the class. An interface implemented by all OAuth messages that have a request or access token and secret properties. An interface implemented by all OAuth messages that have a request or access token property. Gets or sets the Request or Access Token. Gets or sets the Request or Access Token secret. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to Cannot send access token to Consumer for request token '{0}' before it has been authorized.. Looks up a localized string similar to The access token '{0}' is invalid or expired.. Looks up a localized string similar to Failure looking up secret for consumer or token.. Looks up a localized string similar to oauth_verifier argument was incorrect.. Looks up a localized string similar to An invalid OAuth message received and discarded.. Looks up a localized string similar to The {0} message included extra data which is not allowed.. Looks up a localized string similar to This OAuth service provider requires OAuth consumers to implement OAuth {0}, but this consumer appears to only support {1}.. Looks up a localized string similar to Cannot send OAuth message as multipart POST without an authorization HTTP header because sensitive data would not be signed.. Looks up a localized string similar to Use of the OpenID+OAuth extension requires that the token manager in use implement the {0} interface.. Looks up a localized string similar to The OpenID Relying Party's realm is not recognized as belonging to the OAuth Consumer identified by the consumer key given.. Looks up a localized string similar to The request URL query MUST NOT contain any OAuth Protocol Parameters.. Looks up a localized string similar to The signing element already has been associated with a channel.. Looks up a localized string similar to All signing elements must offer the same message protection.. Looks up a localized string similar to A token in the message was not recognized by the service provider.. Looks up a localized string similar to The RSA-SHA1 signing binding element has not been set with a certificate for signing.. A description of the endpoints on a Service Provider. The field used to store the value of the property. Initializes a new instance of the class. Creates a signing element that includes all the signing elements this service provider supports. The created signing element. Gets or sets the OAuth version supported by the Service Provider. Gets or sets the URL used to obtain an unauthorized Request Token, described in Section 6.1 (Obtaining an Unauthorized Request Token). The request URL query MUST NOT contain any OAuth Protocol Parameters. This is the URL that messages are directed to. Thrown if this property is set to a URI with OAuth protocol parameters. Gets or sets the URL used to obtain User authorization for Consumer access, described in Section 6.2 (Obtaining User Authorization). This is the URL that messages are indirectly (via the user agent) sent to. Gets or sets the URL used to exchange the User-authorized Request Token for an Access Token, described in Section 6.3 (Obtaining an Access Token). This is the URL that messages are directed to. Gets or sets the signing policies that apply to this Service Provider. Gets the OAuth version supported by the Service Provider. A base class for all signed OAuth messages. A base class for all OAuth messages. A store for extra name/value data pairs that are attached to this message. Gets a value indicating whether signing this message is required. Gets a value indicating whether this is a direct or indirect message. The URI to the remote endpoint to send this message to. Backing store for the properties. Backing store for the properties. Initializes a new instance of the class for direct response messages. The level of protection the message requires. The request that asked for this direct response. The OAuth version. Initializes a new instance of the class for direct requests or indirect messages. The level of protection the message requires. A value indicating whether this message requires a direct or indirect transport. The URI that a directed message will be delivered to. The OAuth version. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Returns a human-friendly string describing the message and all serializable properties. The channel that will carry this message. The string representation of this object. Sets a flag indicating that this message is received (as opposed to sent). Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Gets the version of the protocol this message is prepared to implement. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the dictionary of additional name/value fields tacked on to this message. Gets the URI to the Service Provider endpoint to send this message to. Gets the preferred method of transport for the message. Gets the originating request message that caused this response to be formed. Gets or sets a value indicating whether security sensitive strings are emitted from the ToString() method. Gets a value indicating whether this message was deserialized as an incoming message. Gets the version of the protocol this message is prepared to implement. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the dictionary of additional name/value fields tacked on to this message. Gets the preferred method of transport for the message. Gets or sets the URI to the Service Provider endpoint to send this message to. Gets the originating request message that caused this response to be formed. An interface that OAuth messages implement to support signing. Gets or sets the method used to sign the message. Gets or sets the Token Secret used to sign the message. Gets or sets the Consumer key. Gets or sets the Consumer Secret used to sign the message. Gets or sets the HTTP method that will be used to transmit the message. Gets or sets the URL of the intended receiver of this message. The reference date and time for calculating time stamps. The number of seconds since 1/1/1970, consistent with the OAuth timestamp requirement. Initializes a new instance of the class. A value indicating whether this message requires a direct or indirect transport. The URI that a directed message will be delivered to. The OAuth version. Gets or sets the signature method used to sign the request. Gets or sets the Token Secret used to sign the message. Gets or sets the Consumer key. Gets or sets the Consumer Secret used to sign the message. Gets or sets the HTTP method that will be used to transmit the message. Gets or sets the URI to the Service Provider endpoint to send this message to. Gets or sets the message signature. Gets or sets the OAuth timestamp of the message. Gets the context within which the nonce must be unique. The consumer key. Gets or sets the message nonce used for replay detection. Gets or sets the original message parts, before any normalization or default values were assigned. Gets or sets the original message parts, before any normalization or default values were assigned. Gets or sets the signature method used to sign the request. Gets or sets the Token Secret used to sign the message. Gets or sets the Consumer Secret used to sign the message. Gets or sets the HTTP method that will be used to transmit the message. Gets or sets the message signature. Gets or sets the version of the protocol this message was created with. Security settings that are applicable to service providers. Initializes a new instance of the class. Gets or sets the minimum required version of OAuth that must be implemented by a Consumer. Gets or sets the maximum time a user can take to complete authorization. This time limit serves as a security mitigation against brute force attacks to compromise (unauthorized or authorized) request tokens. Longer time limits is more friendly to slow users or consumers, while shorter time limits provide better security. A direct message sent by the Consumer to exchange an authorized Request Token for an Access Token and Token Secret. The class is sealed because the OAuth spec forbids adding parameters to this message. Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The OAuth version. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Gets or sets the Token. Gets or sets the verification code received by the Consumer from the Service Provider in the property. Gets or sets the authorized Request Token used to obtain authorization. A message attached to a request for protected resources that provides the necessary credentials to be granted access to those resources. A store for the binary data that is carried in the message. Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The OAuth version. Gets or sets the Token. Gets or sets the Access Token. In addition to just allowing OAuth to verify a valid message, this property is useful on the Service Provider to verify that the access token has proper authorization for the resource being requested, and to know the context around which user provided the authorization. Gets the parts of the message that carry binary data. A list of parts. Never null. Gets a value indicating whether this message should be sent as multi-part POST. A direct message sent from Service Provider to Consumer in response to a Consumer's request. Initializes a new instance of the class. The originating request. Gets or sets the Access Token assigned by the Service Provider. Gets or sets the Request or Access Token. Gets or sets the Request or Access Token secret. Gets the extra, non-OAuth parameters that will be included in the message. Gets or sets the Token Secret. A message used to redirect the user from a Service Provider to a Consumer's web site. The class is sealed because extra parameters are determined by the callback URI provided by the Consumer. Initializes a new instance of the class. The URI of the Consumer endpoint to send this message to. The OAuth version. Gets or sets the Request or Access Token. Gets or sets the verification code that must accompany the request to exchange the authorized request token for an access token. An unguessable value passed to the Consumer via the User and REQUIRED to complete the process. If the Consumer did not provide a callback URL, the Service Provider SHOULD display the value of the verification code, and instruct the User to manually inform the Consumer that authorization is completed. If the Service Provider knows a Consumer to be running on a mobile device or set-top box, the Service Provider SHOULD ensure that the verifier value is suitable for manual entry. Gets or sets the Request Token. A message used to redirect the user from a Consumer to a Service Provider's web site so the Service Provider can ask the user to authorize the Consumer's access to some protected resource(s). Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The request token. The OAuth version. Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The OAuth version. Gets or sets the Request or Access Token. Gets the extra, non-OAuth parameters that will be included in the message. Gets a value indicating whether this is a safe OAuth authorization request. true if the Consumer is using OAuth 1.0a or later; otherwise, false. Gets or sets the Request Token obtained in the previous step. The Service Provider MAY declare this parameter as REQUIRED, or accept requests to the User Authorization URL without it, in which case it will prompt the User to enter it manually. Gets or sets a URL the Service Provider will use to redirect the User back to the Consumer when Obtaining User Authorization is complete. Optional. A direct message sent from Service Provider to Consumer in response to a Consumer's request. Initializes a new instance of the class. The unauthorized request token message that this message is being generated in response to. The request token. The token secret. This constructor is used by the Service Provider to send the message. Initializes a new instance of the class. The originating request. The OAuth version. This constructor is used by the consumer to deserialize the message. Gets or sets the Request or Access Token. Gets or sets the Request or Access Token secret. Gets the extra, non-OAuth parameters that will be included in the message. Gets or sets the Request Token. Gets the original request for an unauthorized token. Gets or sets the Token Secret. Gets a value indicating whether the Service Provider recognized the callback parameter in the request. An OAuth-specific implementation of the class. Initializes a new instance of the class. The binding element to use for signing. The ITokenManager instance to use. The security settings. An injected message type provider instance. Except for mock testing, this should always be one of OAuthConsumerMessageFactory or OAuthServiceProviderMessageFactory. The binding elements. Uri-escapes the names and values in a dictionary per OAuth 1.0 section 5.1. The message with data to encode. A dictionary of name-value pairs with their strings encoded. Initializes a web request for sending by attaching a message to it. Use this method to prepare a protected resource request that you do NOT expect an OAuth message response to. The message to attach. The initialized web request. Initializes the binding elements for the OAuth channel. The signing binding element. The nonce store. An array of binding elements used to initialize the channel. Searches an incoming HTTP request for data that could be used to assemble a protocol request message. The HTTP request to search. The deserialized message, if one is found. Null otherwise. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Prepares an HTTP request that carries a given message. The message to send. The prepared to send the request. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec V1.0 section 5.3. Gets the consumer secret for a given consumer key. The consumer key. A consumer secret. Uri-escapes the names and values in a dictionary per OAuth 1.0 section 5.1. The dictionary with names and values to encode. The dictionary to add the encoded pairs to. Gets the HTTP method to use for a message. The message. "POST", "GET" or some other similar http verb. Prepares to send a request to the Service Provider via the Authorization header. The message to be transmitted to the ServiceProvider. The web request ready to send. If the message has non-empty ExtraData in it, the request stream is sent to the server automatically. If it is empty, the request stream must be sent by the caller. This method implements OAuth 1.0 section 5.2, item #1 (described in section 5.4). Fills out the secrets in a message so that signing/verification can be performed. The message about to be signed or whose signature is about to be verified. Gets or sets the Consumer web application path. Gets the token manager being used. A direct message sent from Consumer to Service Provider to request a Request Token. Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The OAuth version. Gets or sets the absolute URL to which the Service Provider will redirect the User back when the Obtaining User Authorization step is completed. The callback URL; or null if the Consumer is unable to receive callbacks or a callback URL has been established via other means. Gets the extra, non-OAuth parameters that will be included in the message. A binding element that signs outgoing messages and verifies the signature on incoming messages. The name of the hash algorithm to use. Initializes a new instance of the class. An enumeration of the OAuth protocol versions supported by this library. OAuth 1.0 specification OAuth 1.0a specification Constants used in the OAuth protocol. OAuth Protocol Parameter names and values are case sensitive. Each OAuth Protocol Parameters MUST NOT appear more than once per request, and are REQUIRED unless otherwise noted, per OAuth 1.0 section 5. The namespace to use for V1.0 of the protocol. The prefix used for all key names in the protocol. The string representation of a instance to be used to represent OAuth 1.0a. The scheme to use in Authorization header message requests. Gets the instance with values initialized for V1.0 of the protocol. Gets the instance with values initialized for V1.0a of the protocol. A list of all supported OAuth versions, in order starting from newest version. The default (or most recent) supported version of the OAuth protocol. The namespace to use for this version of the protocol. Initializes a new instance of the class. Gets the OAuth Protocol instance to use for the given version. The OAuth version to get. A matching instance. Gets the OAuth Protocol instance to use for the given version. The OAuth version to get. A matching instance. Gets the OAuth version this instance represents. Gets the version to declare on the wire. Gets the enum value for the instance. Gets the namespace to use for this version of the protocol. ================================================ FILE: packages/DotNetOpenAuth.OAuth.Core.4.3.0.13117/lib/net45-full/DotNetOpenAuth.OAuth.xml ================================================ DotNetOpenAuth.OAuth Represents the <oauth/consumer> element in the host's .config file. Gets the name of the security sub-element. Initializes a new instance of the class. Gets or sets the security settings. Security settings that are applicable to consumers. Initializes a new instance of the class. Initializes a programmatically manipulatable bag of these security settings with the settings from the config file. The newly created security settings object. Represents the <oauth> element in the host's .config file. The name of the oauth section. The name of the <consumer> sub-element. The name of the <serviceProvider> sub-element. Initializes a new instance of the class. Gets the configuration section from the .config file. Gets or sets the configuration specific for Consumers. Gets or sets the configuration specific for Service Providers. Represents the <oauth/serviceProvider> element in the host's .config file. The name of the custom store sub-element. Gets the name of the security sub-element. Initializes a new instance of the class. Gets or sets the type to use for storing application state. Gets or sets the security settings. Security settings that are applicable to service providers. Gets the name of the @minimumRequiredOAuthVersion attribute. Gets the name of the @maxAuthorizationTime attribute. Initializes a new instance of the class. Initializes a programmatically manipulatable bag of these security settings with the settings from the config file. The newly created security settings object. Gets or sets the minimum OAuth version a Consumer is required to support in order for this library to interoperate with it. Although the earliest versions of OAuth are supported, for security reasons it may be desirable to require the remote party to support a later version of OAuth. Gets or sets the maximum time a user can take to complete authorization. This time limit serves as a security mitigation against brute force attacks to compromise (unauthorized or authorized) request tokens. Longer time limits is more friendly to slow users or consumers, while shorter time limits provide better security. An interface that must be implemented by message transforms/validators in order to be included in the channel stack. Clones this instance. The cloned instance. Gets or sets the delegate that will initialize the non-serialized properties necessary on a signable message so that its signature can be correctly calculated or verified. Contract class for the interface. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Clones this instance. The cloned instance. Gets or sets the delegate that will initialize the non-serialized properties necessary on a signable message so that its signature can be correctly calculated or verified. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. Utility methods specific to OAuth feature reporting. Records the feature and dependency use. The consumer or service provider. The service. The token manager. The nonce store. An interface OAuth hosts must implement for persistent storage and recall of tokens and secrets for an individual OAuth consumer or service provider. Gets the Token Secret given a request or access token. The request or access token. The secret associated with the given token. Thrown if the secret cannot be found for the given token. Stores a newly generated unauthorized request token, secret, and optional application-specific parameters for later recall. The request message that resulted in the generation of a new unauthorized request token. The response message that includes the unauthorized request token. Thrown if the consumer key is not registered, or a required parameter was not found in the parameters collection. Request tokens stored by this method SHOULD NOT associate any user account with this token. It usually opens up security holes in your application to do so. Instead, you associate a user account with access tokens (not request tokens) in the method. Deletes a request token and its associated secret and stores a new access token and secret. The Consumer that is exchanging its request token for an access token. The Consumer's request token that should be deleted/expired. The new access token that is being issued to the Consumer. The secret associated with the newly issued access token. Any scope of granted privileges associated with the request token from the original call to should be carried over to the new Access Token. To associate a user account with the new access token, HttpContext.Current.User may be useful in an ASP.NET web application within the implementation of this method. Alternatively you may store the access token here without associating with a user account, and wait until WebConsumer.ProcessUserAuthorization or DesktopConsumer.ProcessUserAuthorization return the access token to associate the access token with a user account at that point. Classifies a token as a request token or an access token. The token to classify. Request or Access token, or invalid if the token is not recognized. The code contract class for the interface. Prevents a default instance of the class from being created. Gets the Token Secret given a request or access token. The request or access token. The secret associated with the given token. Thrown if the secret cannot be found for the given token. Stores a newly generated unauthorized request token, secret, and optional application-specific parameters for later recall. The request message that resulted in the generation of a new unauthorized request token. The response message that includes the unauthorized request token. Thrown if the consumer key is not registered, or a required parameter was not found in the parameters collection. Request tokens stored by this method SHOULD NOT associate any user account with this token. It usually opens up security holes in your application to do so. Instead, you associate a user account with access tokens (not request tokens) in the method. Deletes a request token and its associated secret and stores a new access token and secret. The Consumer that is exchanging its request token for an access token. The Consumer's request token that should be deleted/expired. The new access token that is being issued to the Consumer. The secret associated with the newly issued access token. Any scope of granted privileges associated with the request token from the original call to should be carried over to the new Access Token. To associate a user account with the new access token, HttpContext.Current.User may be useful in an ASP.NET web application within the implementation of this method. Alternatively you may store the access token here without associating with a user account, and wait until WebConsumer.ProcessUserAuthorization or DesktopConsumer.ProcessUserAuthorization return the access token to associate the access token with a user account at that point. Classifies a token as a request token or an access token. The token to classify. Request or Access token, or invalid if the token is not recognized. Sets the HTTP Method property on a signed message before the signing module gets to it. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. True if the applied to this binding element and the operation was successful. False otherwise. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. True if the applied to this binding element and the operation was successful. False if the operation did not apply to this message. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Gets the protection offered (if any) by this binding element. Gets or sets the channel that this binding element belongs to. A binding element that signs outgoing messages and verifies the signature on incoming messages. A binding element that signs outgoing messages and verifies the signature on incoming messages. The signature method this binding element uses. Initializes a new instance of the class. The OAuth signature method that the binding element uses. Creates a new object that is a copy of the current instance. A new object that is a copy of this instance. Signs the outgoing message. The message to sign. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Verifies the signature on an incoming message. The message whose signature should be verified. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown if the signature is invalid. Constructs the OAuth Signature Base String and returns the result. The message. The message to derive the signature base string from. The signature base string. This method implements OAuth 1.0 section 9.1. Calculates a signature for a given message. The message to sign. The signature for the message. This method signs the message per OAuth 1.0 section 9.2. Gets the "ConsumerSecret&TokenSecret" string, allowing either property to be empty or null. The message to extract the secrets from. The concatenated string. Determines whether the signature on some message is valid. The message to check the signature on. true if the signature on the message is valid; otherwise, false. Clones this instance. A new instance of the binding element. Implementations of this method need not clone the SignatureVerificationCallback member, as the class does this. Calculates a signature for a given message. The message to sign. The signature for the message. Checks whether this binding element applies to this message. The message that needs to be signed. True if this binding element can be used to sign the message. False otherwise. Sorts parameters according to OAuth signature base string rules. The first parameter to compare. The second parameter to compare. Negative, zero or positive. Gets the message protection provided by this binding element. Gets or sets the channel that this binding element belongs to. Gets or sets the delegate that will initialize the non-serialized properties necessary on a signed message so that its signature can be correctly calculated for verification. Initializes a new instance of the class. Calculates a signature for a given message. The message to sign. The signature for the message. This method signs the message according to OAuth 1.0 section 9.4.1. Checks whether this binding element applies to this message. The message that needs to be signed. True if this binding element can be used to sign the message. False otherwise. Clones this instance. A new instance of the binding element. A binding element that signs outgoing messages and verifies the signature on incoming messages. Initializes a new instance of the class Calculates a signature for a given message. The message to sign. The signature for the message. This method signs the message per OAuth 1.0 section 9.2. Clones this instance. A new instance of the binding element. Code Contract for the class. Prevents a default instance of the SigningBindingElementBaseContract class from being created. Clones this instance. A new instance of the binding element. Implementations of this method need not clone the SignatureVerificationCallback member, as the class does this. Calculates a signature for a given message. The message to sign. The signature for the message. A tamper protection applying binding element that can use any of several given binding elements to apply the protection. The various signing binding elements that may be applicable to a message in preferred use order. Initializes a new instance of the class. The signing binding elements that may be used for some outgoing message, in preferred use order. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Creates a new object that is a copy of the current instance. A new object that is a copy of this instance. Gets or sets the delegate that will initialize the non-serialized properties necessary on a signed message so that its signature can be correctly calculated for verification. May be null for Consumers (who never have to verify signatures). Gets the protection offered (if any) by this binding element. Gets or sets the channel that this binding element belongs to. The two types of tokens that exist in the OAuth protocol. A token that is freely issued to any known Consumer. It does not grant any authorization to access protected resources, but is used as a step in obtaining that access. A token only obtained after the owner of some protected resource(s) has approved a Consumer's access to said resource(s). An unrecognized, expired or invalid token. An URI encoder that translates null references as "oob" instead of an empty/missing argument. The string constant "oob", used to indicate an out-of-band configuration. Initializes a new instance of the class. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Gets the string representation to include in a serialized message when the message part has a null value. Security settings that are applicable to consumers. Security settings that may be applicable to both consumers and service providers. Initializes a new instance of the class. Initializes a new instance of the class. An interface implemented by all OAuth messages that have a request or access token and secret properties. An interface implemented by all OAuth messages that have a request or access token property. Gets or sets the Request or Access Token. Gets or sets the Request or Access Token secret. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to Cannot send access token to Consumer for request token '{0}' before it has been authorized.. Looks up a localized string similar to The access token '{0}' is invalid or expired.. Looks up a localized string similar to Failure looking up secret for consumer or token.. Looks up a localized string similar to oauth_verifier argument was incorrect.. Looks up a localized string similar to An invalid OAuth message received and discarded.. Looks up a localized string similar to The {0} message included extra data which is not allowed.. Looks up a localized string similar to This OAuth service provider requires OAuth consumers to implement OAuth {0}, but this consumer appears to only support {1}.. Looks up a localized string similar to Cannot send OAuth message as multipart POST without an authorization HTTP header because sensitive data would not be signed.. Looks up a localized string similar to Use of the OpenID+OAuth extension requires that the token manager in use implement the {0} interface.. Looks up a localized string similar to The OpenID Relying Party's realm is not recognized as belonging to the OAuth Consumer identified by the consumer key given.. Looks up a localized string similar to The request URL query MUST NOT contain any OAuth Protocol Parameters.. Looks up a localized string similar to The signing element already has been associated with a channel.. Looks up a localized string similar to All signing elements must offer the same message protection.. Looks up a localized string similar to A token in the message was not recognized by the service provider.. Looks up a localized string similar to The RSA-SHA1 signing binding element has not been set with a certificate for signing.. A description of the endpoints on a Service Provider. The field used to store the value of the property. Initializes a new instance of the class. Creates a signing element that includes all the signing elements this service provider supports. The created signing element. Gets or sets the OAuth version supported by the Service Provider. Gets or sets the URL used to obtain an unauthorized Request Token, described in Section 6.1 (Obtaining an Unauthorized Request Token). The request URL query MUST NOT contain any OAuth Protocol Parameters. This is the URL that messages are directed to. Thrown if this property is set to a URI with OAuth protocol parameters. Gets or sets the URL used to obtain User authorization for Consumer access, described in Section 6.2 (Obtaining User Authorization). This is the URL that messages are indirectly (via the user agent) sent to. Gets or sets the URL used to exchange the User-authorized Request Token for an Access Token, described in Section 6.3 (Obtaining an Access Token). This is the URL that messages are directed to. Gets or sets the signing policies that apply to this Service Provider. Gets the OAuth version supported by the Service Provider. A base class for all signed OAuth messages. A base class for all OAuth messages. A store for extra name/value data pairs that are attached to this message. Gets a value indicating whether signing this message is required. Gets a value indicating whether this is a direct or indirect message. The URI to the remote endpoint to send this message to. Backing store for the properties. Backing store for the properties. Initializes a new instance of the class for direct response messages. The level of protection the message requires. The request that asked for this direct response. The OAuth version. Initializes a new instance of the class for direct requests or indirect messages. The level of protection the message requires. A value indicating whether this message requires a direct or indirect transport. The URI that a directed message will be delivered to. The OAuth version. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Returns a human-friendly string describing the message and all serializable properties. The channel that will carry this message. The string representation of this object. Sets a flag indicating that this message is received (as opposed to sent). Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Gets the version of the protocol this message is prepared to implement. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the dictionary of additional name/value fields tacked on to this message. Gets the URI to the Service Provider endpoint to send this message to. Gets the preferred method of transport for the message. Gets the originating request message that caused this response to be formed. Gets or sets a value indicating whether security sensitive strings are emitted from the ToString() method. Gets a value indicating whether this message was deserialized as an incoming message. Gets the version of the protocol this message is prepared to implement. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the dictionary of additional name/value fields tacked on to this message. Gets the preferred method of transport for the message. Gets or sets the URI to the Service Provider endpoint to send this message to. Gets the originating request message that caused this response to be formed. An interface that OAuth messages implement to support signing. Gets or sets the method used to sign the message. Gets or sets the Token Secret used to sign the message. Gets or sets the Consumer key. Gets or sets the Consumer Secret used to sign the message. Gets or sets the HTTP method that will be used to transmit the message. Gets or sets the URL of the intended receiver of this message. The reference date and time for calculating time stamps. The number of seconds since 1/1/1970, consistent with the OAuth timestamp requirement. Initializes a new instance of the class. A value indicating whether this message requires a direct or indirect transport. The URI that a directed message will be delivered to. The OAuth version. Gets or sets the signature method used to sign the request. Gets or sets the Token Secret used to sign the message. Gets or sets the Consumer key. Gets or sets the Consumer Secret used to sign the message. Gets or sets the HTTP method that will be used to transmit the message. Gets or sets the URI to the Service Provider endpoint to send this message to. Gets or sets the message signature. Gets or sets the OAuth timestamp of the message. Gets the context within which the nonce must be unique. The consumer key. Gets or sets the message nonce used for replay detection. Gets or sets the original message parts, before any normalization or default values were assigned. Gets or sets the original message parts, before any normalization or default values were assigned. Gets or sets the signature method used to sign the request. Gets or sets the Token Secret used to sign the message. Gets or sets the Consumer Secret used to sign the message. Gets or sets the HTTP method that will be used to transmit the message. Gets or sets the message signature. Gets or sets the version of the protocol this message was created with. Security settings that are applicable to service providers. Initializes a new instance of the class. Gets or sets the minimum required version of OAuth that must be implemented by a Consumer. Gets or sets the maximum time a user can take to complete authorization. This time limit serves as a security mitigation against brute force attacks to compromise (unauthorized or authorized) request tokens. Longer time limits is more friendly to slow users or consumers, while shorter time limits provide better security. A direct message sent by the Consumer to exchange an authorized Request Token for an Access Token and Token Secret. The class is sealed because the OAuth spec forbids adding parameters to this message. Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The OAuth version. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Gets or sets the Token. Gets or sets the verification code received by the Consumer from the Service Provider in the property. Gets or sets the authorized Request Token used to obtain authorization. A message attached to a request for protected resources that provides the necessary credentials to be granted access to those resources. A store for the binary data that is carried in the message. Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The OAuth version. Gets or sets the Token. Gets or sets the Access Token. In addition to just allowing OAuth to verify a valid message, this property is useful on the Service Provider to verify that the access token has proper authorization for the resource being requested, and to know the context around which user provided the authorization. Gets the parts of the message that carry binary data. A list of parts. Never null. Gets a value indicating whether this message should be sent as multi-part POST. A direct message sent from Service Provider to Consumer in response to a Consumer's request. Initializes a new instance of the class. The originating request. Gets or sets the Access Token assigned by the Service Provider. Gets or sets the Request or Access Token. Gets or sets the Request or Access Token secret. Gets the extra, non-OAuth parameters that will be included in the message. Gets or sets the Token Secret. A message used to redirect the user from a Service Provider to a Consumer's web site. The class is sealed because extra parameters are determined by the callback URI provided by the Consumer. Initializes a new instance of the class. The URI of the Consumer endpoint to send this message to. The OAuth version. Gets or sets the Request or Access Token. Gets or sets the verification code that must accompany the request to exchange the authorized request token for an access token. An unguessable value passed to the Consumer via the User and REQUIRED to complete the process. If the Consumer did not provide a callback URL, the Service Provider SHOULD display the value of the verification code, and instruct the User to manually inform the Consumer that authorization is completed. If the Service Provider knows a Consumer to be running on a mobile device or set-top box, the Service Provider SHOULD ensure that the verifier value is suitable for manual entry. Gets or sets the Request Token. A message used to redirect the user from a Consumer to a Service Provider's web site so the Service Provider can ask the user to authorize the Consumer's access to some protected resource(s). Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The request token. The OAuth version. Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The OAuth version. Gets or sets the Request or Access Token. Gets the extra, non-OAuth parameters that will be included in the message. Gets a value indicating whether this is a safe OAuth authorization request. true if the Consumer is using OAuth 1.0a or later; otherwise, false. Gets or sets the Request Token obtained in the previous step. The Service Provider MAY declare this parameter as REQUIRED, or accept requests to the User Authorization URL without it, in which case it will prompt the User to enter it manually. Gets or sets a URL the Service Provider will use to redirect the User back to the Consumer when Obtaining User Authorization is complete. Optional. A direct message sent from Service Provider to Consumer in response to a Consumer's request. Initializes a new instance of the class. The unauthorized request token message that this message is being generated in response to. The request token. The token secret. This constructor is used by the Service Provider to send the message. Initializes a new instance of the class. The originating request. The OAuth version. This constructor is used by the consumer to deserialize the message. Gets or sets the Request or Access Token. Gets or sets the Request or Access Token secret. Gets the extra, non-OAuth parameters that will be included in the message. Gets or sets the Request Token. Gets the original request for an unauthorized token. Gets or sets the Token Secret. Gets a value indicating whether the Service Provider recognized the callback parameter in the request. An OAuth-specific implementation of the class. Initializes a new instance of the class. The binding element to use for signing. The ITokenManager instance to use. The security settings. An injected message type provider instance. Except for mock testing, this should always be one of OAuthConsumerMessageFactory or OAuthServiceProviderMessageFactory. The binding elements. Uri-escapes the names and values in a dictionary per OAuth 1.0 section 5.1. The message with data to encode. A dictionary of name-value pairs with their strings encoded. Initializes a web request for sending by attaching a message to it. Use this method to prepare a protected resource request that you do NOT expect an OAuth message response to. The message to attach. The initialized web request. Initializes the binding elements for the OAuth channel. The signing binding element. The nonce store. An array of binding elements used to initialize the channel. Searches an incoming HTTP request for data that could be used to assemble a protocol request message. The HTTP request to search. The deserialized message, if one is found. Null otherwise. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Prepares an HTTP request that carries a given message. The message to send. The prepared to send the request. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec V1.0 section 5.3. Gets the consumer secret for a given consumer key. The consumer key. A consumer secret. Uri-escapes the names and values in a dictionary per OAuth 1.0 section 5.1. The dictionary with names and values to encode. The dictionary to add the encoded pairs to. Gets the HTTP method to use for a message. The message. "POST", "GET" or some other similar http verb. Prepares to send a request to the Service Provider via the Authorization header. The message to be transmitted to the ServiceProvider. The web request ready to send. If the message has non-empty ExtraData in it, the request stream is sent to the server automatically. If it is empty, the request stream must be sent by the caller. This method implements OAuth 1.0 section 5.2, item #1 (described in section 5.4). Fills out the secrets in a message so that signing/verification can be performed. The message about to be signed or whose signature is about to be verified. Gets or sets the Consumer web application path. Gets the token manager being used. A direct message sent from Consumer to Service Provider to request a Request Token. Initializes a new instance of the class. The URI of the Service Provider endpoint to send this message to. The OAuth version. Gets or sets the absolute URL to which the Service Provider will redirect the User back when the Obtaining User Authorization step is completed. The callback URL; or null if the Consumer is unable to receive callbacks or a callback URL has been established via other means. Gets the extra, non-OAuth parameters that will be included in the message. A binding element that signs outgoing messages and verifies the signature on incoming messages. The name of the hash algorithm to use. Initializes a new instance of the class. An enumeration of the OAuth protocol versions supported by this library. OAuth 1.0 specification OAuth 1.0a specification Constants used in the OAuth protocol. OAuth Protocol Parameter names and values are case sensitive. Each OAuth Protocol Parameters MUST NOT appear more than once per request, and are REQUIRED unless otherwise noted, per OAuth 1.0 section 5. The namespace to use for V1.0 of the protocol. The prefix used for all key names in the protocol. The string representation of a instance to be used to represent OAuth 1.0a. The scheme to use in Authorization header message requests. Gets the instance with values initialized for V1.0 of the protocol. Gets the instance with values initialized for V1.0a of the protocol. A list of all supported OAuth versions, in order starting from newest version. The default (or most recent) supported version of the OAuth protocol. The namespace to use for this version of the protocol. Initializes a new instance of the class. Gets the OAuth Protocol instance to use for the given version. The OAuth version to get. A matching instance. Gets the OAuth Protocol instance to use for the given version. The OAuth version to get. A matching instance. Gets the OAuth version this instance represents. Gets the version to declare on the wire. Gets the enum value for the instance. Gets the namespace to use for this version of the protocol. ================================================ FILE: packages/DotNetOpenAuth.OpenId.Core.4.0.3.12153/content/web.config.transform ================================================
================================================ FILE: packages/DotNetOpenAuth.OpenId.Core.4.0.3.12153/lib/net35-full/DotNetOpenAuth.OpenId.xml ================================================ DotNetOpenAuth.OpenId Describes a collection of association type sub-elements in a .config file. Initializes a new instance of the class. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. When overridden in a derived class, creates a new . A new . Gets the element key for a specified configuration element when overridden in a derived class. The to return the key for. An that acts as the key for the specified . Describes an association type and its maximum lifetime as an element in a .config file. The name of the attribute that stores the association type. The name of the attribute that stores the association's maximum lifetime. Initializes a new instance of the class. Gets or sets the protocol name of the association. Gets or sets the maximum time a shared association should live. The default value is 14 days. Represents the <openid> element in the host's .config file. The name of the section under which this library's settings must be found. The name of the <relyingParty> sub-element. The name of the <provider> sub-element. The name of the <extensions> sub-element. The name of the <xriResolver> sub-element. The name of the @maxAuthenticationTime attribute. The name of the @cacheDiscovery attribute. Initializes a new instance of the class. Gets the configuration section from the .config file. Gets or sets the maximum time a user can take to complete authentication. This time limit allows the library to decide how long to cache certain values necessary to complete authentication. The lower the time, the less demand on the server. But too short a time can frustrate the user. Gets or sets a value indicating whether the results of Identifier discovery should be cached. Use true to allow identifier discovery to immediately return cached results when available; otherwise, use false.to force fresh results every time at the cost of slightly slower logins. The default value is true. When enabled, caching is done according to HTTP standards. Gets or sets the configuration specific for Relying Parties. Gets or sets the configuration specific for Providers. Gets or sets the registered OpenID extension factories. Gets or sets the configuration for the XRI resolver. The section in the .config file that allows customization of OpenID Provider behaviors. The name of the <provider> sub-element. The name of the security sub-element. Gets the name of the <behaviors> sub-element. The name of the custom store sub-element. Initializes a new instance of the class. Gets or sets the security settings. Gets or sets the special behaviors to apply. Gets or sets the type to use for storing application state. Represents the .config file element that allows for setting the security policies of the Provider. Gets the name of the @protectDownlevelReplayAttacks attribute. Gets the name of the @minimumHashBitLength attribute. Gets the name of the @maximumHashBitLength attribute. The name of the associations collection sub-element. The name of the @encodeAssociationSecretsInHandles attribute. Gets the name of the @requireSsl attribute. Gets the name of the @unsolicitedAssertionVerification attribute. Initializes a new instance of the class. Initializes a programmatically manipulatable bag of these security settings with the settings from the config file. The newly created security settings object. Gets or sets a value indicating whether all discovery and authentication should require SSL security. Gets or sets the minimum length of the hash that protects the protocol from hijackers. Gets or sets the maximum length of the hash that protects the protocol from hijackers. Gets or sets a value indicating whether the Provider should take special care to protect OpenID 1.x relying parties against replay attacks. Gets or sets the level of verification a Provider performs on an identifier before sending an unsolicited assertion for it. The default value is . Gets or sets the configured lifetimes of the various association types. Gets or sets a value indicating whether the Provider should ease the burden of storing associations by encoding their secrets (in signed, encrypted form) into the association handles themselves, storing only a few rotating, private symmetric keys in the Provider's store instead. The section in the .config file that allows customization of OpenID Relying Party behaviors. The name of the custom store sub-element. The name of the <relyingParty> sub-element. The name of the attribute that specifies whether dnoa.userSuppliedIdentifier is tacked onto the openid.return_to URL. Gets the name of the security sub-element. The name of the <behaviors> sub-element. The name of the <discoveryServices> sub-element. The built-in set of identifier discovery services. Initializes a new instance of the class. Gets or sets a value indicating whether "dnoa.userSuppliedIdentifier" is tacked onto the openid.return_to URL in order to preserve what the user typed into the OpenID box. The default value is true. Gets or sets the security settings. Gets or sets the special behaviors to apply. Gets or sets the type to use for storing application state. Gets or sets the services to use for discovering service endpoints for identifiers. If no discovery services are defined in the (web) application's .config file, the default set of discovery services built into the library are used. Represents the .config file element that allows for setting the security policies of the Relying Party. Gets the name of the @minimumRequiredOpenIdVersion attribute. Gets the name of the @minimumHashBitLength attribute. Gets the name of the @maximumHashBitLength attribute. Gets the name of the @requireSsl attribute. Gets the name of the @requireDirectedIdentity attribute. Gets the name of the @requireAssociation attribute. Gets the name of the @rejectUnsolicitedAssertions attribute. Gets the name of the @rejectDelegatedIdentifiers attribute. Gets the name of the @ignoreUnsignedExtensions attribute. Gets the name of the @allowDualPurposeIdentifiers attribute. Gets the name of the @allowApproximateIdentifierDiscovery attribute. Gets the name of the @protectDownlevelReplayAttacks attribute. The name of the <trustedProviders> sub-element. Initializes a new instance of the class. Initializes a programmatically manipulatable bag of these security settings with the settings from the config file. The newly created security settings object. Gets or sets a value indicating whether all discovery and authentication should require SSL security. Gets or sets a value indicating whether only OP Identifiers will be discoverable when creating authentication requests. Gets or sets a value indicating whether authentication requests will only be created where an association with the Provider can be established. Gets or sets the minimum OpenID version a Provider is required to support in order for this library to interoperate with it. Although the earliest versions of OpenID are supported, for security reasons it may be desirable to require the remote party to support a later version of OpenID. Gets or sets the minimum length of the hash that protects the protocol from hijackers. Gets or sets the maximum length of the hash that protects the protocol from hijackers. Gets or sets a value indicating whether all unsolicited assertions should be ignored. The default value is false. Gets or sets a value indicating whether delegating identifiers are refused for authentication. The default value is false. When set to true, login attempts that start at the RP or arrive via unsolicited assertions will be rejected if discovery on the identifier shows that OpenID delegation is used for the identifier. This is useful for an RP that should only accept identifiers directly issued by the Provider that is sending the assertion. Gets or sets a value indicating whether unsigned extensions in authentication responses should be ignored. The default value is false. When set to true, the methods will not return any extension that was not signed by the Provider. Gets or sets a value indicating whether identifiers that are both OP Identifiers and Claimed Identifiers should ever be recognized as claimed identifiers. The default value is false, per the OpenID 2.0 spec. Gets or sets a value indicating whether certain Claimed Identifiers that exploit features that .NET does not have the ability to send exact HTTP requests for will still be allowed by using an approximate HTTP request. The default value is true. Gets or sets a value indicating whether the Relying Party should take special care to protect users against replay attacks when interoperating with OpenID 1.1 Providers. Gets or sets the set of trusted OpenID Provider Endpoints. Represents the <xriResolver> element in the host's .config file. Gets the name of the @enabled attribute. The default value for . The name of the <proxy> sub-element. The default XRI proxy resolver to use. Initializes a new instance of the class. Gets or sets a value indicating whether this XRI resolution is enabled. The default value is true. Gets or sets the proxy to use for resolving XRIs. The default value is "xri.net". Adds OpenID-specific extension methods to the XrdsDocument class. Creates the service endpoints described in this document, useful for requesting authentication of one of the OpenID Providers that result from it. The XrdsDocument instance to use in this process. The claimed identifier that was used to discover this XRDS document. The user supplied identifier. A sequence of OpenID Providers that can assert ownership of the . Creates the service endpoints described in this document, useful for requesting authentication of one of the OpenID Providers that result from it. The XrdsDocument instance to use in this process. The user-supplied i-name that was used to discover this XRDS document. A sequence of OpenID Providers that can assert ownership of the canonical ID given in this document. Generates OpenID Providers that can authenticate using directed identity. The XrdsDocument instance to use in this process. The OP Identifier entered (and resolved) by the user. Essentially the user-supplied identifier. A sequence of the providers that can offer directed identity services. Generates the OpenID Providers that are capable of asserting ownership of a particular URI claimed identifier. The XrdsDocument instance to use in this process. The claimed identifier. The user supplied identifier. A sequence of the providers that can assert ownership of the given identifier. Generates the OpenID Providers that are capable of asserting ownership of a particular XRI claimed identifier. The XrdsDocument instance to use in this process. The i-name supplied by the user. A sequence of the providers that can assert ownership of the given identifier. Enumerates the XRDS service elements that describe OpenID Providers offering directed identity assertions. The XrdsDocument instance to use in this process. A sequence of service elements. Returns the OpenID-compatible services described by a given XRDS document, in priority order. The XrdsDocument instance to use in this process. A sequence of the services offered. Stores a secret used in signing and verifying messages. OpenID associations may be shared between Provider and Relying Party (smart associations), or be a way for a Provider to recall its own secret for later (dumb associations). Initializes a new instance of the class. The handle. The secret. How long the association will be useful. The UTC time of when this association was originally issued by the Provider. Re-instantiates an previously persisted in a database or some other shared store. The property of the previous instance. The UTC value of the property of the previous instance. The byte array returned by a call to on the previous instance. The newly dehydrated , which can be returned from a custom association store's IRelyingPartyAssociationStore.GetAssociation method. Returns private data required to persist this in permanent storage (a shared database for example) for deserialization later. An opaque byte array that must be stored and returned exactly as it is provided here. The byte array may vary in length depending on the specific type of , but in current versions are no larger than 256 bytes. Values of public properties on the base class are not included in this byte array, as they are useful for fast database lookup and are persisted separately. Tests equality of two objects. The to compare with the current . true if the specified is equal to the current ; otherwise, false. Returns the hash code. A hash code for the current . The string to pass as the assoc_type value in the OpenID protocol. The protocol version of the message that the assoc_type value will be included in. The value that should be used for the openid.assoc_type parameter. Generates a signature from a given blob of data. The data to sign. This data will not be changed (the signature is the return value). The calculated signature of the data. Returns the specific hash algorithm used for message signing. The hash algorithm used for message signing. Gets a unique handle by which this may be stored or retrieved. Gets the UTC time when this will expire. Gets a value indicating whether this has already expired. Gets the length (in bits) of the hash this association creates when signing. Gets a value indicating whether this instance has useful life remaining. true if this instance has useful life remaining; otherwise, false. Gets or sets the UTC time that this was first created. Gets the duration a secret key used for signing dumb client requests will be good for. Gets the number of seconds until this expires. Never negative (counter runs to zero). Gets the shared secret key between the consumer and provider. Gets the lifetime the OpenID provider permits this . Gets the minimum lifetime an association must still be good for in order for it to be used for a future authentication. Associations that are not likely to last the duration of a user login are not worth using at all. Gets the TimeSpan till this association expires. Indicates the mode the Provider should use while authenticating the end user. The Provider should use whatever credentials are immediately available to determine whether the end user owns the Identifier. If sufficient credentials (i.e. cookies) are not immediately available, the Provider should fail rather than prompt the user. The Provider should determine whether the end user owns the Identifier, displaying a web page to the user to login etc., if necessary. An Attribute Exchange and Simple Registration filter to make all incoming attribute requests look like Simple Registration requests, and to convert the response to the originally requested extension and format. Initializes a new instance of the class. Gets or sets the AX attribute type URI formats this transform is willing to work with. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to The PAPE request has an incomplete set of authentication policies.. Looks up a localized string similar to A PAPE response is missing or is missing required policies.. Looks up a localized string similar to No personally identifiable information should be included in authentication responses when the PAPE authentication policy http://www.idmanagement.gov/schema/2009/05/icam/no-pii.pdf is present.. Looks up a localized string similar to No personally identifiable information should be requested when the http://www.idmanagement.gov/schema/2009/05/icam/no-pii.pdf PAPE policy is present.. Looks up a localized string similar to No PPID provider has been configured.. Looks up a localized string similar to Discovery on the Realm URL MUST be performed before sending a positive assertion.. Looks up a localized string similar to The Realm in an authentication request must be an HTTPS URL.. Implements the Identity, Credential, & Access Management (ICAM) OpenID 2.0 Profile for the General Services Administration (GSA). Relying parties that include this profile are always held to the terms required by the profile, but Providers are only affected by the special behaviors of the profile when the RP specifically indicates that they want to use this profile. Backing field for the static property. Initializes a new instance of the class. Gets or sets a value indicating whether PII is allowed to be requested or received via OpenID. The default value is false. Gets or sets a value indicating whether to ignore the SSL requirement (for testing purposes only). Provides a mechanism for Relying Parties to work with OpenID 1.0 Providers without losing claimed_id and op_endpoint data, which OpenID 2.0 Providers are required to send back with positive assertions. The "dnoa.op_endpoint" callback parameter that stores the Provider Endpoint URL to tack onto the return_to URI. The "dnoa.claimed_id" callback parameter that stores the Claimed Identifier to tack onto the return_to URI. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection offered (if any) by this binding element. Code contract for the class. Signs and verifies authentication assertions. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Verifies the signature by unrecognized handle. The message. The signed message. The protections applied. The applied protections. Calculates the signature for a given message. The message to sign or verify. The association to use to sign the message. The calculated signature of the method. Gets the association to use to sign or verify a message. The message to sign or verify. The association to use to sign or verify the message. Gets a specific association referenced in a given message's association handle. The signed message whose association handle should be used to lookup the association to return. The referenced association; or null if such an association cannot be found. If the association handle set in the message does not match any valid association, the association handle property is cleared, and the property is set to the handle that could not be found. Gets a private Provider association used for signing messages in "dumb" mode. An existing or newly created association. Ensures that all message parameters that must be signed are in fact included in the signature. The signed message. Gets the protection offered (if any) by this binding element. Gets or sets the channel that this binding element belongs to. Gets a value indicating whether this binding element is on a Provider channel. Verifies the signature by unrecognized handle. The message. The signed message. The protections applied. The applied protections. Gets the association to use to sign or verify a message. The message to sign or verify. The association to use to sign or verify the message. Gets a specific association referenced in a given message's association handle. The signed message whose association handle should be used to lookup the association to return. The referenced association; or null if such an association cannot be found. The binding element that serializes/deserializes OpenID extensions to/from their carrying OpenID messages. False if unsigned extensions should be dropped. Must always be true on Providers, since RPs never sign extensions. Initializes a new instance of the class. The extension factory. The security settings. Security setting for relying parties. Should be true for Providers. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets the extensions on a message. The carrier of the extensions. If set to true only signed extensions will be available. A optional filter that takes an extension type URI and returns a value indicating whether that extension should be deserialized and returned in the sequence. May be null. A sequence of extensions in the message. Gets the dictionary of message parts that should be deserialized into extensions. The message. If set to true only signed extensions will be available. A dictionary of message parts, including only signed parts when appropriate. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the extension factory. Gets the protection offered (if any) by this binding element. OpenID extension factory class for creating extensions based on received Type URIs. OpenID extension factories must be registered with the library. This can be done by adding a factory to OpenIdRelyingParty.ExtensionFactories or OpenIdProvider.ExtensionFactories, or by adding a snippet such as the following to your web.config file: <dotNetOpenAuth> <openid> <extensionFactories> <add type="DotNetOpenAuth.ApplicationBlock.CustomExtensions.Acme, DotNetOpenAuth.ApplicationBlock" /> </extensionFactories> </openid> </dotNetOpenAuth> Creates a new instance of some extension based on the received extension parameters. The type URI of the extension. The parameters associated specifically with this extension. The OpenID message carrying this extension. A value indicating whether this extension is being received at the OpenID Provider. An instance of if the factory recognizes the extension described in the input parameters; null otherwise. This factory method need only initialize properties in the instantiated extension object that are not bound using . An interface that OAuth messages implement to support signing. Gets or sets the association handle used to sign the message. The handle for the association that was used to sign this assertion. Gets or sets the association handle that the Provider wants the Relying Party to not use any more. If the Relying Party sent an invalid association handle with the request, it SHOULD be included here. Gets or sets the signed parameter order. Comma-separated list of signed fields. "op_endpoint,identity,claimed_id,return_to,assoc_handle,response_nonce" This entry consists of the fields without the "openid." prefix that the signature covers. This list MUST contain at least "op_endpoint", "return_to" "response_nonce" and "assoc_handle", and if present in the response, "claimed_id" and "identity". Additional keys MAY be signed as part of the message. See Generating Signatures. A Uri encoder that serializes using rather than the standard . Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Indicates the level of strictness to require when decoding a Key-Value Form encoded dictionary. Be as forgiving as possible to errors made while encoding. Allow for certain errors in encoding attributable to ambiguities in the OpenID 1.1 spec's description of the encoding. The strictest mode. The decoder requires the encoded dictionary to be in strict compliance with OpenID 2.0's description of the encoding. Performs conversion to and from the Key-Value Form Encoding defined by OpenID Authentication 2.0 section 4.1.1. http://openid.net/specs/openid-authentication-2_0.html#anchor4 This class is thread safe and immutable. The newline character sequence to use. Characters that must not appear in parameter names. Characters that must not appaer in parameter values. The character encoding to use. Initializes a new instance of the class. Initializes a new instance of the class. How strictly an incoming Key-Value Form message will be held to the spec. Encodes key/value pairs to Key-Value Form. The dictionary of key/value pairs to convert to a byte stream. The UTF8 byte array. Enumerating a Dictionary<TKey, TValue> has undeterministic ordering. If ordering of the key=value pairs is important, a deterministic enumerator must be used. Decodes bytes in Key-Value Form to key/value pairs. The stream of Key-Value Form encoded bytes. The deserialized dictionary. Thrown when the data is not in the expected format. Gets a value controlling how strictly an incoming Key-Value Form message will be held to the spec. A channel that knows how to send and receive OpenID messages. The HTTP Content-Type to use in Key-Value Form responses. OpenID 2.0 section 5.1.2 says this SHOULD be text/plain. But this value does not prevent free hosters like GoDaddy from tacking on their ads to the end of the direct response, corrupting the data. So we deviate from the spec a bit here to improve the story for free Providers. The encoder that understands how to read and write Key-Value Form. Initializes a new instance of the class. A class prepared to analyze incoming messages and indicate what concrete message types can deserialize from it. The binding elements to use in sending and receiving messages. Verifies the integrity and applicability of an incoming message. The message just received. Thrown when the message is somehow invalid, except for check_authentication messages. This can be due to tampering, replay attack or expiration, among other things. Prepares an HTTP request that carries a given message. The message to send. The prepared to send the request. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Thrown when the response is not valid. Called when receiving a direct response message, before deserialization begins. The HTTP direct response. The newly instantiated message, prior to deserialization. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec V1.0 section 5.3. Gets the direct response of a direct HTTP request. The web request. The response to the web request. Thrown on network or protocol errors. This binding element signs a Relying Party's openid.return_to parameter so that upon return, it can verify that it hasn't been tampered with. Since Providers can send unsolicited assertions, not all openid.return_to values will be signed. But those that are signed will be validated, and any invalid or missing signatures will cause this library to not trust the parameters in the return_to URL. In the messaging stack, this binding element looks like an ordinary transform-type of binding element rather than a protection element, due to its required order in the channel stack and that it doesn't sign anything except a particular message part. The name of the callback parameter we'll tack onto the return_to value to store our signature on the return_to parameter. The name of the callback parameter we'll tack onto the return_to value to store the handle of the association we use to sign the return_to parameter. The URI to use for private associations at this RP. The key store used to generate the private signature on the return_to parameter. Initializes a new instance of the class. The crypto key store. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets the return to signature. The return to. The crypto key. The generated signature. Only the parameters in the return_to URI are signed, rather than the base URI itself, in order that OPs that might change the return_to's implicit port :80 part or other minor changes do not invalidate the signature. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection offered (if any) by this binding element. No message protection is reported because this binding element does not protect the entire message -- only a part. Spoofs security checks on incoming OpenID messages. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. Code contract for the class. Prevents a default instance of the class from being created. The string to pass as the assoc_type value in the OpenID protocol. The protocol version of the message that the assoc_type value will be included in. The value that should be used for the openid.assoc_type parameter. Returns the specific hash algorithm used for message signing. The hash algorithm used for message signing. Gets the length (in bits) of the hash this association creates when signing. Manages a fast, two-way mapping between type URIs and their aliases. The format of auto-generated aliases. Tracks extension Type URIs and aliases assigned to them. Tracks extension aliases and Type URIs assigned to them. Gets an alias assigned for a given Type URI. A new alias is assigned if necessary. The type URI. The alias assigned to this type URI. Never null. Sets an alias and the value that will be returned by . The alias. The type URI. Takes a sequence of type URIs and assigns aliases for all of them. The type URIs to create aliases for. An optional dictionary of URI/alias pairs that suggest preferred aliases to use if available for certain type URIs. Sets up aliases for any Type URIs in a dictionary that do not yet have aliases defined, and where the given preferred alias is still available. A dictionary of type URI keys and alias values. Gets the Type Uri encoded by a given alias. The alias. The Type URI. Thrown if the given alias does not have a matching TypeURI. Gets the Type Uri encoded by a given alias. The alias. The Type URI for the given alias, or null if none for that alias exist. Returns a value indicating whether an alias has already been assigned to a type URI. The alias in question. True if the alias has already been assigned. False otherwise. Determines whether a given TypeURI has an associated alias assigned to it. The type URI. true if the given type URI already has an alias assigned; false otherwise. Assigns a new alias to a given Type URI. The type URI to assign a new alias to. The newly generated alias. Gets the aliases that have been set. An individual attribute to be requested of the OpenID Provider using the Attribute Exchange extension. Backing field for the property. Initializes a new instance of the class with = false, = 1. Initializes a new instance of the class with = false, = 1. The unique TypeURI for that describes the attribute being sought. Initializes a new instance of the class with = 1. The unique TypeURI for that describes the attribute being sought. A value indicating whether the Relying Party considers this attribute to be required for registration. Initializes a new instance of the class. The unique TypeURI for that describes the attribute being sought. A value indicating whether the Relying Party considers this attribute to be required for registration. The maximum number of values for this attribute the Relying Party is prepared to receive. Used by a Provider to create a response to a request for an attribute's value(s) using a given array of strings. The values for the requested attribute. The newly created object that should be added to the object. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Gets or sets the URI uniquely identifying the attribute being requested. Gets or sets a value indicating whether the relying party considers this a required field. Note that even if set to true, the Provider may not provide the value. Gets or sets the maximum number of values for this attribute the Relying Party wishes to receive from the OpenID Provider. A value of int.MaxValue is considered infinity. An individual attribute's value(s) as supplied by an OpenID Provider in response to a prior request by an OpenID Relying Party as part of a fetch request, or by a relying party as part of a store request. Initializes a new instance of the class. The TypeURI that uniquely identifies the attribute. The values for the attribute. Initializes a new instance of the class. This is internal because web sites should be using the method to instantiate. Initializes a new instance of the class. The TypeURI of the attribute whose values are being provided. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Gets the URI uniquely identifying the attribute whose value is being supplied. Gets the values supplied by the Provider. The various Type URI formats an AX attribute may use by various remote parties. No attribute format. AX attributes should use the Type URI format starting with http://axschema.org/. AX attributes should use the Type URI format starting with http://schema.openid.net/. AX attributes should use the Type URI format starting with http://openid.net/schema/. All known schemas. The most common schemas. Helper methods shared by multiple messages in the Attribute Exchange extension. Adds a request for an attribute considering it 'required'. The attribute request collection. The type URI of the required attribute. Adds a request for an attribute without considering it 'required'. The attribute request collection. The type URI of the requested attribute. Adds a given attribute with one or more values to the request for storage. Applicable to Relying Parties only. The collection of to add to. The type URI of the attribute. The attribute values. Serializes a set of attribute values to a dictionary of fields to send in the message. The dictionary to fill with serialized attributes. The attributes. Deserializes attribute values from an incoming set of message data. The data coming in with the message. The attribute values found in the message. Reads through the attributes included in the response to discover the alias-TypeURI relationships. The data included in the extension message. The alias manager that provides lookup between aliases and type URIs. Attribute Exchange constants The TypeURI by which the AX extension is recognized in OpenID messages and in XRDS documents. The Attribute Exchange Fetch message, request leg. A handy base class for built-in extensions. The contract any OpenID extension for DotNetOpenAuth must implement. Classes that implement this interface should be marked as [] to allow serializing state servers to cache messages, particularly responses. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets or sets a value indicating whether this extension was signed by the sender. true if this instance is signed by the sender; otherwise, false. Backing store for the property. Backing store for the property. Backing store for the property. Initializes a new instance of the class. The version of the extension. The type URI to use in the OpenID message. The additional supported type URIs by which this extension might be recognized. May be null. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets or sets a value indicating whether this extension was signed by the OpenID Provider. true if this instance is signed by the provider; otherwise, false. Gets the version of the protocol or extension this message is prepared to implement. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets or sets a value indicating whether this extension was signed by the OpenID Provider. true if this instance is signed by the provider; otherwise, false. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. The value for the 'mode' parameter. The factory method that may be used in deserialization of this message. Characters that may not appear in an attribute alias list. Characters that may not appear in an attribute Type URI alias. The collection of requested attributes. Initializes a new instance of the class. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Splits a list of aliases by their commas. The comma-delimited list of aliases. May be null or empty. The list of aliases. Never null, but may be empty. Gets a collection of the attributes whose values are requested by the Relying Party. A collection where the keys are the attribute type URIs, and the value is all the attribute request details. Gets or sets the URL that the OpenID Provider may re-post the fetch response message to at some time after the initial response has been sent, using an OpenID Authentication Positive Assertion to inform the relying party of updates to the requested fields. Gets or sets a list of aliases for optional attributes. A comma-delimited list of aliases. Gets or sets a list of aliases for required attributes. A comma-delimited list of aliases. The Attribute Exchange Fetch message, response leg. The value of the 'mode' parameter. The factory method that may be used in deserialization of this message. The collection of provided attributes. This field will never be null. Initializes a new instance of the class. Gets the first attribute value provided for a given attribute Type URI. The type URI of the attribute. Usually a constant from . The first value provided for the attribute, or null if the attribute is missing or no values were provided. This is meant as a helper method for the common case of just wanting one attribute value. For greater flexibility or to retrieve more than just the first value for an attribute, use the collection directly. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets a sequence of the attributes whose values are provided by the OpenID Provider. Gets a value indicating whether the OpenID Provider intends to honor the request for updates. Gets or sets the URL the OpenID Provider will post updates to. Must be set if the Provider supports and will use this feature. Gets a value indicating whether this extension is signed by the Provider. true if this instance is signed by the Provider; otherwise, false. The Attribute Exchange Store message, request leg. The value of the 'mode' parameter. The factory method that may be used in deserialization of this message. The collection of provided attribute values. This field will never be null. Initializes a new instance of the class. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Gets the collection of all the attributes that are included in the store request. The Attribute Exchange Store message, response leg. The value of the mode parameter used to express a successful store operation. The value of the mode parameter used to express a store operation failure. The factory method that may be used in deserialization of this message. Initializes a new instance of the class to represent a successful store operation. Initializes a new instance of the class to represent a failed store operation. The reason for failure. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets or sets a value indicating whether the storage request succeeded. Defaults to true. Gets or sets the reason for the failure, if applicable. Gets a value indicating whether this extension is signed by the Provider. true if this instance is signed by the Provider; otherwise, false. Gets or sets the mode argument. One of 'store_response_success' or 'store_response_failure'. Attribute types defined at http://www.axschema.org/types/. If you don't see what you need here, check that URL to see if any have been added. You can use new ones directly without adding them to this class, and can even make up your own if you expect the other end to understand what you make up. Inherent attributes about a personality such as gender and bio. Gender, either "M" or "F" "M", "F" Biography (text) "I am the very model of a modern Major General." Preferences such as language and timezone. Preferred language, as per RFC4646 "en-US" Home time zone information (as specified in zoneinfo) "America/Pacific" The names a person goes by. Subject's alias or "screen" name "Johnny5" Full name of subject "John Doe" Honorific prefix for the subject's name "Mr.", "Mrs.", "Dr." First or given name of subject "John" Last name or surname of subject "Smith" Middle name(s) of subject "Robert" Suffix of subject's name "III", "Jr." Business affiliation. Company name (employer) "Springfield Power" Employee title "Engineer" Information about a person's birthdate. Date of birth. "1979-01-01" Year of birth (four digits) "1979" Month of birth (1-12) "05" Day of birth "31" Various ways to contact a person. Internet SMTP email address as per RFC2822 "jsmith@isp.example.com" Various types of phone numbers. Main phone number (preferred) +1-800-555-1234 Home phone number +1-800-555-1234 Business phone number +1-800-555-1234 Cellular (or mobile) phone number +1-800-555-1234 Fax number +1-800-555-1234 The many fields that make up an address. Home postal address: street number, name and apartment number "#42 135 East 1st Street" "#42 135 East 1st Street" "Box 67" Home city name "Vancouver" Home state or province name "BC" Home country code in ISO.3166.1988 (alpha 2) format "CA" Home postal code; region specific format "V5A 4B2" The many fields that make up an address. Business postal address: street number, name and apartment number "#42 135 East 1st Street" "#42 135 East 1st Street" "Box 67" Business city name "Vancouver" Business state or province name "BC" Business country code in ISO.3166.1988 (alpha 2) format "CA" Business postal code; region specific format "V5A 4B2" Various handles for instant message clients. AOL instant messaging service handle "jsmith421234" ICQ instant messaging service handle "1234567" MSN instant messaging service handle "jsmith42@hotmail.com" Yahoo! instant messaging service handle "jsmith421234" Jabber instant messaging service handle "jsmith@jabber.example.com" Skype instant messaging service handle "jsmith42" Various web addresses connected with this personality. Web site URL "http://example.com/~jsmith/" Blog home page URL "http://example.com/jsmith_blog/" LinkedIn URL "http://www.linkedin.com/pub/1/234/56" Amazon URL "http://www.amazon.com/gp/pdp/profile/A24DLKJ825" Flickr URL "http://flickr.com/photos/jsmith42/" del.icio.us URL "http://del.icio.us/jsmith42" Audio and images of this personality. Spoken name (web URL) "http://example.com/~jsmith/john_smith.wav" Audio greeting (web URL) "http://example.com/~jsmith/i_greet_you.wav" Video greeting (web URL) "http://example.com/~jsmith/i_greet_you.mov" Images of this personality. Image (web URL); unspecified dimension "http://example.com/~jsmith/image.jpg" Image (web URL) with equal width and height "http://example.com/~jsmith/image.jpg" Image (web URL) 4:3 aspect ratio - landscape "http://example.com/~jsmith/image.jpg" Image (web URL) 4:3 aspect ratio - landscape "http://example.com/~jsmith/image.jpg" Image (web URL); favicon format as per FAVICON-W3C. The format for the image must be 16x16 pixels or 32x32 pixels, using either 8-bit or 24-bit colors. The format of the image must be one of PNG (a W3C standard), GIF, or ICO. "http://example.com/~jsmith/image.jpg" Manages the processing and construction of OpenID extensions parts. This contains a set of aliases that we must be willing to implicitly match to namespaces for backward compatibility with other OpenID libraries. The version of OpenID that the message is using. Whether extensions are being read or written. The alias manager that will track Type URI to alias mappings. A complex dictionary where the key is the Type URI of the extension, and the value is another dictionary of the name/value args of the extension. Prevents a default instance of the class from being created. Creates a instance to process incoming extensions. The parameters in the OpenID message. The newly created instance of . Creates a instance to prepare outgoing extensions. The protocol version used for the outgoing message. The newly created instance of . Adds query parameters for OpenID extensions to the request directed at the OpenID provider. The extension type URI. The arguments for this extension to add to the message. Gets the actual arguments to add to a querystring or other response, where type URI, alias, and actual key/values are all defined. true if the generated parameter names should include the 'openid.' prefix. This should be true for all but direct response messages. A dictionary of key=value pairs to add to the message to carry the extension. Gets the fields carried by a given OpenId extension. The type URI of the extension whose fields are being queried for. The fields included in the given extension, or null if the extension is not present. Gets whether any arguments for a given extension are present. The extension Type URI in question. true if this extension is present; false otherwise. Gets the type URIs of all discovered extensions in the message. A sequence of the type URIs. Gets a value indicating whether the extensions are being read (as opposed to written). An interface that OpenID extensions can implement to allow authentication response messages with included extensions to be processed by Javascript on the user agent. Reads the extension information on an authentication response from the provider. The incoming OpenID response carrying the extension. A Javascript snippet that when executed on the user agent returns an object with the information deserialized from the extension response. This method is called before the signature on the assertion response has been verified. Therefore all information in these fields should be assumed unreliable and potentially falsified. An extension to include with an authentication request in order to also obtain authorization to access user data at the combined OpenID Provider and Service Provider. When requesting OpenID Authentication via the protocol mode "checkid_setup" or "checkid_immediate", this extension can be used to request that the end user authorize an OAuth access token at the same time as an OpenID authentication. This is done by sending the following parameters as part of the OpenID request. (Note that the use of "oauth" as part of the parameter names here and in subsequent sections is just an example. See Section 5 for details.) See section 8. The factory method that may be used in deserialization of this message. Initializes a new instance of the class. Gets or sets the consumer key agreed upon between the Consumer and Service Provider. Gets or sets a string that encodes, in a way possibly specific to the Combined Provider, one or more scopes for the OAuth token expected in the authentication response. The OAuth response that a Provider may include with a positive OpenID identity assertion with an approved request token. The factory method that may be used in deserialization of this message. Initializes a new instance of the class. Gets or sets the user-approved request token. The request token. Gets or sets a string that encodes, in a way possibly specific to the Combined Provider, one or more scopes that the returned request token is valid for. This will typically indicate a subset of the scopes requested in Section 8. Constants used in the OpenID OAuth extension. The TypeURI for the OpenID OAuth extension. The name of the parameter that carries the request token in the response. The OAuth response that a Provider should include with a positive OpenID identity assertion when OAuth authorization was declined. The factory method that may be used in deserialization of this message. Initializes a new instance of the class. An OpenID extension factory that only delegates extension instantiation requests to other factories. The list of factories this factory delegates to. Initializes a new instance of the class. Creates a new instance of some extension based on the received extension parameters. The type URI of the extension. The parameters associated specifically with this extension. The OpenID message carrying this extension. A value indicating whether this extension is being received at the OpenID Provider. An instance of if the factory recognizes the extension described in the input parameters; null otherwise. This factory method need only initialize properties in the instantiated extension object that are not bound using . Loads the default factory and additional ones given by the configuration. A new instance of . Gets the extension factories that this aggregating factory delegates to. A list of factories. May be empty, but never null. Encodes/decodes the Simple Registration Gender type to its string representation. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. An OpenID extension factory that supports registration so that third-party extensions can add themselves to this library's supported extension list. A collection of the registered OpenID extensions. Initializes a new instance of the class. Creates a new instance of some extension based on the received extension parameters. The type URI of the extension. The parameters associated specifically with this extension. The OpenID message carrying this extension. A value indicating whether this extension is being received at the OpenID Provider. An instance of if the factory recognizes the extension described in the input parameters; null otherwise. This factory method need only initialize properties in the instantiated extension object that are not bound using . Registers a new extension delegate. The factory method that can create the extension. A delegate that individual extensions may register with this factory. The type URI of the extension. The parameters associated specifically with this extension. The OpenID message carrying this extension. A value indicating whether this extension is being received at the OpenID Provider. An instance of if the factory recognizes the extension described in the input parameters; null otherwise. Well-known authentication policies defined in the PAPE extension spec or by a recognized standards body. This is a class of constants rather than a flags enum because policies may be freely defined and used by anyone, just by using a new Uri. An authentication mechanism where the End User does not provide a shared secret to a party potentially under the control of the Relying Party. (Note that the potentially malicious Relying Party controls where the User-Agent is redirected to and thus may not send it to the End User's actual OpenID Provider). An authentication mechanism where the End User authenticates to the OpenID Provider by providing over one authentication factor. Common authentication factors are something you know, something you have, and something you are. An example would be authentication using a password and a software token or digital certificate. An authentication mechanism where the End User authenticates to the OpenID Provider by providing over one authentication factor where at least one of the factors is a physical factor such as a hardware device or biometric. Common authentication factors are something you know, something you have, and something you are. This policy also implies the Multi-Factor Authentication policy (http://schemas.openid.net/pape/policies/2007/06/multi-factor) and both policies MAY BE specified in conjunction without conflict. An example would be authentication using a password and a hardware token. Indicates that the Provider MUST use a pair-wise pseudonym for the user that is persistent and unique across the requesting realm as the openid.claimed_id and openid.identity (see Section 4.2). Indicates that the OP MUST only respond with a positive assertion if the requirements demonstrated by the OP to obtain certification by a Federally adopted Trust Framework Provider have been met. Notwithstanding the RP may request this authentication policy, the RP MUST still verify that this policy appears in the positive assertion response rather than assume the OP recognized and complied with the request. Indicates that the OP MUST not include any OpenID Attribute Exchange or Simple Registration information regarding the user in the assertion. Used in a PAPE response to indicate that no PAPE authentication policies could be satisfied. Used internally by the PAPE extension, so that users don't have to know about it. OpenID Provider Authentication Policy extension constants. The namespace used by this extension in messages. The namespace alias to use for OpenID 1.x interop, where aliases are not defined in the message. The string to prepend on an Auth Level Type alias definition. Well-known assurance level Type URIs. The Type URI of the NIST assurance level. A mapping between the PAPE TypeURI and the alias to use if possible for backward compatibility reasons. Parameters to be included with PAPE requests. Optional. If the End User has not actively authenticated to the OP within the number of seconds specified in a manner fitting the requested policies, the OP SHOULD authenticate the End User for this request. Integer value greater than or equal to zero in seconds. The OP should realize that not adhering to the request for re-authentication most likely means that the End User will not be allowed access to the services provided by the RP. If this parameter is absent in the request, the OP should authenticate the user at its own discretion. Zero or more authentication policy URIs that the OP SHOULD conform to when authenticating the user. If multiple policies are requested, the OP SHOULD satisfy as many as it can. Space separated list of authentication policy URIs. If no policies are requested, the RP may be interested in other information such as the authentication age. The space separated list of the name spaces of the custom Assurance Level that RP requests, in the order of its preference. An encoder/decoder design for DateTimes that must conform to the PAPE spec. The timestamp MUST be formatted as specified in section 5.6 of [RFC3339] (Klyne, G. and C. Newman, “Date and Time on the Internet: Timestamps,” .), with the following restrictions: * All times must be in the UTC timezone, indicated with a "Z". * No fractional seconds are allowed For example: 2005-05-15T17:11:51Z An array of the date/time formats allowed by the PAPE extension. TODO: This array of formats is not yet a complete list. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Descriptions for NIST-defined levels of assurance that a credential has not been compromised and therefore the extent to which an authentication assertion can be trusted. One using this enum should review the following publication for details before asserting or interpreting what these levels signify, notwithstanding the brief summaries attached to each level in DotNetOpenAuth documentation. http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf See PAPE spec Appendix A.1.2 (NIST Assurance Levels) for high-level example classifications of authentication methods within the defined levels. Not an assurance level defined by NIST, but rather SHOULD be used to signify that the OP recognizes the parameter and the End User authentication did not meet the requirements of Level 1. See this document for a thorough description: http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf See this document for a thorough description: http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf See this document for a thorough description: http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf See this document for a thorough description: http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf Utility methods for use by the PAPE extension. Looks at the incoming fields and figures out what the aliases and name spaces for auth level types are. The incoming message data in which to discover TypeURIs and aliases. The initialized with the given data. Concatenates a sequence of strings using a space as a separator. The elements to concatenate together.. The concatenated string of elements. Thrown if any element in the sequence includes a space. The PAPE request part of an OpenID Authentication request message. The factory method that may be used in deserialization of this message. The transport field for the RP's preferred authentication policies. This field is written to/read from during custom serialization. Initializes a new instance of the class. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Serializes the policies as a single string per the PAPE spec.. The policies to include in the list. The concatenated string of the given policies. Serializes the auth levels to a list of aliases. The preferred auth level types. The alias manager. A space-delimited list of aliases. Gets or sets the maximum acceptable time since the End User has actively authenticated to the OP in a manner fitting the requested policies, beyond which the Provider SHOULD authenticate the End User for this request. The OP should realize that not adhering to the request for re-authentication most likely means that the End User will not be allowed access to the services provided by the RP. If this parameter is absent in the request, the OP should authenticate the user at its own discretion. Gets the list of authentication policy URIs that the OP SHOULD conform to when authenticating the user. If multiple policies are requested, the OP SHOULD satisfy as many as it can. List of authentication policy URIs obtainable from the class or from a custom list. If no policies are requested, the RP may be interested in other information such as the authentication age. Gets the namespaces of the custom Assurance Level the Relying Party requests, in the order of its preference. The PAPE response part of an OpenID Authentication response message. The first part of a parameter name that gives the custom string value for the assurance level. The second part of the parameter name is the alias for that assurance level. The factory method that may be used in deserialization of this message. One or more authentication policy URIs that the OP conformed to when authenticating the End User. Space separated list of authentication policy URIs. If no policies were met though the OP wishes to convey other information in the response, this parameter MUST be included with the value of "none". Backing field for the property. Initializes a new instance of the class. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Serializes the applied policies for transmission from the Provider to the Relying Party. The applied policies. A space-delimited list of applied policies. Gets a list of authentication policy URIs that the OP conformed to when authenticating the End User. Gets or sets the most recent timestamp when the End User has actively authenticated to the OP in a manner fitting the asserted policies. If the RP's request included the "openid.max_auth_age" parameter then the OP MUST include "openid.auth_time" in its response. If "openid.max_auth_age" was not requested, the OP MAY choose to include "openid.auth_time" in its response. Gets or sets the Assurance Level as defined by the National Institute of Standards and Technology (NIST) in Special Publication 800-63 (Burr, W., Dodson, D., and W. Polk, Ed., “Electronic Authentication Guideline,” April 2006.) [NIST_SP800‑63] corresponding to the authentication method and policies employed by the OP when authenticating the End User. See PAPE spec Appendix A.1.2 (NIST Assurance Levels) for high-level example classifications of authentication methods within the defined levels. Gets a dictionary where keys are the authentication level type URIs and the values are the per authentication level defined custom value. A very common key is and values for this key are available in . Gets a value indicating whether this extension is signed by the Provider. true if this instance is signed by the Provider; otherwise, false. Carries the request/require/none demand state of the simple registration fields. The factory method that may be used in deserialization of this message. The type URI that this particular (deserialized) extension was read in using, allowing a response to alter be crafted using the same type URI. Initializes a new instance of the class. Initializes a new instance of the class by deserializing from a message. The type URI this extension was recognized by in the OpenID message. Tests equality between two structs. One instance to compare. Another instance to compare. The result of the operator. Tests inequality between two structs. One instance to compare. Another instance to compare. The result of the operator. Tests equality between two structs. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Renders the requested information as a string. A that represents the current . Prepares a Simple Registration response extension that is compatible with the version of Simple Registration used in the request message. The newly created instance. Sets the profile request properties according to a list of field names that might have been passed in the OpenId query dictionary. The list of field names that should receive a given . These field names should match the OpenId specification for field names, omitting the 'openid.sreg' prefix. The none/request/require state of the listed fields. Assembles the profile parameter names that have a given . The demand level (request, require, none). An array of the profile parameter names that meet the criteria. Gets or sets the URL the consumer site provides for the authenticating user to review for how his claims will be used by the consumer web site. Gets or sets the level of interest a relying party has in the nickname of the user. Gets or sets the level of interest a relying party has in the email of the user. Gets or sets the level of interest a relying party has in the full name of the user. Gets or sets the level of interest a relying party has in the birthdate of the user. Gets or sets the level of interest a relying party has in the gender of the user. Gets or sets the level of interest a relying party has in the postal code of the user. Gets or sets the level of interest a relying party has in the Country of the user. Gets or sets the level of interest a relying party has in the language of the user. Gets or sets the level of interest a relying party has in the time zone of the user. Gets or sets a value indicating whether this instance is synthesized from an AX request at the Provider. Gets or sets the value of the sreg.required parameter. A comma-delimited list of sreg fields. Gets or sets the value of the sreg.optional parameter. A comma-delimited list of sreg fields. A struct storing Simple Registration field values describing an authenticating user. The factory method that may be used in deserialization of this message. The allowed format for birthdates. Storage for the raw string birthdate value. Backing field for the property. Backing field for the property. Initializes a new instance of the class. Initializes a new instance of the class. The type URI that must be used to identify this extension in the response message. This value should be the same one the relying party used to send the extension request. Tests equality of two objects. One instance to compare. Another instance to compare. The result of the operator. Tests inequality of two objects. One instance to compare. Another instance to compare. The result of the operator. Tests equality of two objects. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Reads the extension information on an authentication response from the provider. The incoming OpenID response carrying the extension. A Javascript snippet that when executed on the user agent returns an object with the information deserialized from the extension response. This method is called before the signature on the assertion response has been verified. Therefore all information in these fields should be assumed unreliable and potentially falsified. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Translates an empty string value to null, or passes through non-empty values. The value to consider changing to null. Either null or a non-empty string. Gets or sets the nickname the user goes by. Gets or sets the user's email address. Gets or sets the full name of a user as a single string. Gets or sets the user's birthdate. Gets or sets the raw birth date string given by the extension. A string in the format yyyy-MM-dd. Gets or sets the gender of the user. Gets or sets the zip code / postal code of the user. Gets or sets the country of the user. Gets or sets the primary/preferred language of the user. Gets or sets the user's timezone. Gets a combination of the user's full name and email address. Gets or sets a combination o the language and country of the user. Gets a value indicating whether this extension is signed by the Provider. true if this instance is signed by the Provider; otherwise, false. Simple Registration constants Additional type URIs that this extension is sometimes known by remote parties. Specifies what level of interest a relying party has in obtaining the value of a given field offered by the Simple Registration extension. The relying party has no interest in obtaining this field. The relying party would like the value of this field, but wants the Provider to display the field to the user as optionally provided. The relying party considers this a required field as part of authentication. The Provider and/or user agent MAY still choose to not provide the value of the field however, according to the Simple Registration extension specification. Indicates the gender of a user. The user is male. The user is female. Constants used to support the UI extension. The type URI associated with this extension. The Type URI that appears in an XRDS document when the OP supports popups through the UI extension. The Type URI that appears in an XRDS document when the OP supports the RP specifying the user's preferred language through the UI extension. The Type URI that appears in the XRDS document when the OP supports the RP specifying the icon for the OP to display during authentication through the UI extension. Valid values for the mode parameter of the OpenID User Interface extension. Indicates that the Provider's authentication page appears in a popup window. The constant "popup". The RP SHOULD create the popup to be 450 pixels wide and 500 pixels tall. The popup MUST have the address bar displayed, and MUST be in a standalone browser window. The contents of the popup MUST NOT be framed by the RP. The RP SHOULD open the popup centered above the main browser window, and SHOULD dim the contents of the parent window while the popup is active. The RP SHOULD ensure that the user is not surprised by the appearance of the popup, and understands how to interact with it. To keep the user popup user experience consistent, it is RECOMMENDED that the OP does not resize the popup window unless the OP requires additional space to show special features that are not usually displayed as part of the default popup user experience. The OP MAY close the popup without returning a response to the RP. Closing the popup without sending a response should be interpreted as a negative assertion. The response to an authentication request in a popup is unchanged from [OpenID 2.0] (OpenID 2.0 Workgroup, “OpenID 2.0,” .). Relying Parties detecting that the popup was closed without receiving an authentication response SHOULD interpret the close event to be a negative assertion. OpenID User Interface extension 1.0 request message. Implements the extension described by: http://wiki.openid.net/f/openid_ui_extension_draft01.html This extension only applies to checkid_setup requests, since checkid_immediate requests display no UI to the user. For rules about how the popup window should be displayed, please see the documentation of . An RP may determine whether an arbitrary OP supports this extension (and thereby determine whether to use a standard full window redirect or a popup) via the method. The factory method that may be used in deserialization of this message. Additional type URIs that this extension is sometimes known by remote parties. Backing store for . Initializes a new instance of the class. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Gets or sets the list of user's preferred languages, sorted in decreasing preferred order. The default is the of the thread that created this instance. The user's preferred languages as a [BCP 47] language priority list, represented as a comma-separated list of BCP 47 basic language ranges in descending priority order. For instance, the value "fr-CA,fr-FR,en-CA" represents the preference for French spoken in Canada, French spoken in France, followed by English spoken in Canada. Gets or sets the style of UI that the RP is hosting the OP's authentication page in. Some value from the class. Defaults to . Gets or sets a value indicating whether the Relying Party has an icon it would like the Provider to display to the user while asking them whether they would like to log in. true if the Provider should display an icon; otherwise, false. By default, the Provider displays the relying party's favicon.ico. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets or sets a value indicating whether this extension was signed by the sender. true if this instance is signed by the sender; otherwise, false. Gets the version of the protocol or extension this message is prepared to implement. The value 1.0. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Constants used in implementing support for the UI extension. The required width of the popup window the relying party creates for the provider. The required height of the popup window the relying party creates for the provider. An Identifier is either a "http" or "https" URI, or an XRI. Initializes a new instance of the class. The original string before any normalization. Whether the derived class is prepared to guarantee end-to-end discovery and initial redirect for authentication is performed using SSL. Converts the string representation of an Identifier to its strong type. The identifier. The particular Identifier instance to represent the value given. Converts a given Uri to a strongly-typed Identifier. The identifier to convert. The result of the conversion. Converts an Identifier to its string representation. The identifier to convert to a string. The result of the conversion. Parses an identifier string and automatically determines whether it is an XRI or URI. Either a URI or XRI identifier. An instance for the given value. Parses an identifier string and automatically determines whether it is an XRI or URI. Either a URI or XRI identifier. if set to true this Identifier will serialize exactly as given rather than in its normalized form. An instance for the given value. Attempts to parse a string for an OpenId Identifier. The string to be parsed. The parsed Identifier form. True if the operation was successful. False if the string was not a valid OpenId Identifier. Checks the validity of a given string representation of some Identifier. The identifier. true if the specified identifier is valid; otherwise, false. Tests equality between two s. The first Identifier. The second Identifier. true if the two instances should be considered equal; false otherwise. Tests inequality between two s. The first Identifier. The second Identifier. true if the two instances should be considered unequal; false if they are equal. Tests equality between two s. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Gets the hash code for an for storage in a hashtable. A hash code for the current . Reparses the specified identifier in order to be assured that the concrete type that implements the identifier is one of the well-known ones. The identifier. Either or . Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. Gets the original string that was normalized to create this Identifier. Gets the Identifier in the form in which it should be serialized. For Identifiers that were originally deserialized, this is the exact same string that was deserialized. For Identifiers instantiated in some other way, this is the normalized form of the string used to instantiate the identifier. Gets or sets a value indicating whether instances are considered equal based solely on their string reprsentations. This property serves as a test hook, so that MockIdentifier instances can be considered "equal" to UriIdentifier instances. Gets a value indicating whether this Identifier will ensure SSL is used throughout the discovery phase and initial redirect of authentication. If this is false, a value of true may be obtained by calling . Gets a value indicating whether this instance was initialized from deserializing a message. This is interesting because when an Identifier comes from the network, we can't normalize it and then expect signatures to still verify. But if the Identifier is initialized locally, we can and should normalize it before serializing it. Provides conversions to and from strings for messages that include members of this type. Encodes the specified value as the original value that was formerly decoded. The value. Guaranteed to never be null. The in string form, ready for message transport. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Code Contract for the class. Prevents a default instance of the IdentifierContract class from being created. Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. A set of methods designed to assist in improving interop across different OpenID implementations and their extensions. The gender decoder to translate AX genders to Sreg. Splits the AX attribute format flags into individual values for processing. The formats to split up into individual flags. A sequence of individual flags. Transforms an AX attribute type URI from the axschema.org format into a given format. The ax schema org format type URI. The target format. Only one flag should be set. The AX attribute type URI in the target format. Detects the AX attribute type URI format from a given sample. The type URIs to scan for recognized formats. The first AX type URI format recognized in the list. Adds an attribute fetch request if it is not already present in the AX request. The AX request to add the attribute request to. The format of the attribute's Type URI to use. The attribute in axschema.org format. The demand level. Gets the gender decoder to translate AX genders to Sreg. Represents a single OP endpoint from discovery on some OpenID Identifier. Information published about an OpenId Provider by the OpenId discovery documents found at a user's Claimed Identifier. Because information provided by this interface is suppplied by a user's individually published documents, it may be incomplete or inaccurate. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Gets the detected version of OpenID implemented by the Provider. Gets the URL that the OpenID Provider receives authentication requests at. This value MUST be an absolute HTTP or HTTPS URL. Backing field for the property. Backing field for the property. Backing field for the property. Initializes a new instance of the class. The provider endpoint. The Claimed Identifier. The User-supplied Identifier. The Provider Local Identifier. The service priority. The URI priority. Implements the operator ==. The first service endpoint. The second service endpoint. The result of the operator. Implements the operator !=. The first service endpoint. The second service endpoint. The result of the operator. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Returns a that represents the current . A that represents the current . Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Determines whether a given extension is supported by this endpoint. An instance of the extension to check support for. true if the extension is supported by this endpoint; otherwise, false. Creates a instance to represent some OP Identifier. The provider identifier (actually the user-supplied identifier). The provider endpoint. The service priority. The URI priority. The created instance Creates a instance to represent some Claimed Identifier. The claimed identifier. The provider local identifier. The provider endpoint. The service priority. The URI priority. The created instance Creates a instance to represent some Claimed Identifier. The claimed identifier. The user supplied identifier. The provider local identifier. The provider endpoint. The service priority. The URI priority. The created instance Determines whether a given type URI is present on the specified provider endpoint. The type URI. true if the type URI is present on the specified provider endpoint; otherwise, false. Sets the Capabilities property (this method is a test hook.) The value. The publicize.exe tool should work for the unit tests, but for some reason it fails on the build server. Gets the priority rating for a given type of endpoint, allowing a priority sorting of endpoints. The endpoint to prioritize. An arbitary integer, which may be used for sorting against other returned values from this method. Gets the detected version of OpenID implemented by the Provider. Gets the Identifier that was presented by the end user to the Relying Party, or selected by the user at the OpenID Provider. During the initiation phase of the protocol, an end user may enter either their own Identifier or an OP Identifier. If an OP Identifier is used, the OP may then assist the end user in selecting an Identifier to share with the Relying Party. Gets the Identifier that the end user claims to control. Gets an alternate Identifier for an end user that is local to a particular OP and thus not necessarily under the end user's control. Gets a more user-friendly (but NON-secure!) string to display to the user as his identifier. A human-readable, abbreviated (but not secure) identifier the user MAY recognize as his own. Gets the provider endpoint. Gets the @priority given in the XRDS document for this specific OP endpoint. Gets the @priority given in the XRDS document for this service (which may consist of several endpoints). Gets the collection of service type URIs found in the XRDS document describing this Provider. Should never be null, but may be empty. Gets the URL that the OpenID Provider receives authentication requests at. This value MUST be an absolute HTTP or HTTPS URL. Gets an XRDS sorting routine that uses the XRDS Service/@Priority attribute to determine order. Endpoints lacking any priority value are sorted to the end of the list. Gets the protocol used by the OpenID Provider. A module that provides discovery services for OpenID identifiers. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. Code contract for the interface. Prevents a default instance of the class from being created. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. A service that can perform discovery on OpenID identifiers. The RP or OP that is hosting these services. Backing field for the property. Initializes a new instance of the class. The RP or OP that creates this instance. Performs discovery on the specified identifier. The identifier to discover services for. A non-null sequence of services discovered for the identifier. Gets the list of services that can perform discovery on identifiers given. An interface implemented by both providers and relying parties. Gets the security settings. Gets the web request handler. Code contract for the type. Prevents a default instance of the class from being created. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Gets the detected version of OpenID implemented by the Provider. Gets the URL that the OpenID Provider receives authentication requests at. Instances of this interface represent incoming authentication requests. This interface provides the details of the request and allows setting the response. Interface exposing incoming messages to the OpenID Provider that require interaction with the host site. Represents an incoming OpenId authentication request. Requests may be infrastructural to OpenID and allow auto-responses, or they may be authentication requests where the Provider site has to make decisions based on its own user database and policies. Adds an extension to the response to send to the relying party. The extension to add to the response message. Removes any response extensions previously added using . This should be called before sending a negative response back to the relying party if extensions were already added, since negative responses cannot carry extensions. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets a value indicating whether the response is ready to be sent to the user agent. This property returns false if there are properties that must be set on this request instance before the response can be sent. Gets or sets the security settings that apply to this request. Defaults to the OpenIdProvider.SecuritySettings on the OpenIdProvider. Attempts to perform relying party discovery of the return URL claimed by the Relying Party. The web request handler. The details of how successful the relying party discovery was. Return URL verification is only attempted if this method is called. See OpenID Authentication 2.0 spec section 9.2.1. Gets the version of OpenID being used by the relying party that sent the request. Gets the URL the consumer site claims to use as its 'base' address. Gets a value indicating whether the consumer demands an immediate response. If false, the consumer is willing to wait for the identity provider to authenticate the user. Gets or sets the provider endpoint claimed in the positive assertion. The default value is the URL that the request came in on from the relying party. This value MUST match the value for the OP Endpoint in the discovery results for the claimed identifier being asserted in a positive response. Adds an optional fragment (#fragment) portion to the ClaimedIdentifier. Useful for identifier recycling. Should not include the # prefix character as that will be added internally. May be null or the empty string to clear a previously set fragment. Unlike the property, which can only be set if using directed identity, this method can be called on any URI claimed identifier. Because XRI claimed identifiers (the canonical IDs) are never recycled, this method shouldnot be called for XRIs. Thrown when this method is called on an XRI, or on a directed identity request before the property is set. Gets a value indicating whether the Provider should help the user select a Claimed Identifier to send back to the relying party. Gets a value indicating whether the requesting Relying Party is using a delegated URL. When delegated identifiers are used, the should not be changed at the Provider during authentication. Delegation is only detectable on requests originating from OpenID 2.0 relying parties. A relying party implementing only OpenID 1.x may use delegation and this property will return false anyway. Gets or sets the Local Identifier to this OpenID Provider of the user attempting to authenticate. Check to see if this value is valid. This may or may not be the same as the Claimed Identifier that the user agent originally supplied to the relying party. The Claimed Identifier endpoint may be delegating authentication to this provider using this provider's local id, which is what this property contains. Use this identifier when looking up this user in the provider's user account list. Gets or sets the identifier that the user agent is claiming at the relying party site. Check to see if this value is valid. This property can only be set if is false, to prevent breaking URL delegation. This will not be the same as this provider's local identifier for the user if the user has set up his/her own identity page that points to this provider for authentication. The provider may use this identifier for displaying to the user when asking for the user's permission to authenticate to the relying party. Thrown from the setter if is true. Gets or sets a value indicating whether the provider has determined that the belongs to the currently logged in user and wishes to share this information with the consumer. Code contract class for the type. Initializes a new instance of the class. Adds an optional fragment (#fragment) portion to the ClaimedIdentifier. Useful for identifier recycling. Should not include the # prefix character as that will be added internally. May be null or the empty string to clear a previously set fragment. Unlike the property, which can only be set if using directed identity, this method can be called on any URI claimed identifier. Because XRI claimed identifiers (the canonical IDs) are never recycled, this method shouldnot be called for XRIs. Thrown when this method is called on an XRI, or on a directed identity request before the property is set. Attempts to perform relying party discovery of the return URL claimed by the Relying Party. The web request handler to use for the RP discovery request. The details of how successful the relying party discovery was. Return URL verification is only attempted if this method is called. See OpenID Authentication 2.0 spec section 9.2.1. Adds an extension to the response to send to the relying party. The extension to add to the response message. Removes any response extensions previously added using . This should be called before sending a negative response back to the relying party if extensions were already added, since negative responses cannot carry extensions. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets a value indicating whether the Provider should help the user select a Claimed Identifier to send back to the relying party. Gets a value indicating whether the requesting Relying Party is using a delegated URL. When delegated identifiers are used, the should not be changed at the Provider during authentication. Delegation is only detectable on requests originating from OpenID 2.0 relying parties. A relying party implementing only OpenID 1.x may use delegation and this property will return false anyway. Gets or sets the Local Identifier to this OpenID Provider of the user attempting to authenticate. Check to see if this value is valid. This may or may not be the same as the Claimed Identifier that the user agent originally supplied to the relying party. The Claimed Identifier endpoint may be delegating authentication to this provider using this provider's local id, which is what this property contains. Use this identifier when looking up this user in the provider's user account list. Gets or sets the identifier that the user agent is claiming at the relying party site. Check to see if this value is valid. This property can only be set if is false, to prevent breaking URL delegation. This will not be the same as this provider's local identifier for the user if the user has set up his/her own identity page that points to this provider for authentication. The provider may use this identifier for displaying to the user when asking for the user's permission to authenticate to the relying party. Thrown from the setter if is true. Gets or sets a value indicating whether the provider has determined that the belongs to the currently logged in user and wishes to share this information with the consumer. Gets the version of OpenID being used by the relying party that sent the request. Gets the URL the consumer site claims to use as its 'base' address. Gets a value indicating whether the consumer demands an immediate response. If false, the consumer is willing to wait for the identity provider to authenticate the user. Gets or sets the provider endpoint claimed in the positive assertion. The default value is the URL that the request came in on from the relying party. This value MUST match the value for the OP Endpoint in the discovery results for the claimed identifier being asserted in a positive response. Gets a value indicating whether the response is ready to be sent to the user agent. This property returns false if there are properties that must be set on this request instance before the response can be sent. Gets or sets the security settings that apply to this request. Defaults to the OpenIdProvider.SecuritySettings on the OpenIdProvider. Code contract for the type. Initializes a new instance of the class. Adds an extension to the response to send to the relying party. The extension to add to the response message. Removes any response extensions previously added using . This should be called before sending a negative response back to the relying party if extensions were already added, since negative responses cannot carry extensions. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Attempts to perform relying party discovery of the return URL claimed by the Relying Party. The web request handler. The details of how successful the relying party discovery was. Return URL verification is only attempted if this method is called. See OpenID Authentication 2.0 spec section 9.2.1. Gets the version of OpenID being used by the relying party that sent the request. Gets the URL the consumer site claims to use as its 'base' address. Gets a value indicating whether the consumer demands an immediate response. If false, the consumer is willing to wait for the identity provider to authenticate the user. Gets or sets the provider endpoint. The default value is the URL that the request came in on from the relying party. Gets or sets the security settings that apply to this request. Defaults to the OpenIdProvider.SecuritySettings on the OpenIdProvider. Gets a value indicating whether the response is ready to be sent to the user agent. This property returns false if there are properties that must be set on this request instance before the response can be sent. Applies a custom security policy to certain OpenID security settings and behaviors. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when a request is received by the Provider. The incoming request. true if this behavior owns this request and wants to stop other behaviors from handling it; false to allow other behaviors to process this request. Implementations may set a new value to but should not change the properties on the instance of itself as that instance may be shared across many requests. Called when the Provider is preparing to send a response to an authentication request. The request that is configured to generate the outgoing response. true if this behavior owns this request and wants to stop other behaviors from handling it; false to allow other behaviors to process this request. Code contract for the type. Initializes a new instance of the class. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when a request is received by the Provider. The incoming request. true if this behavior owns this request and wants to stop other behaviors from handling it; false to allow other behaviors to process this request. Implementations may set a new value to but should not change the properties on the instance of itself as that instance may be shared across many requests. Called when the Provider is preparing to send a response to an authentication request. The request that is configured to generate the outgoing response. true if this behavior owns this request and wants to stop other behaviors from handling it; false to allow other behaviors to process this request. Code contract for the interface. Prevents a default instance of the class from being created. Adds an extension to the response to send to the relying party. The extension to add to the response message. Removes any response extensions previously added using . This should be called before sending a negative response back to the relying party if extensions were already added, since negative responses cannot carry extensions. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets or sets the security settings that apply to this request. Defaults to the OpenIdProvider.SecuritySettings on the OpenIdProvider. Gets a value indicating whether the response is ready to be sent to the user agent. This property returns false if there are properties that must be set on this request instance before the response can be sent. Security settings that are applicable to providers. Security settings that may be applicable to both relying parties and providers. Gets the default minimum hash bit length. Gets the maximum hash bit length default for relying parties. Gets the maximum hash bit length default for providers. Initializes a new instance of the class. A value indicating whether this class is being instantiated for a Provider. Determines whether a named association fits the security requirements. The protocol carrying the association. The value of the openid.assoc_type parameter. true if the association is permitted given the security requirements; otherwise, false. Determines whether a given association fits the security requirements. The association to check. true if the association is permitted given the security requirements; otherwise, false. Gets or sets the minimum hash length (in bits) allowed to be used in an with the remote party. The default is 160. SHA-1 (160 bits) has been broken. The minimum secure hash length is now 256 bits. The default is still a 160 bit minimum to allow interop with common remote parties, such as Yahoo! that only supports 160 bits. For sites that require high security such as to store bank account information and health records, 256 is the recommended value. Gets or sets the maximum hash length (in bits) allowed to be used in an with the remote party. The default is 256 for relying parties and 512 for providers. The longer the bit length, the more secure the identities of your visitors are. Setting a value higher than 256 on a relying party site may reduce performance as many association requests will be denied, causing secondary requests or even authentication failures. Setting a value higher than 256 on a provider increases security where possible without these side-effects. Gets or sets a value indicating whether identifiers that are both OP Identifiers and Claimed Identifiers should ever be recognized as claimed identifiers. The default value is false, per the OpenID 2.0 spec. OpenID 2.0 sections 7.3.2.2 and 11.2 specify that OP Identifiers never be recognized as Claimed Identifiers. However, for some scenarios it may be desirable for an RP to override this behavior and allow this. The security ramifications of setting this property to true have not been fully explored and therefore this setting should only be changed with caution. The default value for the property. The default value for the property. The default value for the property. The default value for the property. The subset of association types and their customized lifetimes. Initializes a new instance of the class. Creates a deep clone of this instance. A new instance that is a deep clone of this instance. Gets a subset of the available association types and their customized maximum lifetimes. Gets or sets a value indicating whether Relying Party discovery will only succeed if done over a secure HTTPS channel. Default is false. Gets or sets the level of verification a Provider performs on an identifier before sending an unsolicited assertion for it. The default value is . Gets or sets a value indicating whether the Provider should ease the burden of storing associations by encoding them in signed, encrypted form into the association handles themselves, storing only a few rotating, private symmetric keys in the Provider's store instead. The default value for this property is true. Gets or sets a value indicating whether OpenID 1.x relying parties that may not be protecting their users from replay attacks are protected from replay attacks by this provider. The default value is true. Nonces for protection against replay attacks were not mandated by OpenID 1.x, which leaves users open to replay attacks. This feature works by preventing associations from being used with OpenID 1.x relying parties, thereby forcing them into "dumb" mode and verifying every claim with this provider. This gives the provider an opportunity to verify its own nonce to protect against replay attacks. Gets or sets a value indicating whether outgoing extensions are always signed. true if outgoing extensions should be signed; otherwise, false. The default is true. This property is internal because Providers should never turn it off, but it is needed for testing the RP's rejection of unsigned extensions. The behavior a Provider takes when verifying that it is authoritative for an identifier it is about to send an unsolicited assertion for. Always verify that the Provider is authoritative for an identifier before sending an unsolicited assertion for it and fail if it is not. Always check that the Provider is authoritative for an identifier before sending an unsolicited assertion for it, but only log failures, and proceed to send the unsolicited assertion. Never verify that the Provider is authoritative for an identifier before sending an unsolicited assertion for it. This setting is useful for web servers that refuse to allow a Provider to introspectively perform an HTTP GET on itself, when sending unsolicited assertions for identifiers that the OP controls. The result codes that may be returned from an attempt at relying party discovery. Relying Party discovery failed to find an XRDS document or the document was invalid. This can happen either when a relying party does not offer a service document at all, or when a man-in-the-middle attack is in progress that prevents the Provider from being able to discover that document. Relying Party discovery yielded a valid XRDS document, but no matching return_to URI was found. This is perhaps the most dangerous rating for a relying party, since it suggests that they are implementing OpenID 2.0 securely, but that a hijack operation may be in progress. Relying Party discovery succeeded, and a matching return_to URI was found. An enumeration of the possible results of an authentication attempt. The authentication was canceled by the user agent while at the provider. The authentication failed because an error was detected in the OpenId communication. The Provider responded to a request for immediate authentication approval with a message stating that additional user agent interaction is required before authentication can be completed. Casting the to a ISetupRequiredAuthenticationResponse in this case can help you retry the authentication using setup (non-immediate) mode. Authentication is completed successfully. The Provider sent a message that did not contain an identity assertion, but may carry OpenID extensions. Instances of this interface represent relying party authentication requests that may be queried/modified in specific ways before being routed to the OpenID Provider. Makes a dictionary of key/value pairs available when the authentication is completed. The arguments to add to the request's return_to URI. Values must not be null. Note that these values are NOT protected against eavesdropping in transit. No privacy-sensitive data should be stored using this method. The values stored here can be retrieved using , which will only return the value if it can be verified as untampered with in transit. Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against eavesdropping in transit. No privacy-sensitive data should be stored using this method. The value stored here can be retrieved using , which will only return the value if it can be verified as untampered with in transit. Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against eavesdropping in transit. No security-sensitive data should be stored using this method. The value stored here can be retrieved using . Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed without requiring a return_to signature to protect against tampering of the callback argument. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against eavesdropping or tampering in transit. No security-sensitive data should be stored using this method. The value stored here can be retrieved using . Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Adds an OpenID extension to the request directed at the OpenID provider. The initialized extension to add to the request. Redirects the user agent to the provider for authentication. Execution of the current page terminates after this call. This method requires an ASP.NET HttpContext. Gets or sets the mode the Provider should use during authentication. Gets the HTTP response the relying party should send to the user agent to redirect it to the OpenID Provider to start the OpenID authentication process. Gets the URL that the user agent will return to after authentication completes or fails at the Provider. Gets the URL that identifies this consumer web application that the Provider will display to the end user. Gets the Claimed Identifier that the User Supplied Identifier resolved to. Null if the user provided an OP Identifier (directed identity). Null is returned if the user is using the directed identity feature of OpenID 2.0 to make it nearly impossible for a relying party site to improperly store the reserved OpenID URL used for directed identity as a user's own Identifier. However, to test for the Directed Identity feature, please test the property rather than testing this property for a null value. Gets a value indicating whether the authenticating user has chosen to let the Provider determine and send the ClaimedIdentifier after authentication. Gets or sets a value indicating whether this request only carries extensions and is not a request to verify that the user controls some identifier. true if this request is merely a carrier of extensions and is not about an OpenID identifier; otherwise, false. Although OpenID is first and primarily an authentication protocol, its extensions can be interesting all by themselves. For instance, a relying party might want to know that its user is over 21 years old, or perhaps a member of some organization. OpenID extensions can provide this, without any need for asserting the identity of the user. Constructing an OpenID request for only extensions can be done by calling OpenIdRelyingParty.CreateRequest with any valid OpenID identifier (claimed identifier or OP identifier). But once this property is set to true, the claimed identifier value in the request is not included in the transmitted message. It is anticipated that an RP would only issue these types of requests to OPs that trusts to make assertions regarding the individual holding an account at that OP, so it is not likely that the RP would allow the user to type in an arbitrary claimed identifier without checking that it resolved to an OP endpoint the RP has on a trust whitelist. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. Gets the discovery result leading to the formulation of this request. The discovery result. An instance of this interface represents an identity assertion from an OpenID Provider. It may be in response to an authentication request previously put to it by a Relying Party site or it may be an unsolicited assertion. Relying party web sites should handle both solicited and unsolicited assertions. This interface does not offer a way to discern between solicited and unsolicited assertions as they should be treated equally. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode null is always returned since the callback arguments could not be signed to protect against tampering. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode an empty dictionary is always returned since the callback arguments could not be signed to protect against tampering. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location, if available. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Code contract for the type. Initializes a new instance of the class. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. This may return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. This MAY return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location, if available. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Applies a custom security policy to certain OpenID security settings and behaviors. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when an authentication request is about to be sent. The request. Implementations should be prepared to be called multiple times on the same outgoing message without malfunctioning. Called when an incoming positive assertion is received. The positive assertion. Contract class for the interface. Prevents a default instance of the class from being created. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when an authentication request is about to be sent. The request. Implementations should be prepared to be called multiple times on the same outgoing message without malfunctioning. Called when an incoming positive assertion is received. The positive assertion. A message a Relying Party sends to a Provider to confirm the validity of a positive assertion that was signed by a Provider-only secret. The significant payload of this message depends entirely upon the assertion message, and therefore is all in the property bag. A common base class for OpenID request messages and indirect responses (since they are ultimately requests). The openid.ns parameter in the message. "http://specs.openid.net/auth/2.0" This particular value MUST be present for the request to be a valid OpenID Authentication 2.0 request. Future versions of the specification may define different values in order to allow message recipients to properly interpret the request. Backing store for the property. Backing store for the property. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. The value for the openid.mode parameter. A value indicating whether the message will be transmitted directly or indirectly. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Sets a flag indicating that this message is received (as opposed to sent). Gets some string from a given version of the OpenID protocol. The protocol version to use for lookup. A function that can retrieve the desired protocol constant. The value of the constant. This method can be used by a constructor to throw an instead of a . Gets the value of the openid.mode parameter. Gets the preferred method of transport for the message. For direct messages this is the OpenID mandated POST. For indirect messages both GET and POST are allowed. Gets the recipient of the message. The OP endpoint, or the RP return_to. Gets the version of the protocol this message is prepared to implement. Version 2.0 Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the extra parameters included in the message. An empty dictionary. Gets a value indicating whether this message was deserialized as an incoming message. Gets the protocol used by this message. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. Initializes a new instance of the class based on the contents of some signed message whose signature must be verified. The message whose signature should be verified. The channel. This is used only within the constructor and is not stored in a field. Gets or sets a value indicating whether the signature being verified by this request is in fact valid. true if the signature is valid; otherwise, false. This property is automatically set as the message is received by the channel's signing binding element. Gets or sets the ReturnTo that existed in the original signed message. This exists strictly for convenience in recreating the message. The message sent from the Provider to the Relying Party to confirm/deny the validity of an assertion that was signed by a private Provider secret. A common base class for OpenID direct message responses. The openid.ns parameter in the message. "http://specs.openid.net/auth/2.0" OpenID 2.0 Section 5.1.2: This particular value MUST be present for the response to be a valid OpenID 2.0 response. Future versions of the specification may define different values in order to allow message recipients to properly interpret the request. Backing store for the properties. Backing store for the properties. The dictionary of parameters that are not part of the OpenID specification. Initializes a new instance of the class. The OpenID version of the response message. The originating request. May be null in case the request is unrecognizable and this is an error response. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Sets a flag indicating that this message is received (as opposed to sent). Gets the version of the protocol this message is prepared to implement. Version 2.0 Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the extra, non-OAuth parameters included in the message. Gets the originating request message that caused this response to be formed. This property may be null if the request message was undecipherable. Gets a value indicating whether this message was deserialized as an incoming message. Gets the protocol used by this message. Gets the originating request message that caused this response to be formed. Initializes a new instance of the class for use by the Relying Party. The OpenID version of the response message. The request that this message is responding to. Gets or sets a value indicating whether the signature of the verification request is valid. Gets or sets the handle the relying party should invalidate if is true. The "invalidate_handle" value sent in the verification request, if the OP confirms it is invalid. If present in a verification response with "is_valid" set to "true", the Relying Party SHOULD remove the corresponding association from its store and SHOULD NOT send further authentication requests with this handle. This two-step process for invalidating associations is necessary to prevent an attacker from invalidating an association at will by adding "invalidate_handle" parameters to an authentication response. For OpenID 1.1, we allow this to be present but empty to put up with poor implementations such as Blogger. An authentication request from a Relying Party to a Provider. This message type satisfies OpenID 2.0 section 9.1. An indirect request from a Relying Party to a Provider where the response is expected to be signed. Backing store for the property. Initializes a new instance of the class. The OpenID version to use. The Provider endpoint that receives this message. for asynchronous javascript clients; to allow the Provider to interact with the user in order to complete authentication. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Adds parameters to the return_to querystring. The keys=value pairs to add to the return_to query string. This method is useful if the Relying Party wants to recall some value when and if a positive assertion comes back from the Provider. Adds a parameter to the return_to querystring. The name of the parameter. The value of the argument. This method is useful if the Relying Party wants to recall some value when and if a positive assertion comes back from the Provider. Gets the value of the openid.mode parameter based on the protocol version and immediate flag. The OpenID version to use. for asynchronous javascript clients; to allow the Provider to interact with the user in order to complete authentication. checkid_immediate or checkid_setup Gets the list of extensions that are included with this message. Implementations of this interface should ensure that this property never returns null. Gets a value indicating whether the Provider is allowed to interact with the user as part of authentication. true if using OpenID immediate mode; otherwise, false. Gets or sets the handle of the association the RP would like the Provider to use for signing a positive assertion in the response message. A handle for an association between the Relying Party and the OP that SHOULD be used to sign the response. If no association handle is sent, the transaction will take place in Stateless Mode (Verifying Directly with the OpenID Provider). Gets or sets the URL the Provider should redirect the user agent to following the authentication attempt. URL to which the OP SHOULD return the User-Agent with the response indicating the status of the request. If this value is not sent in the request it signifies that the Relying Party does not wish for the end user to be returned. The return_to URL MAY be used as a mechanism for the Relying Party to attach context about the authentication request to the authentication response. This document does not define a mechanism by which the RP can ensure that query parameters are not modified by outside parties; such a mechanism can be defined by the RP itself. Gets or sets the Relying Party discovery URL the Provider may use to verify the source of the authentication request. URL pattern the OP SHOULD ask the end user to trust. See Section 9.2 (Realms). This value MUST be sent if openid.return_to is omitted. Default: The URL. Gets or sets a value indicating whether the return_to value should be signed. Initializes a new instance of the class. The OpenID version to use. The Provider endpoint that receives this message. for asynchronous javascript clients; to allow the Provider to interact with the user in order to complete authentication. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets or sets the Claimed Identifier. "openid.claimed_id" and "openid.identity" SHALL be either both present or both absent. If neither value is present, the assertion is not about an identifier, and will contain other information in its payload, using extensions (Extensions). It is RECOMMENDED that OPs accept XRI identifiers with or without the "xri://" prefix, as specified in the Normalization (Normalization) section. Gets or sets the OP Local Identifier. The OP-Local Identifier. If a different OP-Local Identifier is not specified, the claimed identifier MUST be used as the value for openid.identity. Note: If this is set to the special value "http://specs.openid.net/auth/2.0/identifier_select" then the OP SHOULD choose an Identifier that belongs to the end user. This parameter MAY be omitted if the request is not about an identifier (for instance if an extension is in use that makes the request meaningful without it; see openid.claimed_id above). The base class that all successful association response messages derive from. Association response messages are described in OpenID 2.0 section 8.2. This type covers section 8.2.1. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets or sets the association handle is used as a key to refer to this association in subsequent messages. A string 255 characters or less in length. It MUST consist only of ASCII characters in the range 33-126 inclusive (printable non-whitespace characters). Gets or sets the preferred association type. The association type defines the algorithm to be used to sign subsequent messages. Value: A valid association type from Section 8.3. Gets or sets the value of the "openid.session_type" parameter from the request. If the OP is unwilling or unable to support this association type, it MUST return an unsuccessful response (Unsuccessful Response Parameters). Value: A valid association session type from Section 8.4 (Association Session Types). Note: Unless using transport layer encryption, "no-encryption" MUST NOT be used. Gets or sets the lifetime, in seconds, of this association. The Relying Party MUST NOT use the association after this time has passed. An integer, represented in base 10 ASCII. Members found on error response messages sent from a Provider to a Relying Party in response to direct and indirect message requests that result in an error. Gets or sets a human-readable message indicating why the request failed. Gets or sets the contact address for the administrator of the server. The contact address may take any form, as it is intended to be displayed to a person. Gets or sets a reference token, such as a support ticket number or a URL to a news blog, etc. A common base class from which indirect response messages should derive. Backing store for the property. Initializes a new instance of the class. The request that caused this response message to be constructed. The value of the openid.mode parameter. Initializes a new instance of the class for unsolicited assertion scenarios. The OpenID version supported at the Relying Party. The URI at which the Relying Party receives OpenID indirect messages. The value to use for the openid.mode parameter. Gets the property of a message. The message to fetch the protocol version from. The value of the property. This method can be used by a constructor to throw an instead of a . Gets the property of a message. The message to fetch the ReturnTo from. The value of the property. This method can be used by a constructor to throw an instead of a . Gets the list of extensions that are included with this message. Implementations of this interface should ensure that this property never returns null. Gets the signed extensions on this message. Gets the unsigned extensions on this message. Gets the originating request message, if applicable. An indirect message from a Provider to a Relying Party where at least part of the payload is signed so the Relying Party can verify it has not been tampered with. The allowed date/time formats for the response_nonce parameter. This array of formats is not yet a complete list. Backing field for the property. The field initializer being DateTime.UtcNow allows for OpenID 1.x messages to pass through the StandardExpirationBindingElement. Backing store for the property. Initializes a new instance of the class. The authentication request that caused this assertion to be generated. Initializes a new instance of the class in order to perform signature verification at the Provider. The previously signed message. The channel. This is used only within the constructor and is not stored in a field. Initializes a new instance of the class for unsolicited assertions. The OpenID version to use. The return_to URL of the Relying Party. This value will commonly be from , but for unsolicited assertions may come from the Provider performing RP discovery to find the appropriate return_to URL to use. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the value of a named parameter in the return_to URL without signature protection. The full name of the parameter whose value is being sought. The value of the parameter if it is present and unaltered from when the Relying Party signed it; null otherwise. This method will always return null on the Provider-side, since Providers cannot verify the private signature made by the relying party. Gets the names of the callback parameters added to the original authentication request without signature protection. A sequence of the callback parameter names. Gets a dictionary of all the message part names and values that are included in the message signature. The channel. A dictionary of the signed message parts. Determines whether one querystring contains every key=value pair that another querystring contains. The querystring that should contain at least all the key=value pairs of the other. The querystring containing the set of key=value pairs to test for in the other. true if contains all the query parameters that does; false otherwise. Verifies that the openid.return_to field matches the URL of the actual HTTP request. From OpenId Authentication 2.0 section 11.1: To verify that the "openid.return_to" URL matches the URL that is processing this assertion: * The URL scheme, authority, and path MUST be the same between the two URLs. * Any query parameters that are present in the "openid.return_to" URL MUST also be present with the same values in the URL of the HTTP request the RP received. Gets the level of protection this message requires. for OpenID 2.0 messages. for OpenID 1.x messages. Although the required protection is reduced for OpenID 1.x, this library will provide Relying Party hosts with all protections by adding its own specially-crafted nonce to the authentication request messages except for stateless RPs in OpenID 1.x messages. Gets or sets the message signature. Base 64 encoded signature calculated as specified in Section 6 (Generating Signatures). Gets or sets the signed parameter order. Comma-separated list of signed fields. "op_endpoint,identity,claimed_id,return_to,assoc_handle,response_nonce" This entry consists of the fields without the "openid." prefix that the signature covers. This list MUST contain at least "op_endpoint", "return_to" "response_nonce" and "assoc_handle", and if present in the response, "claimed_id" and "identity". Additional keys MAY be signed as part of the message. See Generating Signatures. Gets or sets the association handle used to sign the message. The handle for the association that was used to sign this assertion. Gets or sets the nonce that will protect the message from replay attacks. Gets the context within which the nonce must be unique. Gets or sets the UTC date/time the message was originally sent onto the network. The property setter should ensure a UTC date/time, and throw an exception if this is not possible. Thrown when a DateTime that cannot be converted to UTC is set. Gets or sets the association handle that the Provider wants the Relying Party to not use any more. If the Relying Party sent an invalid association handle with the request, it SHOULD be included here. For OpenID 1.1, we allow this to be present but empty to put up with poor implementations such as Blogger. Gets or sets the Provider Endpoint URI. Gets or sets the return_to parameter as the relying party provided it in . Verbatim copy of the return_to URL parameter sent in the request, before the Provider modified it. Gets or sets a value indicating whether the URI's query string is unaltered between when the Relying Party sent the original request and when the response was received. This property is not persisted in the transmitted message, and has no effect on the Provider-side of the communication. Gets or sets the nonce that will protect the message from replay attacks. A string 255 characters or less in length, that MUST be unique to this particular successful authentication response. The nonce MUST start with the current time on the server, and MAY contain additional ASCII characters in the range 33-126 inclusive (printable non-whitespace characters), as necessary to make each response unique. The date and time MUST be formatted as specified in section 5.6 of [RFC3339] (Klyne, G. and C. Newman, “Date and Time on the Internet: Timestamps,” .), with the following restrictions: All times must be in the UTC timezone, indicated with a "Z". No fractional seconds are allowed 2005-05-15T17:11:51ZUNIQUE Gets or sets the nonce that will protect the message from replay attacks. A string 255 characters or less in length, that MUST be unique to this particular successful authentication response. The nonce MUST start with the current time on the server, and MAY contain additional ASCII characters in the range 33-126 inclusive (printable non-whitespace characters), as necessary to make each response unique. The date and time MUST be formatted as specified in section 5.6 of [RFC3339] (Klyne, G. and C. Newman, “Date and Time on the Internet: Timestamps,” .), with the following restrictions: All times must be in the UTC timezone, indicated with a "Z". No fractional seconds are allowed 2005-05-15T17:11:51ZUNIQUE Gets the querystring key=value pairs in the return_to URL. Code contract class for the IOpenIdMessageExtension interface. Prevents a default instance of the class from being created. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets or sets a value indicating whether this extension was signed by the sender. true if this instance is signed by the sender; otherwise, false. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. The message OpenID Providers send back to Relying Parties to refuse to assert the identity of a user. Initializes a new instance of the class. The request that the relying party sent. Initializes a new instance of the class. The request that the relying party sent. The channel to use to simulate construction of the user_setup_url, if applicable. May be null, but the user_setup_url will not be constructed. Initializes a new instance of the class. The version. The relying party return to. The value of the openid.mode parameter. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Constructs the value for the user_setup_url parameter to be sent back in negative assertions in response to OpenID 1.x RP's checkid_immediate requests. The immediate request. The channel to use to simulate construction of the message. The value to use for the user_setup_url parameter. Gets the value for the openid.mode that is appropriate for this response. The request that we're responding to. The value of the openid.mode parameter to use. Gets or sets the URL the relying party can use to upgrade their authentication request from an immediate to a setup message. URL to redirect User-Agent to so the End User can do whatever's necessary to fulfill the assertion. This part is only included in OpenID 1.x responses. Gets a value indicating whether this is in response to an authentication request made in immediate mode. true if the request was in immediate mode; otherwise, false. An identity assertion from a Provider to a Relying Party, stating that the user operating the user agent is in fact some specific user known to the Provider. Initializes a new instance of the class. The authentication request that caused this assertion to be generated. Initializes a new instance of the class for unsolicited assertions. The OpenID version to use. The return_to URL of the Relying Party. This value will commonly be from , but for unsolicited assertions may come from the Provider performing RP discovery to find the appropriate return_to URL to use. Initializes a new instance of the class. The relying party return_to endpoint that will receive this positive assertion. Gets or sets the Claimed Identifier. "openid.claimed_id" and "openid.identity" SHALL be either both present or both absent. If neither value is present, the assertion is not about an identifier, and will contain other information in its payload, using extensions (Extensions). Gets or sets the OP Local Identifier. The OP-Local Identifier. OpenID Providers MAY assist the end user in selecting the Claimed and OP-Local Identifiers about which the assertion is made. The openid.identity field MAY be omitted if an extension is in use that makes the response meaningful without it (see openid.claimed_id above). Wraps an existing Identifier and prevents it from performing discovery. The wrapped identifier. Initializes a new instance of the class. The ordinary Identifier whose discovery is being masked. Whether this Identifier should claim to be SSL-secure, although no discovery will never generate service endpoints anyway. Returns a that represents the current . A that represents the current . Tests equality between two s. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Gets the hash code for an for storage in a hashtable. A hash code for the current . Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. A set of utilities especially useful to OpenID. The prefix to designate this library's proprietary parameters added to the protocol. A static variable that carries the results of a check for the presence of assemblies that are required for the Diffie-Hellman algorithm. Creates a random association handle. The association handle. Gets the OpenID protocol instance for the version in a message. The message. The OpenID protocol instance. Changes the position of some element in a list. The type of elements stored in the list. The list to be modified. The new position for the given element. The element to move within the list. Thrown if the element does not already exist in the list. Corrects any URI decoding the Provider may have inappropriately done to our return_to URL, resulting in an otherwise corrupted base64 encoded value. The base64 encoded value. May be null. The value; corrected if corruption had occurred. AOL may have incorrectly URI-decoded the token for us in the return_to, resulting in a token URI-decoded twice by the time we see it, and no longer being a valid base64 string. It turns out that the only symbols from base64 that is also encoded in URI encoding rules are the + and / characters. AOL decodes the %2b sequence to the + character and the %2f sequence to the / character (it shouldn't decode at all). When we do our own URI decoding, the + character becomes a space (corrupting base64) but the / character remains a /, so no further corruption happens to this character. So to correct this we just need to change any spaces we find in the token back to + characters. Rounds the given downward to the whole second. The DateTime object to adjust. The new value. Gets the fully qualified Realm URL, given a Realm that may be relative to a particular page. The hosting page that has the realm value to resolve. The realm, which may begin with "*." or "~/". The request context. The fully-qualified realm. Gets the extension factories from the extension aggregator on an OpenID channel. The channel. The list of factories that will be used to generate extension instances. This is an extension method on rather than an instance method on because the OpenIdRelyingParty and OpenIdProvider classes don't strong-type to to allow flexibility in the specific type of channel the user (or tests) can plug in. Loads the Diffie-Hellman assemblies. Thrown if the DH assemblies are missing. Gets a value indicating whether Diffie Hellman is available in this installation. true if Diffie-Hellman functionality is present; otherwise, false. Utility methods for working with XRDS documents. Finds the Relying Party return_to receiving endpoints. The XrdsDocument instance to use in this process. A sequence of Relying Party descriptors for the return_to endpoints. This is useful for Providers to send unsolicited assertions to Relying Parties, or for Provider's to perform RP discovery/verification as part of authentication. Finds the icons the relying party wants an OP to display as part of authentication, per the UI extension spec. The XrdsDocument to search. A sequence of the icon URLs in preferred order. Enumerates the XRDS service elements that describe OpenID Relying Party return_to URLs that can receive authentication assertions. The XrdsDocument instance to use in this process. A sequence of service elements. Describes some OpenID Provider endpoint and its capabilities. This is an immutable type. Initializes a new instance of the class. The OpenID Provider endpoint URL. The OpenID version supported by this particular endpoint. Initializes a new instance of the class. The URI the provider listens on for OpenID requests. The set of services offered by this endpoint. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Gets the URL that the OpenID Provider listens for incoming OpenID messages on. Gets the OpenID protocol version this endpoint supports. If an endpoint supports multiple versions, each version must be represented by its own object. Gets the collection of service type URIs found in the XRDS document describing this Provider. A trust root to validate requests and match return URLs against. This fills the OpenID Authentication 2.0 specification for realms. See http://openid.net/specs/openid-authentication-2_0.html#realms A regex used to detect a wildcard that is being used in the realm. A (more or less) comprehensive list of top-level (i.e. ".com") domains, for use by in order to disallow overly-broad realms that allow all web sites ending with '.com', for example. The Uri of the realm, with the wildcard (if any) removed. Initializes a new instance of the class. The realm URL to use in the new instance. Initializes a new instance of the class. The realm URL of the Relying Party. Initializes a new instance of the class. The realm URI builder. This is useful because UriBuilder can construct a host with a wildcard in the Host property, but once there it can't be converted to a Uri. Implicitly converts the string-form of a URI to a object. The URI that the new Realm instance will represent. The result of the conversion. Implicitly converts a to a object. The URI to convert to a realm. The result of the conversion. Implicitly converts a object to its form. The realm to convert to a string value. The result of the conversion. Checks whether one is equal to another. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Returns the hash code used for storing this object in a hash table. A hash code for the current . Returns the string form of this . A that represents the current . Validates a URL against this trust root. A string specifying URL to check. Whether the given URL is within this trust root. Validates a URL against this trust root. The URL to check. Whether the given URL is within this trust root. Searches for an XRDS document at the realm URL, and if found, searches for a description of a relying party endpoints (OpenId login pages). The mechanism to use for sending HTTP requests. Whether redirects may be followed when discovering the Realm. This may be true when creating an unsolicited assertion, but must be false when performing return URL verification per 2.0 spec section 9.2.1. The details of the endpoints if found; or null if no service document was discovered. Searches for an XRDS document at the realm URL. The mechanism to use for sending HTTP requests. Whether redirects may be followed when discovering the Realm. This may be true when creating an unsolicited assertion, but must be false when performing return URL verification per 2.0 spec section 9.2.1. The XRDS document if found; or null if no service document was discovered. Calls if the argument is non-null. Otherwise throws . The realm URI builder. The result of UriBuilder.ToString() This simple method is worthwhile because it checks for null before dereferencing the UriBuilder. Since this is called from within a constructor's base(...) call, this avoids a when we should be throwing an . Gets the suggested realm to use for the calling web application. A realm that matches this applications root URL. For most circumstances the Realm generated by this property is sufficient. However a wildcard Realm, such as "http://*.microsoft.com/" may at times be more desirable than "http://www.microsoft.com/" in order to allow identifier correlation across related web sites for directed identity Providers. Requires an HttpContext.Current context. Gets a value indicating whether a '*.' prefix to the hostname is used in the realm to allow subdomains or hosts to be added to the URL. Gets the host component of this instance. Gets the scheme name for this URI. Gets the port number of this URI. Gets the absolute path of the URI. Gets the System.Uri.AbsolutePath and System.Uri.Query properties separated by a question mark (?). Gets the original string. The original string. Gets the realm URL. If the realm includes a wildcard, it is not included here. Gets the Realm discovery URL, where the wildcard (if present) is replaced with "www.". See OpenID 2.0 spec section 9.2.1 for the explanation on the addition of the "www" prefix. Gets a value indicating whether this realm represents a reasonable (sane) set of URLs. 'http://*.com/', for example is not a reasonable pattern, as it cannot meaningfully specify the site claiming it. This function attempts to find many related examples, but it can only work via heuristics. Negative responses from this method should be treated as advisory, used only to alert the user to examine the trust root carefully. Provides conversions to and from strings for messages that include members of this type. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Encodes the specified value as the original value that was formerly decoded. The value. Guaranteed to never be null. The in string form, ready for message transport. A description of some OpenID Relying Party endpoint. This is an immutable type. Initializes a new instance of the class. The return to. The Type URIs of supported services advertised on a relying party's XRDS document. Derives the highest OpenID protocol that this library and the OpenID Provider have in common. The supported service type URIs. The best OpenID protocol version to use when communicating with this Provider. Gets the URL to the login page on the discovered relying party web site. Gets the OpenId protocol that the discovered relying party supports. Diffie-Hellman encryption methods used by both the relying party and provider. An array of known Diffie Hellman sessions, sorted by decreasing hash size. Finds the hashing algorithm to use given an openid.session_type value. The protocol version of the message that named the session_type to be used. The value of the openid.session_type parameter. The hashing algorithm to use. Thrown if no match could be found for the given . Looks up the value to be used for the openid.session_type parameter. The protocol version that is to be used. The hash size (in bits) that the DH session must have. The value to be used for the openid.session_type parameter, or null if no match was found. Encrypts/decrypts a shared secret. The hashing algorithm that is agreed by both parties to use as part of the secret exchange. If the secret is being encrypted, this is the new Diffie Hellman object to use. If the secret is being decrypted, this must be the same Diffie Hellman object used to send the original request message. The public key of the remote party. The secret to encode, or the encoded secret. Whichever one is given will generate the opposite in the return value. The encrypted version of the secret if the secret itself was given in . The secret itself if the encrypted version of the secret was given in . Ensures that the big integer represented by a given series of bytes is a positive integer. The bytes that make up the big integer. A byte array (possibly new if a change was required) whose integer is guaranteed to be positive. This is to be consistent with OpenID spec section 4.2. Returns the value used to initialize the static field storing DH session types. A non-null, non-empty array. > This is a method rather than being inlined to the field initializer to try to avoid the CLR bug that crops up sometimes if we initialize arrays using object initializer syntax. Provides access to a Diffie-Hellman session algorithm and its name. Initializes a new instance of the class. The hashing algorithm used in this particular Diffie-Hellman session type. A function that will return the value of the openid.session_type parameter for a given version of OpenID. Gets the function that will return the value of the openid.session_type parameter for a given version of OpenID. Gets the hashing algorithm used in this particular Diffie-Hellman session type An association that uses the HMAC-SHA family of algorithms for message signing. A list of HMAC-SHA algorithms in order of decreasing bit lengths. The specific variety of HMAC-SHA this association is based on (whether it be HMAC-SHA1, HMAC-SHA256, etc.) Initializes a new instance of the class. The specific variety of HMAC-SHA this association is based on (whether it be HMAC-SHA1, HMAC-SHA256, etc.) The association handle. The association secret. The time duration the association will be good for. Creates an HMAC-SHA association. The OpenID protocol version that the request for an association came in on. The value of the openid.assoc_type parameter. The association handle. The association secret. How long the association will be good for. The newly created association. Creates an association with the specified handle, secret, and lifetime. The handle. The secret. Total lifetime. The newly created association. Returns the length of the shared secret (in bytes). The protocol version being used that will be used to lookup the text in The value of the protocol argument specifying the type of association. For example: "HMAC-SHA1". The length (in bytes) of the association secret. Thrown if no association can be found by the given name. Looks for the first association type in a preferred-order list that is likely to be supported given a specific OpenID version and the security settings, and perhaps a matching Diffie-Hellman session type. The OpenID version that dictates which associations are available. A value indicating whether to consider higher strength security to be better. Use true for initial association requests from the Relying Party; use false from Providers when the Relying Party asks for an unrecognized association in order to pick a suggested alternative that is likely to be supported on both sides. The set of requirements the selected association type must comply to. Use true for HTTP associations, false for HTTPS associations. The resulting association type's well known protocol name. (i.e. HMAC-SHA256) The resulting session type's well known protocol name, if a matching one is available. (i.e. DH-SHA256) True if a qualifying association could be found; false otherwise. Determines whether a named Diffie-Hellman session type and association type can be used together. The protocol carrying the names of the session and association types. The value of the openid.assoc_type parameter. The value of the openid.session_type parameter. true if the named association and session types are compatible; otherwise, false. Gets the string to pass as the assoc_type value in the OpenID protocol. The protocol version of the message that the assoc_type value will be included in. The value that should be used for the openid.assoc_type parameter. Returns the specific hash algorithm used for message signing. The hash algorithm used for message signing. Returns the value used to initialize the static field storing association types. A non-null, non-empty array. > This is a method rather than being inlined to the field initializer to try to avoid the CLR bug that crops up sometimes if we initialize arrays using object initializer syntax. Gets the length (in bits) of the hash this association creates when signing. Provides information about some HMAC-SHA hashing algorithm that OpenID supports. Gets or sets the function that takes a particular OpenID version and returns the value of the openid.assoc_type parameter in that protocol. Gets or sets a function that will create the using a given shared secret for the mac. Gets or sets the base hash algorithm. Gets the size of the hash (in bytes). Represents an association request that is sent using HTTPS and otherwise communicates the shared secret in plain text. An OpenID direct request from Relying Party to Provider to initiate an association. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets or sets the preferred association type. The association type defines the algorithm to be used to sign subsequent messages. Value: A valid association type from Section 8.3. Gets or sets the preferred association session type. This defines the method used to encrypt the association's MAC key in transit. Value: A valid association session type from Section 8.4 (Association Session Types). Note: Unless using transport layer encryption, "no-encryption" MUST NOT be used. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. An OpenID direct request from Relying Party to Provider to initiate an association that uses Diffie-Hellman encryption. The (only) value we use for the X variable in the Diffie-Hellman algorithm. The default gen value for the Diffie-Hellman algorithm. The default modulus value for the Diffie-Hellman algorithm. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. Called by the Relying Party to initialize the Diffie-Hellman algorithm and consumer public key properties. Gets or sets the openid.dh_modulus value. May be null if the default value given in the OpenID spec is to be used. Gets or sets the openid.dh_gen value. May be null if the default value given in the OpenID spec is to be used. Gets or sets the openid.dh_consumer_public value. This property is initialized with a call to . Gets the Diffie-Hellman algorithm. This property is initialized with a call to . The successful Diffie-Hellman association response message. Association response messages are described in OpenID 2.0 section 8.2. This type covers section 8.2.3. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Gets or sets the Provider's Diffie-Hellman public key. btwoc(g ^ xb mod p) Gets or sets the MAC key (shared secret), encrypted with the secret Diffie-Hellman value. H(btwoc(g ^ (xa * xb) mod p)) XOR MAC key. H is either "SHA1" or "SHA256" depending on the session type. The successful unencrypted association response message. Association response messages are described in OpenID 2.0 section 8.2. This type covers section 8.2.2. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Gets or sets the MAC key (shared secret) for this association, Base 64 (Josefsson, S., “The Base16, Base32, and Base64 Data Encodings,” .) [RFC3548] encoded. The Provider's response to a Relying Party that requested an association that the Provider does not support. This message type described in OpenID 2.0 section 8.2.4. A message sent from a Provider to a Relying Party in response to a direct message request that resulted in an error. This message must be sent with an HTTP status code of 400. This class satisfies OpenID 2.0 section 5.1.2.2. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Gets the HTTP status code that the direct respones should be sent with. Gets the HTTP headers to add to the response. May be an empty collection, but must not be null. Gets or sets a human-readable message indicating why the request failed. Gets or sets the contact address for the administrator of the server. The contact address may take any form, as it is intended to be displayed to a person. Gets or sets a reference token, such as a support ticket number or a URL to a news blog, etc. A hard-coded string indicating an error occurred. "unsupported-type" Initializes a new instance of the class. The OpenID version of the response message. The originating request. Gets or sets an association type supported by the OP from Section 8.3 (Association Types). Gets or sets a valid association session type from Section 8.4 (Association Session Types) that the OP supports. A message sent from a Provider to a Relying Party in response to an indirect message request that resulted in an error. This class satisfies OpenID 2.0 section 5.2.3. Initializes a new instance of the class. The request that resulted in this error on the Provider. Initializes a new instance of the class. The OpenID version this message should comply with. The recipient of this message. Gets or sets a human-readable message indicating why the request failed. Gets or sets the contact address for the administrator of the server. The contact address may take any form, as it is intended to be displayed to a person. Gets or sets a reference token, such as a support ticket number or a URL to a news blog, etc. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to An absolute URI is required for this value.. Looks up a localized string similar to This is already a PPID Identifier.. Looks up a localized string similar to The requested association type '{0}' with session type '{1}' is unrecognized or not supported by this Provider due to security requirements.. Looks up a localized string similar to The length of the shared secret ({0}) does not match the length required by the association type ('{1}').. Looks up a localized string similar to The length of the encrypted shared secret ({0}) does not match the length of the hashing algorithm ({1}).. Looks up a localized string similar to No association store has been given but is required for the current configuration.. Looks up a localized string similar to If an association store is given, a nonce store must also be provided.. Looks up a localized string similar to An attribute with type URI '{0}' has already been added.. Looks up a localized string similar to Only {0} values for attribute '{1}' were requested, but {2} were supplied.. Looks up a localized string similar to The private data supplied does not meet the requirements of any known Association type. Its length may be too short, or it may have been corrupted.. Looks up a localized string similar to The {0} extension failed to deserialize and will be skipped. {1}. Looks up a localized string similar to Callback arguments are only supported when a {0} is provided to the {1}.. Looks up a localized string similar to A Simple Registration request can only generate a response on the receiving end.. Looks up a localized string similar to The openid.claimed_id and openid.identity parameters must both be present or both be absent.. Looks up a localized string similar to The ClaimedIdentifier property cannot be set when IsDelegatedIdentifier is true to avoid breaking OpenID URL delegation.. Looks up a localized string similar to This OpenID exploits features that this relying party cannot reliably verify. Please try logging in with a human-readable OpenID or from a different OpenID Provider.. Looks up a localized string similar to The ClaimedIdentifier property must be set first.. Looks up a localized string similar to An extension with this property name ('{0}') has already been registered.. Looks up a localized string similar to The extension '{0}' has already been registered.. Looks up a localized string similar to An authentication request has already been created using CreateRequest().. Looks up a localized string similar to Only OpenIDs issued directly by their OpenID Provider are allowed here.. Looks up a localized string similar to The associate request instance must be a Diffie-Hellman instance.. Looks up a localized string similar to The following properties must be set before the Diffie-Hellman algorithm can generate a public key: {0}. Looks up a localized string similar to URI is not SSL yet requireSslDiscovery is set to true.. Looks up a localized string similar to An extension sharing namespace '{0}' has already been added. Only one extension per namespace is allowed in a given request.. Looks up a localized string similar to Cannot lookup extension support on a rehydrated ServiceEndpoint.. Looks up a localized string similar to Fragment segments do not apply to XRI identifiers.. Looks up a localized string similar to The HTML head tag must include runat="server".. Looks up a localized string similar to ClaimedIdentifier and LocalIdentifier must be the same when IsIdentifierSelect is true.. Looks up a localized string similar to The openid.identity and openid.claimed_id parameters must either be both present or both absent from the message.. Looks up a localized string similar to The Provider requested association type '{0}' and session type '{1}', which are not compatible with each other.. Looks up a localized string similar to {0} (Contact: {1}, Reference: {2}). Looks up a localized string similar to Cannot encode '{0}' because it contains an illegal character for Key-Value Form encoding. (line {1}: '{2}'). Looks up a localized string similar to Invalid XmlDSig signature on XRDS document.. Looks up a localized string similar to Cannot decode Key-Value Form because a line was found without a '{0}' character. (line {1}: '{2}'). Looks up a localized string similar to The scheme must be http or https but was '{0}'.. Looks up a localized string similar to The value '{0}' is not a valid URI.. Looks up a localized string similar to Not a recognized XRI format.. Looks up a localized string similar to The OpenID Provider issued an assertion for an Identifier whose discovery information did not match. Assertion endpoint info: {0} Discovered endpoint info: {1}. Looks up a localized string similar to The list of keys do not match the provided dictionary.. Looks up a localized string similar to The '{0}' and '{1}' parameters must both be or not be '{2}'.. Looks up a localized string similar to The maximum time allowed to complete authentication has been exceeded. Please try again.. Looks up a localized string similar to X.509 signing certificate issued to {0}, but a certificate for {1} was expected.. Looks up a localized string similar to Missing {0} element.. Looks up a localized string similar to No recognized association type matches the requested length of {0}.. Looks up a localized string similar to No recognized association type matches the requested name of '{0}'.. Looks up a localized string similar to Unless using transport layer encryption, "no-encryption" MUST NOT be used.. Looks up a localized string similar to No identifier has been set.. Looks up a localized string similar to No XRDS document containing OpenID relying party endpoint information could be found at {0}.. Looks up a localized string similar to Diffie-Hellman session type '{0}' not found for OpenID {1}.. Looks up a localized string similar to This operation is not supported by serialized authentication responses. Try this operation from the LoggedIn event handler.. Looks up a localized string similar to No OpenID endpoint found.. Looks up a localized string similar to No OpenID url is provided.. Looks up a localized string similar to This operation is only allowed when IAuthenticationResponse.State == AuthenticationStatus.SetupRequired.. Looks up a localized string similar to OpenID popup window or iframe did not recognize an OpenID response in the request.. Looks up a localized string similar to An positive OpenID assertion was received from OP endpoint {0} and was rejected based on this site's security settings.. Looks up a localized string similar to Unable to find the signing secret by the handle '{0}'.. Looks up a localized string similar to The {0} property must be set first.. Looks up a localized string similar to This property value is not supported by this control.. Looks up a localized string similar to Unable to determine the version of the OpenID protocol implemented by the Provider at endpoint '{0}'.. Looks up a localized string similar to An HTTP request to the realm URL ({0}) resulted in a redirect, which is not allowed during relying party discovery.. Looks up a localized string similar to Sorry. This site only accepts OpenIDs that are HTTPS-secured, but {0} is not a secure Identifier.. Looks up a localized string similar to The response is not ready. Use IsResponseReady to check whether a response is ready first.. Looks up a localized string similar to return_to '{0}' not under realm '{1}'.. Looks up a localized string similar to The {0} parameter ({1}) does not match the actual URL ({2}) the request was made with.. Looks up a localized string similar to The ReturnTo property must not be null to support this operation.. Looks up a localized string similar to The openid.return_to parameter is required in the request message in order to construct a response, but that parameter was missing.. Looks up a localized string similar to The following parameter(s) are not included in the signature but must be: {0}. Looks up a localized string similar to Invalid birthdate value. Must be in the form yyyy-MM-dd.. Looks up a localized string similar to The type must implement {0}.. Looks up a localized string similar to The property {0} had unexpected value {1}.. Looks up a localized string similar to Unexpected HTTP status code {0} {1} received in direct response.. Looks up a localized string similar to An unsolicited assertion cannot be sent for the claimed identifier {0} because this is not an authorized Provider for that identifier.. Looks up a localized string similar to Rejecting unsolicited assertions requires a nonce store and an association store.. Looks up a localized string similar to Unsolicited assertions are not allowed at this relying party.. Looks up a localized string similar to Unsolicited assertions are not allowed from 1.0 OpenID Providers.. Looks up a localized string similar to Providing a DateTime whose Kind is Unspecified is not allowed.. Looks up a localized string similar to Unrecognized or missing canonicalization method.. Looks up a localized string similar to This feature is unavailable due to an unrecognized channel configuration.. Looks up a localized string similar to Unrecognized or missing signature method.. Looks up a localized string similar to The openid.user_setup_url parameter is required when sending negative assertion messages in response to immediate mode requests.. Looks up a localized string similar to The X.509 certificate used to sign this document is not trusted.. Looks up a localized string similar to XRI support has been disabled at this site.. Looks up a localized string similar to XRI resolution failed.. An enumeration of the OpenID protocol versions supported by this library. OpenID Authentication 1.0 OpenID Authentication 1.1 OpenID Authentication 2.0 Tracks the several versions of OpenID this library supports and the unique constants to each version used in the protocol. The value of the openid.ns parameter in the OpenID 2.0 specification. The parameter of the callback parameter we tack onto the return_to URL to store the replay-detection nonce. Scans a list for matches with some element of the OpenID protocol, searching from newest to oldest protocol for the first and best match. The type of element retrieved from the instance. Takes a instance and returns an element of it. The list to scan for matches. The protocol with the element that matches some item in the list. A list of all supported OpenID versions, in order starting from newest version. A list of all supported OpenID versions, in order starting from newest version. V1.1 and V1.0 are considered the same and only V1.1 is in the list. The default (or most recent) supported version of the OpenID protocol. Attempts to detect the right OpenID protocol version based on the contents of an incoming OpenID indirect message or direct request. Attempts to detect the right OpenID protocol version based on the contents of an incoming OpenID direct response message. Attemps to detect the highest OpenID protocol version supported given a set of XRDS Service Type URIs included for some service. The OpenID version that this instance describes. The namespace of OpenId 1.x elements in XRDS documents. The value of the openid.ns parameter that appears on the query string whenever data is passed between relying party and provider for OpenID 2.0 and later. The XRD/Service/Type value discovered in an XRDS document when "discovering" on a Claimed Identifier (http://andrewarnott.yahoo.com) The XRD/Service/Type value discovered in an XRDS document when "discovering" on an OP Identifier rather than a Claimed Identifier. (http://yahoo.com) The XRD/Service/Type value discovered in an XRDS document when "discovering" on a Realm URL and looking for the endpoint URL that can receive authentication assertions. Used as the Claimed Identifier and the OP Local Identifier when the User Supplied Identifier is an OP Identifier. The value of the 'rel' attribute in an HTML document's LINK tag when the same LINK tag's HREF attribute value contains the URL to an OP Endpoint URL. The value of the 'rel' attribute in an HTML document's LINK tag when the same LINK tag's HREF attribute value contains the URL to use as the OP Local Identifier. Parts of the protocol that define parameter names that appear in the query string. Each parameter name is prefixed with 'openid.'. Parts of the protocol that define parameter names that appear in the query string. Each parameter name is NOT prefixed with 'openid.'. The various 'constants' that appear as parameter arguments (values). The maximum time a user can be allowed to take to complete authentication. This is used to calculate the length of time that nonces are stored. This is internal until we can decide whether to leave this static, or make it an instance member, or put it inside the IConsumerApplicationStore interface. The maximum permissible difference in clocks between relying party and provider web servers, discounting time zone differences. This is used when storing/validating nonces from the provider. If it is conceivable that a server's clock could be up to five minutes off from true UTC time, then the maximum time skew should be set to ten minutes to allow one server to be five minutes ahead and the remote server to be five minutes behind and still be able to communicate. Checks whether a given Protocol version practically equals this one for purposes of verifying a match for assertion verification. The other version to check against this one. true if this and the given Protocol versions are essentially the same. OpenID v1.0 never had a spec, and 1.0 and 1.1 are indistinguishable because of that. Therefore for assertion verification, 1.0 and 1.1 are considered equivalent. Returns the enum value for the instance. The value "openid." A preference order list of all supported session types. A preference order list of signature algorithms we support. A hybrid of the store interfaces that an OpenID Provider must implement, and an OpenID Relying Party may implement to operate in stateful (smart) mode. Security settings that are applicable to relying parties. The default value for the property. Initializes a new instance of the class. Filters out any disallowed endpoints. The endpoints discovered on an Identifier. A sequence of endpoints that satisfy all security requirements. Gets or sets a value indicating whether the entire pipeline from Identifier discovery to Provider redirect is guaranteed to be encrypted using HTTPS for authentication to succeed. Setting this property to true is appropriate for RPs with highly sensitive personal information behind the authentication (money management, health records, etc.) When set to true, some behavioral changes and additional restrictions are placed: User-supplied identifiers lacking a scheme are prepended with HTTPS:// rather than the standard HTTP:// automatically. User-supplied identifiers are not allowed to use HTTP for the scheme. All redirects during discovery on the user-supplied identifier must be HTTPS. Any XRDS file found by discovery on the User-supplied identifier must be protected using HTTPS. Only Provider endpoints found at HTTPS URLs will be considered. If the discovered identifier is an OP Identifier (directed identity), the Claimed Identifier eventually asserted by the Provider must be an HTTPS identifier. In the case of an unsolicited assertion, the asserted Identifier, discovery on it and the asserting provider endpoint must all be secured by HTTPS. Although the first redirect from this relying party to the Provider is required to use HTTPS, any additional redirects within the Provider cannot be protected and MAY revert the user's connection to HTTP, based on individual Provider implementation. There is nothing that the RP can do to detect or prevent this. A is thrown during discovery or authentication when a secure pipeline cannot be established. Gets or sets a value indicating whether only OP Identifiers will be discoverable when creating authentication requests. Gets or sets the oldest version of OpenID the remote party is allowed to implement. Defaults to Gets or sets the maximum allowable age of the secret a Relying Party uses to its return_to URLs and nonces with 1.0 Providers. The default value is 7 days. Gets or sets a value indicating whether all unsolicited assertions should be ignored. The default value is false. Gets or sets a value indicating whether delegating identifiers are refused for authentication. The default value is false. When set to true, login attempts that start at the RP or arrive via unsolicited assertions will be rejected if discovery on the identifier shows that OpenID delegation is used for the identifier. This is useful for an RP that should only accept identifiers directly issued by the Provider that is sending the assertion. Gets or sets a value indicating whether unsigned extensions in authentication responses should be ignored. The default value is false. When set to true, the methods will not return any extension that was not signed by the Provider. Gets or sets a value indicating whether authentication requests will only be sent to Providers with whom we can create a shared association. true to immediately fail authentication if an association with the Provider cannot be established; otherwise, false. The default value is false. Gets or sets a value indicating whether certain Claimed Identifiers that exploit features that .NET does not have the ability to send exact HTTP requests for will still be allowed by using an approximate HTTP request. The default value is true. Gets the set of trusted OpenID Provider Endpoint URIs. Gets or sets a value indicating whether any login attempt coming from an OpenID Provider Endpoint that is not on this whitelist of trusted OP Endpoints will be rejected. If the trusted providers list is empty and this value is true, all assertions are rejected. Default is false. Gets or sets a value indicating whether special measures are taken to protect users from replay attacks when those users' identities are hosted by OpenID 1.x Providers. The default value is true. Nonces for protection against replay attacks were not mandated by OpenID 1.x, which leaves users open to replay attacks. This feature works by adding a signed nonce to the authentication request. This might increase the request size beyond what some OpenID 1.1 Providers (such as Blogger) are capable of handling. The discovery service for URI identifiers. Initializes a new instance of the class. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. Searches HTML for the HEAD META tags that describe OpenID provider services. The final URL that provided this HTML document. This may not be the same as (this) userSuppliedIdentifier if the userSuppliedIdentifier pointed to a 301 Redirect. The user supplied identifier. The HTML that was downloaded and should be searched. A sequence of any discovered ServiceEndpoints. The discovery service for XRI identifiers that uses an XRI proxy resolver for discovery. The magic URL that will provide us an XRDS document for a given XRI identifier. We use application/xrd+xml instead of application/xrds+xml because it gets xri.net to automatically give us exactly the right XRD element for community i-names automatically, saving us having to choose which one to use out of the result. The ssl=true parameter tells the proxy resolver to accept only SSL connections when resolving community i-names. Initializes a new instance of the class. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. Downloads the XRDS document for this XRI. The identifier. The request handler. The XRDS document. Gets the URL from which this XRI's XRDS document may be downloaded. The identifier. The URI to HTTP GET from to get the services. A URI style of OpenID Identifier. The allowed protocol schemes in a URI Identifier. The special scheme to use for HTTP URLs that should not have their paths compressed. The special scheme to use for HTTPS URLs that should not have their paths compressed. The special scheme to use for HTTP URLs that should not have their paths compressed. The special scheme to use for HTTPS URLs that should not have their paths compressed. A value indicating whether scheme substitution is being used to workaround .NET path compression that invalidates some OpenIDs that have trailing periods in one of their path segments. Initializes static members of the class. This method attempts to workaround the .NET Uri class parsing bug described here: https://connect.microsoft.com/VisualStudio/feedback/details/386695/system-uri-incorrectly-strips-trailing-dots?wa=wsignin1.0#tabs since some identifiers (like some of the pseudonymous identifiers from Yahoo) include path segments that end with periods, which the Uri class will typically trim off. Initializes a new instance of the class. The value this identifier will represent. Initializes a new instance of the class. The value this identifier will represent. if set to true [require SSL discovery]. Initializes a new instance of the class. The value this identifier will represent. Initializes a new instance of the class. The value this identifier will represent. if set to true [require SSL discovery]. Converts a instance to a instance. The identifier to convert to an ordinary instance. The result of the conversion. Converts a instance to a instance. The instance to turn into a . The result of the conversion. Tests equality between this URI and another URI. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Returns the hash code of this XRI. A hash code for the current . Returns the string form of the URI. A that represents the current . Determines whether a URI is a valid OpenID Identifier (of any kind). The URI to test for OpenID validity. true if the identifier is valid; otherwise, false. A valid URI is absolute (not relative) and uses an http(s) scheme. Determines whether a URI is a valid OpenID Identifier (of any kind). The URI to test for OpenID validity. true if the identifier is valid; otherwise, false. A valid URI is absolute (not relative) and uses an http(s) scheme. Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. Determines whether the given URI is using a scheme in the list of allowed schemes. The URI whose scheme is to be checked. true if the scheme is allowed; otherwise, false. false is also returned if is null. Determines whether the given URI is using a scheme in the list of allowed schemes. The URI whose scheme is to be checked. true if the scheme is allowed; otherwise, false. false is also returned if is null. Tries to canonicalize a user-supplied identifier. This does NOT convert a user-supplied identifier to a Claimed Identifier! The user-supplied identifier. The resulting canonical URI. If set to true and the user-supplied identifier lacks a scheme, the "https://" scheme will be prepended instead of the standard "http://" one. if set to true [scheme prepended]. true if the identifier was valid and could be canonicalized. false if the identifier is outside the scope of allowed inputs and should be rejected. Canonicalization is done by adding a scheme in front of an identifier if it isn't already present. Other trivial changes that do not require network access are also done, such as lower-casing the hostname in the URI. Fixes up the scheme if appropriate. The URI, already in legal form (with http(s):// prepended if necessary). The resulting canonical URI. true if the canonicalization was successful; false otherwise. This does NOT standardize an OpenID URL for storage in a database, as it does nothing to convert the URL to a Claimed Identifier, besides the fact that it only deals with URLs whereas OpenID 2.0 supports XRIs. For this, you should lookup the value stored in IAuthenticationResponse.ClaimedIdentifier. Gets the special non-compressing scheme or URL for a standard scheme or URL. The ordinary URL or scheme name. The non-compressing equivalent scheme or URL for the given value. Performs the minimal URL normalization to allow a string to be passed to the constructor. The user-supplied identifier URI to normalize. if set to true, a missing scheme should result in HTTPS being prepended instead of HTTP. if set to true, the scheme was prepended during normalization. The somewhat normalized URL. Gets or sets a value indicating whether scheme substitution is being used to workaround .NET path compression that invalidates some OpenIDs that have trailing periods in one of their path segments. Gets the URI this instance represents. Gets a value indicating whether the scheme was missing when this Identifier was created and added automatically as part of the normalization process. Gets a value indicating whether this Identifier has characters or patterns that the class normalizes away and invalidating the Identifier. A simple URI class that doesn't suffer from the parsing problems of the class. URI characters that separate the URI Path from subsequent elements. Initializes a new instance of the class. The value. Returns a that represents this instance. A that represents this instance. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. The parameter is null. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Normalizes the characters that are escaped in the given URI path. The path to normalize. The given path, with exactly those characters escaped which should be. Gets the scheme. The scheme. Gets the authority. The authority. Gets the path of the URI. The path from the URI. Gets the query. The query. Gets the fragment. The fragment. A URI parser that does not compress paths, such as trimming trailing periods from path segments. The field that stores the scheme that this parser is registered under. The standard "http" or "https" scheme that this parser is subverting. Initializes a new instance of the class. The standard scheme that this parser will be subverting. Initializes this parser with the actual scheme it should appear to be. if set to true Uris using this scheme will look like they're using the original standard scheme. Gets the scheme this parser is registered under. The registered scheme. An XRI style of OpenID Identifier. The scheme and separator "xri://" An XRI always starts with one of these symbols. Backing store for the property. Initializes a new instance of the class. The string value of the XRI. Initializes a new instance of the class. The XRI that this Identifier will represent. If set to true, discovery and the initial authentication redirect will only succeed if it can be done entirely using SSL. Tests equality between this XRI and another XRI. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Returns the hash code of this XRI. A hash code for the current . Returns the canonical string form of the XRI. A that represents the current . Tests whether a given string represents a valid XRI format. The value to test for XRI validity. true if the given string constitutes a valid XRI; otherwise, false. Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. XRI Identifiers never have a fragment part, and thus this method always returns this same instance. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. Takes any valid form of XRI string and returns the canonical form of the same XRI. The xri to canonicalize. The canonicalized form of the XRI. The canonical form, per the OpenID spec, is no scheme and no whitespace on either end. Gets the original XRI supplied to the constructor. Gets the canonical form of the XRI string. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to XRI CanonicalID verification failed.. Looks up a localized string similar to Failure parsing XRDS document.. Looks up a localized string similar to The XRDS document for XRI {0} is missing the required CanonicalID element.. Looks up a localized string similar to Could not find XRI resolution Status tag or code attribute was invalid.. String constants for various content-type header values used in YADIS discovery. The text/html content-type The application/xhtml+xml content-type The application/xrds+xml content-type The text/xml content type Contains the result of YADIS discovery. The original web response, backed up here if the final web response is the preferred response to use in case it turns out to not work out. Initializes a new instance of the class. The user-supplied identifier. The initial response. The final response. Reverts to the HTML response after the XRDS response didn't work out. Applies the HTML response to the object. The initial response. Gets the URI of the original YADIS discovery request. This is the user supplied Identifier as given in the original YADIS discovery request. Gets the fully resolved (after redirects) URL of the user supplied Identifier. This becomes the ClaimedIdentifier. Gets the location the XRDS document was downloaded from, if different from the user supplied Identifier. Gets the Content-Type associated with the . Gets the text in the final response. This may be an XRDS document or it may be an HTML document, as determined by the property. Gets a value indicating whether the represents an XRDS document. False if the response is an HTML document. An HTML HEAD tag parser. Common flags to use on regex tests. A regular expression designed to select tags (?) A regular expression designed to select start tags (?) A regular expression designed to select attributes within a tag. A regular expression designed to select the HEAD tag. A regular expression designed to select the HTML tag. A regular expression designed to remove all comments and scripts from a string. Finds all the HTML HEAD tag child elements that match the tag name of a given type. The HTML tag of interest. The HTML to scan. A sequence of the matching elements. Filters a list of controls based on presence of an attribute. The type of HTML controls being filtered. The sequence. The attribute. A filtered sequence of attributes. Generates a regular expression that will find a given HTML tag. Name of the tag. The close tags (?). The created regular expression. Generates a regular expression designed to find a given tag. The tag to find. The created regular expression. The Service element in an XRDS document. A node in an XRDS document. The XRD namespace xri://$xrd*($v*2.0) The XRDS namespace xri://$xrds Initializes a new instance of the class. The node represented by this instance. The parent node. Initializes a new instance of the class. The document's root node, which this instance represents. Gets the node. Gets the parent node, or null if this is the root node. Gets the XML namespace resolver to use in XPath expressions. Initializes a new instance of the class. The service element. The parent. Compares the current object with another object of the same type. An object to compare with this object. A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter. Zero This object is equal to . Greater than zero This object is greater than . Gets the XRD parent element. Gets the priority. Gets the URI child elements. Gets the type child elements. The type elements. Gets the type child element's URIs. Gets the OP Local Identifier. The Type element in an XRDS document. Initializes a new instance of the class. The type element. The parent. Gets the URI. The Uri element in an XRDS document. Initializes a new instance of the class. The URI element. The service. Compares the current object with another object of the same type. An object to compare with this object. A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter. Zero This object is equal to . Greater than zero This object is greater than . Gets the priority. Gets the URI. Gets the parent service. The Xrd element in an XRDS document. Initializes a new instance of the class. The XRD element. The parent. Searches for service sub-elements that have Type URI sub-elements that match one that we have for a known OpenID protocol version. A function that selects what element of the OpenID Protocol we're interested in finding. A sequence of service elements that match the search criteria, sorted in XRDS @priority attribute order. Gets the child service elements. The services. Gets a value indicating whether this XRD element's resolution at the XRI resolver was successful. true if this XRD's resolution was successful; otherwise, false. Gets the canonical ID (i-number) for this element. Gets a value indicating whether the was verified. Gets the services for OP Identifiers. Gets the services for Claimed Identifiers. Gets the services that would be discoverable at an RP for return_to verification. Gets the services that would be discoverable at an RP for the UI extension icon. Gets an enumeration of all Service/URI elements, sorted in priority order. Gets the XRI resolution status code. An XRDS document. The namespace used by XML digital signatures. The namespace used by Google Apps for Domains for OpenID URI templates. Initializes a new instance of the class. The root node of the XRDS document. Initializes a new instance of the class. The Xml reader positioned at the root node of the XRDS document. Initializes a new instance of the class. The text that is the XRDS document. Gets the XRD child elements of the document. Gets a value indicating whether all child XRD elements were resolved successfully. YADIS discovery manager. The HTTP header to look for in responses to declare where the XRDS document should be found. The maximum number of bytes to read from an HTTP response in searching for a link to a YADIS document. Gets or sets the cache that can be used for HTTP requests made during identifier discovery. Performs YADIS discovery on some identifier. The mechanism to use for sending HTTP requests. The URI to perform discovery on. Whether discovery should fail if any step of it is not encrypted. The result of discovery on the given URL. Null may be returned if an error occurs, or if is true but part of discovery is not protected by SSL. Searches an HTML document for a <meta http-equiv="X-XRDS-Location" content="{YadisURL}"> tag and returns the content of YadisURL. The HTML to search. The URI of the XRDS document if found; otherwise null. Sends a YADIS HTTP request as part of identifier discovery. The request handler to use to actually submit the request. The URI to GET. Whether only HTTPS URLs should ever be retrieved. The value of the Accept HTTP header to include in the request. The HTTP response retrieved from the request. Determines whether a given HTTP response constitutes an XRDS document. The response to test. true if the response constains an XRDS document; otherwise, false. ================================================ FILE: packages/DotNetOpenAuth.OpenId.Core.4.0.3.12153/lib/net35-full/Mono.Math.xml ================================================ Mono.Math Default length of a BigInteger in bytes The Length of this BigInteger The data for this BigInteger Table of primes below 2000. This table was generated using Mathematica 4.1 using the following function: PrimeTable [x_] := Prime [Range [1, PrimePi [x]]] PrimeTable [6000] Generates a new, random BigInteger of the specified length. The number of bits for the new number. A random number generator to use to obtain the bits. A random number of the specified length. Generates a new, random BigInteger of the specified length using the default RNG crypto service provider. The number of bits for the new number. A random number of the specified length. Randomizes the bits in "this" from the specified RNG. A RNG. Randomizes the bits in "this" from the default RNG. Tests if the specified bit is 1. The bit to test. The least significant bit is 0. True if bitNum is set to 1, else false. Normalizes this by setting the length to the actual number of uints used in data and by setting the sign to Sign.Zero if the value of this is 0. Generates the smallest prime >= bi A BigInteger The smallest prime >= bi. More mathematically, if bi is prime: bi, else Prime [PrimePi [bi] + 1]. Increments this by two Low level functions for the BigInteger Adds two numbers with the same sign. A BigInteger A BigInteger bi1 + bi2 Compares two BigInteger A BigInteger A BigInteger The sign of bi1 - bi2 Performs n / d and n % d in one operation. A BigInteger, upon exit this will hold n / d The divisor n % d Multiplies the data in x [xOffset:xOffset+xLen] by y [yOffset:yOffset+yLen] and puts it into d [dOffset:dOffset+xLen+yLen]. Multiplies the data in x [xOffset:xOffset+xLen] by y [yOffset:yOffset+yLen] and puts the low mod words into d [dOffset:dOffset+mod]. A factor of confidence. Only suitable for development use, probability of failure may be greater than 1/2^20. Suitable only for transactions which do not require forward secrecy. Probability of failure about 1/2^40 Designed for production use. Probability of failure about 1/2^80. Suitable for sensitive data. Probability of failure about 1/2^160. Use only if you have lots of time! Probability of failure about 1/2^320. Only use methods which generate provable primes. Not yet implemented. Finds the next prime after a given number. Performs primality tests on bi, assumes trial division has been done. A BigInteger that has been subjected to and passed trial division False if bi is composite, true if it may be prime. The speed of this method is dependent on Confidence Probabilistic prime test based on Rabin-Miller's test The number to test. The number of chosen bases. The test has at least a 1/4^confidence chance of falsely returning True. True if "this" is a strong pseudoprime to randomly chosen bases. False if "this" is definitely NOT prime. ================================================ FILE: packages/DotNetOpenAuth.OpenId.Core.4.0.3.12153/lib/net35-full/Org.Mentalis.Security.Cryptography.xml ================================================ Org.Mentalis.Security.Cryptography Defines the different Diffie-Hellman key generation methods. Returns dynamically generated values for P and G. Unlike the Sophie Germain or DSA key generation methods, this method does not ensure that the selected prime offers an adequate security level. Returns values for P and G that are hard coded in this library. Contrary to what your intuition may tell you, using these hard coded values is perfectly safe. The values of the P and G parameters are taken from 'The OAKLEY Key Determination Protocol' [RFC2412]. This is the prefered key generation method, because it is very fast and very safe. Because this method uses fixed values for the P and G parameters, not all bit sizes are supported. The current implementation supports bit sizes of 768, 1024 and 1536. Represents the parameters of the Diffie-Hellman algorithm. Represents the public P parameter of the Diffie-Hellman algorithm. Represents the public G parameter of the Diffie-Hellman algorithm. Represents the private X parameter of the Diffie-Hellman algorithm. Defines a base class from which all Diffie-Hellman implementations inherit. Creates an instance of the default implementation of the algorithm. A new instance of the default implementation of DiffieHellman. Creates an instance of the specified implementation of . The name of the implementation of DiffieHellman to use. A new instance of the specified implementation of DiffieHellman. Initializes a new instance. When overridden in a derived class, creates the key exchange data. The key exchange data to be sent to the intended recipient. When overridden in a derived class, extracts secret information from the key exchange data. The key exchange data within which the secret information is hidden. The secret information derived from the key exchange data. When overridden in a derived class, exports the . true to include private parameters; otherwise, false. The parameters for Diffie-Hellman. When overridden in a derived class, imports the specified . The parameters for Diffie-Hellman. Reconstructs a object from an XML string. The XML string to use to reconstruct the DiffieHellman object. One of the values in the XML string is invalid. Creates and returns an XML string representation of the current object. true to include private parameters; otherwise, false. An XML string encoding of the current DiffieHellman object. Implements the Diffie-Hellman algorithm. Initializes a new instance. The default length of the shared secret is 1024 bits. Initializes a new instance. The length, in bits, of the public P parameter. The length, in bits, of the secret value X. This parameter can be set to 0 to use the default size. One of the values. The larger the bit length, the more secure the algorithm is. The default is 1024 bits. The minimum bit length is 128 bits.
The size of the private value will be one fourth of the bit length specified.
The specified bit length is invalid.
Initializes a new instance. The P parameter of the Diffie-Hellman algorithm. This is a public parameter. The G parameter of the Diffie-Hellman algorithm. This is a public parameter. The X parameter of the Diffie-Hellman algorithm. This is a private parameter. If this parameters is a null reference (Nothing in Visual Basic), a secret value of the default size will be generated. or is a null reference (Nothing in Visual Basic). or is invalid. Initializes a new instance. The P parameter of the Diffie-Hellman algorithm. The G parameter of the Diffie-Hellman algorithm. The length, in bits, of the private value. If 0 is specified, the default value will be used. or is a null reference (Nothing in Visual Basic). is invalid. or is invalid. Creates the key exchange data. The key exchange data to be sent to the intended recipient. Extracts secret information from the key exchange data. The key exchange data within which the shared key is hidden. The shared key derived from the key exchange data. Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources. true to release both managed and unmanaged resources; false to release only unmanaged resources. Exports the . true to include private parameters; otherwise, false. The parameters for . Imports the specified . The parameters for . parameters.P or parameters.G is a null reference (Nothing in Visual Basic) -or- parameters.P is not a prime number. Releases the unmanaged resources used by the SymmetricAlgorithm. Gets the name of the key exchange algorithm. The name of the key exchange algorithm. Gets the name of the signature algorithm. The name of the signature algorithm.
================================================ FILE: packages/DotNetOpenAuth.OpenId.Core.4.0.3.12153/lib/net40-full/DotNetOpenAuth.OpenId.xml ================================================ DotNetOpenAuth.OpenId Describes a collection of association type sub-elements in a .config file. Initializes a new instance of the class. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. When overridden in a derived class, creates a new . A new . Gets the element key for a specified configuration element when overridden in a derived class. The to return the key for. An that acts as the key for the specified . Describes an association type and its maximum lifetime as an element in a .config file. The name of the attribute that stores the association type. The name of the attribute that stores the association's maximum lifetime. Initializes a new instance of the class. Gets or sets the protocol name of the association. Gets or sets the maximum time a shared association should live. The default value is 14 days. Represents the <openid> element in the host's .config file. The name of the section under which this library's settings must be found. The name of the <relyingParty> sub-element. The name of the <provider> sub-element. The name of the <extensions> sub-element. The name of the <xriResolver> sub-element. The name of the @maxAuthenticationTime attribute. The name of the @cacheDiscovery attribute. Initializes a new instance of the class. Gets the configuration section from the .config file. Gets or sets the maximum time a user can take to complete authentication. This time limit allows the library to decide how long to cache certain values necessary to complete authentication. The lower the time, the less demand on the server. But too short a time can frustrate the user. Gets or sets a value indicating whether the results of Identifier discovery should be cached. Use true to allow identifier discovery to immediately return cached results when available; otherwise, use false.to force fresh results every time at the cost of slightly slower logins. The default value is true. When enabled, caching is done according to HTTP standards. Gets or sets the configuration specific for Relying Parties. Gets or sets the configuration specific for Providers. Gets or sets the registered OpenID extension factories. Gets or sets the configuration for the XRI resolver. The section in the .config file that allows customization of OpenID Provider behaviors. The name of the <provider> sub-element. The name of the security sub-element. Gets the name of the <behaviors> sub-element. The name of the custom store sub-element. Initializes a new instance of the class. Gets or sets the security settings. Gets or sets the special behaviors to apply. Gets or sets the type to use for storing application state. Represents the .config file element that allows for setting the security policies of the Provider. Gets the name of the @protectDownlevelReplayAttacks attribute. Gets the name of the @minimumHashBitLength attribute. Gets the name of the @maximumHashBitLength attribute. The name of the associations collection sub-element. The name of the @encodeAssociationSecretsInHandles attribute. Gets the name of the @requireSsl attribute. Gets the name of the @unsolicitedAssertionVerification attribute. Initializes a new instance of the class. Initializes a programmatically manipulatable bag of these security settings with the settings from the config file. The newly created security settings object. Gets or sets a value indicating whether all discovery and authentication should require SSL security. Gets or sets the minimum length of the hash that protects the protocol from hijackers. Gets or sets the maximum length of the hash that protects the protocol from hijackers. Gets or sets a value indicating whether the Provider should take special care to protect OpenID 1.x relying parties against replay attacks. Gets or sets the level of verification a Provider performs on an identifier before sending an unsolicited assertion for it. The default value is . Gets or sets the configured lifetimes of the various association types. Gets or sets a value indicating whether the Provider should ease the burden of storing associations by encoding their secrets (in signed, encrypted form) into the association handles themselves, storing only a few rotating, private symmetric keys in the Provider's store instead. The section in the .config file that allows customization of OpenID Relying Party behaviors. The name of the custom store sub-element. The name of the <relyingParty> sub-element. The name of the attribute that specifies whether dnoa.userSuppliedIdentifier is tacked onto the openid.return_to URL. Gets the name of the security sub-element. The name of the <behaviors> sub-element. The name of the <discoveryServices> sub-element. The built-in set of identifier discovery services. Initializes a new instance of the class. Gets or sets a value indicating whether "dnoa.userSuppliedIdentifier" is tacked onto the openid.return_to URL in order to preserve what the user typed into the OpenID box. The default value is true. Gets or sets the security settings. Gets or sets the special behaviors to apply. Gets or sets the type to use for storing application state. Gets or sets the services to use for discovering service endpoints for identifiers. If no discovery services are defined in the (web) application's .config file, the default set of discovery services built into the library are used. Represents the .config file element that allows for setting the security policies of the Relying Party. Gets the name of the @minimumRequiredOpenIdVersion attribute. Gets the name of the @minimumHashBitLength attribute. Gets the name of the @maximumHashBitLength attribute. Gets the name of the @requireSsl attribute. Gets the name of the @requireDirectedIdentity attribute. Gets the name of the @requireAssociation attribute. Gets the name of the @rejectUnsolicitedAssertions attribute. Gets the name of the @rejectDelegatedIdentifiers attribute. Gets the name of the @ignoreUnsignedExtensions attribute. Gets the name of the @allowDualPurposeIdentifiers attribute. Gets the name of the @allowApproximateIdentifierDiscovery attribute. Gets the name of the @protectDownlevelReplayAttacks attribute. The name of the <trustedProviders> sub-element. Initializes a new instance of the class. Initializes a programmatically manipulatable bag of these security settings with the settings from the config file. The newly created security settings object. Gets or sets a value indicating whether all discovery and authentication should require SSL security. Gets or sets a value indicating whether only OP Identifiers will be discoverable when creating authentication requests. Gets or sets a value indicating whether authentication requests will only be created where an association with the Provider can be established. Gets or sets the minimum OpenID version a Provider is required to support in order for this library to interoperate with it. Although the earliest versions of OpenID are supported, for security reasons it may be desirable to require the remote party to support a later version of OpenID. Gets or sets the minimum length of the hash that protects the protocol from hijackers. Gets or sets the maximum length of the hash that protects the protocol from hijackers. Gets or sets a value indicating whether all unsolicited assertions should be ignored. The default value is false. Gets or sets a value indicating whether delegating identifiers are refused for authentication. The default value is false. When set to true, login attempts that start at the RP or arrive via unsolicited assertions will be rejected if discovery on the identifier shows that OpenID delegation is used for the identifier. This is useful for an RP that should only accept identifiers directly issued by the Provider that is sending the assertion. Gets or sets a value indicating whether unsigned extensions in authentication responses should be ignored. The default value is false. When set to true, the methods will not return any extension that was not signed by the Provider. Gets or sets a value indicating whether identifiers that are both OP Identifiers and Claimed Identifiers should ever be recognized as claimed identifiers. The default value is false, per the OpenID 2.0 spec. Gets or sets a value indicating whether certain Claimed Identifiers that exploit features that .NET does not have the ability to send exact HTTP requests for will still be allowed by using an approximate HTTP request. The default value is true. Gets or sets a value indicating whether the Relying Party should take special care to protect users against replay attacks when interoperating with OpenID 1.1 Providers. Gets or sets the set of trusted OpenID Provider Endpoints. Represents the <xriResolver> element in the host's .config file. Gets the name of the @enabled attribute. The default value for . The name of the <proxy> sub-element. The default XRI proxy resolver to use. Initializes a new instance of the class. Gets or sets a value indicating whether this XRI resolution is enabled. The default value is true. Gets or sets the proxy to use for resolving XRIs. The default value is "xri.net". Adds OpenID-specific extension methods to the XrdsDocument class. Creates the service endpoints described in this document, useful for requesting authentication of one of the OpenID Providers that result from it. The XrdsDocument instance to use in this process. The claimed identifier that was used to discover this XRDS document. The user supplied identifier. A sequence of OpenID Providers that can assert ownership of the . Creates the service endpoints described in this document, useful for requesting authentication of one of the OpenID Providers that result from it. The XrdsDocument instance to use in this process. The user-supplied i-name that was used to discover this XRDS document. A sequence of OpenID Providers that can assert ownership of the canonical ID given in this document. Generates OpenID Providers that can authenticate using directed identity. The XrdsDocument instance to use in this process. The OP Identifier entered (and resolved) by the user. Essentially the user-supplied identifier. A sequence of the providers that can offer directed identity services. Generates the OpenID Providers that are capable of asserting ownership of a particular URI claimed identifier. The XrdsDocument instance to use in this process. The claimed identifier. The user supplied identifier. A sequence of the providers that can assert ownership of the given identifier. Generates the OpenID Providers that are capable of asserting ownership of a particular XRI claimed identifier. The XrdsDocument instance to use in this process. The i-name supplied by the user. A sequence of the providers that can assert ownership of the given identifier. Enumerates the XRDS service elements that describe OpenID Providers offering directed identity assertions. The XrdsDocument instance to use in this process. A sequence of service elements. Returns the OpenID-compatible services described by a given XRDS document, in priority order. The XrdsDocument instance to use in this process. A sequence of the services offered. Stores a secret used in signing and verifying messages. OpenID associations may be shared between Provider and Relying Party (smart associations), or be a way for a Provider to recall its own secret for later (dumb associations). Initializes a new instance of the class. The handle. The secret. How long the association will be useful. The UTC time of when this association was originally issued by the Provider. Re-instantiates an previously persisted in a database or some other shared store. The property of the previous instance. The UTC value of the property of the previous instance. The byte array returned by a call to on the previous instance. The newly dehydrated , which can be returned from a custom association store's IRelyingPartyAssociationStore.GetAssociation method. Returns private data required to persist this in permanent storage (a shared database for example) for deserialization later. An opaque byte array that must be stored and returned exactly as it is provided here. The byte array may vary in length depending on the specific type of , but in current versions are no larger than 256 bytes. Values of public properties on the base class are not included in this byte array, as they are useful for fast database lookup and are persisted separately. Tests equality of two objects. The to compare with the current . true if the specified is equal to the current ; otherwise, false. Returns the hash code. A hash code for the current . The string to pass as the assoc_type value in the OpenID protocol. The protocol version of the message that the assoc_type value will be included in. The value that should be used for the openid.assoc_type parameter. Generates a signature from a given blob of data. The data to sign. This data will not be changed (the signature is the return value). The calculated signature of the data. Returns the specific hash algorithm used for message signing. The hash algorithm used for message signing. Gets a unique handle by which this may be stored or retrieved. Gets the UTC time when this will expire. Gets a value indicating whether this has already expired. Gets the length (in bits) of the hash this association creates when signing. Gets a value indicating whether this instance has useful life remaining. true if this instance has useful life remaining; otherwise, false. Gets or sets the UTC time that this was first created. Gets the duration a secret key used for signing dumb client requests will be good for. Gets the number of seconds until this expires. Never negative (counter runs to zero). Gets the shared secret key between the consumer and provider. Gets the lifetime the OpenID provider permits this . Gets the minimum lifetime an association must still be good for in order for it to be used for a future authentication. Associations that are not likely to last the duration of a user login are not worth using at all. Gets the TimeSpan till this association expires. Indicates the mode the Provider should use while authenticating the end user. The Provider should use whatever credentials are immediately available to determine whether the end user owns the Identifier. If sufficient credentials (i.e. cookies) are not immediately available, the Provider should fail rather than prompt the user. The Provider should determine whether the end user owns the Identifier, displaying a web page to the user to login etc., if necessary. An Attribute Exchange and Simple Registration filter to make all incoming attribute requests look like Simple Registration requests, and to convert the response to the originally requested extension and format. Initializes a new instance of the class. Gets or sets the AX attribute type URI formats this transform is willing to work with. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to The PAPE request has an incomplete set of authentication policies.. Looks up a localized string similar to A PAPE response is missing or is missing required policies.. Looks up a localized string similar to No personally identifiable information should be included in authentication responses when the PAPE authentication policy http://www.idmanagement.gov/schema/2009/05/icam/no-pii.pdf is present.. Looks up a localized string similar to No personally identifiable information should be requested when the http://www.idmanagement.gov/schema/2009/05/icam/no-pii.pdf PAPE policy is present.. Looks up a localized string similar to No PPID provider has been configured.. Looks up a localized string similar to Discovery on the Realm URL MUST be performed before sending a positive assertion.. Looks up a localized string similar to The Realm in an authentication request must be an HTTPS URL.. Implements the Identity, Credential, & Access Management (ICAM) OpenID 2.0 Profile for the General Services Administration (GSA). Relying parties that include this profile are always held to the terms required by the profile, but Providers are only affected by the special behaviors of the profile when the RP specifically indicates that they want to use this profile. Backing field for the static property. Initializes a new instance of the class. Gets or sets a value indicating whether PII is allowed to be requested or received via OpenID. The default value is false. Gets or sets a value indicating whether to ignore the SSL requirement (for testing purposes only). Provides a mechanism for Relying Parties to work with OpenID 1.0 Providers without losing claimed_id and op_endpoint data, which OpenID 2.0 Providers are required to send back with positive assertions. The "dnoa.op_endpoint" callback parameter that stores the Provider Endpoint URL to tack onto the return_to URI. The "dnoa.claimed_id" callback parameter that stores the Claimed Identifier to tack onto the return_to URI. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection offered (if any) by this binding element. Code contract for the class. Signs and verifies authentication assertions. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Verifies the signature by unrecognized handle. The message. The signed message. The protections applied. The applied protections. Calculates the signature for a given message. The message to sign or verify. The association to use to sign the message. The calculated signature of the method. Gets the association to use to sign or verify a message. The message to sign or verify. The association to use to sign or verify the message. Gets a specific association referenced in a given message's association handle. The signed message whose association handle should be used to lookup the association to return. The referenced association; or null if such an association cannot be found. If the association handle set in the message does not match any valid association, the association handle property is cleared, and the property is set to the handle that could not be found. Gets a private Provider association used for signing messages in "dumb" mode. An existing or newly created association. Ensures that all message parameters that must be signed are in fact included in the signature. The signed message. Gets the protection offered (if any) by this binding element. Gets or sets the channel that this binding element belongs to. Gets a value indicating whether this binding element is on a Provider channel. Verifies the signature by unrecognized handle. The message. The signed message. The protections applied. The applied protections. Gets the association to use to sign or verify a message. The message to sign or verify. The association to use to sign or verify the message. Gets a specific association referenced in a given message's association handle. The signed message whose association handle should be used to lookup the association to return. The referenced association; or null if such an association cannot be found. The binding element that serializes/deserializes OpenID extensions to/from their carrying OpenID messages. False if unsigned extensions should be dropped. Must always be true on Providers, since RPs never sign extensions. Initializes a new instance of the class. The extension factory. The security settings. Security setting for relying parties. Should be true for Providers. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets the extensions on a message. The carrier of the extensions. If set to true only signed extensions will be available. A optional filter that takes an extension type URI and returns a value indicating whether that extension should be deserialized and returned in the sequence. May be null. A sequence of extensions in the message. Gets the dictionary of message parts that should be deserialized into extensions. The message. If set to true only signed extensions will be available. A dictionary of message parts, including only signed parts when appropriate. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the extension factory. Gets the protection offered (if any) by this binding element. OpenID extension factory class for creating extensions based on received Type URIs. OpenID extension factories must be registered with the library. This can be done by adding a factory to OpenIdRelyingParty.ExtensionFactories or OpenIdProvider.ExtensionFactories, or by adding a snippet such as the following to your web.config file: <dotNetOpenAuth> <openid> <extensionFactories> <add type="DotNetOpenAuth.ApplicationBlock.CustomExtensions.Acme, DotNetOpenAuth.ApplicationBlock" /> </extensionFactories> </openid> </dotNetOpenAuth> Creates a new instance of some extension based on the received extension parameters. The type URI of the extension. The parameters associated specifically with this extension. The OpenID message carrying this extension. A value indicating whether this extension is being received at the OpenID Provider. An instance of if the factory recognizes the extension described in the input parameters; null otherwise. This factory method need only initialize properties in the instantiated extension object that are not bound using . An interface that OAuth messages implement to support signing. Gets or sets the association handle used to sign the message. The handle for the association that was used to sign this assertion. Gets or sets the association handle that the Provider wants the Relying Party to not use any more. If the Relying Party sent an invalid association handle with the request, it SHOULD be included here. Gets or sets the signed parameter order. Comma-separated list of signed fields. "op_endpoint,identity,claimed_id,return_to,assoc_handle,response_nonce" This entry consists of the fields without the "openid." prefix that the signature covers. This list MUST contain at least "op_endpoint", "return_to" "response_nonce" and "assoc_handle", and if present in the response, "claimed_id" and "identity". Additional keys MAY be signed as part of the message. See Generating Signatures. A Uri encoder that serializes using rather than the standard . Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Indicates the level of strictness to require when decoding a Key-Value Form encoded dictionary. Be as forgiving as possible to errors made while encoding. Allow for certain errors in encoding attributable to ambiguities in the OpenID 1.1 spec's description of the encoding. The strictest mode. The decoder requires the encoded dictionary to be in strict compliance with OpenID 2.0's description of the encoding. Performs conversion to and from the Key-Value Form Encoding defined by OpenID Authentication 2.0 section 4.1.1. http://openid.net/specs/openid-authentication-2_0.html#anchor4 This class is thread safe and immutable. The newline character sequence to use. Characters that must not appear in parameter names. Characters that must not appaer in parameter values. The character encoding to use. Initializes a new instance of the class. Initializes a new instance of the class. How strictly an incoming Key-Value Form message will be held to the spec. Encodes key/value pairs to Key-Value Form. The dictionary of key/value pairs to convert to a byte stream. The UTF8 byte array. Enumerating a Dictionary<TKey, TValue> has undeterministic ordering. If ordering of the key=value pairs is important, a deterministic enumerator must be used. Decodes bytes in Key-Value Form to key/value pairs. The stream of Key-Value Form encoded bytes. The deserialized dictionary. Thrown when the data is not in the expected format. Gets a value controlling how strictly an incoming Key-Value Form message will be held to the spec. A channel that knows how to send and receive OpenID messages. The HTTP Content-Type to use in Key-Value Form responses. OpenID 2.0 section 5.1.2 says this SHOULD be text/plain. But this value does not prevent free hosters like GoDaddy from tacking on their ads to the end of the direct response, corrupting the data. So we deviate from the spec a bit here to improve the story for free Providers. The encoder that understands how to read and write Key-Value Form. Initializes a new instance of the class. A class prepared to analyze incoming messages and indicate what concrete message types can deserialize from it. The binding elements to use in sending and receiving messages. Verifies the integrity and applicability of an incoming message. The message just received. Thrown when the message is somehow invalid, except for check_authentication messages. This can be due to tampering, replay attack or expiration, among other things. Prepares an HTTP request that carries a given message. The message to send. The prepared to send the request. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Thrown when the response is not valid. Called when receiving a direct response message, before deserialization begins. The HTTP direct response. The newly instantiated message, prior to deserialization. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec V1.0 section 5.3. Gets the direct response of a direct HTTP request. The web request. The response to the web request. Thrown on network or protocol errors. This binding element signs a Relying Party's openid.return_to parameter so that upon return, it can verify that it hasn't been tampered with. Since Providers can send unsolicited assertions, not all openid.return_to values will be signed. But those that are signed will be validated, and any invalid or missing signatures will cause this library to not trust the parameters in the return_to URL. In the messaging stack, this binding element looks like an ordinary transform-type of binding element rather than a protection element, due to its required order in the channel stack and that it doesn't sign anything except a particular message part. The name of the callback parameter we'll tack onto the return_to value to store our signature on the return_to parameter. The name of the callback parameter we'll tack onto the return_to value to store the handle of the association we use to sign the return_to parameter. The URI to use for private associations at this RP. The key store used to generate the private signature on the return_to parameter. Initializes a new instance of the class. The crypto key store. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets the return to signature. The return to. The crypto key. The generated signature. Only the parameters in the return_to URI are signed, rather than the base URI itself, in order that OPs that might change the return_to's implicit port :80 part or other minor changes do not invalidate the signature. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection offered (if any) by this binding element. No message protection is reported because this binding element does not protect the entire message -- only a part. Spoofs security checks on incoming OpenID messages. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. Code contract for the class. Prevents a default instance of the class from being created. The string to pass as the assoc_type value in the OpenID protocol. The protocol version of the message that the assoc_type value will be included in. The value that should be used for the openid.assoc_type parameter. Returns the specific hash algorithm used for message signing. The hash algorithm used for message signing. Gets the length (in bits) of the hash this association creates when signing. Manages a fast, two-way mapping between type URIs and their aliases. The format of auto-generated aliases. Tracks extension Type URIs and aliases assigned to them. Tracks extension aliases and Type URIs assigned to them. Gets an alias assigned for a given Type URI. A new alias is assigned if necessary. The type URI. The alias assigned to this type URI. Never null. Sets an alias and the value that will be returned by . The alias. The type URI. Takes a sequence of type URIs and assigns aliases for all of them. The type URIs to create aliases for. An optional dictionary of URI/alias pairs that suggest preferred aliases to use if available for certain type URIs. Sets up aliases for any Type URIs in a dictionary that do not yet have aliases defined, and where the given preferred alias is still available. A dictionary of type URI keys and alias values. Gets the Type Uri encoded by a given alias. The alias. The Type URI. Thrown if the given alias does not have a matching TypeURI. Gets the Type Uri encoded by a given alias. The alias. The Type URI for the given alias, or null if none for that alias exist. Returns a value indicating whether an alias has already been assigned to a type URI. The alias in question. True if the alias has already been assigned. False otherwise. Determines whether a given TypeURI has an associated alias assigned to it. The type URI. true if the given type URI already has an alias assigned; false otherwise. Assigns a new alias to a given Type URI. The type URI to assign a new alias to. The newly generated alias. Gets the aliases that have been set. An individual attribute to be requested of the OpenID Provider using the Attribute Exchange extension. Backing field for the property. Initializes a new instance of the class with = false, = 1. Initializes a new instance of the class with = false, = 1. The unique TypeURI for that describes the attribute being sought. Initializes a new instance of the class with = 1. The unique TypeURI for that describes the attribute being sought. A value indicating whether the Relying Party considers this attribute to be required for registration. Initializes a new instance of the class. The unique TypeURI for that describes the attribute being sought. A value indicating whether the Relying Party considers this attribute to be required for registration. The maximum number of values for this attribute the Relying Party is prepared to receive. Used by a Provider to create a response to a request for an attribute's value(s) using a given array of strings. The values for the requested attribute. The newly created object that should be added to the object. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Gets or sets the URI uniquely identifying the attribute being requested. Gets or sets a value indicating whether the relying party considers this a required field. Note that even if set to true, the Provider may not provide the value. Gets or sets the maximum number of values for this attribute the Relying Party wishes to receive from the OpenID Provider. A value of int.MaxValue is considered infinity. An individual attribute's value(s) as supplied by an OpenID Provider in response to a prior request by an OpenID Relying Party as part of a fetch request, or by a relying party as part of a store request. Initializes a new instance of the class. The TypeURI that uniquely identifies the attribute. The values for the attribute. Initializes a new instance of the class. This is internal because web sites should be using the method to instantiate. Initializes a new instance of the class. The TypeURI of the attribute whose values are being provided. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Gets the URI uniquely identifying the attribute whose value is being supplied. Gets the values supplied by the Provider. The various Type URI formats an AX attribute may use by various remote parties. No attribute format. AX attributes should use the Type URI format starting with http://axschema.org/. AX attributes should use the Type URI format starting with http://schema.openid.net/. AX attributes should use the Type URI format starting with http://openid.net/schema/. All known schemas. The most common schemas. Helper methods shared by multiple messages in the Attribute Exchange extension. Adds a request for an attribute considering it 'required'. The attribute request collection. The type URI of the required attribute. Adds a request for an attribute without considering it 'required'. The attribute request collection. The type URI of the requested attribute. Adds a given attribute with one or more values to the request for storage. Applicable to Relying Parties only. The collection of to add to. The type URI of the attribute. The attribute values. Serializes a set of attribute values to a dictionary of fields to send in the message. The dictionary to fill with serialized attributes. The attributes. Deserializes attribute values from an incoming set of message data. The data coming in with the message. The attribute values found in the message. Reads through the attributes included in the response to discover the alias-TypeURI relationships. The data included in the extension message. The alias manager that provides lookup between aliases and type URIs. Attribute Exchange constants The TypeURI by which the AX extension is recognized in OpenID messages and in XRDS documents. The Attribute Exchange Fetch message, request leg. A handy base class for built-in extensions. The contract any OpenID extension for DotNetOpenAuth must implement. Classes that implement this interface should be marked as [] to allow serializing state servers to cache messages, particularly responses. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets or sets a value indicating whether this extension was signed by the sender. true if this instance is signed by the sender; otherwise, false. Backing store for the property. Backing store for the property. Backing store for the property. Initializes a new instance of the class. The version of the extension. The type URI to use in the OpenID message. The additional supported type URIs by which this extension might be recognized. May be null. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets or sets a value indicating whether this extension was signed by the OpenID Provider. true if this instance is signed by the provider; otherwise, false. Gets the version of the protocol or extension this message is prepared to implement. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets or sets a value indicating whether this extension was signed by the OpenID Provider. true if this instance is signed by the provider; otherwise, false. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. The value for the 'mode' parameter. The factory method that may be used in deserialization of this message. Characters that may not appear in an attribute alias list. Characters that may not appear in an attribute Type URI alias. The collection of requested attributes. Initializes a new instance of the class. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Splits a list of aliases by their commas. The comma-delimited list of aliases. May be null or empty. The list of aliases. Never null, but may be empty. Gets a collection of the attributes whose values are requested by the Relying Party. A collection where the keys are the attribute type URIs, and the value is all the attribute request details. Gets or sets the URL that the OpenID Provider may re-post the fetch response message to at some time after the initial response has been sent, using an OpenID Authentication Positive Assertion to inform the relying party of updates to the requested fields. Gets or sets a list of aliases for optional attributes. A comma-delimited list of aliases. Gets or sets a list of aliases for required attributes. A comma-delimited list of aliases. The Attribute Exchange Fetch message, response leg. The value of the 'mode' parameter. The factory method that may be used in deserialization of this message. The collection of provided attributes. This field will never be null. Initializes a new instance of the class. Gets the first attribute value provided for a given attribute Type URI. The type URI of the attribute. Usually a constant from . The first value provided for the attribute, or null if the attribute is missing or no values were provided. This is meant as a helper method for the common case of just wanting one attribute value. For greater flexibility or to retrieve more than just the first value for an attribute, use the collection directly. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets a sequence of the attributes whose values are provided by the OpenID Provider. Gets a value indicating whether the OpenID Provider intends to honor the request for updates. Gets or sets the URL the OpenID Provider will post updates to. Must be set if the Provider supports and will use this feature. Gets a value indicating whether this extension is signed by the Provider. true if this instance is signed by the Provider; otherwise, false. The Attribute Exchange Store message, request leg. The value of the 'mode' parameter. The factory method that may be used in deserialization of this message. The collection of provided attribute values. This field will never be null. Initializes a new instance of the class. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Gets the collection of all the attributes that are included in the store request. The Attribute Exchange Store message, response leg. The value of the mode parameter used to express a successful store operation. The value of the mode parameter used to express a store operation failure. The factory method that may be used in deserialization of this message. Initializes a new instance of the class to represent a successful store operation. Initializes a new instance of the class to represent a failed store operation. The reason for failure. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets or sets a value indicating whether the storage request succeeded. Defaults to true. Gets or sets the reason for the failure, if applicable. Gets a value indicating whether this extension is signed by the Provider. true if this instance is signed by the Provider; otherwise, false. Gets or sets the mode argument. One of 'store_response_success' or 'store_response_failure'. Attribute types defined at http://www.axschema.org/types/. If you don't see what you need here, check that URL to see if any have been added. You can use new ones directly without adding them to this class, and can even make up your own if you expect the other end to understand what you make up. Inherent attributes about a personality such as gender and bio. Gender, either "M" or "F" "M", "F" Biography (text) "I am the very model of a modern Major General." Preferences such as language and timezone. Preferred language, as per RFC4646 "en-US" Home time zone information (as specified in zoneinfo) "America/Pacific" The names a person goes by. Subject's alias or "screen" name "Johnny5" Full name of subject "John Doe" Honorific prefix for the subject's name "Mr.", "Mrs.", "Dr." First or given name of subject "John" Last name or surname of subject "Smith" Middle name(s) of subject "Robert" Suffix of subject's name "III", "Jr." Business affiliation. Company name (employer) "Springfield Power" Employee title "Engineer" Information about a person's birthdate. Date of birth. "1979-01-01" Year of birth (four digits) "1979" Month of birth (1-12) "05" Day of birth "31" Various ways to contact a person. Internet SMTP email address as per RFC2822 "jsmith@isp.example.com" Various types of phone numbers. Main phone number (preferred) +1-800-555-1234 Home phone number +1-800-555-1234 Business phone number +1-800-555-1234 Cellular (or mobile) phone number +1-800-555-1234 Fax number +1-800-555-1234 The many fields that make up an address. Home postal address: street number, name and apartment number "#42 135 East 1st Street" "#42 135 East 1st Street" "Box 67" Home city name "Vancouver" Home state or province name "BC" Home country code in ISO.3166.1988 (alpha 2) format "CA" Home postal code; region specific format "V5A 4B2" The many fields that make up an address. Business postal address: street number, name and apartment number "#42 135 East 1st Street" "#42 135 East 1st Street" "Box 67" Business city name "Vancouver" Business state or province name "BC" Business country code in ISO.3166.1988 (alpha 2) format "CA" Business postal code; region specific format "V5A 4B2" Various handles for instant message clients. AOL instant messaging service handle "jsmith421234" ICQ instant messaging service handle "1234567" MSN instant messaging service handle "jsmith42@hotmail.com" Yahoo! instant messaging service handle "jsmith421234" Jabber instant messaging service handle "jsmith@jabber.example.com" Skype instant messaging service handle "jsmith42" Various web addresses connected with this personality. Web site URL "http://example.com/~jsmith/" Blog home page URL "http://example.com/jsmith_blog/" LinkedIn URL "http://www.linkedin.com/pub/1/234/56" Amazon URL "http://www.amazon.com/gp/pdp/profile/A24DLKJ825" Flickr URL "http://flickr.com/photos/jsmith42/" del.icio.us URL "http://del.icio.us/jsmith42" Audio and images of this personality. Spoken name (web URL) "http://example.com/~jsmith/john_smith.wav" Audio greeting (web URL) "http://example.com/~jsmith/i_greet_you.wav" Video greeting (web URL) "http://example.com/~jsmith/i_greet_you.mov" Images of this personality. Image (web URL); unspecified dimension "http://example.com/~jsmith/image.jpg" Image (web URL) with equal width and height "http://example.com/~jsmith/image.jpg" Image (web URL) 4:3 aspect ratio - landscape "http://example.com/~jsmith/image.jpg" Image (web URL) 4:3 aspect ratio - landscape "http://example.com/~jsmith/image.jpg" Image (web URL); favicon format as per FAVICON-W3C. The format for the image must be 16x16 pixels or 32x32 pixels, using either 8-bit or 24-bit colors. The format of the image must be one of PNG (a W3C standard), GIF, or ICO. "http://example.com/~jsmith/image.jpg" Manages the processing and construction of OpenID extensions parts. This contains a set of aliases that we must be willing to implicitly match to namespaces for backward compatibility with other OpenID libraries. The version of OpenID that the message is using. Whether extensions are being read or written. The alias manager that will track Type URI to alias mappings. A complex dictionary where the key is the Type URI of the extension, and the value is another dictionary of the name/value args of the extension. Prevents a default instance of the class from being created. Creates a instance to process incoming extensions. The parameters in the OpenID message. The newly created instance of . Creates a instance to prepare outgoing extensions. The protocol version used for the outgoing message. The newly created instance of . Adds query parameters for OpenID extensions to the request directed at the OpenID provider. The extension type URI. The arguments for this extension to add to the message. Gets the actual arguments to add to a querystring or other response, where type URI, alias, and actual key/values are all defined. true if the generated parameter names should include the 'openid.' prefix. This should be true for all but direct response messages. A dictionary of key=value pairs to add to the message to carry the extension. Gets the fields carried by a given OpenId extension. The type URI of the extension whose fields are being queried for. The fields included in the given extension, or null if the extension is not present. Gets whether any arguments for a given extension are present. The extension Type URI in question. true if this extension is present; false otherwise. Gets the type URIs of all discovered extensions in the message. A sequence of the type URIs. Gets a value indicating whether the extensions are being read (as opposed to written). An interface that OpenID extensions can implement to allow authentication response messages with included extensions to be processed by Javascript on the user agent. Reads the extension information on an authentication response from the provider. The incoming OpenID response carrying the extension. A Javascript snippet that when executed on the user agent returns an object with the information deserialized from the extension response. This method is called before the signature on the assertion response has been verified. Therefore all information in these fields should be assumed unreliable and potentially falsified. An extension to include with an authentication request in order to also obtain authorization to access user data at the combined OpenID Provider and Service Provider. When requesting OpenID Authentication via the protocol mode "checkid_setup" or "checkid_immediate", this extension can be used to request that the end user authorize an OAuth access token at the same time as an OpenID authentication. This is done by sending the following parameters as part of the OpenID request. (Note that the use of "oauth" as part of the parameter names here and in subsequent sections is just an example. See Section 5 for details.) See section 8. The factory method that may be used in deserialization of this message. Initializes a new instance of the class. Gets or sets the consumer key agreed upon between the Consumer and Service Provider. Gets or sets a string that encodes, in a way possibly specific to the Combined Provider, one or more scopes for the OAuth token expected in the authentication response. The OAuth response that a Provider may include with a positive OpenID identity assertion with an approved request token. The factory method that may be used in deserialization of this message. Initializes a new instance of the class. Gets or sets the user-approved request token. The request token. Gets or sets a string that encodes, in a way possibly specific to the Combined Provider, one or more scopes that the returned request token is valid for. This will typically indicate a subset of the scopes requested in Section 8. Constants used in the OpenID OAuth extension. The TypeURI for the OpenID OAuth extension. The name of the parameter that carries the request token in the response. The OAuth response that a Provider should include with a positive OpenID identity assertion when OAuth authorization was declined. The factory method that may be used in deserialization of this message. Initializes a new instance of the class. An OpenID extension factory that only delegates extension instantiation requests to other factories. The list of factories this factory delegates to. Initializes a new instance of the class. Creates a new instance of some extension based on the received extension parameters. The type URI of the extension. The parameters associated specifically with this extension. The OpenID message carrying this extension. A value indicating whether this extension is being received at the OpenID Provider. An instance of if the factory recognizes the extension described in the input parameters; null otherwise. This factory method need only initialize properties in the instantiated extension object that are not bound using . Loads the default factory and additional ones given by the configuration. A new instance of . Gets the extension factories that this aggregating factory delegates to. A list of factories. May be empty, but never null. Encodes/decodes the Simple Registration Gender type to its string representation. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. An OpenID extension factory that supports registration so that third-party extensions can add themselves to this library's supported extension list. A collection of the registered OpenID extensions. Initializes a new instance of the class. Creates a new instance of some extension based on the received extension parameters. The type URI of the extension. The parameters associated specifically with this extension. The OpenID message carrying this extension. A value indicating whether this extension is being received at the OpenID Provider. An instance of if the factory recognizes the extension described in the input parameters; null otherwise. This factory method need only initialize properties in the instantiated extension object that are not bound using . Registers a new extension delegate. The factory method that can create the extension. A delegate that individual extensions may register with this factory. The type URI of the extension. The parameters associated specifically with this extension. The OpenID message carrying this extension. A value indicating whether this extension is being received at the OpenID Provider. An instance of if the factory recognizes the extension described in the input parameters; null otherwise. Well-known authentication policies defined in the PAPE extension spec or by a recognized standards body. This is a class of constants rather than a flags enum because policies may be freely defined and used by anyone, just by using a new Uri. An authentication mechanism where the End User does not provide a shared secret to a party potentially under the control of the Relying Party. (Note that the potentially malicious Relying Party controls where the User-Agent is redirected to and thus may not send it to the End User's actual OpenID Provider). An authentication mechanism where the End User authenticates to the OpenID Provider by providing over one authentication factor. Common authentication factors are something you know, something you have, and something you are. An example would be authentication using a password and a software token or digital certificate. An authentication mechanism where the End User authenticates to the OpenID Provider by providing over one authentication factor where at least one of the factors is a physical factor such as a hardware device or biometric. Common authentication factors are something you know, something you have, and something you are. This policy also implies the Multi-Factor Authentication policy (http://schemas.openid.net/pape/policies/2007/06/multi-factor) and both policies MAY BE specified in conjunction without conflict. An example would be authentication using a password and a hardware token. Indicates that the Provider MUST use a pair-wise pseudonym for the user that is persistent and unique across the requesting realm as the openid.claimed_id and openid.identity (see Section 4.2). Indicates that the OP MUST only respond with a positive assertion if the requirements demonstrated by the OP to obtain certification by a Federally adopted Trust Framework Provider have been met. Notwithstanding the RP may request this authentication policy, the RP MUST still verify that this policy appears in the positive assertion response rather than assume the OP recognized and complied with the request. Indicates that the OP MUST not include any OpenID Attribute Exchange or Simple Registration information regarding the user in the assertion. Used in a PAPE response to indicate that no PAPE authentication policies could be satisfied. Used internally by the PAPE extension, so that users don't have to know about it. OpenID Provider Authentication Policy extension constants. The namespace used by this extension in messages. The namespace alias to use for OpenID 1.x interop, where aliases are not defined in the message. The string to prepend on an Auth Level Type alias definition. Well-known assurance level Type URIs. The Type URI of the NIST assurance level. A mapping between the PAPE TypeURI and the alias to use if possible for backward compatibility reasons. Parameters to be included with PAPE requests. Optional. If the End User has not actively authenticated to the OP within the number of seconds specified in a manner fitting the requested policies, the OP SHOULD authenticate the End User for this request. Integer value greater than or equal to zero in seconds. The OP should realize that not adhering to the request for re-authentication most likely means that the End User will not be allowed access to the services provided by the RP. If this parameter is absent in the request, the OP should authenticate the user at its own discretion. Zero or more authentication policy URIs that the OP SHOULD conform to when authenticating the user. If multiple policies are requested, the OP SHOULD satisfy as many as it can. Space separated list of authentication policy URIs. If no policies are requested, the RP may be interested in other information such as the authentication age. The space separated list of the name spaces of the custom Assurance Level that RP requests, in the order of its preference. An encoder/decoder design for DateTimes that must conform to the PAPE spec. The timestamp MUST be formatted as specified in section 5.6 of [RFC3339] (Klyne, G. and C. Newman, “Date and Time on the Internet: Timestamps,” .), with the following restrictions: * All times must be in the UTC timezone, indicated with a "Z". * No fractional seconds are allowed For example: 2005-05-15T17:11:51Z An array of the date/time formats allowed by the PAPE extension. TODO: This array of formats is not yet a complete list. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Descriptions for NIST-defined levels of assurance that a credential has not been compromised and therefore the extent to which an authentication assertion can be trusted. One using this enum should review the following publication for details before asserting or interpreting what these levels signify, notwithstanding the brief summaries attached to each level in DotNetOpenAuth documentation. http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf See PAPE spec Appendix A.1.2 (NIST Assurance Levels) for high-level example classifications of authentication methods within the defined levels. Not an assurance level defined by NIST, but rather SHOULD be used to signify that the OP recognizes the parameter and the End User authentication did not meet the requirements of Level 1. See this document for a thorough description: http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf See this document for a thorough description: http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf See this document for a thorough description: http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf See this document for a thorough description: http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf Utility methods for use by the PAPE extension. Looks at the incoming fields and figures out what the aliases and name spaces for auth level types are. The incoming message data in which to discover TypeURIs and aliases. The initialized with the given data. Concatenates a sequence of strings using a space as a separator. The elements to concatenate together.. The concatenated string of elements. Thrown if any element in the sequence includes a space. The PAPE request part of an OpenID Authentication request message. The factory method that may be used in deserialization of this message. The transport field for the RP's preferred authentication policies. This field is written to/read from during custom serialization. Initializes a new instance of the class. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Serializes the policies as a single string per the PAPE spec.. The policies to include in the list. The concatenated string of the given policies. Serializes the auth levels to a list of aliases. The preferred auth level types. The alias manager. A space-delimited list of aliases. Gets or sets the maximum acceptable time since the End User has actively authenticated to the OP in a manner fitting the requested policies, beyond which the Provider SHOULD authenticate the End User for this request. The OP should realize that not adhering to the request for re-authentication most likely means that the End User will not be allowed access to the services provided by the RP. If this parameter is absent in the request, the OP should authenticate the user at its own discretion. Gets the list of authentication policy URIs that the OP SHOULD conform to when authenticating the user. If multiple policies are requested, the OP SHOULD satisfy as many as it can. List of authentication policy URIs obtainable from the class or from a custom list. If no policies are requested, the RP may be interested in other information such as the authentication age. Gets the namespaces of the custom Assurance Level the Relying Party requests, in the order of its preference. The PAPE response part of an OpenID Authentication response message. The first part of a parameter name that gives the custom string value for the assurance level. The second part of the parameter name is the alias for that assurance level. The factory method that may be used in deserialization of this message. One or more authentication policy URIs that the OP conformed to when authenticating the End User. Space separated list of authentication policy URIs. If no policies were met though the OP wishes to convey other information in the response, this parameter MUST be included with the value of "none". Backing field for the property. Initializes a new instance of the class. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Serializes the applied policies for transmission from the Provider to the Relying Party. The applied policies. A space-delimited list of applied policies. Gets a list of authentication policy URIs that the OP conformed to when authenticating the End User. Gets or sets the most recent timestamp when the End User has actively authenticated to the OP in a manner fitting the asserted policies. If the RP's request included the "openid.max_auth_age" parameter then the OP MUST include "openid.auth_time" in its response. If "openid.max_auth_age" was not requested, the OP MAY choose to include "openid.auth_time" in its response. Gets or sets the Assurance Level as defined by the National Institute of Standards and Technology (NIST) in Special Publication 800-63 (Burr, W., Dodson, D., and W. Polk, Ed., “Electronic Authentication Guideline,” April 2006.) [NIST_SP800‑63] corresponding to the authentication method and policies employed by the OP when authenticating the End User. See PAPE spec Appendix A.1.2 (NIST Assurance Levels) for high-level example classifications of authentication methods within the defined levels. Gets a dictionary where keys are the authentication level type URIs and the values are the per authentication level defined custom value. A very common key is and values for this key are available in . Gets a value indicating whether this extension is signed by the Provider. true if this instance is signed by the Provider; otherwise, false. Carries the request/require/none demand state of the simple registration fields. The factory method that may be used in deserialization of this message. The type URI that this particular (deserialized) extension was read in using, allowing a response to alter be crafted using the same type URI. Initializes a new instance of the class. Initializes a new instance of the class by deserializing from a message. The type URI this extension was recognized by in the OpenID message. Tests equality between two structs. One instance to compare. Another instance to compare. The result of the operator. Tests inequality between two structs. One instance to compare. Another instance to compare. The result of the operator. Tests equality between two structs. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Renders the requested information as a string. A that represents the current . Prepares a Simple Registration response extension that is compatible with the version of Simple Registration used in the request message. The newly created instance. Sets the profile request properties according to a list of field names that might have been passed in the OpenId query dictionary. The list of field names that should receive a given . These field names should match the OpenId specification for field names, omitting the 'openid.sreg' prefix. The none/request/require state of the listed fields. Assembles the profile parameter names that have a given . The demand level (request, require, none). An array of the profile parameter names that meet the criteria. Gets or sets the URL the consumer site provides for the authenticating user to review for how his claims will be used by the consumer web site. Gets or sets the level of interest a relying party has in the nickname of the user. Gets or sets the level of interest a relying party has in the email of the user. Gets or sets the level of interest a relying party has in the full name of the user. Gets or sets the level of interest a relying party has in the birthdate of the user. Gets or sets the level of interest a relying party has in the gender of the user. Gets or sets the level of interest a relying party has in the postal code of the user. Gets or sets the level of interest a relying party has in the Country of the user. Gets or sets the level of interest a relying party has in the language of the user. Gets or sets the level of interest a relying party has in the time zone of the user. Gets or sets a value indicating whether this instance is synthesized from an AX request at the Provider. Gets or sets the value of the sreg.required parameter. A comma-delimited list of sreg fields. Gets or sets the value of the sreg.optional parameter. A comma-delimited list of sreg fields. A struct storing Simple Registration field values describing an authenticating user. The factory method that may be used in deserialization of this message. The allowed format for birthdates. Storage for the raw string birthdate value. Backing field for the property. Backing field for the property. Initializes a new instance of the class. Initializes a new instance of the class. The type URI that must be used to identify this extension in the response message. This value should be the same one the relying party used to send the extension request. Tests equality of two objects. One instance to compare. Another instance to compare. The result of the operator. Tests inequality of two objects. One instance to compare. Another instance to compare. The result of the operator. Tests equality of two objects. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Reads the extension information on an authentication response from the provider. The incoming OpenID response carrying the extension. A Javascript snippet that when executed on the user agent returns an object with the information deserialized from the extension response. This method is called before the signature on the assertion response has been verified. Therefore all information in these fields should be assumed unreliable and potentially falsified. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Translates an empty string value to null, or passes through non-empty values. The value to consider changing to null. Either null or a non-empty string. Gets or sets the nickname the user goes by. Gets or sets the user's email address. Gets or sets the full name of a user as a single string. Gets or sets the user's birthdate. Gets or sets the raw birth date string given by the extension. A string in the format yyyy-MM-dd. Gets or sets the gender of the user. Gets or sets the zip code / postal code of the user. Gets or sets the country of the user. Gets or sets the primary/preferred language of the user. Gets or sets the user's timezone. Gets a combination of the user's full name and email address. Gets or sets a combination o the language and country of the user. Gets a value indicating whether this extension is signed by the Provider. true if this instance is signed by the Provider; otherwise, false. Simple Registration constants Additional type URIs that this extension is sometimes known by remote parties. Specifies what level of interest a relying party has in obtaining the value of a given field offered by the Simple Registration extension. The relying party has no interest in obtaining this field. The relying party would like the value of this field, but wants the Provider to display the field to the user as optionally provided. The relying party considers this a required field as part of authentication. The Provider and/or user agent MAY still choose to not provide the value of the field however, according to the Simple Registration extension specification. Indicates the gender of a user. The user is male. The user is female. Constants used to support the UI extension. The type URI associated with this extension. The Type URI that appears in an XRDS document when the OP supports popups through the UI extension. The Type URI that appears in an XRDS document when the OP supports the RP specifying the user's preferred language through the UI extension. The Type URI that appears in the XRDS document when the OP supports the RP specifying the icon for the OP to display during authentication through the UI extension. Valid values for the mode parameter of the OpenID User Interface extension. Indicates that the Provider's authentication page appears in a popup window. The constant "popup". The RP SHOULD create the popup to be 450 pixels wide and 500 pixels tall. The popup MUST have the address bar displayed, and MUST be in a standalone browser window. The contents of the popup MUST NOT be framed by the RP. The RP SHOULD open the popup centered above the main browser window, and SHOULD dim the contents of the parent window while the popup is active. The RP SHOULD ensure that the user is not surprised by the appearance of the popup, and understands how to interact with it. To keep the user popup user experience consistent, it is RECOMMENDED that the OP does not resize the popup window unless the OP requires additional space to show special features that are not usually displayed as part of the default popup user experience. The OP MAY close the popup without returning a response to the RP. Closing the popup without sending a response should be interpreted as a negative assertion. The response to an authentication request in a popup is unchanged from [OpenID 2.0] (OpenID 2.0 Workgroup, “OpenID 2.0,” .). Relying Parties detecting that the popup was closed without receiving an authentication response SHOULD interpret the close event to be a negative assertion. OpenID User Interface extension 1.0 request message. Implements the extension described by: http://wiki.openid.net/f/openid_ui_extension_draft01.html This extension only applies to checkid_setup requests, since checkid_immediate requests display no UI to the user. For rules about how the popup window should be displayed, please see the documentation of . An RP may determine whether an arbitrary OP supports this extension (and thereby determine whether to use a standard full window redirect or a popup) via the method. The factory method that may be used in deserialization of this message. Additional type URIs that this extension is sometimes known by remote parties. Backing store for . Initializes a new instance of the class. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Gets or sets the list of user's preferred languages, sorted in decreasing preferred order. The default is the of the thread that created this instance. The user's preferred languages as a [BCP 47] language priority list, represented as a comma-separated list of BCP 47 basic language ranges in descending priority order. For instance, the value "fr-CA,fr-FR,en-CA" represents the preference for French spoken in Canada, French spoken in France, followed by English spoken in Canada. Gets or sets the style of UI that the RP is hosting the OP's authentication page in. Some value from the class. Defaults to . Gets or sets a value indicating whether the Relying Party has an icon it would like the Provider to display to the user while asking them whether they would like to log in. true if the Provider should display an icon; otherwise, false. By default, the Provider displays the relying party's favicon.ico. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets or sets a value indicating whether this extension was signed by the sender. true if this instance is signed by the sender; otherwise, false. Gets the version of the protocol or extension this message is prepared to implement. The value 1.0. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Constants used in implementing support for the UI extension. The required width of the popup window the relying party creates for the provider. The required height of the popup window the relying party creates for the provider. An Identifier is either a "http" or "https" URI, or an XRI. Initializes a new instance of the class. The original string before any normalization. Whether the derived class is prepared to guarantee end-to-end discovery and initial redirect for authentication is performed using SSL. Converts the string representation of an Identifier to its strong type. The identifier. The particular Identifier instance to represent the value given. Converts a given Uri to a strongly-typed Identifier. The identifier to convert. The result of the conversion. Converts an Identifier to its string representation. The identifier to convert to a string. The result of the conversion. Parses an identifier string and automatically determines whether it is an XRI or URI. Either a URI or XRI identifier. An instance for the given value. Parses an identifier string and automatically determines whether it is an XRI or URI. Either a URI or XRI identifier. if set to true this Identifier will serialize exactly as given rather than in its normalized form. An instance for the given value. Attempts to parse a string for an OpenId Identifier. The string to be parsed. The parsed Identifier form. True if the operation was successful. False if the string was not a valid OpenId Identifier. Checks the validity of a given string representation of some Identifier. The identifier. true if the specified identifier is valid; otherwise, false. Tests equality between two s. The first Identifier. The second Identifier. true if the two instances should be considered equal; false otherwise. Tests inequality between two s. The first Identifier. The second Identifier. true if the two instances should be considered unequal; false if they are equal. Tests equality between two s. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Gets the hash code for an for storage in a hashtable. A hash code for the current . Reparses the specified identifier in order to be assured that the concrete type that implements the identifier is one of the well-known ones. The identifier. Either or . Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. Gets the original string that was normalized to create this Identifier. Gets the Identifier in the form in which it should be serialized. For Identifiers that were originally deserialized, this is the exact same string that was deserialized. For Identifiers instantiated in some other way, this is the normalized form of the string used to instantiate the identifier. Gets or sets a value indicating whether instances are considered equal based solely on their string reprsentations. This property serves as a test hook, so that MockIdentifier instances can be considered "equal" to UriIdentifier instances. Gets a value indicating whether this Identifier will ensure SSL is used throughout the discovery phase and initial redirect of authentication. If this is false, a value of true may be obtained by calling . Gets a value indicating whether this instance was initialized from deserializing a message. This is interesting because when an Identifier comes from the network, we can't normalize it and then expect signatures to still verify. But if the Identifier is initialized locally, we can and should normalize it before serializing it. Provides conversions to and from strings for messages that include members of this type. Encodes the specified value as the original value that was formerly decoded. The value. Guaranteed to never be null. The in string form, ready for message transport. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Code Contract for the class. Prevents a default instance of the IdentifierContract class from being created. Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. A set of methods designed to assist in improving interop across different OpenID implementations and their extensions. The gender decoder to translate AX genders to Sreg. Splits the AX attribute format flags into individual values for processing. The formats to split up into individual flags. A sequence of individual flags. Transforms an AX attribute type URI from the axschema.org format into a given format. The ax schema org format type URI. The target format. Only one flag should be set. The AX attribute type URI in the target format. Detects the AX attribute type URI format from a given sample. The type URIs to scan for recognized formats. The first AX type URI format recognized in the list. Adds an attribute fetch request if it is not already present in the AX request. The AX request to add the attribute request to. The format of the attribute's Type URI to use. The attribute in axschema.org format. The demand level. Gets the gender decoder to translate AX genders to Sreg. Represents a single OP endpoint from discovery on some OpenID Identifier. Information published about an OpenId Provider by the OpenId discovery documents found at a user's Claimed Identifier. Because information provided by this interface is suppplied by a user's individually published documents, it may be incomplete or inaccurate. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Gets the detected version of OpenID implemented by the Provider. Gets the URL that the OpenID Provider receives authentication requests at. This value MUST be an absolute HTTP or HTTPS URL. Backing field for the property. Backing field for the property. Backing field for the property. Initializes a new instance of the class. The provider endpoint. The Claimed Identifier. The User-supplied Identifier. The Provider Local Identifier. The service priority. The URI priority. Implements the operator ==. The first service endpoint. The second service endpoint. The result of the operator. Implements the operator !=. The first service endpoint. The second service endpoint. The result of the operator. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Returns a that represents the current . A that represents the current . Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Determines whether a given extension is supported by this endpoint. An instance of the extension to check support for. true if the extension is supported by this endpoint; otherwise, false. Creates a instance to represent some OP Identifier. The provider identifier (actually the user-supplied identifier). The provider endpoint. The service priority. The URI priority. The created instance Creates a instance to represent some Claimed Identifier. The claimed identifier. The provider local identifier. The provider endpoint. The service priority. The URI priority. The created instance Creates a instance to represent some Claimed Identifier. The claimed identifier. The user supplied identifier. The provider local identifier. The provider endpoint. The service priority. The URI priority. The created instance Determines whether a given type URI is present on the specified provider endpoint. The type URI. true if the type URI is present on the specified provider endpoint; otherwise, false. Sets the Capabilities property (this method is a test hook.) The value. The publicize.exe tool should work for the unit tests, but for some reason it fails on the build server. Gets the priority rating for a given type of endpoint, allowing a priority sorting of endpoints. The endpoint to prioritize. An arbitary integer, which may be used for sorting against other returned values from this method. Gets the detected version of OpenID implemented by the Provider. Gets the Identifier that was presented by the end user to the Relying Party, or selected by the user at the OpenID Provider. During the initiation phase of the protocol, an end user may enter either their own Identifier or an OP Identifier. If an OP Identifier is used, the OP may then assist the end user in selecting an Identifier to share with the Relying Party. Gets the Identifier that the end user claims to control. Gets an alternate Identifier for an end user that is local to a particular OP and thus not necessarily under the end user's control. Gets a more user-friendly (but NON-secure!) string to display to the user as his identifier. A human-readable, abbreviated (but not secure) identifier the user MAY recognize as his own. Gets the provider endpoint. Gets the @priority given in the XRDS document for this specific OP endpoint. Gets the @priority given in the XRDS document for this service (which may consist of several endpoints). Gets the collection of service type URIs found in the XRDS document describing this Provider. Should never be null, but may be empty. Gets the URL that the OpenID Provider receives authentication requests at. This value MUST be an absolute HTTP or HTTPS URL. Gets an XRDS sorting routine that uses the XRDS Service/@Priority attribute to determine order. Endpoints lacking any priority value are sorted to the end of the list. Gets the protocol used by the OpenID Provider. A module that provides discovery services for OpenID identifiers. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. Code contract for the interface. Prevents a default instance of the class from being created. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. A service that can perform discovery on OpenID identifiers. The RP or OP that is hosting these services. Backing field for the property. Initializes a new instance of the class. The RP or OP that creates this instance. Performs discovery on the specified identifier. The identifier to discover services for. A non-null sequence of services discovered for the identifier. Gets the list of services that can perform discovery on identifiers given. An interface implemented by both providers and relying parties. Gets the security settings. Gets the web request handler. Code contract for the type. Prevents a default instance of the class from being created. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Gets the detected version of OpenID implemented by the Provider. Gets the URL that the OpenID Provider receives authentication requests at. Instances of this interface represent incoming authentication requests. This interface provides the details of the request and allows setting the response. Interface exposing incoming messages to the OpenID Provider that require interaction with the host site. Represents an incoming OpenId authentication request. Requests may be infrastructural to OpenID and allow auto-responses, or they may be authentication requests where the Provider site has to make decisions based on its own user database and policies. Adds an extension to the response to send to the relying party. The extension to add to the response message. Removes any response extensions previously added using . This should be called before sending a negative response back to the relying party if extensions were already added, since negative responses cannot carry extensions. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets a value indicating whether the response is ready to be sent to the user agent. This property returns false if there are properties that must be set on this request instance before the response can be sent. Gets or sets the security settings that apply to this request. Defaults to the OpenIdProvider.SecuritySettings on the OpenIdProvider. Attempts to perform relying party discovery of the return URL claimed by the Relying Party. The web request handler. The details of how successful the relying party discovery was. Return URL verification is only attempted if this method is called. See OpenID Authentication 2.0 spec section 9.2.1. Gets the version of OpenID being used by the relying party that sent the request. Gets the URL the consumer site claims to use as its 'base' address. Gets a value indicating whether the consumer demands an immediate response. If false, the consumer is willing to wait for the identity provider to authenticate the user. Gets or sets the provider endpoint claimed in the positive assertion. The default value is the URL that the request came in on from the relying party. This value MUST match the value for the OP Endpoint in the discovery results for the claimed identifier being asserted in a positive response. Adds an optional fragment (#fragment) portion to the ClaimedIdentifier. Useful for identifier recycling. Should not include the # prefix character as that will be added internally. May be null or the empty string to clear a previously set fragment. Unlike the property, which can only be set if using directed identity, this method can be called on any URI claimed identifier. Because XRI claimed identifiers (the canonical IDs) are never recycled, this method shouldnot be called for XRIs. Thrown when this method is called on an XRI, or on a directed identity request before the property is set. Gets a value indicating whether the Provider should help the user select a Claimed Identifier to send back to the relying party. Gets a value indicating whether the requesting Relying Party is using a delegated URL. When delegated identifiers are used, the should not be changed at the Provider during authentication. Delegation is only detectable on requests originating from OpenID 2.0 relying parties. A relying party implementing only OpenID 1.x may use delegation and this property will return false anyway. Gets or sets the Local Identifier to this OpenID Provider of the user attempting to authenticate. Check to see if this value is valid. This may or may not be the same as the Claimed Identifier that the user agent originally supplied to the relying party. The Claimed Identifier endpoint may be delegating authentication to this provider using this provider's local id, which is what this property contains. Use this identifier when looking up this user in the provider's user account list. Gets or sets the identifier that the user agent is claiming at the relying party site. Check to see if this value is valid. This property can only be set if is false, to prevent breaking URL delegation. This will not be the same as this provider's local identifier for the user if the user has set up his/her own identity page that points to this provider for authentication. The provider may use this identifier for displaying to the user when asking for the user's permission to authenticate to the relying party. Thrown from the setter if is true. Gets or sets a value indicating whether the provider has determined that the belongs to the currently logged in user and wishes to share this information with the consumer. Code contract class for the type. Initializes a new instance of the class. Adds an optional fragment (#fragment) portion to the ClaimedIdentifier. Useful for identifier recycling. Should not include the # prefix character as that will be added internally. May be null or the empty string to clear a previously set fragment. Unlike the property, which can only be set if using directed identity, this method can be called on any URI claimed identifier. Because XRI claimed identifiers (the canonical IDs) are never recycled, this method shouldnot be called for XRIs. Thrown when this method is called on an XRI, or on a directed identity request before the property is set. Attempts to perform relying party discovery of the return URL claimed by the Relying Party. The web request handler to use for the RP discovery request. The details of how successful the relying party discovery was. Return URL verification is only attempted if this method is called. See OpenID Authentication 2.0 spec section 9.2.1. Adds an extension to the response to send to the relying party. The extension to add to the response message. Removes any response extensions previously added using . This should be called before sending a negative response back to the relying party if extensions were already added, since negative responses cannot carry extensions. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets a value indicating whether the Provider should help the user select a Claimed Identifier to send back to the relying party. Gets a value indicating whether the requesting Relying Party is using a delegated URL. When delegated identifiers are used, the should not be changed at the Provider during authentication. Delegation is only detectable on requests originating from OpenID 2.0 relying parties. A relying party implementing only OpenID 1.x may use delegation and this property will return false anyway. Gets or sets the Local Identifier to this OpenID Provider of the user attempting to authenticate. Check to see if this value is valid. This may or may not be the same as the Claimed Identifier that the user agent originally supplied to the relying party. The Claimed Identifier endpoint may be delegating authentication to this provider using this provider's local id, which is what this property contains. Use this identifier when looking up this user in the provider's user account list. Gets or sets the identifier that the user agent is claiming at the relying party site. Check to see if this value is valid. This property can only be set if is false, to prevent breaking URL delegation. This will not be the same as this provider's local identifier for the user if the user has set up his/her own identity page that points to this provider for authentication. The provider may use this identifier for displaying to the user when asking for the user's permission to authenticate to the relying party. Thrown from the setter if is true. Gets or sets a value indicating whether the provider has determined that the belongs to the currently logged in user and wishes to share this information with the consumer. Gets the version of OpenID being used by the relying party that sent the request. Gets the URL the consumer site claims to use as its 'base' address. Gets a value indicating whether the consumer demands an immediate response. If false, the consumer is willing to wait for the identity provider to authenticate the user. Gets or sets the provider endpoint claimed in the positive assertion. The default value is the URL that the request came in on from the relying party. This value MUST match the value for the OP Endpoint in the discovery results for the claimed identifier being asserted in a positive response. Gets a value indicating whether the response is ready to be sent to the user agent. This property returns false if there are properties that must be set on this request instance before the response can be sent. Gets or sets the security settings that apply to this request. Defaults to the OpenIdProvider.SecuritySettings on the OpenIdProvider. Code contract for the type. Initializes a new instance of the class. Adds an extension to the response to send to the relying party. The extension to add to the response message. Removes any response extensions previously added using . This should be called before sending a negative response back to the relying party if extensions were already added, since negative responses cannot carry extensions. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Attempts to perform relying party discovery of the return URL claimed by the Relying Party. The web request handler. The details of how successful the relying party discovery was. Return URL verification is only attempted if this method is called. See OpenID Authentication 2.0 spec section 9.2.1. Gets the version of OpenID being used by the relying party that sent the request. Gets the URL the consumer site claims to use as its 'base' address. Gets a value indicating whether the consumer demands an immediate response. If false, the consumer is willing to wait for the identity provider to authenticate the user. Gets or sets the provider endpoint. The default value is the URL that the request came in on from the relying party. Gets or sets the security settings that apply to this request. Defaults to the OpenIdProvider.SecuritySettings on the OpenIdProvider. Gets a value indicating whether the response is ready to be sent to the user agent. This property returns false if there are properties that must be set on this request instance before the response can be sent. Applies a custom security policy to certain OpenID security settings and behaviors. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when a request is received by the Provider. The incoming request. true if this behavior owns this request and wants to stop other behaviors from handling it; false to allow other behaviors to process this request. Implementations may set a new value to but should not change the properties on the instance of itself as that instance may be shared across many requests. Called when the Provider is preparing to send a response to an authentication request. The request that is configured to generate the outgoing response. true if this behavior owns this request and wants to stop other behaviors from handling it; false to allow other behaviors to process this request. Code contract for the type. Initializes a new instance of the class. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when a request is received by the Provider. The incoming request. true if this behavior owns this request and wants to stop other behaviors from handling it; false to allow other behaviors to process this request. Implementations may set a new value to but should not change the properties on the instance of itself as that instance may be shared across many requests. Called when the Provider is preparing to send a response to an authentication request. The request that is configured to generate the outgoing response. true if this behavior owns this request and wants to stop other behaviors from handling it; false to allow other behaviors to process this request. Code contract for the interface. Prevents a default instance of the class from being created. Adds an extension to the response to send to the relying party. The extension to add to the response message. Removes any response extensions previously added using . This should be called before sending a negative response back to the relying party if extensions were already added, since negative responses cannot carry extensions. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets or sets the security settings that apply to this request. Defaults to the OpenIdProvider.SecuritySettings on the OpenIdProvider. Gets a value indicating whether the response is ready to be sent to the user agent. This property returns false if there are properties that must be set on this request instance before the response can be sent. Security settings that are applicable to providers. Security settings that may be applicable to both relying parties and providers. Gets the default minimum hash bit length. Gets the maximum hash bit length default for relying parties. Gets the maximum hash bit length default for providers. Initializes a new instance of the class. A value indicating whether this class is being instantiated for a Provider. Determines whether a named association fits the security requirements. The protocol carrying the association. The value of the openid.assoc_type parameter. true if the association is permitted given the security requirements; otherwise, false. Determines whether a given association fits the security requirements. The association to check. true if the association is permitted given the security requirements; otherwise, false. Gets or sets the minimum hash length (in bits) allowed to be used in an with the remote party. The default is 160. SHA-1 (160 bits) has been broken. The minimum secure hash length is now 256 bits. The default is still a 160 bit minimum to allow interop with common remote parties, such as Yahoo! that only supports 160 bits. For sites that require high security such as to store bank account information and health records, 256 is the recommended value. Gets or sets the maximum hash length (in bits) allowed to be used in an with the remote party. The default is 256 for relying parties and 512 for providers. The longer the bit length, the more secure the identities of your visitors are. Setting a value higher than 256 on a relying party site may reduce performance as many association requests will be denied, causing secondary requests or even authentication failures. Setting a value higher than 256 on a provider increases security where possible without these side-effects. Gets or sets a value indicating whether identifiers that are both OP Identifiers and Claimed Identifiers should ever be recognized as claimed identifiers. The default value is false, per the OpenID 2.0 spec. OpenID 2.0 sections 7.3.2.2 and 11.2 specify that OP Identifiers never be recognized as Claimed Identifiers. However, for some scenarios it may be desirable for an RP to override this behavior and allow this. The security ramifications of setting this property to true have not been fully explored and therefore this setting should only be changed with caution. The default value for the property. The default value for the property. The default value for the property. The default value for the property. The subset of association types and their customized lifetimes. Initializes a new instance of the class. Creates a deep clone of this instance. A new instance that is a deep clone of this instance. Gets a subset of the available association types and their customized maximum lifetimes. Gets or sets a value indicating whether Relying Party discovery will only succeed if done over a secure HTTPS channel. Default is false. Gets or sets the level of verification a Provider performs on an identifier before sending an unsolicited assertion for it. The default value is . Gets or sets a value indicating whether the Provider should ease the burden of storing associations by encoding them in signed, encrypted form into the association handles themselves, storing only a few rotating, private symmetric keys in the Provider's store instead. The default value for this property is true. Gets or sets a value indicating whether OpenID 1.x relying parties that may not be protecting their users from replay attacks are protected from replay attacks by this provider. The default value is true. Nonces for protection against replay attacks were not mandated by OpenID 1.x, which leaves users open to replay attacks. This feature works by preventing associations from being used with OpenID 1.x relying parties, thereby forcing them into "dumb" mode and verifying every claim with this provider. This gives the provider an opportunity to verify its own nonce to protect against replay attacks. Gets or sets a value indicating whether outgoing extensions are always signed. true if outgoing extensions should be signed; otherwise, false. The default is true. This property is internal because Providers should never turn it off, but it is needed for testing the RP's rejection of unsigned extensions. The behavior a Provider takes when verifying that it is authoritative for an identifier it is about to send an unsolicited assertion for. Always verify that the Provider is authoritative for an identifier before sending an unsolicited assertion for it and fail if it is not. Always check that the Provider is authoritative for an identifier before sending an unsolicited assertion for it, but only log failures, and proceed to send the unsolicited assertion. Never verify that the Provider is authoritative for an identifier before sending an unsolicited assertion for it. This setting is useful for web servers that refuse to allow a Provider to introspectively perform an HTTP GET on itself, when sending unsolicited assertions for identifiers that the OP controls. The result codes that may be returned from an attempt at relying party discovery. Relying Party discovery failed to find an XRDS document or the document was invalid. This can happen either when a relying party does not offer a service document at all, or when a man-in-the-middle attack is in progress that prevents the Provider from being able to discover that document. Relying Party discovery yielded a valid XRDS document, but no matching return_to URI was found. This is perhaps the most dangerous rating for a relying party, since it suggests that they are implementing OpenID 2.0 securely, but that a hijack operation may be in progress. Relying Party discovery succeeded, and a matching return_to URI was found. An enumeration of the possible results of an authentication attempt. The authentication was canceled by the user agent while at the provider. The authentication failed because an error was detected in the OpenId communication. The Provider responded to a request for immediate authentication approval with a message stating that additional user agent interaction is required before authentication can be completed. Casting the to a ISetupRequiredAuthenticationResponse in this case can help you retry the authentication using setup (non-immediate) mode. Authentication is completed successfully. The Provider sent a message that did not contain an identity assertion, but may carry OpenID extensions. Instances of this interface represent relying party authentication requests that may be queried/modified in specific ways before being routed to the OpenID Provider. Makes a dictionary of key/value pairs available when the authentication is completed. The arguments to add to the request's return_to URI. Values must not be null. Note that these values are NOT protected against eavesdropping in transit. No privacy-sensitive data should be stored using this method. The values stored here can be retrieved using , which will only return the value if it can be verified as untampered with in transit. Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against eavesdropping in transit. No privacy-sensitive data should be stored using this method. The value stored here can be retrieved using , which will only return the value if it can be verified as untampered with in transit. Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against eavesdropping in transit. No security-sensitive data should be stored using this method. The value stored here can be retrieved using . Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed without requiring a return_to signature to protect against tampering of the callback argument. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against eavesdropping or tampering in transit. No security-sensitive data should be stored using this method. The value stored here can be retrieved using . Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Adds an OpenID extension to the request directed at the OpenID provider. The initialized extension to add to the request. Redirects the user agent to the provider for authentication. Execution of the current page terminates after this call. This method requires an ASP.NET HttpContext. Gets or sets the mode the Provider should use during authentication. Gets the HTTP response the relying party should send to the user agent to redirect it to the OpenID Provider to start the OpenID authentication process. Gets the URL that the user agent will return to after authentication completes or fails at the Provider. Gets the URL that identifies this consumer web application that the Provider will display to the end user. Gets the Claimed Identifier that the User Supplied Identifier resolved to. Null if the user provided an OP Identifier (directed identity). Null is returned if the user is using the directed identity feature of OpenID 2.0 to make it nearly impossible for a relying party site to improperly store the reserved OpenID URL used for directed identity as a user's own Identifier. However, to test for the Directed Identity feature, please test the property rather than testing this property for a null value. Gets a value indicating whether the authenticating user has chosen to let the Provider determine and send the ClaimedIdentifier after authentication. Gets or sets a value indicating whether this request only carries extensions and is not a request to verify that the user controls some identifier. true if this request is merely a carrier of extensions and is not about an OpenID identifier; otherwise, false. Although OpenID is first and primarily an authentication protocol, its extensions can be interesting all by themselves. For instance, a relying party might want to know that its user is over 21 years old, or perhaps a member of some organization. OpenID extensions can provide this, without any need for asserting the identity of the user. Constructing an OpenID request for only extensions can be done by calling OpenIdRelyingParty.CreateRequest with any valid OpenID identifier (claimed identifier or OP identifier). But once this property is set to true, the claimed identifier value in the request is not included in the transmitted message. It is anticipated that an RP would only issue these types of requests to OPs that trusts to make assertions regarding the individual holding an account at that OP, so it is not likely that the RP would allow the user to type in an arbitrary claimed identifier without checking that it resolved to an OP endpoint the RP has on a trust whitelist. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. Gets the discovery result leading to the formulation of this request. The discovery result. An instance of this interface represents an identity assertion from an OpenID Provider. It may be in response to an authentication request previously put to it by a Relying Party site or it may be an unsolicited assertion. Relying party web sites should handle both solicited and unsolicited assertions. This interface does not offer a way to discern between solicited and unsolicited assertions as they should be treated equally. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode null is always returned since the callback arguments could not be signed to protect against tampering. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode an empty dictionary is always returned since the callback arguments could not be signed to protect against tampering. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location, if available. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Code contract for the type. Initializes a new instance of the class. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. This may return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. This MAY return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location, if available. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Applies a custom security policy to certain OpenID security settings and behaviors. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when an authentication request is about to be sent. The request. Implementations should be prepared to be called multiple times on the same outgoing message without malfunctioning. Called when an incoming positive assertion is received. The positive assertion. Contract class for the interface. Prevents a default instance of the class from being created. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when an authentication request is about to be sent. The request. Implementations should be prepared to be called multiple times on the same outgoing message without malfunctioning. Called when an incoming positive assertion is received. The positive assertion. A message a Relying Party sends to a Provider to confirm the validity of a positive assertion that was signed by a Provider-only secret. The significant payload of this message depends entirely upon the assertion message, and therefore is all in the property bag. A common base class for OpenID request messages and indirect responses (since they are ultimately requests). The openid.ns parameter in the message. "http://specs.openid.net/auth/2.0" This particular value MUST be present for the request to be a valid OpenID Authentication 2.0 request. Future versions of the specification may define different values in order to allow message recipients to properly interpret the request. Backing store for the property. Backing store for the property. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. The value for the openid.mode parameter. A value indicating whether the message will be transmitted directly or indirectly. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Sets a flag indicating that this message is received (as opposed to sent). Gets some string from a given version of the OpenID protocol. The protocol version to use for lookup. A function that can retrieve the desired protocol constant. The value of the constant. This method can be used by a constructor to throw an instead of a . Gets the value of the openid.mode parameter. Gets the preferred method of transport for the message. For direct messages this is the OpenID mandated POST. For indirect messages both GET and POST are allowed. Gets the recipient of the message. The OP endpoint, or the RP return_to. Gets the version of the protocol this message is prepared to implement. Version 2.0 Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the extra parameters included in the message. An empty dictionary. Gets a value indicating whether this message was deserialized as an incoming message. Gets the protocol used by this message. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. Initializes a new instance of the class based on the contents of some signed message whose signature must be verified. The message whose signature should be verified. The channel. This is used only within the constructor and is not stored in a field. Gets or sets a value indicating whether the signature being verified by this request is in fact valid. true if the signature is valid; otherwise, false. This property is automatically set as the message is received by the channel's signing binding element. Gets or sets the ReturnTo that existed in the original signed message. This exists strictly for convenience in recreating the message. The message sent from the Provider to the Relying Party to confirm/deny the validity of an assertion that was signed by a private Provider secret. A common base class for OpenID direct message responses. The openid.ns parameter in the message. "http://specs.openid.net/auth/2.0" OpenID 2.0 Section 5.1.2: This particular value MUST be present for the response to be a valid OpenID 2.0 response. Future versions of the specification may define different values in order to allow message recipients to properly interpret the request. Backing store for the properties. Backing store for the properties. The dictionary of parameters that are not part of the OpenID specification. Initializes a new instance of the class. The OpenID version of the response message. The originating request. May be null in case the request is unrecognizable and this is an error response. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Sets a flag indicating that this message is received (as opposed to sent). Gets the version of the protocol this message is prepared to implement. Version 2.0 Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the extra, non-OAuth parameters included in the message. Gets the originating request message that caused this response to be formed. This property may be null if the request message was undecipherable. Gets a value indicating whether this message was deserialized as an incoming message. Gets the protocol used by this message. Gets the originating request message that caused this response to be formed. Initializes a new instance of the class for use by the Relying Party. The OpenID version of the response message. The request that this message is responding to. Gets or sets a value indicating whether the signature of the verification request is valid. Gets or sets the handle the relying party should invalidate if is true. The "invalidate_handle" value sent in the verification request, if the OP confirms it is invalid. If present in a verification response with "is_valid" set to "true", the Relying Party SHOULD remove the corresponding association from its store and SHOULD NOT send further authentication requests with this handle. This two-step process for invalidating associations is necessary to prevent an attacker from invalidating an association at will by adding "invalidate_handle" parameters to an authentication response. For OpenID 1.1, we allow this to be present but empty to put up with poor implementations such as Blogger. An authentication request from a Relying Party to a Provider. This message type satisfies OpenID 2.0 section 9.1. An indirect request from a Relying Party to a Provider where the response is expected to be signed. Backing store for the property. Initializes a new instance of the class. The OpenID version to use. The Provider endpoint that receives this message. for asynchronous javascript clients; to allow the Provider to interact with the user in order to complete authentication. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Adds parameters to the return_to querystring. The keys=value pairs to add to the return_to query string. This method is useful if the Relying Party wants to recall some value when and if a positive assertion comes back from the Provider. Adds a parameter to the return_to querystring. The name of the parameter. The value of the argument. This method is useful if the Relying Party wants to recall some value when and if a positive assertion comes back from the Provider. Gets the value of the openid.mode parameter based on the protocol version and immediate flag. The OpenID version to use. for asynchronous javascript clients; to allow the Provider to interact with the user in order to complete authentication. checkid_immediate or checkid_setup Gets the list of extensions that are included with this message. Implementations of this interface should ensure that this property never returns null. Gets a value indicating whether the Provider is allowed to interact with the user as part of authentication. true if using OpenID immediate mode; otherwise, false. Gets or sets the handle of the association the RP would like the Provider to use for signing a positive assertion in the response message. A handle for an association between the Relying Party and the OP that SHOULD be used to sign the response. If no association handle is sent, the transaction will take place in Stateless Mode (Verifying Directly with the OpenID Provider). Gets or sets the URL the Provider should redirect the user agent to following the authentication attempt. URL to which the OP SHOULD return the User-Agent with the response indicating the status of the request. If this value is not sent in the request it signifies that the Relying Party does not wish for the end user to be returned. The return_to URL MAY be used as a mechanism for the Relying Party to attach context about the authentication request to the authentication response. This document does not define a mechanism by which the RP can ensure that query parameters are not modified by outside parties; such a mechanism can be defined by the RP itself. Gets or sets the Relying Party discovery URL the Provider may use to verify the source of the authentication request. URL pattern the OP SHOULD ask the end user to trust. See Section 9.2 (Realms). This value MUST be sent if openid.return_to is omitted. Default: The URL. Gets or sets a value indicating whether the return_to value should be signed. Initializes a new instance of the class. The OpenID version to use. The Provider endpoint that receives this message. for asynchronous javascript clients; to allow the Provider to interact with the user in order to complete authentication. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets or sets the Claimed Identifier. "openid.claimed_id" and "openid.identity" SHALL be either both present or both absent. If neither value is present, the assertion is not about an identifier, and will contain other information in its payload, using extensions (Extensions). It is RECOMMENDED that OPs accept XRI identifiers with or without the "xri://" prefix, as specified in the Normalization (Normalization) section. Gets or sets the OP Local Identifier. The OP-Local Identifier. If a different OP-Local Identifier is not specified, the claimed identifier MUST be used as the value for openid.identity. Note: If this is set to the special value "http://specs.openid.net/auth/2.0/identifier_select" then the OP SHOULD choose an Identifier that belongs to the end user. This parameter MAY be omitted if the request is not about an identifier (for instance if an extension is in use that makes the request meaningful without it; see openid.claimed_id above). The base class that all successful association response messages derive from. Association response messages are described in OpenID 2.0 section 8.2. This type covers section 8.2.1. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets or sets the association handle is used as a key to refer to this association in subsequent messages. A string 255 characters or less in length. It MUST consist only of ASCII characters in the range 33-126 inclusive (printable non-whitespace characters). Gets or sets the preferred association type. The association type defines the algorithm to be used to sign subsequent messages. Value: A valid association type from Section 8.3. Gets or sets the value of the "openid.session_type" parameter from the request. If the OP is unwilling or unable to support this association type, it MUST return an unsuccessful response (Unsuccessful Response Parameters). Value: A valid association session type from Section 8.4 (Association Session Types). Note: Unless using transport layer encryption, "no-encryption" MUST NOT be used. Gets or sets the lifetime, in seconds, of this association. The Relying Party MUST NOT use the association after this time has passed. An integer, represented in base 10 ASCII. Members found on error response messages sent from a Provider to a Relying Party in response to direct and indirect message requests that result in an error. Gets or sets a human-readable message indicating why the request failed. Gets or sets the contact address for the administrator of the server. The contact address may take any form, as it is intended to be displayed to a person. Gets or sets a reference token, such as a support ticket number or a URL to a news blog, etc. A common base class from which indirect response messages should derive. Backing store for the property. Initializes a new instance of the class. The request that caused this response message to be constructed. The value of the openid.mode parameter. Initializes a new instance of the class for unsolicited assertion scenarios. The OpenID version supported at the Relying Party. The URI at which the Relying Party receives OpenID indirect messages. The value to use for the openid.mode parameter. Gets the property of a message. The message to fetch the protocol version from. The value of the property. This method can be used by a constructor to throw an instead of a . Gets the property of a message. The message to fetch the ReturnTo from. The value of the property. This method can be used by a constructor to throw an instead of a . Gets the list of extensions that are included with this message. Implementations of this interface should ensure that this property never returns null. Gets the signed extensions on this message. Gets the unsigned extensions on this message. Gets the originating request message, if applicable. An indirect message from a Provider to a Relying Party where at least part of the payload is signed so the Relying Party can verify it has not been tampered with. The allowed date/time formats for the response_nonce parameter. This array of formats is not yet a complete list. Backing field for the property. The field initializer being DateTime.UtcNow allows for OpenID 1.x messages to pass through the StandardExpirationBindingElement. Backing store for the property. Initializes a new instance of the class. The authentication request that caused this assertion to be generated. Initializes a new instance of the class in order to perform signature verification at the Provider. The previously signed message. The channel. This is used only within the constructor and is not stored in a field. Initializes a new instance of the class for unsolicited assertions. The OpenID version to use. The return_to URL of the Relying Party. This value will commonly be from , but for unsolicited assertions may come from the Provider performing RP discovery to find the appropriate return_to URL to use. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the value of a named parameter in the return_to URL without signature protection. The full name of the parameter whose value is being sought. The value of the parameter if it is present and unaltered from when the Relying Party signed it; null otherwise. This method will always return null on the Provider-side, since Providers cannot verify the private signature made by the relying party. Gets the names of the callback parameters added to the original authentication request without signature protection. A sequence of the callback parameter names. Gets a dictionary of all the message part names and values that are included in the message signature. The channel. A dictionary of the signed message parts. Determines whether one querystring contains every key=value pair that another querystring contains. The querystring that should contain at least all the key=value pairs of the other. The querystring containing the set of key=value pairs to test for in the other. true if contains all the query parameters that does; false otherwise. Verifies that the openid.return_to field matches the URL of the actual HTTP request. From OpenId Authentication 2.0 section 11.1: To verify that the "openid.return_to" URL matches the URL that is processing this assertion: * The URL scheme, authority, and path MUST be the same between the two URLs. * Any query parameters that are present in the "openid.return_to" URL MUST also be present with the same values in the URL of the HTTP request the RP received. Gets the level of protection this message requires. for OpenID 2.0 messages. for OpenID 1.x messages. Although the required protection is reduced for OpenID 1.x, this library will provide Relying Party hosts with all protections by adding its own specially-crafted nonce to the authentication request messages except for stateless RPs in OpenID 1.x messages. Gets or sets the message signature. Base 64 encoded signature calculated as specified in Section 6 (Generating Signatures). Gets or sets the signed parameter order. Comma-separated list of signed fields. "op_endpoint,identity,claimed_id,return_to,assoc_handle,response_nonce" This entry consists of the fields without the "openid." prefix that the signature covers. This list MUST contain at least "op_endpoint", "return_to" "response_nonce" and "assoc_handle", and if present in the response, "claimed_id" and "identity". Additional keys MAY be signed as part of the message. See Generating Signatures. Gets or sets the association handle used to sign the message. The handle for the association that was used to sign this assertion. Gets or sets the nonce that will protect the message from replay attacks. Gets the context within which the nonce must be unique. Gets or sets the UTC date/time the message was originally sent onto the network. The property setter should ensure a UTC date/time, and throw an exception if this is not possible. Thrown when a DateTime that cannot be converted to UTC is set. Gets or sets the association handle that the Provider wants the Relying Party to not use any more. If the Relying Party sent an invalid association handle with the request, it SHOULD be included here. For OpenID 1.1, we allow this to be present but empty to put up with poor implementations such as Blogger. Gets or sets the Provider Endpoint URI. Gets or sets the return_to parameter as the relying party provided it in . Verbatim copy of the return_to URL parameter sent in the request, before the Provider modified it. Gets or sets a value indicating whether the URI's query string is unaltered between when the Relying Party sent the original request and when the response was received. This property is not persisted in the transmitted message, and has no effect on the Provider-side of the communication. Gets or sets the nonce that will protect the message from replay attacks. A string 255 characters or less in length, that MUST be unique to this particular successful authentication response. The nonce MUST start with the current time on the server, and MAY contain additional ASCII characters in the range 33-126 inclusive (printable non-whitespace characters), as necessary to make each response unique. The date and time MUST be formatted as specified in section 5.6 of [RFC3339] (Klyne, G. and C. Newman, “Date and Time on the Internet: Timestamps,” .), with the following restrictions: All times must be in the UTC timezone, indicated with a "Z". No fractional seconds are allowed 2005-05-15T17:11:51ZUNIQUE Gets or sets the nonce that will protect the message from replay attacks. A string 255 characters or less in length, that MUST be unique to this particular successful authentication response. The nonce MUST start with the current time on the server, and MAY contain additional ASCII characters in the range 33-126 inclusive (printable non-whitespace characters), as necessary to make each response unique. The date and time MUST be formatted as specified in section 5.6 of [RFC3339] (Klyne, G. and C. Newman, “Date and Time on the Internet: Timestamps,” .), with the following restrictions: All times must be in the UTC timezone, indicated with a "Z". No fractional seconds are allowed 2005-05-15T17:11:51ZUNIQUE Gets the querystring key=value pairs in the return_to URL. Code contract class for the IOpenIdMessageExtension interface. Prevents a default instance of the class from being created. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets or sets a value indicating whether this extension was signed by the sender. true if this instance is signed by the sender; otherwise, false. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. The message OpenID Providers send back to Relying Parties to refuse to assert the identity of a user. Initializes a new instance of the class. The request that the relying party sent. Initializes a new instance of the class. The request that the relying party sent. The channel to use to simulate construction of the user_setup_url, if applicable. May be null, but the user_setup_url will not be constructed. Initializes a new instance of the class. The version. The relying party return to. The value of the openid.mode parameter. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Constructs the value for the user_setup_url parameter to be sent back in negative assertions in response to OpenID 1.x RP's checkid_immediate requests. The immediate request. The channel to use to simulate construction of the message. The value to use for the user_setup_url parameter. Gets the value for the openid.mode that is appropriate for this response. The request that we're responding to. The value of the openid.mode parameter to use. Gets or sets the URL the relying party can use to upgrade their authentication request from an immediate to a setup message. URL to redirect User-Agent to so the End User can do whatever's necessary to fulfill the assertion. This part is only included in OpenID 1.x responses. Gets a value indicating whether this is in response to an authentication request made in immediate mode. true if the request was in immediate mode; otherwise, false. An identity assertion from a Provider to a Relying Party, stating that the user operating the user agent is in fact some specific user known to the Provider. Initializes a new instance of the class. The authentication request that caused this assertion to be generated. Initializes a new instance of the class for unsolicited assertions. The OpenID version to use. The return_to URL of the Relying Party. This value will commonly be from , but for unsolicited assertions may come from the Provider performing RP discovery to find the appropriate return_to URL to use. Initializes a new instance of the class. The relying party return_to endpoint that will receive this positive assertion. Gets or sets the Claimed Identifier. "openid.claimed_id" and "openid.identity" SHALL be either both present or both absent. If neither value is present, the assertion is not about an identifier, and will contain other information in its payload, using extensions (Extensions). Gets or sets the OP Local Identifier. The OP-Local Identifier. OpenID Providers MAY assist the end user in selecting the Claimed and OP-Local Identifiers about which the assertion is made. The openid.identity field MAY be omitted if an extension is in use that makes the response meaningful without it (see openid.claimed_id above). Wraps an existing Identifier and prevents it from performing discovery. The wrapped identifier. Initializes a new instance of the class. The ordinary Identifier whose discovery is being masked. Whether this Identifier should claim to be SSL-secure, although no discovery will never generate service endpoints anyway. Returns a that represents the current . A that represents the current . Tests equality between two s. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Gets the hash code for an for storage in a hashtable. A hash code for the current . Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. A set of utilities especially useful to OpenID. The prefix to designate this library's proprietary parameters added to the protocol. A static variable that carries the results of a check for the presence of assemblies that are required for the Diffie-Hellman algorithm. Creates a random association handle. The association handle. Gets the OpenID protocol instance for the version in a message. The message. The OpenID protocol instance. Changes the position of some element in a list. The type of elements stored in the list. The list to be modified. The new position for the given element. The element to move within the list. Thrown if the element does not already exist in the list. Corrects any URI decoding the Provider may have inappropriately done to our return_to URL, resulting in an otherwise corrupted base64 encoded value. The base64 encoded value. May be null. The value; corrected if corruption had occurred. AOL may have incorrectly URI-decoded the token for us in the return_to, resulting in a token URI-decoded twice by the time we see it, and no longer being a valid base64 string. It turns out that the only symbols from base64 that is also encoded in URI encoding rules are the + and / characters. AOL decodes the %2b sequence to the + character and the %2f sequence to the / character (it shouldn't decode at all). When we do our own URI decoding, the + character becomes a space (corrupting base64) but the / character remains a /, so no further corruption happens to this character. So to correct this we just need to change any spaces we find in the token back to + characters. Rounds the given downward to the whole second. The DateTime object to adjust. The new value. Gets the fully qualified Realm URL, given a Realm that may be relative to a particular page. The hosting page that has the realm value to resolve. The realm, which may begin with "*." or "~/". The request context. The fully-qualified realm. Gets the extension factories from the extension aggregator on an OpenID channel. The channel. The list of factories that will be used to generate extension instances. This is an extension method on rather than an instance method on because the OpenIdRelyingParty and OpenIdProvider classes don't strong-type to to allow flexibility in the specific type of channel the user (or tests) can plug in. Loads the Diffie-Hellman assemblies. Thrown if the DH assemblies are missing. Gets a value indicating whether Diffie Hellman is available in this installation. true if Diffie-Hellman functionality is present; otherwise, false. Utility methods for working with XRDS documents. Finds the Relying Party return_to receiving endpoints. The XrdsDocument instance to use in this process. A sequence of Relying Party descriptors for the return_to endpoints. This is useful for Providers to send unsolicited assertions to Relying Parties, or for Provider's to perform RP discovery/verification as part of authentication. Finds the icons the relying party wants an OP to display as part of authentication, per the UI extension spec. The XrdsDocument to search. A sequence of the icon URLs in preferred order. Enumerates the XRDS service elements that describe OpenID Relying Party return_to URLs that can receive authentication assertions. The XrdsDocument instance to use in this process. A sequence of service elements. Describes some OpenID Provider endpoint and its capabilities. This is an immutable type. Initializes a new instance of the class. The OpenID Provider endpoint URL. The OpenID version supported by this particular endpoint. Initializes a new instance of the class. The URI the provider listens on for OpenID requests. The set of services offered by this endpoint. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Gets the URL that the OpenID Provider listens for incoming OpenID messages on. Gets the OpenID protocol version this endpoint supports. If an endpoint supports multiple versions, each version must be represented by its own object. Gets the collection of service type URIs found in the XRDS document describing this Provider. A trust root to validate requests and match return URLs against. This fills the OpenID Authentication 2.0 specification for realms. See http://openid.net/specs/openid-authentication-2_0.html#realms A regex used to detect a wildcard that is being used in the realm. A (more or less) comprehensive list of top-level (i.e. ".com") domains, for use by in order to disallow overly-broad realms that allow all web sites ending with '.com', for example. The Uri of the realm, with the wildcard (if any) removed. Initializes a new instance of the class. The realm URL to use in the new instance. Initializes a new instance of the class. The realm URL of the Relying Party. Initializes a new instance of the class. The realm URI builder. This is useful because UriBuilder can construct a host with a wildcard in the Host property, but once there it can't be converted to a Uri. Implicitly converts the string-form of a URI to a object. The URI that the new Realm instance will represent. The result of the conversion. Implicitly converts a to a object. The URI to convert to a realm. The result of the conversion. Implicitly converts a object to its form. The realm to convert to a string value. The result of the conversion. Checks whether one is equal to another. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Returns the hash code used for storing this object in a hash table. A hash code for the current . Returns the string form of this . A that represents the current . Validates a URL against this trust root. A string specifying URL to check. Whether the given URL is within this trust root. Validates a URL against this trust root. The URL to check. Whether the given URL is within this trust root. Searches for an XRDS document at the realm URL, and if found, searches for a description of a relying party endpoints (OpenId login pages). The mechanism to use for sending HTTP requests. Whether redirects may be followed when discovering the Realm. This may be true when creating an unsolicited assertion, but must be false when performing return URL verification per 2.0 spec section 9.2.1. The details of the endpoints if found; or null if no service document was discovered. Searches for an XRDS document at the realm URL. The mechanism to use for sending HTTP requests. Whether redirects may be followed when discovering the Realm. This may be true when creating an unsolicited assertion, but must be false when performing return URL verification per 2.0 spec section 9.2.1. The XRDS document if found; or null if no service document was discovered. Calls if the argument is non-null. Otherwise throws . The realm URI builder. The result of UriBuilder.ToString() This simple method is worthwhile because it checks for null before dereferencing the UriBuilder. Since this is called from within a constructor's base(...) call, this avoids a when we should be throwing an . Gets the suggested realm to use for the calling web application. A realm that matches this applications root URL. For most circumstances the Realm generated by this property is sufficient. However a wildcard Realm, such as "http://*.microsoft.com/" may at times be more desirable than "http://www.microsoft.com/" in order to allow identifier correlation across related web sites for directed identity Providers. Requires an HttpContext.Current context. Gets a value indicating whether a '*.' prefix to the hostname is used in the realm to allow subdomains or hosts to be added to the URL. Gets the host component of this instance. Gets the scheme name for this URI. Gets the port number of this URI. Gets the absolute path of the URI. Gets the System.Uri.AbsolutePath and System.Uri.Query properties separated by a question mark (?). Gets the original string. The original string. Gets the realm URL. If the realm includes a wildcard, it is not included here. Gets the Realm discovery URL, where the wildcard (if present) is replaced with "www.". See OpenID 2.0 spec section 9.2.1 for the explanation on the addition of the "www" prefix. Gets a value indicating whether this realm represents a reasonable (sane) set of URLs. 'http://*.com/', for example is not a reasonable pattern, as it cannot meaningfully specify the site claiming it. This function attempts to find many related examples, but it can only work via heuristics. Negative responses from this method should be treated as advisory, used only to alert the user to examine the trust root carefully. Provides conversions to and from strings for messages that include members of this type. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Encodes the specified value as the original value that was formerly decoded. The value. Guaranteed to never be null. The in string form, ready for message transport. A description of some OpenID Relying Party endpoint. This is an immutable type. Initializes a new instance of the class. The return to. The Type URIs of supported services advertised on a relying party's XRDS document. Derives the highest OpenID protocol that this library and the OpenID Provider have in common. The supported service type URIs. The best OpenID protocol version to use when communicating with this Provider. Gets the URL to the login page on the discovered relying party web site. Gets the OpenId protocol that the discovered relying party supports. Diffie-Hellman encryption methods used by both the relying party and provider. An array of known Diffie Hellman sessions, sorted by decreasing hash size. Finds the hashing algorithm to use given an openid.session_type value. The protocol version of the message that named the session_type to be used. The value of the openid.session_type parameter. The hashing algorithm to use. Thrown if no match could be found for the given . Looks up the value to be used for the openid.session_type parameter. The protocol version that is to be used. The hash size (in bits) that the DH session must have. The value to be used for the openid.session_type parameter, or null if no match was found. Encrypts/decrypts a shared secret. The hashing algorithm that is agreed by both parties to use as part of the secret exchange. If the secret is being encrypted, this is the new Diffie Hellman object to use. If the secret is being decrypted, this must be the same Diffie Hellman object used to send the original request message. The public key of the remote party. The secret to encode, or the encoded secret. Whichever one is given will generate the opposite in the return value. The encrypted version of the secret if the secret itself was given in . The secret itself if the encrypted version of the secret was given in . Ensures that the big integer represented by a given series of bytes is a positive integer. The bytes that make up the big integer. A byte array (possibly new if a change was required) whose integer is guaranteed to be positive. This is to be consistent with OpenID spec section 4.2. Returns the value used to initialize the static field storing DH session types. A non-null, non-empty array. > This is a method rather than being inlined to the field initializer to try to avoid the CLR bug that crops up sometimes if we initialize arrays using object initializer syntax. Provides access to a Diffie-Hellman session algorithm and its name. Initializes a new instance of the class. The hashing algorithm used in this particular Diffie-Hellman session type. A function that will return the value of the openid.session_type parameter for a given version of OpenID. Gets the function that will return the value of the openid.session_type parameter for a given version of OpenID. Gets the hashing algorithm used in this particular Diffie-Hellman session type An association that uses the HMAC-SHA family of algorithms for message signing. A list of HMAC-SHA algorithms in order of decreasing bit lengths. The specific variety of HMAC-SHA this association is based on (whether it be HMAC-SHA1, HMAC-SHA256, etc.) Initializes a new instance of the class. The specific variety of HMAC-SHA this association is based on (whether it be HMAC-SHA1, HMAC-SHA256, etc.) The association handle. The association secret. The time duration the association will be good for. Creates an HMAC-SHA association. The OpenID protocol version that the request for an association came in on. The value of the openid.assoc_type parameter. The association handle. The association secret. How long the association will be good for. The newly created association. Creates an association with the specified handle, secret, and lifetime. The handle. The secret. Total lifetime. The newly created association. Returns the length of the shared secret (in bytes). The protocol version being used that will be used to lookup the text in The value of the protocol argument specifying the type of association. For example: "HMAC-SHA1". The length (in bytes) of the association secret. Thrown if no association can be found by the given name. Looks for the first association type in a preferred-order list that is likely to be supported given a specific OpenID version and the security settings, and perhaps a matching Diffie-Hellman session type. The OpenID version that dictates which associations are available. A value indicating whether to consider higher strength security to be better. Use true for initial association requests from the Relying Party; use false from Providers when the Relying Party asks for an unrecognized association in order to pick a suggested alternative that is likely to be supported on both sides. The set of requirements the selected association type must comply to. Use true for HTTP associations, false for HTTPS associations. The resulting association type's well known protocol name. (i.e. HMAC-SHA256) The resulting session type's well known protocol name, if a matching one is available. (i.e. DH-SHA256) True if a qualifying association could be found; false otherwise. Determines whether a named Diffie-Hellman session type and association type can be used together. The protocol carrying the names of the session and association types. The value of the openid.assoc_type parameter. The value of the openid.session_type parameter. true if the named association and session types are compatible; otherwise, false. Gets the string to pass as the assoc_type value in the OpenID protocol. The protocol version of the message that the assoc_type value will be included in. The value that should be used for the openid.assoc_type parameter. Returns the specific hash algorithm used for message signing. The hash algorithm used for message signing. Returns the value used to initialize the static field storing association types. A non-null, non-empty array. > This is a method rather than being inlined to the field initializer to try to avoid the CLR bug that crops up sometimes if we initialize arrays using object initializer syntax. Gets the length (in bits) of the hash this association creates when signing. Provides information about some HMAC-SHA hashing algorithm that OpenID supports. Gets or sets the function that takes a particular OpenID version and returns the value of the openid.assoc_type parameter in that protocol. Gets or sets a function that will create the using a given shared secret for the mac. Gets or sets the base hash algorithm. Gets the size of the hash (in bytes). Represents an association request that is sent using HTTPS and otherwise communicates the shared secret in plain text. An OpenID direct request from Relying Party to Provider to initiate an association. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets or sets the preferred association type. The association type defines the algorithm to be used to sign subsequent messages. Value: A valid association type from Section 8.3. Gets or sets the preferred association session type. This defines the method used to encrypt the association's MAC key in transit. Value: A valid association session type from Section 8.4 (Association Session Types). Note: Unless using transport layer encryption, "no-encryption" MUST NOT be used. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. An OpenID direct request from Relying Party to Provider to initiate an association that uses Diffie-Hellman encryption. The (only) value we use for the X variable in the Diffie-Hellman algorithm. The default gen value for the Diffie-Hellman algorithm. The default modulus value for the Diffie-Hellman algorithm. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. Called by the Relying Party to initialize the Diffie-Hellman algorithm and consumer public key properties. Gets or sets the openid.dh_modulus value. May be null if the default value given in the OpenID spec is to be used. Gets or sets the openid.dh_gen value. May be null if the default value given in the OpenID spec is to be used. Gets or sets the openid.dh_consumer_public value. This property is initialized with a call to . Gets the Diffie-Hellman algorithm. This property is initialized with a call to . The successful Diffie-Hellman association response message. Association response messages are described in OpenID 2.0 section 8.2. This type covers section 8.2.3. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Gets or sets the Provider's Diffie-Hellman public key. btwoc(g ^ xb mod p) Gets or sets the MAC key (shared secret), encrypted with the secret Diffie-Hellman value. H(btwoc(g ^ (xa * xb) mod p)) XOR MAC key. H is either "SHA1" or "SHA256" depending on the session type. The successful unencrypted association response message. Association response messages are described in OpenID 2.0 section 8.2. This type covers section 8.2.2. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Gets or sets the MAC key (shared secret) for this association, Base 64 (Josefsson, S., “The Base16, Base32, and Base64 Data Encodings,” .) [RFC3548] encoded. The Provider's response to a Relying Party that requested an association that the Provider does not support. This message type described in OpenID 2.0 section 8.2.4. A message sent from a Provider to a Relying Party in response to a direct message request that resulted in an error. This message must be sent with an HTTP status code of 400. This class satisfies OpenID 2.0 section 5.1.2.2. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Gets the HTTP status code that the direct respones should be sent with. Gets the HTTP headers to add to the response. May be an empty collection, but must not be null. Gets or sets a human-readable message indicating why the request failed. Gets or sets the contact address for the administrator of the server. The contact address may take any form, as it is intended to be displayed to a person. Gets or sets a reference token, such as a support ticket number or a URL to a news blog, etc. A hard-coded string indicating an error occurred. "unsupported-type" Initializes a new instance of the class. The OpenID version of the response message. The originating request. Gets or sets an association type supported by the OP from Section 8.3 (Association Types). Gets or sets a valid association session type from Section 8.4 (Association Session Types) that the OP supports. A message sent from a Provider to a Relying Party in response to an indirect message request that resulted in an error. This class satisfies OpenID 2.0 section 5.2.3. Initializes a new instance of the class. The request that resulted in this error on the Provider. Initializes a new instance of the class. The OpenID version this message should comply with. The recipient of this message. Gets or sets a human-readable message indicating why the request failed. Gets or sets the contact address for the administrator of the server. The contact address may take any form, as it is intended to be displayed to a person. Gets or sets a reference token, such as a support ticket number or a URL to a news blog, etc. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to An absolute URI is required for this value.. Looks up a localized string similar to This is already a PPID Identifier.. Looks up a localized string similar to The requested association type '{0}' with session type '{1}' is unrecognized or not supported by this Provider due to security requirements.. Looks up a localized string similar to The length of the shared secret ({0}) does not match the length required by the association type ('{1}').. Looks up a localized string similar to The length of the encrypted shared secret ({0}) does not match the length of the hashing algorithm ({1}).. Looks up a localized string similar to No association store has been given but is required for the current configuration.. Looks up a localized string similar to If an association store is given, a nonce store must also be provided.. Looks up a localized string similar to An attribute with type URI '{0}' has already been added.. Looks up a localized string similar to Only {0} values for attribute '{1}' were requested, but {2} were supplied.. Looks up a localized string similar to The private data supplied does not meet the requirements of any known Association type. Its length may be too short, or it may have been corrupted.. Looks up a localized string similar to The {0} extension failed to deserialize and will be skipped. {1}. Looks up a localized string similar to Callback arguments are only supported when a {0} is provided to the {1}.. Looks up a localized string similar to A Simple Registration request can only generate a response on the receiving end.. Looks up a localized string similar to The openid.claimed_id and openid.identity parameters must both be present or both be absent.. Looks up a localized string similar to The ClaimedIdentifier property cannot be set when IsDelegatedIdentifier is true to avoid breaking OpenID URL delegation.. Looks up a localized string similar to This OpenID exploits features that this relying party cannot reliably verify. Please try logging in with a human-readable OpenID or from a different OpenID Provider.. Looks up a localized string similar to The ClaimedIdentifier property must be set first.. Looks up a localized string similar to An extension with this property name ('{0}') has already been registered.. Looks up a localized string similar to The extension '{0}' has already been registered.. Looks up a localized string similar to An authentication request has already been created using CreateRequest().. Looks up a localized string similar to Only OpenIDs issued directly by their OpenID Provider are allowed here.. Looks up a localized string similar to The associate request instance must be a Diffie-Hellman instance.. Looks up a localized string similar to The following properties must be set before the Diffie-Hellman algorithm can generate a public key: {0}. Looks up a localized string similar to URI is not SSL yet requireSslDiscovery is set to true.. Looks up a localized string similar to An extension sharing namespace '{0}' has already been added. Only one extension per namespace is allowed in a given request.. Looks up a localized string similar to Cannot lookup extension support on a rehydrated ServiceEndpoint.. Looks up a localized string similar to Fragment segments do not apply to XRI identifiers.. Looks up a localized string similar to The HTML head tag must include runat="server".. Looks up a localized string similar to ClaimedIdentifier and LocalIdentifier must be the same when IsIdentifierSelect is true.. Looks up a localized string similar to The openid.identity and openid.claimed_id parameters must either be both present or both absent from the message.. Looks up a localized string similar to The Provider requested association type '{0}' and session type '{1}', which are not compatible with each other.. Looks up a localized string similar to {0} (Contact: {1}, Reference: {2}). Looks up a localized string similar to Cannot encode '{0}' because it contains an illegal character for Key-Value Form encoding. (line {1}: '{2}'). Looks up a localized string similar to Invalid XmlDSig signature on XRDS document.. Looks up a localized string similar to Cannot decode Key-Value Form because a line was found without a '{0}' character. (line {1}: '{2}'). Looks up a localized string similar to The scheme must be http or https but was '{0}'.. Looks up a localized string similar to The value '{0}' is not a valid URI.. Looks up a localized string similar to Not a recognized XRI format.. Looks up a localized string similar to The OpenID Provider issued an assertion for an Identifier whose discovery information did not match. Assertion endpoint info: {0} Discovered endpoint info: {1}. Looks up a localized string similar to The list of keys do not match the provided dictionary.. Looks up a localized string similar to The '{0}' and '{1}' parameters must both be or not be '{2}'.. Looks up a localized string similar to The maximum time allowed to complete authentication has been exceeded. Please try again.. Looks up a localized string similar to X.509 signing certificate issued to {0}, but a certificate for {1} was expected.. Looks up a localized string similar to Missing {0} element.. Looks up a localized string similar to No recognized association type matches the requested length of {0}.. Looks up a localized string similar to No recognized association type matches the requested name of '{0}'.. Looks up a localized string similar to Unless using transport layer encryption, "no-encryption" MUST NOT be used.. Looks up a localized string similar to No identifier has been set.. Looks up a localized string similar to No XRDS document containing OpenID relying party endpoint information could be found at {0}.. Looks up a localized string similar to Diffie-Hellman session type '{0}' not found for OpenID {1}.. Looks up a localized string similar to This operation is not supported by serialized authentication responses. Try this operation from the LoggedIn event handler.. Looks up a localized string similar to No OpenID endpoint found.. Looks up a localized string similar to No OpenID url is provided.. Looks up a localized string similar to This operation is only allowed when IAuthenticationResponse.State == AuthenticationStatus.SetupRequired.. Looks up a localized string similar to OpenID popup window or iframe did not recognize an OpenID response in the request.. Looks up a localized string similar to An positive OpenID assertion was received from OP endpoint {0} and was rejected based on this site's security settings.. Looks up a localized string similar to Unable to find the signing secret by the handle '{0}'.. Looks up a localized string similar to The {0} property must be set first.. Looks up a localized string similar to This property value is not supported by this control.. Looks up a localized string similar to Unable to determine the version of the OpenID protocol implemented by the Provider at endpoint '{0}'.. Looks up a localized string similar to An HTTP request to the realm URL ({0}) resulted in a redirect, which is not allowed during relying party discovery.. Looks up a localized string similar to Sorry. This site only accepts OpenIDs that are HTTPS-secured, but {0} is not a secure Identifier.. Looks up a localized string similar to The response is not ready. Use IsResponseReady to check whether a response is ready first.. Looks up a localized string similar to return_to '{0}' not under realm '{1}'.. Looks up a localized string similar to The {0} parameter ({1}) does not match the actual URL ({2}) the request was made with.. Looks up a localized string similar to The ReturnTo property must not be null to support this operation.. Looks up a localized string similar to The openid.return_to parameter is required in the request message in order to construct a response, but that parameter was missing.. Looks up a localized string similar to The following parameter(s) are not included in the signature but must be: {0}. Looks up a localized string similar to Invalid birthdate value. Must be in the form yyyy-MM-dd.. Looks up a localized string similar to The type must implement {0}.. Looks up a localized string similar to The property {0} had unexpected value {1}.. Looks up a localized string similar to Unexpected HTTP status code {0} {1} received in direct response.. Looks up a localized string similar to An unsolicited assertion cannot be sent for the claimed identifier {0} because this is not an authorized Provider for that identifier.. Looks up a localized string similar to Rejecting unsolicited assertions requires a nonce store and an association store.. Looks up a localized string similar to Unsolicited assertions are not allowed at this relying party.. Looks up a localized string similar to Unsolicited assertions are not allowed from 1.0 OpenID Providers.. Looks up a localized string similar to Providing a DateTime whose Kind is Unspecified is not allowed.. Looks up a localized string similar to Unrecognized or missing canonicalization method.. Looks up a localized string similar to This feature is unavailable due to an unrecognized channel configuration.. Looks up a localized string similar to Unrecognized or missing signature method.. Looks up a localized string similar to The openid.user_setup_url parameter is required when sending negative assertion messages in response to immediate mode requests.. Looks up a localized string similar to The X.509 certificate used to sign this document is not trusted.. Looks up a localized string similar to XRI support has been disabled at this site.. Looks up a localized string similar to XRI resolution failed.. An enumeration of the OpenID protocol versions supported by this library. OpenID Authentication 1.0 OpenID Authentication 1.1 OpenID Authentication 2.0 Tracks the several versions of OpenID this library supports and the unique constants to each version used in the protocol. The value of the openid.ns parameter in the OpenID 2.0 specification. The parameter of the callback parameter we tack onto the return_to URL to store the replay-detection nonce. Scans a list for matches with some element of the OpenID protocol, searching from newest to oldest protocol for the first and best match. The type of element retrieved from the instance. Takes a instance and returns an element of it. The list to scan for matches. The protocol with the element that matches some item in the list. A list of all supported OpenID versions, in order starting from newest version. A list of all supported OpenID versions, in order starting from newest version. V1.1 and V1.0 are considered the same and only V1.1 is in the list. The default (or most recent) supported version of the OpenID protocol. Attempts to detect the right OpenID protocol version based on the contents of an incoming OpenID indirect message or direct request. Attempts to detect the right OpenID protocol version based on the contents of an incoming OpenID direct response message. Attemps to detect the highest OpenID protocol version supported given a set of XRDS Service Type URIs included for some service. The OpenID version that this instance describes. The namespace of OpenId 1.x elements in XRDS documents. The value of the openid.ns parameter that appears on the query string whenever data is passed between relying party and provider for OpenID 2.0 and later. The XRD/Service/Type value discovered in an XRDS document when "discovering" on a Claimed Identifier (http://andrewarnott.yahoo.com) The XRD/Service/Type value discovered in an XRDS document when "discovering" on an OP Identifier rather than a Claimed Identifier. (http://yahoo.com) The XRD/Service/Type value discovered in an XRDS document when "discovering" on a Realm URL and looking for the endpoint URL that can receive authentication assertions. Used as the Claimed Identifier and the OP Local Identifier when the User Supplied Identifier is an OP Identifier. The value of the 'rel' attribute in an HTML document's LINK tag when the same LINK tag's HREF attribute value contains the URL to an OP Endpoint URL. The value of the 'rel' attribute in an HTML document's LINK tag when the same LINK tag's HREF attribute value contains the URL to use as the OP Local Identifier. Parts of the protocol that define parameter names that appear in the query string. Each parameter name is prefixed with 'openid.'. Parts of the protocol that define parameter names that appear in the query string. Each parameter name is NOT prefixed with 'openid.'. The various 'constants' that appear as parameter arguments (values). The maximum time a user can be allowed to take to complete authentication. This is used to calculate the length of time that nonces are stored. This is internal until we can decide whether to leave this static, or make it an instance member, or put it inside the IConsumerApplicationStore interface. The maximum permissible difference in clocks between relying party and provider web servers, discounting time zone differences. This is used when storing/validating nonces from the provider. If it is conceivable that a server's clock could be up to five minutes off from true UTC time, then the maximum time skew should be set to ten minutes to allow one server to be five minutes ahead and the remote server to be five minutes behind and still be able to communicate. Checks whether a given Protocol version practically equals this one for purposes of verifying a match for assertion verification. The other version to check against this one. true if this and the given Protocol versions are essentially the same. OpenID v1.0 never had a spec, and 1.0 and 1.1 are indistinguishable because of that. Therefore for assertion verification, 1.0 and 1.1 are considered equivalent. Returns the enum value for the instance. The value "openid." A preference order list of all supported session types. A preference order list of signature algorithms we support. A hybrid of the store interfaces that an OpenID Provider must implement, and an OpenID Relying Party may implement to operate in stateful (smart) mode. Security settings that are applicable to relying parties. The default value for the property. Initializes a new instance of the class. Filters out any disallowed endpoints. The endpoints discovered on an Identifier. A sequence of endpoints that satisfy all security requirements. Gets or sets a value indicating whether the entire pipeline from Identifier discovery to Provider redirect is guaranteed to be encrypted using HTTPS for authentication to succeed. Setting this property to true is appropriate for RPs with highly sensitive personal information behind the authentication (money management, health records, etc.) When set to true, some behavioral changes and additional restrictions are placed: User-supplied identifiers lacking a scheme are prepended with HTTPS:// rather than the standard HTTP:// automatically. User-supplied identifiers are not allowed to use HTTP for the scheme. All redirects during discovery on the user-supplied identifier must be HTTPS. Any XRDS file found by discovery on the User-supplied identifier must be protected using HTTPS. Only Provider endpoints found at HTTPS URLs will be considered. If the discovered identifier is an OP Identifier (directed identity), the Claimed Identifier eventually asserted by the Provider must be an HTTPS identifier. In the case of an unsolicited assertion, the asserted Identifier, discovery on it and the asserting provider endpoint must all be secured by HTTPS. Although the first redirect from this relying party to the Provider is required to use HTTPS, any additional redirects within the Provider cannot be protected and MAY revert the user's connection to HTTP, based on individual Provider implementation. There is nothing that the RP can do to detect or prevent this. A is thrown during discovery or authentication when a secure pipeline cannot be established. Gets or sets a value indicating whether only OP Identifiers will be discoverable when creating authentication requests. Gets or sets the oldest version of OpenID the remote party is allowed to implement. Defaults to Gets or sets the maximum allowable age of the secret a Relying Party uses to its return_to URLs and nonces with 1.0 Providers. The default value is 7 days. Gets or sets a value indicating whether all unsolicited assertions should be ignored. The default value is false. Gets or sets a value indicating whether delegating identifiers are refused for authentication. The default value is false. When set to true, login attempts that start at the RP or arrive via unsolicited assertions will be rejected if discovery on the identifier shows that OpenID delegation is used for the identifier. This is useful for an RP that should only accept identifiers directly issued by the Provider that is sending the assertion. Gets or sets a value indicating whether unsigned extensions in authentication responses should be ignored. The default value is false. When set to true, the methods will not return any extension that was not signed by the Provider. Gets or sets a value indicating whether authentication requests will only be sent to Providers with whom we can create a shared association. true to immediately fail authentication if an association with the Provider cannot be established; otherwise, false. The default value is false. Gets or sets a value indicating whether certain Claimed Identifiers that exploit features that .NET does not have the ability to send exact HTTP requests for will still be allowed by using an approximate HTTP request. The default value is true. Gets the set of trusted OpenID Provider Endpoint URIs. Gets or sets a value indicating whether any login attempt coming from an OpenID Provider Endpoint that is not on this whitelist of trusted OP Endpoints will be rejected. If the trusted providers list is empty and this value is true, all assertions are rejected. Default is false. Gets or sets a value indicating whether special measures are taken to protect users from replay attacks when those users' identities are hosted by OpenID 1.x Providers. The default value is true. Nonces for protection against replay attacks were not mandated by OpenID 1.x, which leaves users open to replay attacks. This feature works by adding a signed nonce to the authentication request. This might increase the request size beyond what some OpenID 1.1 Providers (such as Blogger) are capable of handling. The discovery service for URI identifiers. Initializes a new instance of the class. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. Searches HTML for the HEAD META tags that describe OpenID provider services. The final URL that provided this HTML document. This may not be the same as (this) userSuppliedIdentifier if the userSuppliedIdentifier pointed to a 301 Redirect. The user supplied identifier. The HTML that was downloaded and should be searched. A sequence of any discovered ServiceEndpoints. The discovery service for XRI identifiers that uses an XRI proxy resolver for discovery. The magic URL that will provide us an XRDS document for a given XRI identifier. We use application/xrd+xml instead of application/xrds+xml because it gets xri.net to automatically give us exactly the right XRD element for community i-names automatically, saving us having to choose which one to use out of the result. The ssl=true parameter tells the proxy resolver to accept only SSL connections when resolving community i-names. Initializes a new instance of the class. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. Downloads the XRDS document for this XRI. The identifier. The request handler. The XRDS document. Gets the URL from which this XRI's XRDS document may be downloaded. The identifier. The URI to HTTP GET from to get the services. A URI style of OpenID Identifier. The allowed protocol schemes in a URI Identifier. The special scheme to use for HTTP URLs that should not have their paths compressed. The special scheme to use for HTTPS URLs that should not have their paths compressed. The special scheme to use for HTTP URLs that should not have their paths compressed. The special scheme to use for HTTPS URLs that should not have their paths compressed. A value indicating whether scheme substitution is being used to workaround .NET path compression that invalidates some OpenIDs that have trailing periods in one of their path segments. Initializes static members of the class. This method attempts to workaround the .NET Uri class parsing bug described here: https://connect.microsoft.com/VisualStudio/feedback/details/386695/system-uri-incorrectly-strips-trailing-dots?wa=wsignin1.0#tabs since some identifiers (like some of the pseudonymous identifiers from Yahoo) include path segments that end with periods, which the Uri class will typically trim off. Initializes a new instance of the class. The value this identifier will represent. Initializes a new instance of the class. The value this identifier will represent. if set to true [require SSL discovery]. Initializes a new instance of the class. The value this identifier will represent. Initializes a new instance of the class. The value this identifier will represent. if set to true [require SSL discovery]. Converts a instance to a instance. The identifier to convert to an ordinary instance. The result of the conversion. Converts a instance to a instance. The instance to turn into a . The result of the conversion. Tests equality between this URI and another URI. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Returns the hash code of this XRI. A hash code for the current . Returns the string form of the URI. A that represents the current . Determines whether a URI is a valid OpenID Identifier (of any kind). The URI to test for OpenID validity. true if the identifier is valid; otherwise, false. A valid URI is absolute (not relative) and uses an http(s) scheme. Determines whether a URI is a valid OpenID Identifier (of any kind). The URI to test for OpenID validity. true if the identifier is valid; otherwise, false. A valid URI is absolute (not relative) and uses an http(s) scheme. Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. Determines whether the given URI is using a scheme in the list of allowed schemes. The URI whose scheme is to be checked. true if the scheme is allowed; otherwise, false. false is also returned if is null. Determines whether the given URI is using a scheme in the list of allowed schemes. The URI whose scheme is to be checked. true if the scheme is allowed; otherwise, false. false is also returned if is null. Tries to canonicalize a user-supplied identifier. This does NOT convert a user-supplied identifier to a Claimed Identifier! The user-supplied identifier. The resulting canonical URI. If set to true and the user-supplied identifier lacks a scheme, the "https://" scheme will be prepended instead of the standard "http://" one. if set to true [scheme prepended]. true if the identifier was valid and could be canonicalized. false if the identifier is outside the scope of allowed inputs and should be rejected. Canonicalization is done by adding a scheme in front of an identifier if it isn't already present. Other trivial changes that do not require network access are also done, such as lower-casing the hostname in the URI. Fixes up the scheme if appropriate. The URI, already in legal form (with http(s):// prepended if necessary). The resulting canonical URI. true if the canonicalization was successful; false otherwise. This does NOT standardize an OpenID URL for storage in a database, as it does nothing to convert the URL to a Claimed Identifier, besides the fact that it only deals with URLs whereas OpenID 2.0 supports XRIs. For this, you should lookup the value stored in IAuthenticationResponse.ClaimedIdentifier. Gets the special non-compressing scheme or URL for a standard scheme or URL. The ordinary URL or scheme name. The non-compressing equivalent scheme or URL for the given value. Performs the minimal URL normalization to allow a string to be passed to the constructor. The user-supplied identifier URI to normalize. if set to true, a missing scheme should result in HTTPS being prepended instead of HTTP. if set to true, the scheme was prepended during normalization. The somewhat normalized URL. Gets or sets a value indicating whether scheme substitution is being used to workaround .NET path compression that invalidates some OpenIDs that have trailing periods in one of their path segments. Gets the URI this instance represents. Gets a value indicating whether the scheme was missing when this Identifier was created and added automatically as part of the normalization process. Gets a value indicating whether this Identifier has characters or patterns that the class normalizes away and invalidating the Identifier. A simple URI class that doesn't suffer from the parsing problems of the class. URI characters that separate the URI Path from subsequent elements. Initializes a new instance of the class. The value. Returns a that represents this instance. A that represents this instance. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. The parameter is null. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Normalizes the characters that are escaped in the given URI path. The path to normalize. The given path, with exactly those characters escaped which should be. Gets the scheme. The scheme. Gets the authority. The authority. Gets the path of the URI. The path from the URI. Gets the query. The query. Gets the fragment. The fragment. A URI parser that does not compress paths, such as trimming trailing periods from path segments. The field that stores the scheme that this parser is registered under. The standard "http" or "https" scheme that this parser is subverting. Initializes a new instance of the class. The standard scheme that this parser will be subverting. Initializes this parser with the actual scheme it should appear to be. if set to true Uris using this scheme will look like they're using the original standard scheme. Gets the scheme this parser is registered under. The registered scheme. An XRI style of OpenID Identifier. The scheme and separator "xri://" An XRI always starts with one of these symbols. Backing store for the property. Initializes a new instance of the class. The string value of the XRI. Initializes a new instance of the class. The XRI that this Identifier will represent. If set to true, discovery and the initial authentication redirect will only succeed if it can be done entirely using SSL. Tests equality between this XRI and another XRI. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Returns the hash code of this XRI. A hash code for the current . Returns the canonical string form of the XRI. A that represents the current . Tests whether a given string represents a valid XRI format. The value to test for XRI validity. true if the given string constitutes a valid XRI; otherwise, false. Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. XRI Identifiers never have a fragment part, and thus this method always returns this same instance. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. Takes any valid form of XRI string and returns the canonical form of the same XRI. The xri to canonicalize. The canonicalized form of the XRI. The canonical form, per the OpenID spec, is no scheme and no whitespace on either end. Gets the original XRI supplied to the constructor. Gets the canonical form of the XRI string. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to XRI CanonicalID verification failed.. Looks up a localized string similar to Failure parsing XRDS document.. Looks up a localized string similar to The XRDS document for XRI {0} is missing the required CanonicalID element.. Looks up a localized string similar to Could not find XRI resolution Status tag or code attribute was invalid.. String constants for various content-type header values used in YADIS discovery. The text/html content-type The application/xhtml+xml content-type The application/xrds+xml content-type The text/xml content type Contains the result of YADIS discovery. The original web response, backed up here if the final web response is the preferred response to use in case it turns out to not work out. Initializes a new instance of the class. The user-supplied identifier. The initial response. The final response. Reverts to the HTML response after the XRDS response didn't work out. Applies the HTML response to the object. The initial response. Gets the URI of the original YADIS discovery request. This is the user supplied Identifier as given in the original YADIS discovery request. Gets the fully resolved (after redirects) URL of the user supplied Identifier. This becomes the ClaimedIdentifier. Gets the location the XRDS document was downloaded from, if different from the user supplied Identifier. Gets the Content-Type associated with the . Gets the text in the final response. This may be an XRDS document or it may be an HTML document, as determined by the property. Gets a value indicating whether the represents an XRDS document. False if the response is an HTML document. An HTML HEAD tag parser. Common flags to use on regex tests. A regular expression designed to select tags (?) A regular expression designed to select start tags (?) A regular expression designed to select attributes within a tag. A regular expression designed to select the HEAD tag. A regular expression designed to select the HTML tag. A regular expression designed to remove all comments and scripts from a string. Finds all the HTML HEAD tag child elements that match the tag name of a given type. The HTML tag of interest. The HTML to scan. A sequence of the matching elements. Filters a list of controls based on presence of an attribute. The type of HTML controls being filtered. The sequence. The attribute. A filtered sequence of attributes. Generates a regular expression that will find a given HTML tag. Name of the tag. The close tags (?). The created regular expression. Generates a regular expression designed to find a given tag. The tag to find. The created regular expression. The Service element in an XRDS document. A node in an XRDS document. The XRD namespace xri://$xrd*($v*2.0) The XRDS namespace xri://$xrds Initializes a new instance of the class. The node represented by this instance. The parent node. Initializes a new instance of the class. The document's root node, which this instance represents. Gets the node. Gets the parent node, or null if this is the root node. Gets the XML namespace resolver to use in XPath expressions. Initializes a new instance of the class. The service element. The parent. Compares the current object with another object of the same type. An object to compare with this object. A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter. Zero This object is equal to . Greater than zero This object is greater than . Gets the XRD parent element. Gets the priority. Gets the URI child elements. Gets the type child elements. The type elements. Gets the type child element's URIs. Gets the OP Local Identifier. The Type element in an XRDS document. Initializes a new instance of the class. The type element. The parent. Gets the URI. The Uri element in an XRDS document. Initializes a new instance of the class. The URI element. The service. Compares the current object with another object of the same type. An object to compare with this object. A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter. Zero This object is equal to . Greater than zero This object is greater than . Gets the priority. Gets the URI. Gets the parent service. The Xrd element in an XRDS document. Initializes a new instance of the class. The XRD element. The parent. Searches for service sub-elements that have Type URI sub-elements that match one that we have for a known OpenID protocol version. A function that selects what element of the OpenID Protocol we're interested in finding. A sequence of service elements that match the search criteria, sorted in XRDS @priority attribute order. Gets the child service elements. The services. Gets a value indicating whether this XRD element's resolution at the XRI resolver was successful. true if this XRD's resolution was successful; otherwise, false. Gets the canonical ID (i-number) for this element. Gets a value indicating whether the was verified. Gets the services for OP Identifiers. Gets the services for Claimed Identifiers. Gets the services that would be discoverable at an RP for return_to verification. Gets the services that would be discoverable at an RP for the UI extension icon. Gets an enumeration of all Service/URI elements, sorted in priority order. Gets the XRI resolution status code. An XRDS document. The namespace used by XML digital signatures. The namespace used by Google Apps for Domains for OpenID URI templates. Initializes a new instance of the class. The root node of the XRDS document. Initializes a new instance of the class. The Xml reader positioned at the root node of the XRDS document. Initializes a new instance of the class. The text that is the XRDS document. Gets the XRD child elements of the document. Gets a value indicating whether all child XRD elements were resolved successfully. YADIS discovery manager. The HTTP header to look for in responses to declare where the XRDS document should be found. The maximum number of bytes to read from an HTTP response in searching for a link to a YADIS document. Gets or sets the cache that can be used for HTTP requests made during identifier discovery. Performs YADIS discovery on some identifier. The mechanism to use for sending HTTP requests. The URI to perform discovery on. Whether discovery should fail if any step of it is not encrypted. The result of discovery on the given URL. Null may be returned if an error occurs, or if is true but part of discovery is not protected by SSL. Searches an HTML document for a <meta http-equiv="X-XRDS-Location" content="{YadisURL}"> tag and returns the content of YadisURL. The HTML to search. The URI of the XRDS document if found; otherwise null. Sends a YADIS HTTP request as part of identifier discovery. The request handler to use to actually submit the request. The URI to GET. Whether only HTTPS URLs should ever be retrieved. The value of the Accept HTTP header to include in the request. The HTTP response retrieved from the request. Determines whether a given HTTP response constitutes an XRDS document. The response to test. true if the response constains an XRDS document; otherwise, false. ================================================ FILE: packages/DotNetOpenAuth.OpenId.Core.4.0.3.12153/lib/net40-full/Mono.Math.xml ================================================ Mono.Math Default length of a BigInteger in bytes The Length of this BigInteger The data for this BigInteger Table of primes below 2000. This table was generated using Mathematica 4.1 using the following function: PrimeTable [x_] := Prime [Range [1, PrimePi [x]]] PrimeTable [6000] Generates a new, random BigInteger of the specified length. The number of bits for the new number. A random number generator to use to obtain the bits. A random number of the specified length. Generates a new, random BigInteger of the specified length using the default RNG crypto service provider. The number of bits for the new number. A random number of the specified length. Randomizes the bits in "this" from the specified RNG. A RNG. Randomizes the bits in "this" from the default RNG. Tests if the specified bit is 1. The bit to test. The least significant bit is 0. True if bitNum is set to 1, else false. Normalizes this by setting the length to the actual number of uints used in data and by setting the sign to Sign.Zero if the value of this is 0. Generates the smallest prime >= bi A BigInteger The smallest prime >= bi. More mathematically, if bi is prime: bi, else Prime [PrimePi [bi] + 1]. Increments this by two Low level functions for the BigInteger Adds two numbers with the same sign. A BigInteger A BigInteger bi1 + bi2 Compares two BigInteger A BigInteger A BigInteger The sign of bi1 - bi2 Performs n / d and n % d in one operation. A BigInteger, upon exit this will hold n / d The divisor n % d Multiplies the data in x [xOffset:xOffset+xLen] by y [yOffset:yOffset+yLen] and puts it into d [dOffset:dOffset+xLen+yLen]. Multiplies the data in x [xOffset:xOffset+xLen] by y [yOffset:yOffset+yLen] and puts the low mod words into d [dOffset:dOffset+mod]. A factor of confidence. Only suitable for development use, probability of failure may be greater than 1/2^20. Suitable only for transactions which do not require forward secrecy. Probability of failure about 1/2^40 Designed for production use. Probability of failure about 1/2^80. Suitable for sensitive data. Probability of failure about 1/2^160. Use only if you have lots of time! Probability of failure about 1/2^320. Only use methods which generate provable primes. Not yet implemented. Finds the next prime after a given number. Performs primality tests on bi, assumes trial division has been done. A BigInteger that has been subjected to and passed trial division False if bi is composite, true if it may be prime. The speed of this method is dependent on Confidence Probabilistic prime test based on Rabin-Miller's test The number to test. The number of chosen bases. The test has at least a 1/4^confidence chance of falsely returning True. True if "this" is a strong pseudoprime to randomly chosen bases. False if "this" is definitely NOT prime. ================================================ FILE: packages/DotNetOpenAuth.OpenId.Core.4.0.3.12153/lib/net40-full/Org.Mentalis.Security.Cryptography.xml ================================================ Org.Mentalis.Security.Cryptography Defines the different Diffie-Hellman key generation methods. Returns dynamically generated values for P and G. Unlike the Sophie Germain or DSA key generation methods, this method does not ensure that the selected prime offers an adequate security level. Returns values for P and G that are hard coded in this library. Contrary to what your intuition may tell you, using these hard coded values is perfectly safe. The values of the P and G parameters are taken from 'The OAKLEY Key Determination Protocol' [RFC2412]. This is the prefered key generation method, because it is very fast and very safe. Because this method uses fixed values for the P and G parameters, not all bit sizes are supported. The current implementation supports bit sizes of 768, 1024 and 1536. Represents the parameters of the Diffie-Hellman algorithm. Represents the public P parameter of the Diffie-Hellman algorithm. Represents the public G parameter of the Diffie-Hellman algorithm. Represents the private X parameter of the Diffie-Hellman algorithm. Defines a base class from which all Diffie-Hellman implementations inherit. Creates an instance of the default implementation of the algorithm. A new instance of the default implementation of DiffieHellman. Creates an instance of the specified implementation of . The name of the implementation of DiffieHellman to use. A new instance of the specified implementation of DiffieHellman. Initializes a new instance. When overridden in a derived class, creates the key exchange data. The key exchange data to be sent to the intended recipient. When overridden in a derived class, extracts secret information from the key exchange data. The key exchange data within which the secret information is hidden. The secret information derived from the key exchange data. When overridden in a derived class, exports the . true to include private parameters; otherwise, false. The parameters for Diffie-Hellman. When overridden in a derived class, imports the specified . The parameters for Diffie-Hellman. Reconstructs a object from an XML string. The XML string to use to reconstruct the DiffieHellman object. One of the values in the XML string is invalid. Creates and returns an XML string representation of the current object. true to include private parameters; otherwise, false. An XML string encoding of the current DiffieHellman object. Implements the Diffie-Hellman algorithm. Initializes a new instance. The default length of the shared secret is 1024 bits. Initializes a new instance. The length, in bits, of the public P parameter. The length, in bits, of the secret value X. This parameter can be set to 0 to use the default size. One of the values. The larger the bit length, the more secure the algorithm is. The default is 1024 bits. The minimum bit length is 128 bits.
The size of the private value will be one fourth of the bit length specified.
The specified bit length is invalid.
Initializes a new instance. The P parameter of the Diffie-Hellman algorithm. This is a public parameter. The G parameter of the Diffie-Hellman algorithm. This is a public parameter. The X parameter of the Diffie-Hellman algorithm. This is a private parameter. If this parameters is a null reference (Nothing in Visual Basic), a secret value of the default size will be generated. or is a null reference (Nothing in Visual Basic). or is invalid. Initializes a new instance. The P parameter of the Diffie-Hellman algorithm. The G parameter of the Diffie-Hellman algorithm. The length, in bits, of the private value. If 0 is specified, the default value will be used. or is a null reference (Nothing in Visual Basic). is invalid. or is invalid. Creates the key exchange data. The key exchange data to be sent to the intended recipient. Extracts secret information from the key exchange data. The key exchange data within which the shared key is hidden. The shared key derived from the key exchange data. Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources. true to release both managed and unmanaged resources; false to release only unmanaged resources. Exports the . true to include private parameters; otherwise, false. The parameters for . Imports the specified . The parameters for . parameters.P or parameters.G is a null reference (Nothing in Visual Basic) -or- parameters.P is not a prime number. Releases the unmanaged resources used by the SymmetricAlgorithm. Gets the name of the key exchange algorithm. The name of the key exchange algorithm. Gets the name of the signature algorithm. The name of the signature algorithm.
================================================ FILE: packages/DotNetOpenAuth.OpenId.Core.4.3.0.13117/content/net35-full/web.config.transform ================================================
================================================ FILE: packages/DotNetOpenAuth.OpenId.Core.4.3.0.13117/content/net40-full/web.config.transform ================================================
================================================ FILE: packages/DotNetOpenAuth.OpenId.Core.4.3.0.13117/content/net45-full/web.config.transform ================================================
================================================ FILE: packages/DotNetOpenAuth.OpenId.Core.4.3.0.13117/lib/net35-full/DotNetOpenAuth.OpenId.xml ================================================ DotNetOpenAuth.OpenId Describes a collection of association type sub-elements in a .config file. Initializes a new instance of the class. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. When overridden in a derived class, creates a new . A new . Gets the element key for a specified configuration element when overridden in a derived class. The to return the key for. An that acts as the key for the specified . Describes an association type and its maximum lifetime as an element in a .config file. The name of the attribute that stores the association type. The name of the attribute that stores the association's maximum lifetime. Initializes a new instance of the class. Gets or sets the protocol name of the association. Gets or sets the maximum time a shared association should live. The default value is 14 days. The configuration element that can adjust how hostmeta discovery works. The property name for enableCertificateValidationCache. Initializes a new instance of the class. Gets or sets a value indicating whether validated certificates should be cached and not validated again. This helps to avoid unexplained 5-10 second delays in certificate validation for Google Apps for Domains that impact some servers. Represents the <openid> element in the host's .config file. The name of the section under which this library's settings must be found. The name of the <relyingParty> sub-element. The name of the <provider> sub-element. The name of the <extensions> sub-element. The name of the <xriResolver> sub-element. The name of the @maxAuthenticationTime attribute. The name of the @cacheDiscovery attribute. Initializes a new instance of the class. Gets the configuration section from the .config file. Gets or sets the maximum time a user can take to complete authentication. This time limit allows the library to decide how long to cache certain values necessary to complete authentication. The lower the time, the less demand on the server. But too short a time can frustrate the user. Gets or sets a value indicating whether the results of Identifier discovery should be cached. Use true to allow identifier discovery to immediately return cached results when available; otherwise, use false.to force fresh results every time at the cost of slightly slower logins. The default value is true. When enabled, caching is done according to HTTP standards. Gets or sets the configuration specific for Relying Parties. Gets or sets the configuration specific for Providers. Gets or sets the registered OpenID extension factories. Gets or sets the configuration for the XRI resolver. The section in the .config file that allows customization of OpenID Provider behaviors. The name of the <provider> sub-element. The name of the security sub-element. Gets the name of the <behaviors> sub-element. The name of the custom store sub-element. Initializes a new instance of the class. Gets or sets the security settings. Gets or sets the special behaviors to apply. Gets or sets the type to use for storing application state. Represents the .config file element that allows for setting the security policies of the Provider. Gets the name of the @protectDownlevelReplayAttacks attribute. Gets the name of the @minimumHashBitLength attribute. Gets the name of the @maximumHashBitLength attribute. The name of the associations collection sub-element. The name of the @encodeAssociationSecretsInHandles attribute. Gets the name of the @requireSsl attribute. Gets the name of the @unsolicitedAssertionVerification attribute. Initializes a new instance of the class. Initializes a programmatically manipulatable bag of these security settings with the settings from the config file. The newly created security settings object. Gets or sets a value indicating whether all discovery and authentication should require SSL security. Gets or sets the minimum length of the hash that protects the protocol from hijackers. Gets or sets the maximum length of the hash that protects the protocol from hijackers. Gets or sets a value indicating whether the Provider should take special care to protect OpenID 1.x relying parties against replay attacks. Gets or sets the level of verification a Provider performs on an identifier before sending an unsolicited assertion for it. The default value is . Gets or sets the configured lifetimes of the various association types. Gets or sets a value indicating whether the Provider should ease the burden of storing associations by encoding their secrets (in signed, encrypted form) into the association handles themselves, storing only a few rotating, private symmetric keys in the Provider's store instead. The section in the .config file that allows customization of OpenID Relying Party behaviors. The name of the custom store sub-element. The name of the <relyingParty> sub-element. The name of the attribute that specifies whether dnoa.userSuppliedIdentifier is tacked onto the openid.return_to URL. Gets the name of the security sub-element. The name of the <behaviors> sub-element. The name of the <discoveryServices> sub-element. The name of the <hostMetaDiscovery> sub-element. The built-in set of identifier discovery services. Initializes a new instance of the class. Gets or sets a value indicating whether "dnoa.userSuppliedIdentifier" is tacked onto the openid.return_to URL in order to preserve what the user typed into the OpenID box. The default value is true. Gets or sets the security settings. Gets or sets the special behaviors to apply. Gets or sets the type to use for storing application state. Gets or sets the host meta discovery configuration element. Gets or sets the services to use for discovering service endpoints for identifiers. If no discovery services are defined in the (web) application's .config file, the default set of discovery services built into the library are used. Represents the .config file element that allows for setting the security policies of the Relying Party. Gets the name of the @minimumRequiredOpenIdVersion attribute. Gets the name of the @minimumHashBitLength attribute. Gets the name of the @maximumHashBitLength attribute. Gets the name of the @requireSsl attribute. Gets the name of the @requireDirectedIdentity attribute. Gets the name of the @requireAssociation attribute. Gets the name of the @rejectUnsolicitedAssertions attribute. Gets the name of the @rejectDelegatedIdentifiers attribute. Gets the name of the @ignoreUnsignedExtensions attribute. Gets the name of the @allowDualPurposeIdentifiers attribute. Gets the name of the @allowApproximateIdentifierDiscovery attribute. Gets the name of the @protectDownlevelReplayAttacks attribute. The name of the <trustedProviders> sub-element. Initializes a new instance of the class. Initializes a programmatically manipulatable bag of these security settings with the settings from the config file. The newly created security settings object. Gets or sets a value indicating whether all discovery and authentication should require SSL security. Gets or sets a value indicating whether only OP Identifiers will be discoverable when creating authentication requests. Gets or sets a value indicating whether authentication requests will only be created where an association with the Provider can be established. Gets or sets the minimum OpenID version a Provider is required to support in order for this library to interoperate with it. Although the earliest versions of OpenID are supported, for security reasons it may be desirable to require the remote party to support a later version of OpenID. Gets or sets the minimum length of the hash that protects the protocol from hijackers. Gets or sets the maximum length of the hash that protects the protocol from hijackers. Gets or sets a value indicating whether all unsolicited assertions should be ignored. The default value is false. Gets or sets a value indicating whether delegating identifiers are refused for authentication. The default value is false. When set to true, login attempts that start at the RP or arrive via unsolicited assertions will be rejected if discovery on the identifier shows that OpenID delegation is used for the identifier. This is useful for an RP that should only accept identifiers directly issued by the Provider that is sending the assertion. Gets or sets a value indicating whether unsigned extensions in authentication responses should be ignored. The default value is false. When set to true, the methods will not return any extension that was not signed by the Provider. Gets or sets a value indicating whether identifiers that are both OP Identifiers and Claimed Identifiers should ever be recognized as claimed identifiers. The default value is false, per the OpenID 2.0 spec. Gets or sets a value indicating whether certain Claimed Identifiers that exploit features that .NET does not have the ability to send exact HTTP requests for will still be allowed by using an approximate HTTP request. The default value is true. Gets or sets a value indicating whether the Relying Party should take special care to protect users against replay attacks when interoperating with OpenID 1.1 Providers. Gets or sets the set of trusted OpenID Provider Endpoints. Represents the <xriResolver> element in the host's .config file. Gets the name of the @enabled attribute. The default value for . The name of the <proxy> sub-element. The default XRI proxy resolver to use. Initializes a new instance of the class. Gets or sets a value indicating whether this XRI resolution is enabled. The default value is true. Gets or sets the proxy to use for resolving XRIs. The default value is "xri.net". Adds OpenID-specific extension methods to the XrdsDocument class. Creates the service endpoints described in this document, useful for requesting authentication of one of the OpenID Providers that result from it. The XrdsDocument instance to use in this process. The claimed identifier that was used to discover this XRDS document. The user supplied identifier. A sequence of OpenID Providers that can assert ownership of the . Creates the service endpoints described in this document, useful for requesting authentication of one of the OpenID Providers that result from it. The XrdsDocument instance to use in this process. The user-supplied i-name that was used to discover this XRDS document. A sequence of OpenID Providers that can assert ownership of the canonical ID given in this document. Generates OpenID Providers that can authenticate using directed identity. The XrdsDocument instance to use in this process. The OP Identifier entered (and resolved) by the user. Essentially the user-supplied identifier. A sequence of the providers that can offer directed identity services. Generates the OpenID Providers that are capable of asserting ownership of a particular URI claimed identifier. The XrdsDocument instance to use in this process. The claimed identifier. The user supplied identifier. A sequence of the providers that can assert ownership of the given identifier. Generates the OpenID Providers that are capable of asserting ownership of a particular XRI claimed identifier. The XrdsDocument instance to use in this process. The i-name supplied by the user. A sequence of the providers that can assert ownership of the given identifier. Enumerates the XRDS service elements that describe OpenID Providers offering directed identity assertions. The XrdsDocument instance to use in this process. A sequence of service elements. Returns the OpenID-compatible services described by a given XRDS document, in priority order. The XrdsDocument instance to use in this process. A sequence of the services offered. Stores a secret used in signing and verifying messages. OpenID associations may be shared between Provider and Relying Party (smart associations), or be a way for a Provider to recall its own secret for later (dumb associations). Initializes a new instance of the class. The handle. The secret. How long the association will be useful. The UTC time of when this association was originally issued by the Provider. Re-instantiates an previously persisted in a database or some other shared store. The property of the previous instance. The UTC value of the property of the previous instance. The byte array returned by a call to on the previous instance. The newly dehydrated , which can be returned from a custom association store's IRelyingPartyAssociationStore.GetAssociation method. Returns private data required to persist this in permanent storage (a shared database for example) for deserialization later. An opaque byte array that must be stored and returned exactly as it is provided here. The byte array may vary in length depending on the specific type of , but in current versions are no larger than 256 bytes. Values of public properties on the base class are not included in this byte array, as they are useful for fast database lookup and are persisted separately. Tests equality of two objects. The to compare with the current . true if the specified is equal to the current ; otherwise, false. Returns the hash code. A hash code for the current . The string to pass as the assoc_type value in the OpenID protocol. The protocol version of the message that the assoc_type value will be included in. The value that should be used for the openid.assoc_type parameter. Generates a signature from a given blob of data. The data to sign. This data will not be changed (the signature is the return value). The calculated signature of the data. Returns the specific hash algorithm used for message signing. The hash algorithm used for message signing. Gets a unique handle by which this may be stored or retrieved. Gets the UTC time when this will expire. Gets a value indicating whether this has already expired. Gets the length (in bits) of the hash this association creates when signing. Gets a value indicating whether this instance has useful life remaining. true if this instance has useful life remaining; otherwise, false. Gets or sets the UTC time that this was first created. Gets the duration a secret key used for signing dumb client requests will be good for. Gets the number of seconds until this expires. Never negative (counter runs to zero). Gets the shared secret key between the consumer and provider. Gets the lifetime the OpenID provider permits this . Gets the minimum lifetime an association must still be good for in order for it to be used for a future authentication. Associations that are not likely to last the duration of a user login are not worth using at all. Gets the TimeSpan till this association expires. Indicates the mode the Provider should use while authenticating the end user. The Provider should use whatever credentials are immediately available to determine whether the end user owns the Identifier. If sufficient credentials (i.e. cookies) are not immediately available, the Provider should fail rather than prompt the user. The Provider should determine whether the end user owns the Identifier, displaying a web page to the user to login etc., if necessary. An Attribute Exchange and Simple Registration filter to make all incoming attribute requests look like Simple Registration requests, and to convert the response to the originally requested extension and format. Initializes a new instance of the class. Gets or sets the AX attribute type URI formats this transform is willing to work with. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to The PAPE request has an incomplete set of authentication policies.. Looks up a localized string similar to A PAPE response is missing or is missing required policies.. Looks up a localized string similar to No personally identifiable information should be included in authentication responses when the PAPE authentication policy http://www.idmanagement.gov/schema/2009/05/icam/no-pii.pdf is present.. Looks up a localized string similar to No personally identifiable information should be requested when the http://www.idmanagement.gov/schema/2009/05/icam/no-pii.pdf PAPE policy is present.. Looks up a localized string similar to No PPID provider has been configured.. Looks up a localized string similar to Discovery on the Realm URL MUST be performed before sending a positive assertion.. Looks up a localized string similar to The Realm in an authentication request must be an HTTPS URL.. Implements the Identity, Credential, & Access Management (ICAM) OpenID 2.0 Profile for the General Services Administration (GSA). Relying parties that include this profile are always held to the terms required by the profile, but Providers are only affected by the special behaviors of the profile when the RP specifically indicates that they want to use this profile. Backing field for the static property. Initializes a new instance of the class. Gets or sets a value indicating whether PII is allowed to be requested or received via OpenID. The default value is false. Gets or sets a value indicating whether to ignore the SSL requirement (for testing purposes only). Provides a mechanism for Relying Parties to work with OpenID 1.0 Providers without losing claimed_id and op_endpoint data, which OpenID 2.0 Providers are required to send back with positive assertions. The "dnoa.op_endpoint" callback parameter that stores the Provider Endpoint URL to tack onto the return_to URI. The "dnoa.claimed_id" callback parameter that stores the Claimed Identifier to tack onto the return_to URI. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection offered (if any) by this binding element. Code contract for the class. Signs and verifies authentication assertions. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Verifies the signature by unrecognized handle. The message. The signed message. The protections applied. The applied protections. Calculates the signature for a given message. The message to sign or verify. The association to use to sign the message. The calculated signature of the method. Gets the association to use to sign or verify a message. The message to sign or verify. The association to use to sign or verify the message. Gets a specific association referenced in a given message's association handle. The signed message whose association handle should be used to lookup the association to return. The referenced association; or null if such an association cannot be found. If the association handle set in the message does not match any valid association, the association handle property is cleared, and the property is set to the handle that could not be found. Gets a private Provider association used for signing messages in "dumb" mode. An existing or newly created association. Ensures that all message parameters that must be signed are in fact included in the signature. The signed message. Gets the protection offered (if any) by this binding element. Gets or sets the channel that this binding element belongs to. Gets a value indicating whether this binding element is on a Provider channel. Verifies the signature by unrecognized handle. The message. The signed message. The protections applied. The applied protections. Gets the association to use to sign or verify a message. The message to sign or verify. The association to use to sign or verify the message. Gets a specific association referenced in a given message's association handle. The signed message whose association handle should be used to lookup the association to return. The referenced association; or null if such an association cannot be found. The binding element that serializes/deserializes OpenID extensions to/from their carrying OpenID messages. False if unsigned extensions should be dropped. Must always be true on Providers, since RPs never sign extensions. Initializes a new instance of the class. The extension factory. The security settings. Security setting for relying parties. Should be true for Providers. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets the extensions on a message. The carrier of the extensions. If set to true only signed extensions will be available. A optional filter that takes an extension type URI and returns a value indicating whether that extension should be deserialized and returned in the sequence. May be null. A sequence of extensions in the message. Gets the dictionary of message parts that should be deserialized into extensions. The message. If set to true only signed extensions will be available. A dictionary of message parts, including only signed parts when appropriate. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the extension factory. Gets the protection offered (if any) by this binding element. OpenID extension factory class for creating extensions based on received Type URIs. OpenID extension factories must be registered with the library. This can be done by adding a factory to OpenIdRelyingParty.ExtensionFactories or OpenIdProvider.ExtensionFactories, or by adding a snippet such as the following to your web.config file: <dotNetOpenAuth> <openid> <extensionFactories> <add type="DotNetOpenAuth.ApplicationBlock.CustomExtensions.Acme, DotNetOpenAuth.ApplicationBlock" /> </extensionFactories> </openid> </dotNetOpenAuth> Creates a new instance of some extension based on the received extension parameters. The type URI of the extension. The parameters associated specifically with this extension. The OpenID message carrying this extension. A value indicating whether this extension is being received at the OpenID Provider. An instance of if the factory recognizes the extension described in the input parameters; null otherwise. This factory method need only initialize properties in the instantiated extension object that are not bound using . An interface that OAuth messages implement to support signing. Gets or sets the association handle used to sign the message. The handle for the association that was used to sign this assertion. Gets or sets the association handle that the Provider wants the Relying Party to not use any more. If the Relying Party sent an invalid association handle with the request, it SHOULD be included here. Gets or sets the signed parameter order. Comma-separated list of signed fields. "op_endpoint,identity,claimed_id,return_to,assoc_handle,response_nonce" This entry consists of the fields without the "openid." prefix that the signature covers. This list MUST contain at least "op_endpoint", "return_to" "response_nonce" and "assoc_handle", and if present in the response, "claimed_id" and "identity". Additional keys MAY be signed as part of the message. See Generating Signatures. A Uri encoder that serializes using rather than the standard . Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Indicates the level of strictness to require when decoding a Key-Value Form encoded dictionary. Be as forgiving as possible to errors made while encoding. Allow for certain errors in encoding attributable to ambiguities in the OpenID 1.1 spec's description of the encoding. The strictest mode. The decoder requires the encoded dictionary to be in strict compliance with OpenID 2.0's description of the encoding. Performs conversion to and from the Key-Value Form Encoding defined by OpenID Authentication 2.0 section 4.1.1. http://openid.net/specs/openid-authentication-2_0.html#anchor4 This class is thread safe and immutable. The newline character sequence to use. Characters that must not appear in parameter names. Characters that must not appaer in parameter values. The character encoding to use. Initializes a new instance of the class. Initializes a new instance of the class. How strictly an incoming Key-Value Form message will be held to the spec. Encodes key/value pairs to Key-Value Form. The dictionary of key/value pairs to convert to a byte stream. The UTF8 byte array. Enumerating a Dictionary<TKey, TValue> has undeterministic ordering. If ordering of the key=value pairs is important, a deterministic enumerator must be used. Decodes bytes in Key-Value Form to key/value pairs. The stream of Key-Value Form encoded bytes. The deserialized dictionary. Thrown when the data is not in the expected format. Gets a value controlling how strictly an incoming Key-Value Form message will be held to the spec. A channel that knows how to send and receive OpenID messages. The HTTP Content-Type to use in Key-Value Form responses. OpenID 2.0 section 5.1.2 says this SHOULD be text/plain. But this value does not prevent free hosters like GoDaddy from tacking on their ads to the end of the direct response, corrupting the data. So we deviate from the spec a bit here to improve the story for free Providers. The encoder that understands how to read and write Key-Value Form. Initializes a new instance of the class. A class prepared to analyze incoming messages and indicate what concrete message types can deserialize from it. The binding elements to use in sending and receiving messages. Verifies the integrity and applicability of an incoming message. The message just received. Thrown when the message is somehow invalid, except for check_authentication messages. This can be due to tampering, replay attack or expiration, among other things. Prepares an HTTP request that carries a given message. The message to send. The prepared to send the request. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Thrown when the response is not valid. Called when receiving a direct response message, before deserialization begins. The HTTP direct response. The newly instantiated message, prior to deserialization. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec V1.0 section 5.3. Gets the direct response of a direct HTTP request. The web request. The response to the web request. Thrown on network or protocol errors. This binding element signs a Relying Party's openid.return_to parameter so that upon return, it can verify that it hasn't been tampered with. Since Providers can send unsolicited assertions, not all openid.return_to values will be signed. But those that are signed will be validated, and any invalid or missing signatures will cause this library to not trust the parameters in the return_to URL. In the messaging stack, this binding element looks like an ordinary transform-type of binding element rather than a protection element, due to its required order in the channel stack and that it doesn't sign anything except a particular message part. The name of the callback parameter we'll tack onto the return_to value to store our signature on the return_to parameter. The name of the callback parameter we'll tack onto the return_to value to store the handle of the association we use to sign the return_to parameter. The URI to use for private associations at this RP. The key store used to generate the private signature on the return_to parameter. Initializes a new instance of the class. The crypto key store. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets the return to signature. The return to. The crypto key. The generated signature. Only the parameters in the return_to URI are signed, rather than the base URI itself, in order that OPs that might change the return_to's implicit port :80 part or other minor changes do not invalidate the signature. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection offered (if any) by this binding element. No message protection is reported because this binding element does not protect the entire message -- only a part. Spoofs security checks on incoming OpenID messages. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. Code contract for the class. Prevents a default instance of the class from being created. The string to pass as the assoc_type value in the OpenID protocol. The protocol version of the message that the assoc_type value will be included in. The value that should be used for the openid.assoc_type parameter. Returns the specific hash algorithm used for message signing. The hash algorithm used for message signing. Gets the length (in bits) of the hash this association creates when signing. Manages a fast, two-way mapping between type URIs and their aliases. The format of auto-generated aliases. Tracks extension Type URIs and aliases assigned to them. Tracks extension aliases and Type URIs assigned to them. Gets an alias assigned for a given Type URI. A new alias is assigned if necessary. The type URI. The alias assigned to this type URI. Never null. Sets an alias and the value that will be returned by . The alias. The type URI. Takes a sequence of type URIs and assigns aliases for all of them. The type URIs to create aliases for. An optional dictionary of URI/alias pairs that suggest preferred aliases to use if available for certain type URIs. Sets up aliases for any Type URIs in a dictionary that do not yet have aliases defined, and where the given preferred alias is still available. A dictionary of type URI keys and alias values. Gets the Type Uri encoded by a given alias. The alias. The Type URI. Thrown if the given alias does not have a matching TypeURI. Gets the Type Uri encoded by a given alias. The alias. The Type URI for the given alias, or null if none for that alias exist. Returns a value indicating whether an alias has already been assigned to a type URI. The alias in question. True if the alias has already been assigned. False otherwise. Determines whether a given TypeURI has an associated alias assigned to it. The type URI. true if the given type URI already has an alias assigned; false otherwise. Assigns a new alias to a given Type URI. The type URI to assign a new alias to. The newly generated alias. Gets the aliases that have been set. An individual attribute to be requested of the OpenID Provider using the Attribute Exchange extension. Backing field for the property. Initializes a new instance of the class with = false, = 1. Initializes a new instance of the class with = false, = 1. The unique TypeURI for that describes the attribute being sought. Initializes a new instance of the class with = 1. The unique TypeURI for that describes the attribute being sought. A value indicating whether the Relying Party considers this attribute to be required for registration. Initializes a new instance of the class. The unique TypeURI for that describes the attribute being sought. A value indicating whether the Relying Party considers this attribute to be required for registration. The maximum number of values for this attribute the Relying Party is prepared to receive. Used by a Provider to create a response to a request for an attribute's value(s) using a given array of strings. The values for the requested attribute. The newly created object that should be added to the object. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Gets or sets the URI uniquely identifying the attribute being requested. Gets or sets a value indicating whether the relying party considers this a required field. Note that even if set to true, the Provider may not provide the value. Gets or sets the maximum number of values for this attribute the Relying Party wishes to receive from the OpenID Provider. A value of int.MaxValue is considered infinity. An individual attribute's value(s) as supplied by an OpenID Provider in response to a prior request by an OpenID Relying Party as part of a fetch request, or by a relying party as part of a store request. Initializes a new instance of the class. The TypeURI that uniquely identifies the attribute. The values for the attribute. Initializes a new instance of the class. This is internal because web sites should be using the method to instantiate. Initializes a new instance of the class. The TypeURI of the attribute whose values are being provided. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Gets the URI uniquely identifying the attribute whose value is being supplied. Gets the values supplied by the Provider. The various Type URI formats an AX attribute may use by various remote parties. No attribute format. AX attributes should use the Type URI format starting with http://axschema.org/. AX attributes should use the Type URI format starting with http://schema.openid.net/. AX attributes should use the Type URI format starting with http://openid.net/schema/. All known schemas. The most common schemas. Helper methods shared by multiple messages in the Attribute Exchange extension. Adds a request for an attribute considering it 'required'. The attribute request collection. The type URI of the required attribute. Adds a request for an attribute without considering it 'required'. The attribute request collection. The type URI of the requested attribute. Adds a given attribute with one or more values to the request for storage. Applicable to Relying Parties only. The collection of to add to. The type URI of the attribute. The attribute values. Serializes a set of attribute values to a dictionary of fields to send in the message. The dictionary to fill with serialized attributes. The attributes. Deserializes attribute values from an incoming set of message data. The data coming in with the message. The attribute values found in the message. Reads through the attributes included in the response to discover the alias-TypeURI relationships. The data included in the extension message. The alias manager that provides lookup between aliases and type URIs. Attribute Exchange constants The TypeURI by which the AX extension is recognized in OpenID messages and in XRDS documents. The Attribute Exchange Fetch message, request leg. A handy base class for built-in extensions. The contract any OpenID extension for DotNetOpenAuth must implement. Classes that implement this interface should be marked as [] to allow serializing state servers to cache messages, particularly responses. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets or sets a value indicating whether this extension was signed by the sender. true if this instance is signed by the sender; otherwise, false. Backing store for the property. Backing store for the property. Backing store for the property. Initializes a new instance of the class. The version of the extension. The type URI to use in the OpenID message. The additional supported type URIs by which this extension might be recognized. May be null. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets or sets a value indicating whether this extension was signed by the OpenID Provider. true if this instance is signed by the provider; otherwise, false. Gets the version of the protocol or extension this message is prepared to implement. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets or sets a value indicating whether this extension was signed by the OpenID Provider. true if this instance is signed by the provider; otherwise, false. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. The value for the 'mode' parameter. The factory method that may be used in deserialization of this message. Characters that may not appear in an attribute alias list. Characters that may not appear in an attribute Type URI alias. The collection of requested attributes. Initializes a new instance of the class. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Splits a list of aliases by their commas. The comma-delimited list of aliases. May be null or empty. The list of aliases. Never null, but may be empty. Gets a collection of the attributes whose values are requested by the Relying Party. A collection where the keys are the attribute type URIs, and the value is all the attribute request details. Gets or sets the URL that the OpenID Provider may re-post the fetch response message to at some time after the initial response has been sent, using an OpenID Authentication Positive Assertion to inform the relying party of updates to the requested fields. Gets or sets a list of aliases for optional attributes. A comma-delimited list of aliases. Gets or sets a list of aliases for required attributes. A comma-delimited list of aliases. The Attribute Exchange Fetch message, response leg. The value of the 'mode' parameter. The factory method that may be used in deserialization of this message. The collection of provided attributes. This field will never be null. Initializes a new instance of the class. Gets the first attribute value provided for a given attribute Type URI. The type URI of the attribute. Usually a constant from . The first value provided for the attribute, or null if the attribute is missing or no values were provided. This is meant as a helper method for the common case of just wanting one attribute value. For greater flexibility or to retrieve more than just the first value for an attribute, use the collection directly. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets a sequence of the attributes whose values are provided by the OpenID Provider. Gets a value indicating whether the OpenID Provider intends to honor the request for updates. Gets or sets the URL the OpenID Provider will post updates to. Must be set if the Provider supports and will use this feature. Gets a value indicating whether this extension is signed by the Provider. true if this instance is signed by the Provider; otherwise, false. The Attribute Exchange Store message, request leg. The value of the 'mode' parameter. The factory method that may be used in deserialization of this message. The collection of provided attribute values. This field will never be null. Initializes a new instance of the class. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Gets the collection of all the attributes that are included in the store request. The Attribute Exchange Store message, response leg. The value of the mode parameter used to express a successful store operation. The value of the mode parameter used to express a store operation failure. The factory method that may be used in deserialization of this message. Initializes a new instance of the class to represent a successful store operation. Initializes a new instance of the class to represent a failed store operation. The reason for failure. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets or sets a value indicating whether the storage request succeeded. Defaults to true. Gets or sets the reason for the failure, if applicable. Gets a value indicating whether this extension is signed by the Provider. true if this instance is signed by the Provider; otherwise, false. Gets or sets the mode argument. One of 'store_response_success' or 'store_response_failure'. Attribute types defined at http://www.axschema.org/types/. If you don't see what you need here, check that URL to see if any have been added. You can use new ones directly without adding them to this class, and can even make up your own if you expect the other end to understand what you make up. Inherent attributes about a personality such as gender and bio. Gender, either "M" or "F" "M", "F" Biography (text) "I am the very model of a modern Major General." Preferences such as language and timezone. Preferred language, as per RFC4646 "en-US" Home time zone information (as specified in zoneinfo) "America/Pacific" The names a person goes by. Subject's alias or "screen" name "Johnny5" Full name of subject "John Doe" Honorific prefix for the subject's name "Mr.", "Mrs.", "Dr." First or given name of subject "John" Last name or surname of subject "Smith" Middle name(s) of subject "Robert" Suffix of subject's name "III", "Jr." Business affiliation. Company name (employer) "Springfield Power" Employee title "Engineer" Information about a person's birthdate. Date of birth. "1979-01-01" Year of birth (four digits) "1979" Month of birth (1-12) "05" Day of birth "31" Various ways to contact a person. Internet SMTP email address as per RFC2822 "jsmith@isp.example.com" Various types of phone numbers. Main phone number (preferred) +1-800-555-1234 Home phone number +1-800-555-1234 Business phone number +1-800-555-1234 Cellular (or mobile) phone number +1-800-555-1234 Fax number +1-800-555-1234 The many fields that make up an address. Home postal address: street number, name and apartment number "#42 135 East 1st Street" "#42 135 East 1st Street" "Box 67" Home city name "Vancouver" Home state or province name "BC" Home country code in ISO.3166.1988 (alpha 2) format "CA" Home postal code; region specific format "V5A 4B2" The many fields that make up an address. Business postal address: street number, name and apartment number "#42 135 East 1st Street" "#42 135 East 1st Street" "Box 67" Business city name "Vancouver" Business state or province name "BC" Business country code in ISO.3166.1988 (alpha 2) format "CA" Business postal code; region specific format "V5A 4B2" Various handles for instant message clients. AOL instant messaging service handle "jsmith421234" ICQ instant messaging service handle "1234567" MSN instant messaging service handle "jsmith42@hotmail.com" Yahoo! instant messaging service handle "jsmith421234" Jabber instant messaging service handle "jsmith@jabber.example.com" Skype instant messaging service handle "jsmith42" Various web addresses connected with this personality. Web site URL "http://example.com/~jsmith/" Blog home page URL "http://example.com/jsmith_blog/" LinkedIn URL "http://www.linkedin.com/pub/1/234/56" Amazon URL "http://www.amazon.com/gp/pdp/profile/A24DLKJ825" Flickr URL "http://flickr.com/photos/jsmith42/" del.icio.us URL "http://del.icio.us/jsmith42" Audio and images of this personality. Spoken name (web URL) "http://example.com/~jsmith/john_smith.wav" Audio greeting (web URL) "http://example.com/~jsmith/i_greet_you.wav" Video greeting (web URL) "http://example.com/~jsmith/i_greet_you.mov" Images of this personality. Image (web URL); unspecified dimension "http://example.com/~jsmith/image.jpg" Image (web URL) with equal width and height "http://example.com/~jsmith/image.jpg" Image (web URL) 4:3 aspect ratio - landscape "http://example.com/~jsmith/image.jpg" Image (web URL) 4:3 aspect ratio - landscape "http://example.com/~jsmith/image.jpg" Image (web URL); favicon format as per FAVICON-W3C. The format for the image must be 16x16 pixels or 32x32 pixels, using either 8-bit or 24-bit colors. The format of the image must be one of PNG (a W3C standard), GIF, or ICO. "http://example.com/~jsmith/image.jpg" Manages the processing and construction of OpenID extensions parts. This contains a set of aliases that we must be willing to implicitly match to namespaces for backward compatibility with other OpenID libraries. The version of OpenID that the message is using. Whether extensions are being read or written. The alias manager that will track Type URI to alias mappings. A complex dictionary where the key is the Type URI of the extension, and the value is another dictionary of the name/value args of the extension. Prevents a default instance of the class from being created. Creates a instance to process incoming extensions. The parameters in the OpenID message. The newly created instance of . Creates a instance to prepare outgoing extensions. The protocol version used for the outgoing message. The newly created instance of . Adds query parameters for OpenID extensions to the request directed at the OpenID provider. The extension type URI. The arguments for this extension to add to the message. Gets the actual arguments to add to a querystring or other response, where type URI, alias, and actual key/values are all defined. true if the generated parameter names should include the 'openid.' prefix. This should be true for all but direct response messages. A dictionary of key=value pairs to add to the message to carry the extension. Gets the fields carried by a given OpenId extension. The type URI of the extension whose fields are being queried for. The fields included in the given extension, or null if the extension is not present. Gets whether any arguments for a given extension are present. The extension Type URI in question. true if this extension is present; false otherwise. Gets the type URIs of all discovered extensions in the message. A sequence of the type URIs. Gets a value indicating whether the extensions are being read (as opposed to written). An interface that OpenID extensions can implement to allow authentication response messages with included extensions to be processed by Javascript on the user agent. Reads the extension information on an authentication response from the provider. The incoming OpenID response carrying the extension. A Javascript snippet that when executed on the user agent returns an object with the information deserialized from the extension response. This method is called before the signature on the assertion response has been verified. Therefore all information in these fields should be assumed unreliable and potentially falsified. An extension to include with an authentication request in order to also obtain authorization to access user data at the combined OpenID Provider and Service Provider. When requesting OpenID Authentication via the protocol mode "checkid_setup" or "checkid_immediate", this extension can be used to request that the end user authorize an OAuth access token at the same time as an OpenID authentication. This is done by sending the following parameters as part of the OpenID request. (Note that the use of "oauth" as part of the parameter names here and in subsequent sections is just an example. See Section 5 for details.) See section 8. The factory method that may be used in deserialization of this message. Initializes a new instance of the class. Gets or sets the consumer key agreed upon between the Consumer and Service Provider. Gets or sets a string that encodes, in a way possibly specific to the Combined Provider, one or more scopes for the OAuth token expected in the authentication response. The OAuth response that a Provider may include with a positive OpenID identity assertion with an approved request token. The factory method that may be used in deserialization of this message. Initializes a new instance of the class. Gets or sets the user-approved request token. The request token. Gets or sets a string that encodes, in a way possibly specific to the Combined Provider, one or more scopes that the returned request token is valid for. This will typically indicate a subset of the scopes requested in Section 8. Constants used in the OpenID OAuth extension. The TypeURI for the OpenID OAuth extension. The name of the parameter that carries the request token in the response. The OAuth response that a Provider should include with a positive OpenID identity assertion when OAuth authorization was declined. The factory method that may be used in deserialization of this message. Initializes a new instance of the class. An OpenID extension factory that only delegates extension instantiation requests to other factories. The list of factories this factory delegates to. Initializes a new instance of the class. Creates a new instance of some extension based on the received extension parameters. The type URI of the extension. The parameters associated specifically with this extension. The OpenID message carrying this extension. A value indicating whether this extension is being received at the OpenID Provider. An instance of if the factory recognizes the extension described in the input parameters; null otherwise. This factory method need only initialize properties in the instantiated extension object that are not bound using . Loads the default factory and additional ones given by the configuration. A new instance of . Gets the extension factories that this aggregating factory delegates to. A list of factories. May be empty, but never null. Encodes/decodes the Simple Registration Gender type to its string representation. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. An OpenID extension factory that supports registration so that third-party extensions can add themselves to this library's supported extension list. A collection of the registered OpenID extensions. Initializes a new instance of the class. Creates a new instance of some extension based on the received extension parameters. The type URI of the extension. The parameters associated specifically with this extension. The OpenID message carrying this extension. A value indicating whether this extension is being received at the OpenID Provider. An instance of if the factory recognizes the extension described in the input parameters; null otherwise. This factory method need only initialize properties in the instantiated extension object that are not bound using . Registers a new extension delegate. The factory method that can create the extension. A delegate that individual extensions may register with this factory. The type URI of the extension. The parameters associated specifically with this extension. The OpenID message carrying this extension. A value indicating whether this extension is being received at the OpenID Provider. An instance of if the factory recognizes the extension described in the input parameters; null otherwise. Well-known authentication policies defined in the PAPE extension spec or by a recognized standards body. This is a class of constants rather than a flags enum because policies may be freely defined and used by anyone, just by using a new Uri. An authentication mechanism where the End User does not provide a shared secret to a party potentially under the control of the Relying Party. (Note that the potentially malicious Relying Party controls where the User-Agent is redirected to and thus may not send it to the End User's actual OpenID Provider). An authentication mechanism where the End User authenticates to the OpenID Provider by providing over one authentication factor. Common authentication factors are something you know, something you have, and something you are. An example would be authentication using a password and a software token or digital certificate. An authentication mechanism where the End User authenticates to the OpenID Provider by providing over one authentication factor where at least one of the factors is a physical factor such as a hardware device or biometric. Common authentication factors are something you know, something you have, and something you are. This policy also implies the Multi-Factor Authentication policy (http://schemas.openid.net/pape/policies/2007/06/multi-factor) and both policies MAY BE specified in conjunction without conflict. An example would be authentication using a password and a hardware token. Indicates that the Provider MUST use a pair-wise pseudonym for the user that is persistent and unique across the requesting realm as the openid.claimed_id and openid.identity (see Section 4.2). Indicates that the OP MUST only respond with a positive assertion if the requirements demonstrated by the OP to obtain certification by a Federally adopted Trust Framework Provider have been met. Notwithstanding the RP may request this authentication policy, the RP MUST still verify that this policy appears in the positive assertion response rather than assume the OP recognized and complied with the request. Indicates that the OP MUST not include any OpenID Attribute Exchange or Simple Registration information regarding the user in the assertion. Used in a PAPE response to indicate that no PAPE authentication policies could be satisfied. Used internally by the PAPE extension, so that users don't have to know about it. OpenID Provider Authentication Policy extension constants. The namespace used by this extension in messages. The namespace alias to use for OpenID 1.x interop, where aliases are not defined in the message. The string to prepend on an Auth Level Type alias definition. Well-known assurance level Type URIs. The Type URI of the NIST assurance level. A mapping between the PAPE TypeURI and the alias to use if possible for backward compatibility reasons. Parameters to be included with PAPE requests. Optional. If the End User has not actively authenticated to the OP within the number of seconds specified in a manner fitting the requested policies, the OP SHOULD authenticate the End User for this request. Integer value greater than or equal to zero in seconds. The OP should realize that not adhering to the request for re-authentication most likely means that the End User will not be allowed access to the services provided by the RP. If this parameter is absent in the request, the OP should authenticate the user at its own discretion. Zero or more authentication policy URIs that the OP SHOULD conform to when authenticating the user. If multiple policies are requested, the OP SHOULD satisfy as many as it can. Space separated list of authentication policy URIs. If no policies are requested, the RP may be interested in other information such as the authentication age. The space separated list of the name spaces of the custom Assurance Level that RP requests, in the order of its preference. An encoder/decoder design for DateTimes that must conform to the PAPE spec. The timestamp MUST be formatted as specified in section 5.6 of [RFC3339] (Klyne, G. and C. Newman, “Date and Time on the Internet: Timestamps,” .), with the following restrictions: * All times must be in the UTC timezone, indicated with a "Z". * No fractional seconds are allowed For example: 2005-05-15T17:11:51Z An array of the date/time formats allowed by the PAPE extension. TODO: This array of formats is not yet a complete list. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Descriptions for NIST-defined levels of assurance that a credential has not been compromised and therefore the extent to which an authentication assertion can be trusted. One using this enum should review the following publication for details before asserting or interpreting what these levels signify, notwithstanding the brief summaries attached to each level in DotNetOpenAuth documentation. http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf See PAPE spec Appendix A.1.2 (NIST Assurance Levels) for high-level example classifications of authentication methods within the defined levels. Not an assurance level defined by NIST, but rather SHOULD be used to signify that the OP recognizes the parameter and the End User authentication did not meet the requirements of Level 1. See this document for a thorough description: http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf See this document for a thorough description: http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf See this document for a thorough description: http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf See this document for a thorough description: http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf Utility methods for use by the PAPE extension. Looks at the incoming fields and figures out what the aliases and name spaces for auth level types are. The incoming message data in which to discover TypeURIs and aliases. The initialized with the given data. Concatenates a sequence of strings using a space as a separator. The elements to concatenate together.. The concatenated string of elements. Thrown if any element in the sequence includes a space. The PAPE request part of an OpenID Authentication request message. The factory method that may be used in deserialization of this message. The transport field for the RP's preferred authentication policies. This field is written to/read from during custom serialization. Initializes a new instance of the class. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Serializes the policies as a single string per the PAPE spec.. The policies to include in the list. The concatenated string of the given policies. Serializes the auth levels to a list of aliases. The preferred auth level types. The alias manager. A space-delimited list of aliases. Gets or sets the maximum acceptable time since the End User has actively authenticated to the OP in a manner fitting the requested policies, beyond which the Provider SHOULD authenticate the End User for this request. The OP should realize that not adhering to the request for re-authentication most likely means that the End User will not be allowed access to the services provided by the RP. If this parameter is absent in the request, the OP should authenticate the user at its own discretion. Gets the list of authentication policy URIs that the OP SHOULD conform to when authenticating the user. If multiple policies are requested, the OP SHOULD satisfy as many as it can. List of authentication policy URIs obtainable from the class or from a custom list. If no policies are requested, the RP may be interested in other information such as the authentication age. Gets the namespaces of the custom Assurance Level the Relying Party requests, in the order of its preference. The PAPE response part of an OpenID Authentication response message. The first part of a parameter name that gives the custom string value for the assurance level. The second part of the parameter name is the alias for that assurance level. The factory method that may be used in deserialization of this message. One or more authentication policy URIs that the OP conformed to when authenticating the End User. Space separated list of authentication policy URIs. If no policies were met though the OP wishes to convey other information in the response, this parameter MUST be included with the value of "none". Backing field for the property. Initializes a new instance of the class. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Serializes the applied policies for transmission from the Provider to the Relying Party. The applied policies. A space-delimited list of applied policies. Gets a list of authentication policy URIs that the OP conformed to when authenticating the End User. Gets or sets the most recent timestamp when the End User has actively authenticated to the OP in a manner fitting the asserted policies. If the RP's request included the "openid.pape.max_auth_age" parameter then the OP MUST include "openid.pape.auth_time" in its response. If "openid.pape.max_auth_age" was not requested, the OP MAY choose to include "openid.pape.auth_time" in its response. Gets or sets the Assurance Level as defined by the National Institute of Standards and Technology (NIST) in Special Publication 800-63 (Burr, W., Dodson, D., and W. Polk, Ed., “Electronic Authentication Guideline,” April 2006.) [NIST_SP800‑63] corresponding to the authentication method and policies employed by the OP when authenticating the End User. See PAPE spec Appendix A.1.2 (NIST Assurance Levels) for high-level example classifications of authentication methods within the defined levels. Gets a dictionary where keys are the authentication level type URIs and the values are the per authentication level defined custom value. A very common key is and values for this key are available in . Gets a value indicating whether this extension is signed by the Provider. true if this instance is signed by the Provider; otherwise, false. Carries the request/require/none demand state of the simple registration fields. The factory method that may be used in deserialization of this message. The type URI that this particular (deserialized) extension was read in using, allowing a response to alter be crafted using the same type URI. Initializes a new instance of the class. Initializes a new instance of the class by deserializing from a message. The type URI this extension was recognized by in the OpenID message. Tests equality between two structs. One instance to compare. Another instance to compare. The result of the operator. Tests inequality between two structs. One instance to compare. Another instance to compare. The result of the operator. Tests equality between two structs. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Renders the requested information as a string. A that represents the current . Prepares a Simple Registration response extension that is compatible with the version of Simple Registration used in the request message. The newly created instance. Sets the profile request properties according to a list of field names that might have been passed in the OpenId query dictionary. The list of field names that should receive a given . These field names should match the OpenId specification for field names, omitting the 'openid.sreg' prefix. The none/request/require state of the listed fields. Assembles the profile parameter names that have a given . The demand level (request, require, none). An array of the profile parameter names that meet the criteria. Gets or sets the URL the consumer site provides for the authenticating user to review for how his claims will be used by the consumer web site. Gets or sets the level of interest a relying party has in the nickname of the user. Gets or sets the level of interest a relying party has in the email of the user. Gets or sets the level of interest a relying party has in the full name of the user. Gets or sets the level of interest a relying party has in the birthdate of the user. Gets or sets the level of interest a relying party has in the gender of the user. Gets or sets the level of interest a relying party has in the postal code of the user. Gets or sets the level of interest a relying party has in the Country of the user. Gets or sets the level of interest a relying party has in the language of the user. Gets or sets the level of interest a relying party has in the time zone of the user. Gets or sets a value indicating whether this instance is synthesized from an AX request at the Provider. Gets or sets the value of the sreg.required parameter. A comma-delimited list of sreg fields. Gets or sets the value of the sreg.optional parameter. A comma-delimited list of sreg fields. A struct storing Simple Registration field values describing an authenticating user. The factory method that may be used in deserialization of this message. The allowed format for birthdates. Storage for the raw string birthdate value. Backing field for the property. Backing field for the property. Initializes a new instance of the class using the most common, and spec prescribed type URI. Initializes a new instance of the class. The type URI that must be used to identify this extension in the response message. This value should be the same one the relying party used to send the extension request. Commonly used type URIs supported by relying parties are defined in the class. Tests equality of two objects. One instance to compare. Another instance to compare. The result of the operator. Tests inequality of two objects. One instance to compare. Another instance to compare. The result of the operator. Tests equality of two objects. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Reads the extension information on an authentication response from the provider. The incoming OpenID response carrying the extension. A Javascript snippet that when executed on the user agent returns an object with the information deserialized from the extension response. This method is called before the signature on the assertion response has been verified. Therefore all information in these fields should be assumed unreliable and potentially falsified. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Translates an empty string value to null, or passes through non-empty values. The value to consider changing to null. Either null or a non-empty string. Gets or sets the nickname the user goes by. Gets or sets the user's email address. Gets or sets the full name of a user as a single string. Gets or sets the user's birthdate. Gets or sets the raw birth date string given by the extension. A string in the format yyyy-MM-dd. Gets or sets the gender of the user. Gets or sets the zip code / postal code of the user. Gets or sets the country of the user. Gets or sets the primary/preferred language of the user. Gets or sets the user's timezone. Gets a combination of the user's full name and email address. Gets or sets a combination of the language and country of the user. Gets a value indicating whether this extension is signed by the Provider. true if this instance is signed by the Provider; otherwise, false. Simple Registration constants Additional type URIs that this extension is sometimes known by remote parties. Commonly used type URIs to represent the Simple Registration extension. The URI "http://openid.net/extensions/sreg/1.1". This is the type URI prescribed by the Simple Registration 1.1 spec. http://openid.net/specs/openid-simple-registration-extension-1_1-01.html#anchor3 The URI "http://openid.net/sreg/1.0" The URI "http://openid.net/sreg/1.1" Specifies what level of interest a relying party has in obtaining the value of a given field offered by the Simple Registration extension. The relying party has no interest in obtaining this field. The relying party would like the value of this field, but wants the Provider to display the field to the user as optionally provided. The relying party considers this a required field as part of authentication. The Provider and/or user agent MAY still choose to not provide the value of the field however, according to the Simple Registration extension specification. Indicates the gender of a user. The user is male. The user is female. Constants used to support the UI extension. The type URI associated with this extension. The Type URI that appears in an XRDS document when the OP supports popups through the UI extension. The Type URI that appears in an XRDS document when the OP supports the RP specifying the user's preferred language through the UI extension. The Type URI that appears in the XRDS document when the OP supports the RP specifying the icon for the OP to display during authentication through the UI extension. Valid values for the mode parameter of the OpenID User Interface extension. Indicates that the Provider's authentication page appears in a popup window. The constant "popup". The RP SHOULD create the popup to be 450 pixels wide and 500 pixels tall. The popup MUST have the address bar displayed, and MUST be in a standalone browser window. The contents of the popup MUST NOT be framed by the RP. The RP SHOULD open the popup centered above the main browser window, and SHOULD dim the contents of the parent window while the popup is active. The RP SHOULD ensure that the user is not surprised by the appearance of the popup, and understands how to interact with it. To keep the user popup user experience consistent, it is RECOMMENDED that the OP does not resize the popup window unless the OP requires additional space to show special features that are not usually displayed as part of the default popup user experience. The OP MAY close the popup without returning a response to the RP. Closing the popup without sending a response should be interpreted as a negative assertion. The response to an authentication request in a popup is unchanged from [OpenID 2.0] (OpenID 2.0 Workgroup, “OpenID 2.0,” .). Relying Parties detecting that the popup was closed without receiving an authentication response SHOULD interpret the close event to be a negative assertion. OpenID User Interface extension 1.0 request message. Implements the extension described by: http://wiki.openid.net/f/openid_ui_extension_draft01.html This extension only applies to checkid_setup requests, since checkid_immediate requests display no UI to the user. For rules about how the popup window should be displayed, please see the documentation of . An RP may determine whether an arbitrary OP supports this extension (and thereby determine whether to use a standard full window redirect or a popup) via the method. The factory method that may be used in deserialization of this message. Additional type URIs that this extension is sometimes known by remote parties. Backing store for . Initializes a new instance of the class. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Gets or sets the list of user's preferred languages, sorted in decreasing preferred order. The default is the of the thread that created this instance. The user's preferred languages as a [BCP 47] language priority list, represented as a comma-separated list of BCP 47 basic language ranges in descending priority order. For instance, the value "fr-CA,fr-FR,en-CA" represents the preference for French spoken in Canada, French spoken in France, followed by English spoken in Canada. Gets or sets the style of UI that the RP is hosting the OP's authentication page in. Some value from the class. Defaults to . Gets or sets a value indicating whether the Relying Party has an icon it would like the Provider to display to the user while asking them whether they would like to log in. true if the Provider should display an icon; otherwise, false. By default, the Provider displays the relying party's favicon.ico. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets or sets a value indicating whether this extension was signed by the sender. true if this instance is signed by the sender; otherwise, false. Gets the version of the protocol or extension this message is prepared to implement. The value 1.0. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Constants used in implementing support for the UI extension. The required width of the popup window the relying party creates for the provider. The required height of the popup window the relying party creates for the provider. An Identifier is either a "http" or "https" URI, or an XRI. Initializes a new instance of the class. The original string before any normalization. Whether the derived class is prepared to guarantee end-to-end discovery and initial redirect for authentication is performed using SSL. Converts the string representation of an Identifier to its strong type. The identifier. The particular Identifier instance to represent the value given. Converts a given Uri to a strongly-typed Identifier. The identifier to convert. The result of the conversion. Converts an Identifier to its string representation. The identifier to convert to a string. The result of the conversion. Parses an identifier string and automatically determines whether it is an XRI or URI. Either a URI or XRI identifier. An instance for the given value. Parses an identifier string and automatically determines whether it is an XRI or URI. Either a URI or XRI identifier. if set to true this Identifier will serialize exactly as given rather than in its normalized form. An instance for the given value. Attempts to parse a string for an OpenId Identifier. The string to be parsed. The parsed Identifier form. True if the operation was successful. False if the string was not a valid OpenId Identifier. Checks the validity of a given string representation of some Identifier. The identifier. true if the specified identifier is valid; otherwise, false. Tests equality between two s. The first Identifier. The second Identifier. true if the two instances should be considered equal; false otherwise. Tests inequality between two s. The first Identifier. The second Identifier. true if the two instances should be considered unequal; false if they are equal. Tests equality between two s. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Gets the hash code for an for storage in a hashtable. A hash code for the current . Reparses the specified identifier in order to be assured that the concrete type that implements the identifier is one of the well-known ones. The identifier. Either or . Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. Gets the original string that was normalized to create this Identifier. Gets the Identifier in the form in which it should be serialized. For Identifiers that were originally deserialized, this is the exact same string that was deserialized. For Identifiers instantiated in some other way, this is the normalized form of the string used to instantiate the identifier. Gets or sets a value indicating whether instances are considered equal based solely on their string reprsentations. This property serves as a test hook, so that MockIdentifier instances can be considered "equal" to UriIdentifier instances. Gets a value indicating whether this Identifier will ensure SSL is used throughout the discovery phase and initial redirect of authentication. If this is false, a value of true may be obtained by calling . Gets a value indicating whether this instance was initialized from deserializing a message. This is interesting because when an Identifier comes from the network, we can't normalize it and then expect signatures to still verify. But if the Identifier is initialized locally, we can and should normalize it before serializing it. Provides conversions to and from strings for messages that include members of this type. Encodes the specified value as the original value that was formerly decoded. The value. Guaranteed to never be null. The in string form, ready for message transport. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Code Contract for the class. Prevents a default instance of the IdentifierContract class from being created. Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. A set of methods designed to assist in improving interop across different OpenID implementations and their extensions. The gender decoder to translate AX genders to Sreg. Splits the AX attribute format flags into individual values for processing. The formats to split up into individual flags. A sequence of individual flags. Transforms an AX attribute type URI from the axschema.org format into a given format. The ax schema org format type URI. The target format. Only one flag should be set. The AX attribute type URI in the target format. Detects the AX attribute type URI format from a given sample. The type URIs to scan for recognized formats. The first AX type URI format recognized in the list. Adds an attribute fetch request if it is not already present in the AX request. The AX request to add the attribute request to. The format of the attribute's Type URI to use. The attribute in axschema.org format. The demand level. Gets the gender decoder to translate AX genders to Sreg. Represents a single OP endpoint from discovery on some OpenID Identifier. Information published about an OpenId Provider by the OpenId discovery documents found at a user's Claimed Identifier. Because information provided by this interface is suppplied by a user's individually published documents, it may be incomplete or inaccurate. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Gets the detected version of OpenID implemented by the Provider. Gets the URL that the OpenID Provider receives authentication requests at. This value MUST be an absolute HTTP or HTTPS URL. Backing field for the property. Backing field for the property. Backing field for the property. Initializes a new instance of the class. The provider endpoint. The Claimed Identifier. The User-supplied Identifier. The Provider Local Identifier. The service priority. The URI priority. Implements the operator ==. The first service endpoint. The second service endpoint. The result of the operator. Implements the operator !=. The first service endpoint. The second service endpoint. The result of the operator. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Returns a that represents the current . A that represents the current . Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Determines whether a given extension is supported by this endpoint. An instance of the extension to check support for. true if the extension is supported by this endpoint; otherwise, false. Creates a instance to represent some OP Identifier. The provider identifier (actually the user-supplied identifier). The provider endpoint. The service priority. The URI priority. The created instance Creates a instance to represent some Claimed Identifier. The claimed identifier. The provider local identifier. The provider endpoint. The service priority. The URI priority. The created instance Creates a instance to represent some Claimed Identifier. The claimed identifier. The user supplied identifier. The provider local identifier. The provider endpoint. The service priority. The URI priority. The created instance Determines whether a given type URI is present on the specified provider endpoint. The type URI. true if the type URI is present on the specified provider endpoint; otherwise, false. Sets the Capabilities property (this method is a test hook.) The value. The publicize.exe tool should work for the unit tests, but for some reason it fails on the build server. Gets the priority rating for a given type of endpoint, allowing a priority sorting of endpoints. The endpoint to prioritize. An arbitary integer, which may be used for sorting against other returned values from this method. Gets the detected version of OpenID implemented by the Provider. Gets the Identifier that was presented by the end user to the Relying Party, or selected by the user at the OpenID Provider. During the initiation phase of the protocol, an end user may enter either their own Identifier or an OP Identifier. If an OP Identifier is used, the OP may then assist the end user in selecting an Identifier to share with the Relying Party. Gets the Identifier that the end user claims to control. Gets an alternate Identifier for an end user that is local to a particular OP and thus not necessarily under the end user's control. Gets a more user-friendly (but NON-secure!) string to display to the user as his identifier. A human-readable, abbreviated (but not secure) identifier the user MAY recognize as his own. Gets the provider endpoint. Gets the @priority given in the XRDS document for this specific OP endpoint. Gets the @priority given in the XRDS document for this service (which may consist of several endpoints). Gets the collection of service type URIs found in the XRDS document describing this Provider. Should never be null, but may be empty. Gets the URL that the OpenID Provider receives authentication requests at. This value MUST be an absolute HTTP or HTTPS URL. Gets an XRDS sorting routine that uses the XRDS Service/@Priority attribute to determine order. Endpoints lacking any priority value are sorted to the end of the list. Gets the protocol used by the OpenID Provider. A module that provides discovery services for OpenID identifiers. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. Code contract for the interface. Prevents a default instance of the class from being created. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. A service that can perform discovery on OpenID identifiers. The RP or OP that is hosting these services. Backing field for the property. Initializes a new instance of the class. The RP or OP that creates this instance. Performs discovery on the specified identifier. The identifier to discover services for. A non-null sequence of services discovered for the identifier. Gets the list of services that can perform discovery on identifiers given. An interface implemented by both providers and relying parties. Gets the security settings. Gets the web request handler. Code contract for the type. Prevents a default instance of the class from being created. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Gets the detected version of OpenID implemented by the Provider. Gets the URL that the OpenID Provider receives authentication requests at. Instances of this interface represent incoming authentication requests. This interface provides the details of the request and allows setting the response. Interface exposing incoming messages to the OpenID Provider that require interaction with the host site. Represents an incoming OpenId authentication request. Requests may be infrastructural to OpenID and allow auto-responses, or they may be authentication requests where the Provider site has to make decisions based on its own user database and policies. Adds an extension to the response to send to the relying party. The extension to add to the response message. Removes any response extensions previously added using . This should be called before sending a negative response back to the relying party if extensions were already added, since negative responses cannot carry extensions. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets a value indicating whether the response is ready to be sent to the user agent. This property returns false if there are properties that must be set on this request instance before the response can be sent. Gets or sets the security settings that apply to this request. Defaults to the OpenIdProvider.SecuritySettings on the OpenIdProvider. Attempts to perform relying party discovery of the return URL claimed by the Relying Party. The web request handler. The details of how successful the relying party discovery was. Return URL verification is only attempted if this method is called. See OpenID Authentication 2.0 spec section 9.2.1. Gets the version of OpenID being used by the relying party that sent the request. Gets the URL the consumer site claims to use as its 'base' address. Gets a value indicating whether the consumer demands an immediate response. If false, the consumer is willing to wait for the identity provider to authenticate the user. Gets or sets the provider endpoint claimed in the positive assertion. The default value is the URL that the request came in on from the relying party. This value MUST match the value for the OP Endpoint in the discovery results for the claimed identifier being asserted in a positive response. Adds an optional fragment (#fragment) portion to the ClaimedIdentifier. Useful for identifier recycling. Should not include the # prefix character as that will be added internally. May be null or the empty string to clear a previously set fragment. Unlike the property, which can only be set if using directed identity, this method can be called on any URI claimed identifier. Because XRI claimed identifiers (the canonical IDs) are never recycled, this method shouldnot be called for XRIs. Thrown when this method is called on an XRI, or on a directed identity request before the property is set. Gets a value indicating whether the Provider should help the user select a Claimed Identifier to send back to the relying party. Gets a value indicating whether the requesting Relying Party is using a delegated URL. When delegated identifiers are used, the should not be changed at the Provider during authentication. Delegation is only detectable on requests originating from OpenID 2.0 relying parties. A relying party implementing only OpenID 1.x may use delegation and this property will return false anyway. Gets or sets the Local Identifier to this OpenID Provider of the user attempting to authenticate. Check to see if this value is valid. This may or may not be the same as the Claimed Identifier that the user agent originally supplied to the relying party. The Claimed Identifier endpoint may be delegating authentication to this provider using this provider's local id, which is what this property contains. Use this identifier when looking up this user in the provider's user account list. Gets or sets the identifier that the user agent is claiming at the relying party site. Check to see if this value is valid. This property can only be set if is false, to prevent breaking URL delegation. This will not be the same as this provider's local identifier for the user if the user has set up his/her own identity page that points to this provider for authentication. The provider may use this identifier for displaying to the user when asking for the user's permission to authenticate to the relying party. Thrown from the setter if is true. Gets or sets a value indicating whether the provider has determined that the belongs to the currently logged in user and wishes to share this information with the consumer. Code contract class for the type. Initializes a new instance of the class. Adds an optional fragment (#fragment) portion to the ClaimedIdentifier. Useful for identifier recycling. Should not include the # prefix character as that will be added internally. May be null or the empty string to clear a previously set fragment. Unlike the property, which can only be set if using directed identity, this method can be called on any URI claimed identifier. Because XRI claimed identifiers (the canonical IDs) are never recycled, this method shouldnot be called for XRIs. Thrown when this method is called on an XRI, or on a directed identity request before the property is set. Attempts to perform relying party discovery of the return URL claimed by the Relying Party. The web request handler to use for the RP discovery request. The details of how successful the relying party discovery was. Return URL verification is only attempted if this method is called. See OpenID Authentication 2.0 spec section 9.2.1. Adds an extension to the response to send to the relying party. The extension to add to the response message. Removes any response extensions previously added using . This should be called before sending a negative response back to the relying party if extensions were already added, since negative responses cannot carry extensions. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets a value indicating whether the Provider should help the user select a Claimed Identifier to send back to the relying party. Gets a value indicating whether the requesting Relying Party is using a delegated URL. When delegated identifiers are used, the should not be changed at the Provider during authentication. Delegation is only detectable on requests originating from OpenID 2.0 relying parties. A relying party implementing only OpenID 1.x may use delegation and this property will return false anyway. Gets or sets the Local Identifier to this OpenID Provider of the user attempting to authenticate. Check to see if this value is valid. This may or may not be the same as the Claimed Identifier that the user agent originally supplied to the relying party. The Claimed Identifier endpoint may be delegating authentication to this provider using this provider's local id, which is what this property contains. Use this identifier when looking up this user in the provider's user account list. Gets or sets the identifier that the user agent is claiming at the relying party site. Check to see if this value is valid. This property can only be set if is false, to prevent breaking URL delegation. This will not be the same as this provider's local identifier for the user if the user has set up his/her own identity page that points to this provider for authentication. The provider may use this identifier for displaying to the user when asking for the user's permission to authenticate to the relying party. Thrown from the setter if is true. Gets or sets a value indicating whether the provider has determined that the belongs to the currently logged in user and wishes to share this information with the consumer. Gets the version of OpenID being used by the relying party that sent the request. Gets the URL the consumer site claims to use as its 'base' address. Gets a value indicating whether the consumer demands an immediate response. If false, the consumer is willing to wait for the identity provider to authenticate the user. Gets or sets the provider endpoint claimed in the positive assertion. The default value is the URL that the request came in on from the relying party. This value MUST match the value for the OP Endpoint in the discovery results for the claimed identifier being asserted in a positive response. Gets a value indicating whether the response is ready to be sent to the user agent. This property returns false if there are properties that must be set on this request instance before the response can be sent. Gets or sets the security settings that apply to this request. Defaults to the OpenIdProvider.SecuritySettings on the OpenIdProvider. Code contract for the type. Initializes a new instance of the class. Adds an extension to the response to send to the relying party. The extension to add to the response message. Removes any response extensions previously added using . This should be called before sending a negative response back to the relying party if extensions were already added, since negative responses cannot carry extensions. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Attempts to perform relying party discovery of the return URL claimed by the Relying Party. The web request handler. The details of how successful the relying party discovery was. Return URL verification is only attempted if this method is called. See OpenID Authentication 2.0 spec section 9.2.1. Gets the version of OpenID being used by the relying party that sent the request. Gets the URL the consumer site claims to use as its 'base' address. Gets a value indicating whether the consumer demands an immediate response. If false, the consumer is willing to wait for the identity provider to authenticate the user. Gets or sets the provider endpoint. The default value is the URL that the request came in on from the relying party. Gets or sets the security settings that apply to this request. Defaults to the OpenIdProvider.SecuritySettings on the OpenIdProvider. Gets a value indicating whether the response is ready to be sent to the user agent. This property returns false if there are properties that must be set on this request instance before the response can be sent. Applies a custom security policy to certain OpenID security settings and behaviors. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when a request is received by the Provider. The incoming request. true if this behavior owns this request and wants to stop other behaviors from handling it; false to allow other behaviors to process this request. Implementations may set a new value to but should not change the properties on the instance of itself as that instance may be shared across many requests. Called when the Provider is preparing to send a response to an authentication request. The request that is configured to generate the outgoing response. true if this behavior owns this request and wants to stop other behaviors from handling it; false to allow other behaviors to process this request. Code contract for the type. Initializes a new instance of the class. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when a request is received by the Provider. The incoming request. true if this behavior owns this request and wants to stop other behaviors from handling it; false to allow other behaviors to process this request. Implementations may set a new value to but should not change the properties on the instance of itself as that instance may be shared across many requests. Called when the Provider is preparing to send a response to an authentication request. The request that is configured to generate the outgoing response. true if this behavior owns this request and wants to stop other behaviors from handling it; false to allow other behaviors to process this request. Code contract for the interface. Prevents a default instance of the class from being created. Adds an extension to the response to send to the relying party. The extension to add to the response message. Removes any response extensions previously added using . This should be called before sending a negative response back to the relying party if extensions were already added, since negative responses cannot carry extensions. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets or sets the security settings that apply to this request. Defaults to the OpenIdProvider.SecuritySettings on the OpenIdProvider. Gets a value indicating whether the response is ready to be sent to the user agent. This property returns false if there are properties that must be set on this request instance before the response can be sent. Security settings that are applicable to providers. Security settings that may be applicable to both relying parties and providers. Gets the default minimum hash bit length. Gets the maximum hash bit length default for relying parties. Gets the maximum hash bit length default for providers. Initializes a new instance of the class. A value indicating whether this class is being instantiated for a Provider. Determines whether a named association fits the security requirements. The protocol carrying the association. The value of the openid.assoc_type parameter. true if the association is permitted given the security requirements; otherwise, false. Determines whether a given association fits the security requirements. The association to check. true if the association is permitted given the security requirements; otherwise, false. Gets or sets the minimum hash length (in bits) allowed to be used in an with the remote party. The default is 160. SHA-1 (160 bits) has been broken. The minimum secure hash length is now 256 bits. The default is still a 160 bit minimum to allow interop with common remote parties, such as Yahoo! that only supports 160 bits. For sites that require high security such as to store bank account information and health records, 256 is the recommended value. Gets or sets the maximum hash length (in bits) allowed to be used in an with the remote party. The default is 256 for relying parties and 512 for providers. The longer the bit length, the more secure the identities of your visitors are. Setting a value higher than 256 on a relying party site may reduce performance as many association requests will be denied, causing secondary requests or even authentication failures. Setting a value higher than 256 on a provider increases security where possible without these side-effects. Gets or sets a value indicating whether identifiers that are both OP Identifiers and Claimed Identifiers should ever be recognized as claimed identifiers. The default value is false, per the OpenID 2.0 spec. OpenID 2.0 sections 7.3.2.2 and 11.2 specify that OP Identifiers never be recognized as Claimed Identifiers. However, for some scenarios it may be desirable for an RP to override this behavior and allow this. The security ramifications of setting this property to true have not been fully explored and therefore this setting should only be changed with caution. The default value for the property. The default value for the property. The default value for the property. The default value for the property. The subset of association types and their customized lifetimes. Initializes a new instance of the class. Creates a deep clone of this instance. A new instance that is a deep clone of this instance. Gets a subset of the available association types and their customized maximum lifetimes. Gets or sets a value indicating whether Relying Party discovery will only succeed if done over a secure HTTPS channel. Default is false. Gets or sets the level of verification a Provider performs on an identifier before sending an unsolicited assertion for it. The default value is . Gets or sets a value indicating whether the Provider should ease the burden of storing associations by encoding them in signed, encrypted form into the association handles themselves, storing only a few rotating, private symmetric keys in the Provider's store instead. The default value for this property is true. Gets or sets a value indicating whether OpenID 1.x relying parties that may not be protecting their users from replay attacks are protected from replay attacks by this provider. The default value is true. Nonces for protection against replay attacks were not mandated by OpenID 1.x, which leaves users open to replay attacks. This feature works by preventing associations from being used with OpenID 1.x relying parties, thereby forcing them into "dumb" mode and verifying every claim with this provider. This gives the provider an opportunity to verify its own nonce to protect against replay attacks. Gets or sets a value indicating whether outgoing extensions are always signed. true if outgoing extensions should be signed; otherwise, false. The default is true. This property is internal because Providers should never turn it off, but it is needed for testing the RP's rejection of unsigned extensions. The behavior a Provider takes when verifying that it is authoritative for an identifier it is about to send an unsolicited assertion for. Always verify that the Provider is authoritative for an identifier before sending an unsolicited assertion for it and fail if it is not. Always check that the Provider is authoritative for an identifier before sending an unsolicited assertion for it, but only log failures, and proceed to send the unsolicited assertion. Never verify that the Provider is authoritative for an identifier before sending an unsolicited assertion for it. This setting is useful for web servers that refuse to allow a Provider to introspectively perform an HTTP GET on itself, when sending unsolicited assertions for identifiers that the OP controls. The result codes that may be returned from an attempt at relying party discovery. Relying Party discovery failed to find an XRDS document or the document was invalid. This can happen either when a relying party does not offer a service document at all, or when a man-in-the-middle attack is in progress that prevents the Provider from being able to discover that document. Relying Party discovery yielded a valid XRDS document, but no matching return_to URI was found. This is perhaps the most dangerous rating for a relying party, since it suggests that they are implementing OpenID 2.0 securely, but that a hijack operation may be in progress. Relying Party discovery succeeded, and a matching return_to URI was found. An enumeration of the possible results of an authentication attempt. The authentication was canceled by the user agent while at the provider. The authentication failed because an error was detected in the OpenId communication. The Provider responded to a request for immediate authentication approval with a message stating that additional user agent interaction is required before authentication can be completed. Casting the to a ISetupRequiredAuthenticationResponse in this case can help you retry the authentication using setup (non-immediate) mode. Authentication is completed successfully. The Provider sent a message that did not contain an identity assertion, but may carry OpenID extensions. Instances of this interface represent relying party authentication requests that may be queried/modified in specific ways before being routed to the OpenID Provider. Makes a dictionary of key/value pairs available when the authentication is completed. The arguments to add to the request's return_to URI. Values must not be null. Note that these values are NOT protected against eavesdropping in transit. No privacy-sensitive data should be stored using this method. The values stored here can be retrieved using , which will only return the value if it can be verified as untampered with in transit. Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against eavesdropping in transit. No privacy-sensitive data should be stored using this method. The value stored here can be retrieved using , which will only return the value if it can be verified as untampered with in transit. Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against eavesdropping in transit. No security-sensitive data should be stored using this method. The value stored here can be retrieved using . Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed without requiring a return_to signature to protect against tampering of the callback argument. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against eavesdropping or tampering in transit. No security-sensitive data should be stored using this method. The value stored here can be retrieved using . Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Adds an OpenID extension to the request directed at the OpenID provider. The initialized extension to add to the request. Redirects the user agent to the provider for authentication. Execution of the current page terminates after this call. This method requires an ASP.NET HttpContext. Gets or sets the mode the Provider should use during authentication. Gets the HTTP response the relying party should send to the user agent to redirect it to the OpenID Provider to start the OpenID authentication process. Gets the URL that the user agent will return to after authentication completes or fails at the Provider. Gets the URL that identifies this consumer web application that the Provider will display to the end user. Gets the Claimed Identifier that the User Supplied Identifier resolved to. Null if the user provided an OP Identifier (directed identity). Null is returned if the user is using the directed identity feature of OpenID 2.0 to make it nearly impossible for a relying party site to improperly store the reserved OpenID URL used for directed identity as a user's own Identifier. However, to test for the Directed Identity feature, please test the property rather than testing this property for a null value. Gets a value indicating whether the authenticating user has chosen to let the Provider determine and send the ClaimedIdentifier after authentication. Gets or sets a value indicating whether this request only carries extensions and is not a request to verify that the user controls some identifier. true if this request is merely a carrier of extensions and is not about an OpenID identifier; otherwise, false. Although OpenID is first and primarily an authentication protocol, its extensions can be interesting all by themselves. For instance, a relying party might want to know that its user is over 21 years old, or perhaps a member of some organization. OpenID extensions can provide this, without any need for asserting the identity of the user. Constructing an OpenID request for only extensions can be done by calling OpenIdRelyingParty.CreateRequest with any valid OpenID identifier (claimed identifier or OP identifier). But once this property is set to true, the claimed identifier value in the request is not included in the transmitted message. It is anticipated that an RP would only issue these types of requests to OPs that trusts to make assertions regarding the individual holding an account at that OP, so it is not likely that the RP would allow the user to type in an arbitrary claimed identifier without checking that it resolved to an OP endpoint the RP has on a trust whitelist. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. Gets the discovery result leading to the formulation of this request. The discovery result. An instance of this interface represents an identity assertion from an OpenID Provider. It may be in response to an authentication request previously put to it by a Relying Party site or it may be an unsolicited assertion. Relying party web sites should handle both solicited and unsolicited assertions. This interface does not offer a way to discern between solicited and unsolicited assertions as they should be treated equally. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode null is always returned since the callback arguments could not be signed to protect against tampering. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode an empty dictionary is always returned since the callback arguments could not be signed to protect against tampering. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location, if available. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Code contract for the type. Initializes a new instance of the class. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. This may return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. This MAY return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location, if available. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Applies a custom security policy to certain OpenID security settings and behaviors. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when an authentication request is about to be sent. The request. Implementations should be prepared to be called multiple times on the same outgoing message without malfunctioning. Called when an incoming positive assertion is received. The positive assertion. Contract class for the interface. Prevents a default instance of the class from being created. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when an authentication request is about to be sent. The request. Implementations should be prepared to be called multiple times on the same outgoing message without malfunctioning. Called when an incoming positive assertion is received. The positive assertion. A message a Relying Party sends to a Provider to confirm the validity of a positive assertion that was signed by a Provider-only secret. The significant payload of this message depends entirely upon the assertion message, and therefore is all in the property bag. A common base class for OpenID request messages and indirect responses (since they are ultimately requests). The openid.ns parameter in the message. "http://specs.openid.net/auth/2.0" This particular value MUST be present for the request to be a valid OpenID Authentication 2.0 request. Future versions of the specification may define different values in order to allow message recipients to properly interpret the request. Backing store for the property. Backing store for the property. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. The value for the openid.mode parameter. A value indicating whether the message will be transmitted directly or indirectly. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Sets a flag indicating that this message is received (as opposed to sent). Gets some string from a given version of the OpenID protocol. The protocol version to use for lookup. A function that can retrieve the desired protocol constant. The value of the constant. This method can be used by a constructor to throw an instead of a . Gets the value of the openid.mode parameter. Gets the preferred method of transport for the message. For direct messages this is the OpenID mandated POST. For indirect messages both GET and POST are allowed. Gets the recipient of the message. The OP endpoint, or the RP return_to. Gets the version of the protocol this message is prepared to implement. Version 2.0 Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the extra parameters included in the message. An empty dictionary. Gets a value indicating whether this message was deserialized as an incoming message. Gets the protocol used by this message. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. Initializes a new instance of the class based on the contents of some signed message whose signature must be verified. The message whose signature should be verified. The channel. This is used only within the constructor and is not stored in a field. Gets or sets a value indicating whether the signature being verified by this request is in fact valid. true if the signature is valid; otherwise, false. This property is automatically set as the message is received by the channel's signing binding element. Gets or sets the ReturnTo that existed in the original signed message. This exists strictly for convenience in recreating the message. The message sent from the Provider to the Relying Party to confirm/deny the validity of an assertion that was signed by a private Provider secret. A common base class for OpenID direct message responses. The openid.ns parameter in the message. "http://specs.openid.net/auth/2.0" OpenID 2.0 Section 5.1.2: This particular value MUST be present for the response to be a valid OpenID 2.0 response. Future versions of the specification may define different values in order to allow message recipients to properly interpret the request. Backing store for the properties. Backing store for the properties. The dictionary of parameters that are not part of the OpenID specification. Initializes a new instance of the class. The OpenID version of the response message. The originating request. May be null in case the request is unrecognizable and this is an error response. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Sets a flag indicating that this message is received (as opposed to sent). Gets the version of the protocol this message is prepared to implement. Version 2.0 Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the extra, non-OAuth parameters included in the message. Gets the originating request message that caused this response to be formed. This property may be null if the request message was undecipherable. Gets a value indicating whether this message was deserialized as an incoming message. Gets the protocol used by this message. Gets the originating request message that caused this response to be formed. Initializes a new instance of the class for use by the Relying Party. The OpenID version of the response message. The request that this message is responding to. Gets or sets a value indicating whether the signature of the verification request is valid. Gets or sets the handle the relying party should invalidate if is true. The "invalidate_handle" value sent in the verification request, if the OP confirms it is invalid. If present in a verification response with "is_valid" set to "true", the Relying Party SHOULD remove the corresponding association from its store and SHOULD NOT send further authentication requests with this handle. This two-step process for invalidating associations is necessary to prevent an attacker from invalidating an association at will by adding "invalidate_handle" parameters to an authentication response. For OpenID 1.1, we allow this to be present but empty to put up with poor implementations such as Blogger. An authentication request from a Relying Party to a Provider. This message type satisfies OpenID 2.0 section 9.1. An indirect request from a Relying Party to a Provider where the response is expected to be signed. Backing store for the property. Initializes a new instance of the class. The OpenID version to use. The Provider endpoint that receives this message. for asynchronous javascript clients; to allow the Provider to interact with the user in order to complete authentication. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Adds parameters to the return_to querystring. The keys=value pairs to add to the return_to query string. This method is useful if the Relying Party wants to recall some value when and if a positive assertion comes back from the Provider. Adds a parameter to the return_to querystring. The name of the parameter. The value of the argument. This method is useful if the Relying Party wants to recall some value when and if a positive assertion comes back from the Provider. Gets the value of the openid.mode parameter based on the protocol version and immediate flag. The OpenID version to use. for asynchronous javascript clients; to allow the Provider to interact with the user in order to complete authentication. checkid_immediate or checkid_setup Gets the list of extensions that are included with this message. Implementations of this interface should ensure that this property never returns null. Gets a value indicating whether the Provider is allowed to interact with the user as part of authentication. true if using OpenID immediate mode; otherwise, false. Gets or sets the handle of the association the RP would like the Provider to use for signing a positive assertion in the response message. A handle for an association between the Relying Party and the OP that SHOULD be used to sign the response. If no association handle is sent, the transaction will take place in Stateless Mode (Verifying Directly with the OpenID Provider). Gets or sets the URL the Provider should redirect the user agent to following the authentication attempt. URL to which the OP SHOULD return the User-Agent with the response indicating the status of the request. If this value is not sent in the request it signifies that the Relying Party does not wish for the end user to be returned. The return_to URL MAY be used as a mechanism for the Relying Party to attach context about the authentication request to the authentication response. This document does not define a mechanism by which the RP can ensure that query parameters are not modified by outside parties; such a mechanism can be defined by the RP itself. Gets or sets the Relying Party discovery URL the Provider may use to verify the source of the authentication request. URL pattern the OP SHOULD ask the end user to trust. See Section 9.2 (Realms). This value MUST be sent if openid.return_to is omitted. Default: The URL. Gets or sets a value indicating whether the return_to value should be signed. Initializes a new instance of the class. The OpenID version to use. The Provider endpoint that receives this message. for asynchronous javascript clients; to allow the Provider to interact with the user in order to complete authentication. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets or sets the Claimed Identifier. "openid.claimed_id" and "openid.identity" SHALL be either both present or both absent. If neither value is present, the assertion is not about an identifier, and will contain other information in its payload, using extensions (Extensions). It is RECOMMENDED that OPs accept XRI identifiers with or without the "xri://" prefix, as specified in the Normalization (Normalization) section. Gets or sets the OP Local Identifier. The OP-Local Identifier. If a different OP-Local Identifier is not specified, the claimed identifier MUST be used as the value for openid.identity. Note: If this is set to the special value "http://specs.openid.net/auth/2.0/identifier_select" then the OP SHOULD choose an Identifier that belongs to the end user. This parameter MAY be omitted if the request is not about an identifier (for instance if an extension is in use that makes the request meaningful without it; see openid.claimed_id above). The base class that all successful association response messages derive from. Association response messages are described in OpenID 2.0 section 8.2. This type covers section 8.2.1. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets or sets the association handle is used as a key to refer to this association in subsequent messages. A string 255 characters or less in length. It MUST consist only of ASCII characters in the range 33-126 inclusive (printable non-whitespace characters). Gets or sets the preferred association type. The association type defines the algorithm to be used to sign subsequent messages. Value: A valid association type from Section 8.3. Gets or sets the value of the "openid.session_type" parameter from the request. If the OP is unwilling or unable to support this association type, it MUST return an unsuccessful response (Unsuccessful Response Parameters). Value: A valid association session type from Section 8.4 (Association Session Types). Note: Unless using transport layer encryption, "no-encryption" MUST NOT be used. Gets or sets the lifetime, in seconds, of this association. The Relying Party MUST NOT use the association after this time has passed. An integer, represented in base 10 ASCII. Members found on error response messages sent from a Provider to a Relying Party in response to direct and indirect message requests that result in an error. Gets or sets a human-readable message indicating why the request failed. Gets or sets the contact address for the administrator of the server. The contact address may take any form, as it is intended to be displayed to a person. Gets or sets a reference token, such as a support ticket number or a URL to a news blog, etc. A common base class from which indirect response messages should derive. Backing store for the property. Initializes a new instance of the class. The request that caused this response message to be constructed. The value of the openid.mode parameter. Initializes a new instance of the class for unsolicited assertion scenarios. The OpenID version supported at the Relying Party. The URI at which the Relying Party receives OpenID indirect messages. The value to use for the openid.mode parameter. Gets the property of a message. The message to fetch the protocol version from. The value of the property. This method can be used by a constructor to throw an instead of a . Gets the property of a message. The message to fetch the ReturnTo from. The value of the property. This method can be used by a constructor to throw an instead of a . Gets the list of extensions that are included with this message. Implementations of this interface should ensure that this property never returns null. Gets the signed extensions on this message. Gets the unsigned extensions on this message. Gets the originating request message, if applicable. An indirect message from a Provider to a Relying Party where at least part of the payload is signed so the Relying Party can verify it has not been tampered with. The allowed date/time formats for the response_nonce parameter. This array of formats is not yet a complete list. Backing field for the property. The field initializer being DateTime.UtcNow allows for OpenID 1.x messages to pass through the StandardExpirationBindingElement. Backing store for the property. Initializes a new instance of the class. The authentication request that caused this assertion to be generated. Initializes a new instance of the class in order to perform signature verification at the Provider. The previously signed message. The channel. This is used only within the constructor and is not stored in a field. Initializes a new instance of the class for unsolicited assertions. The OpenID version to use. The return_to URL of the Relying Party. This value will commonly be from , but for unsolicited assertions may come from the Provider performing RP discovery to find the appropriate return_to URL to use. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the value of a named parameter in the return_to URL without signature protection. The full name of the parameter whose value is being sought. The value of the parameter if it is present and unaltered from when the Relying Party signed it; null otherwise. This method will always return null on the Provider-side, since Providers cannot verify the private signature made by the relying party. Gets the names of the callback parameters added to the original authentication request without signature protection. A sequence of the callback parameter names. Gets a dictionary of all the message part names and values that are included in the message signature. The channel. A dictionary of the signed message parts. Determines whether one querystring contains every key=value pair that another querystring contains. The querystring that should contain at least all the key=value pairs of the other. The querystring containing the set of key=value pairs to test for in the other. true if contains all the query parameters that does; false otherwise. Verifies that the openid.return_to field matches the URL of the actual HTTP request. From OpenId Authentication 2.0 section 11.1: To verify that the "openid.return_to" URL matches the URL that is processing this assertion: * The URL scheme, authority, and path MUST be the same between the two URLs. * Any query parameters that are present in the "openid.return_to" URL MUST also be present with the same values in the URL of the HTTP request the RP received. Gets the level of protection this message requires. for OpenID 2.0 messages. for OpenID 1.x messages. Although the required protection is reduced for OpenID 1.x, this library will provide Relying Party hosts with all protections by adding its own specially-crafted nonce to the authentication request messages except for stateless RPs in OpenID 1.x messages. Gets or sets the message signature. Base 64 encoded signature calculated as specified in Section 6 (Generating Signatures). Gets or sets the signed parameter order. Comma-separated list of signed fields. "op_endpoint,identity,claimed_id,return_to,assoc_handle,response_nonce" This entry consists of the fields without the "openid." prefix that the signature covers. This list MUST contain at least "op_endpoint", "return_to" "response_nonce" and "assoc_handle", and if present in the response, "claimed_id" and "identity". Additional keys MAY be signed as part of the message. See Generating Signatures. Gets or sets the association handle used to sign the message. The handle for the association that was used to sign this assertion. Gets or sets the nonce that will protect the message from replay attacks. Gets the context within which the nonce must be unique. Gets or sets the UTC date/time the message was originally sent onto the network. The property setter should ensure a UTC date/time, and throw an exception if this is not possible. Thrown when a DateTime that cannot be converted to UTC is set. Gets or sets the association handle that the Provider wants the Relying Party to not use any more. If the Relying Party sent an invalid association handle with the request, it SHOULD be included here. For OpenID 1.1, we allow this to be present but empty to put up with poor implementations such as Blogger. Gets or sets the Provider Endpoint URI. Gets or sets the return_to parameter as the relying party provided it in . Verbatim copy of the return_to URL parameter sent in the request, before the Provider modified it. Gets or sets a value indicating whether the URI's query string is unaltered between when the Relying Party sent the original request and when the response was received. This property is not persisted in the transmitted message, and has no effect on the Provider-side of the communication. Gets or sets the nonce that will protect the message from replay attacks. A string 255 characters or less in length, that MUST be unique to this particular successful authentication response. The nonce MUST start with the current time on the server, and MAY contain additional ASCII characters in the range 33-126 inclusive (printable non-whitespace characters), as necessary to make each response unique. The date and time MUST be formatted as specified in section 5.6 of [RFC3339] (Klyne, G. and C. Newman, “Date and Time on the Internet: Timestamps,” .), with the following restrictions: All times must be in the UTC timezone, indicated with a "Z". No fractional seconds are allowed 2005-05-15T17:11:51ZUNIQUE Gets or sets the nonce that will protect the message from replay attacks. A string 255 characters or less in length, that MUST be unique to this particular successful authentication response. The nonce MUST start with the current time on the server, and MAY contain additional ASCII characters in the range 33-126 inclusive (printable non-whitespace characters), as necessary to make each response unique. The date and time MUST be formatted as specified in section 5.6 of [RFC3339] (Klyne, G. and C. Newman, “Date and Time on the Internet: Timestamps,” .), with the following restrictions: All times must be in the UTC timezone, indicated with a "Z". No fractional seconds are allowed 2005-05-15T17:11:51ZUNIQUE Gets the querystring key=value pairs in the return_to URL. Code contract class for the IOpenIdMessageExtension interface. Prevents a default instance of the class from being created. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets or sets a value indicating whether this extension was signed by the sender. true if this instance is signed by the sender; otherwise, false. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. The message OpenID Providers send back to Relying Parties to refuse to assert the identity of a user. Initializes a new instance of the class. The request that the relying party sent. Initializes a new instance of the class. The request that the relying party sent. The channel to use to simulate construction of the user_setup_url, if applicable. May be null, but the user_setup_url will not be constructed. Initializes a new instance of the class. The version. The relying party return to. The value of the openid.mode parameter. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Constructs the value for the user_setup_url parameter to be sent back in negative assertions in response to OpenID 1.x RP's checkid_immediate requests. The immediate request. The channel to use to simulate construction of the message. The value to use for the user_setup_url parameter. Gets the value for the openid.mode that is appropriate for this response. The request that we're responding to. The value of the openid.mode parameter to use. Gets or sets the URL the relying party can use to upgrade their authentication request from an immediate to a setup message. URL to redirect User-Agent to so the End User can do whatever's necessary to fulfill the assertion. This part is only included in OpenID 1.x responses. Gets a value indicating whether this is in response to an authentication request made in immediate mode. true if the request was in immediate mode; otherwise, false. An identity assertion from a Provider to a Relying Party, stating that the user operating the user agent is in fact some specific user known to the Provider. Initializes a new instance of the class. The authentication request that caused this assertion to be generated. Initializes a new instance of the class for unsolicited assertions. The OpenID version to use. The return_to URL of the Relying Party. This value will commonly be from , but for unsolicited assertions may come from the Provider performing RP discovery to find the appropriate return_to URL to use. Initializes a new instance of the class. The relying party return_to endpoint that will receive this positive assertion. Gets or sets the Claimed Identifier. "openid.claimed_id" and "openid.identity" SHALL be either both present or both absent. If neither value is present, the assertion is not about an identifier, and will contain other information in its payload, using extensions (Extensions). Gets or sets the OP Local Identifier. The OP-Local Identifier. OpenID Providers MAY assist the end user in selecting the Claimed and OP-Local Identifiers about which the assertion is made. The openid.identity field MAY be omitted if an extension is in use that makes the response meaningful without it (see openid.claimed_id above). Wraps an existing Identifier and prevents it from performing discovery. The wrapped identifier. Initializes a new instance of the class. The ordinary Identifier whose discovery is being masked. Whether this Identifier should claim to be SSL-secure, although no discovery will never generate service endpoints anyway. Returns a that represents the current . A that represents the current . Tests equality between two s. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Gets the hash code for an for storage in a hashtable. A hash code for the current . Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. A set of utilities especially useful to OpenID. The prefix to designate this library's proprietary parameters added to the protocol. A static variable that carries the results of a check for the presence of assemblies that are required for the Diffie-Hellman algorithm. Creates a random association handle. The association handle. Gets the OpenID protocol instance for the version in a message. The message. The OpenID protocol instance. Changes the position of some element in a list. The type of elements stored in the list. The list to be modified. The new position for the given element. The element to move within the list. Thrown if the element does not already exist in the list. Corrects any URI decoding the Provider may have inappropriately done to our return_to URL, resulting in an otherwise corrupted base64 encoded value. The base64 encoded value. May be null. The value; corrected if corruption had occurred. AOL may have incorrectly URI-decoded the token for us in the return_to, resulting in a token URI-decoded twice by the time we see it, and no longer being a valid base64 string. It turns out that the only symbols from base64 that is also encoded in URI encoding rules are the + and / characters. AOL decodes the %2b sequence to the + character and the %2f sequence to the / character (it shouldn't decode at all). When we do our own URI decoding, the + character becomes a space (corrupting base64) but the / character remains a /, so no further corruption happens to this character. So to correct this we just need to change any spaces we find in the token back to + characters. Rounds the given downward to the whole second. The DateTime object to adjust. The new value. Gets the fully qualified Realm URL, given a Realm that may be relative to a particular page. The hosting page that has the realm value to resolve. The realm, which may begin with "*." or "~/". The request context. The fully-qualified realm. Gets the extension factories from the extension aggregator on an OpenID channel. The channel. The list of factories that will be used to generate extension instances. This is an extension method on rather than an instance method on because the OpenIdRelyingParty and OpenIdProvider classes don't strong-type to to allow flexibility in the specific type of channel the user (or tests) can plug in. Loads the Diffie-Hellman assemblies. Thrown if the DH assemblies are missing. Gets a value indicating whether Diffie Hellman is available in this installation. true if Diffie-Hellman functionality is present; otherwise, false. Utility methods for working with XRDS documents. Finds the Relying Party return_to receiving endpoints. The XrdsDocument instance to use in this process. A sequence of Relying Party descriptors for the return_to endpoints. This is useful for Providers to send unsolicited assertions to Relying Parties, or for Provider's to perform RP discovery/verification as part of authentication. Finds the icons the relying party wants an OP to display as part of authentication, per the UI extension spec. The XrdsDocument to search. A sequence of the icon URLs in preferred order. Enumerates the XRDS service elements that describe OpenID Relying Party return_to URLs that can receive authentication assertions. The XrdsDocument instance to use in this process. A sequence of service elements. Describes some OpenID Provider endpoint and its capabilities. This is an immutable type. Initializes a new instance of the class. The OpenID Provider endpoint URL. The OpenID version supported by this particular endpoint. Initializes a new instance of the class. The URI the provider listens on for OpenID requests. The set of services offered by this endpoint. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Gets the URL that the OpenID Provider listens for incoming OpenID messages on. Gets the OpenID protocol version this endpoint supports. If an endpoint supports multiple versions, each version must be represented by its own object. Gets the collection of service type URIs found in the XRDS document describing this Provider. A trust root to validate requests and match return URLs against. This fills the OpenID Authentication 2.0 specification for realms. See http://openid.net/specs/openid-authentication-2_0.html#realms A regex used to detect a wildcard that is being used in the realm. A (more or less) comprehensive list of top-level (i.e. ".com") domains, for use by in order to disallow overly-broad realms that allow all web sites ending with '.com', for example. The Uri of the realm, with the wildcard (if any) removed. Initializes a new instance of the class. The realm URL to use in the new instance. Initializes a new instance of the class. The realm URL of the Relying Party. Initializes a new instance of the class. The realm URI builder. This is useful because UriBuilder can construct a host with a wildcard in the Host property, but once there it can't be converted to a Uri. Implicitly converts the string-form of a URI to a object. The URI that the new Realm instance will represent. The result of the conversion. Implicitly converts a to a object. The URI to convert to a realm. The result of the conversion. Implicitly converts a object to its form. The realm to convert to a string value. The result of the conversion. Checks whether one is equal to another. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Returns the hash code used for storing this object in a hash table. A hash code for the current . Returns the string form of this . A that represents the current . Validates a URL against this trust root. A string specifying URL to check. Whether the given URL is within this trust root. Validates a URL against this trust root. The URL to check. Whether the given URL is within this trust root. Searches for an XRDS document at the realm URL, and if found, searches for a description of a relying party endpoints (OpenId login pages). The mechanism to use for sending HTTP requests. Whether redirects may be followed when discovering the Realm. This may be true when creating an unsolicited assertion, but must be false when performing return URL verification per 2.0 spec section 9.2.1. The details of the endpoints if found; or null if no service document was discovered. Searches for an XRDS document at the realm URL. The mechanism to use for sending HTTP requests. Whether redirects may be followed when discovering the Realm. This may be true when creating an unsolicited assertion, but must be false when performing return URL verification per 2.0 spec section 9.2.1. The XRDS document if found; or null if no service document was discovered. Calls if the argument is non-null. Otherwise throws . The realm URI builder. The result of UriBuilder.ToString() This simple method is worthwhile because it checks for null before dereferencing the UriBuilder. Since this is called from within a constructor's base(...) call, this avoids a when we should be throwing an . Gets the suggested realm to use for the calling web application. A realm that matches this applications root URL. For most circumstances the Realm generated by this property is sufficient. However a wildcard Realm, such as "http://*.microsoft.com/" may at times be more desirable than "http://www.microsoft.com/" in order to allow identifier correlation across related web sites for directed identity Providers. Requires an HttpContext.Current context. Gets a value indicating whether a '*.' prefix to the hostname is used in the realm to allow subdomains or hosts to be added to the URL. Gets the host component of this instance. Gets the scheme name for this URI. Gets the port number of this URI. Gets the absolute path of the URI. Gets the System.Uri.AbsolutePath and System.Uri.Query properties separated by a question mark (?). Gets the original string. The original string. Gets the realm URL. If the realm includes a wildcard, it is not included here. Gets the Realm discovery URL, where the wildcard (if present) is replaced with "www.". See OpenID 2.0 spec section 9.2.1 for the explanation on the addition of the "www" prefix. Gets a value indicating whether this realm represents a reasonable (sane) set of URLs. 'http://*.com/', for example is not a reasonable pattern, as it cannot meaningfully specify the site claiming it. This function attempts to find many related examples, but it can only work via heuristics. Negative responses from this method should be treated as advisory, used only to alert the user to examine the trust root carefully. Provides conversions to and from strings for messages that include members of this type. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Encodes the specified value as the original value that was formerly decoded. The value. Guaranteed to never be null. The in string form, ready for message transport. A description of some OpenID Relying Party endpoint. This is an immutable type. Initializes a new instance of the class. The return to. The Type URIs of supported services advertised on a relying party's XRDS document. Derives the highest OpenID protocol that this library and the OpenID Provider have in common. The supported service type URIs. The best OpenID protocol version to use when communicating with this Provider. Gets the URL to the login page on the discovered relying party web site. Gets the OpenId protocol that the discovered relying party supports. Diffie-Hellman encryption methods used by both the relying party and provider. An array of known Diffie Hellman sessions, sorted by decreasing hash size. Finds the hashing algorithm to use given an openid.session_type value. The protocol version of the message that named the session_type to be used. The value of the openid.session_type parameter. The hashing algorithm to use. Thrown if no match could be found for the given . Looks up the value to be used for the openid.session_type parameter. The protocol version that is to be used. The hash size (in bits) that the DH session must have. The value to be used for the openid.session_type parameter, or null if no match was found. Encrypts/decrypts a shared secret. The hashing algorithm that is agreed by both parties to use as part of the secret exchange. If the secret is being encrypted, this is the new Diffie Hellman object to use. If the secret is being decrypted, this must be the same Diffie Hellman object used to send the original request message. The public key of the remote party. The secret to encode, or the encoded secret. Whichever one is given will generate the opposite in the return value. The encrypted version of the secret if the secret itself was given in . The secret itself if the encrypted version of the secret was given in . Ensures that the big integer represented by a given series of bytes is a positive integer. The bytes that make up the big integer. A byte array (possibly new if a change was required) whose integer is guaranteed to be positive. This is to be consistent with OpenID spec section 4.2. Returns the value used to initialize the static field storing DH session types. A non-null, non-empty array. > This is a method rather than being inlined to the field initializer to try to avoid the CLR bug that crops up sometimes if we initialize arrays using object initializer syntax. Provides access to a Diffie-Hellman session algorithm and its name. Initializes a new instance of the class. The hashing algorithm used in this particular Diffie-Hellman session type. A function that will return the value of the openid.session_type parameter for a given version of OpenID. Gets the function that will return the value of the openid.session_type parameter for a given version of OpenID. Gets the hashing algorithm used in this particular Diffie-Hellman session type An association that uses the HMAC-SHA family of algorithms for message signing. A list of HMAC-SHA algorithms in order of decreasing bit lengths. The specific variety of HMAC-SHA this association is based on (whether it be HMAC-SHA1, HMAC-SHA256, etc.) Initializes a new instance of the class. The specific variety of HMAC-SHA this association is based on (whether it be HMAC-SHA1, HMAC-SHA256, etc.) The association handle. The association secret. The time duration the association will be good for. Creates an HMAC-SHA association. The OpenID protocol version that the request for an association came in on. The value of the openid.assoc_type parameter. The association handle. The association secret. How long the association will be good for. The newly created association. Creates an association with the specified handle, secret, and lifetime. The handle. The secret. Total lifetime. The newly created association. Returns the length of the shared secret (in bytes). The protocol version being used that will be used to lookup the text in The value of the protocol argument specifying the type of association. For example: "HMAC-SHA1". The length (in bytes) of the association secret. Thrown if no association can be found by the given name. Looks for the first association type in a preferred-order list that is likely to be supported given a specific OpenID version and the security settings, and perhaps a matching Diffie-Hellman session type. The OpenID version that dictates which associations are available. A value indicating whether to consider higher strength security to be better. Use true for initial association requests from the Relying Party; use false from Providers when the Relying Party asks for an unrecognized association in order to pick a suggested alternative that is likely to be supported on both sides. The set of requirements the selected association type must comply to. Use true for HTTP associations, false for HTTPS associations. The resulting association type's well known protocol name. (i.e. HMAC-SHA256) The resulting session type's well known protocol name, if a matching one is available. (i.e. DH-SHA256) True if a qualifying association could be found; false otherwise. Determines whether a named Diffie-Hellman session type and association type can be used together. The protocol carrying the names of the session and association types. The value of the openid.assoc_type parameter. The value of the openid.session_type parameter. true if the named association and session types are compatible; otherwise, false. Gets the string to pass as the assoc_type value in the OpenID protocol. The protocol version of the message that the assoc_type value will be included in. The value that should be used for the openid.assoc_type parameter. Returns the specific hash algorithm used for message signing. The hash algorithm used for message signing. Returns the value used to initialize the static field storing association types. A non-null, non-empty array. > This is a method rather than being inlined to the field initializer to try to avoid the CLR bug that crops up sometimes if we initialize arrays using object initializer syntax. Gets the length (in bits) of the hash this association creates when signing. Provides information about some HMAC-SHA hashing algorithm that OpenID supports. Creates the using a given shared secret for the mac. The HMAC secret. The algorithm. Gets or sets the function that takes a particular OpenID version and returns the value of the openid.assoc_type parameter in that protocol. Gets or sets the name of the HMAC-SHA algorithm. (e.g. "HMAC-SHA256") Gets or sets the base hash algorithm. Gets the size of the hash (in bytes). Represents an association request that is sent using HTTPS and otherwise communicates the shared secret in plain text. An OpenID direct request from Relying Party to Provider to initiate an association. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets or sets the preferred association type. The association type defines the algorithm to be used to sign subsequent messages. Value: A valid association type from Section 8.3. Gets or sets the preferred association session type. This defines the method used to encrypt the association's MAC key in transit. Value: A valid association session type from Section 8.4 (Association Session Types). Note: Unless using transport layer encryption, "no-encryption" MUST NOT be used. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. An OpenID direct request from Relying Party to Provider to initiate an association that uses Diffie-Hellman encryption. The (only) value we use for the X variable in the Diffie-Hellman algorithm. The default gen value for the Diffie-Hellman algorithm. The default modulus value for the Diffie-Hellman algorithm. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. Called by the Relying Party to initialize the Diffie-Hellman algorithm and consumer public key properties. Gets or sets the openid.dh_modulus value. May be null if the default value given in the OpenID spec is to be used. Gets or sets the openid.dh_gen value. May be null if the default value given in the OpenID spec is to be used. Gets or sets the openid.dh_consumer_public value. This property is initialized with a call to . Gets the Diffie-Hellman algorithm. This property is initialized with a call to . The successful Diffie-Hellman association response message. Association response messages are described in OpenID 2.0 section 8.2. This type covers section 8.2.3. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Gets or sets the Provider's Diffie-Hellman public key. btwoc(g ^ xb mod p) Gets or sets the MAC key (shared secret), encrypted with the secret Diffie-Hellman value. H(btwoc(g ^ (xa * xb) mod p)) XOR MAC key. H is either "SHA1" or "SHA256" depending on the session type. The successful unencrypted association response message. Association response messages are described in OpenID 2.0 section 8.2. This type covers section 8.2.2. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Gets or sets the MAC key (shared secret) for this association, Base 64 (Josefsson, S., “The Base16, Base32, and Base64 Data Encodings,” .) [RFC3548] encoded. The Provider's response to a Relying Party that requested an association that the Provider does not support. This message type described in OpenID 2.0 section 8.2.4. A message sent from a Provider to a Relying Party in response to a direct message request that resulted in an error. This message must be sent with an HTTP status code of 400. This class satisfies OpenID 2.0 section 5.1.2.2. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Gets the HTTP status code that the direct respones should be sent with. Gets the HTTP headers to add to the response. May be an empty collection, but must not be null. Gets or sets a human-readable message indicating why the request failed. Gets or sets the contact address for the administrator of the server. The contact address may take any form, as it is intended to be displayed to a person. Gets or sets a reference token, such as a support ticket number or a URL to a news blog, etc. A hard-coded string indicating an error occurred. "unsupported-type" Initializes a new instance of the class. The OpenID version of the response message. The originating request. Gets or sets an association type supported by the OP from Section 8.3 (Association Types). Gets or sets a valid association session type from Section 8.4 (Association Session Types) that the OP supports. A message sent from a Provider to a Relying Party in response to an indirect message request that resulted in an error. This class satisfies OpenID 2.0 section 5.2.3. Initializes a new instance of the class. The request that resulted in this error on the Provider. Initializes a new instance of the class. The OpenID version this message should comply with. The recipient of this message. Gets or sets a human-readable message indicating why the request failed. Gets or sets the contact address for the administrator of the server. The contact address may take any form, as it is intended to be displayed to a person. Gets or sets a reference token, such as a support ticket number or a URL to a news blog, etc. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to An absolute URI is required for this value.. Looks up a localized string similar to This is already a PPID Identifier.. Looks up a localized string similar to The requested association type '{0}' with session type '{1}' is unrecognized or not supported by this Provider due to security requirements.. Looks up a localized string similar to The length of the shared secret ({0}) does not match the length required by the association type ('{1}').. Looks up a localized string similar to The length of the encrypted shared secret ({0}) does not match the length of the hashing algorithm ({1}).. Looks up a localized string similar to No association store has been given but is required for the current configuration.. Looks up a localized string similar to If an association store is given, a nonce store must also be provided.. Looks up a localized string similar to An attribute with type URI '{0}' has already been added.. Looks up a localized string similar to Only {0} values for attribute '{1}' were requested, but {2} were supplied.. Looks up a localized string similar to The private data supplied does not meet the requirements of any known Association type. Its length may be too short, or it may have been corrupted.. Looks up a localized string similar to The {0} extension failed to deserialize and will be skipped. {1}. Looks up a localized string similar to Callback arguments are only supported when a {0} is provided to the {1}.. Looks up a localized string similar to A Simple Registration request can only generate a response on the receiving end.. Looks up a localized string similar to The openid.claimed_id and openid.identity parameters must both be present or both be absent.. Looks up a localized string similar to The ClaimedIdentifier property cannot be set when IsDelegatedIdentifier is true to avoid breaking OpenID URL delegation.. Looks up a localized string similar to This OpenID exploits features that this relying party cannot reliably verify. Please try logging in with a human-readable OpenID or from a different OpenID Provider.. Looks up a localized string similar to The ClaimedIdentifier property must be set first.. Looks up a localized string similar to An extension with this property name ('{0}') has already been registered.. Looks up a localized string similar to The extension '{0}' has already been registered.. Looks up a localized string similar to An authentication request has already been created using CreateRequest().. Looks up a localized string similar to Only OpenIDs issued directly by their OpenID Provider are allowed here.. Looks up a localized string similar to The associate request instance must be a Diffie-Hellman instance.. Looks up a localized string similar to The following properties must be set before the Diffie-Hellman algorithm can generate a public key: {0}. Looks up a localized string similar to URI is not SSL yet requireSslDiscovery is set to true.. Looks up a localized string similar to An extension sharing namespace '{0}' has already been added. Only one extension per namespace is allowed in a given request.. Looks up a localized string similar to Cannot lookup extension support on a rehydrated ServiceEndpoint.. Looks up a localized string similar to Fragment segments do not apply to XRI identifiers.. Looks up a localized string similar to The HTML head tag must include runat="server".. Looks up a localized string similar to ClaimedIdentifier and LocalIdentifier must be the same when IsIdentifierSelect is true.. Looks up a localized string similar to The openid.identity and openid.claimed_id parameters must either be both present or both absent from the message.. Looks up a localized string similar to The Provider requested association type '{0}' and session type '{1}', which are not compatible with each other.. Looks up a localized string similar to {0} (Contact: {1}, Reference: {2}). Looks up a localized string similar to Cannot encode '{0}' because it contains an illegal character for Key-Value Form encoding. (line {1}: '{2}'). Looks up a localized string similar to Invalid XmlDSig signature on XRDS document.. Looks up a localized string similar to Cannot decode Key-Value Form because a line was found without a '{0}' character. (line {1}: '{2}'). Looks up a localized string similar to The scheme must be http or https but was '{0}'.. Looks up a localized string similar to The value '{0}' is not a valid URI.. Looks up a localized string similar to Not a recognized XRI format.. Looks up a localized string similar to The OpenID Provider issued an assertion for an Identifier whose discovery information did not match. Assertion endpoint info: {0} Discovered endpoint info: {1}. Looks up a localized string similar to The list of keys do not match the provided dictionary.. Looks up a localized string similar to The '{0}' and '{1}' parameters must both be or not be '{2}'.. Looks up a localized string similar to The maximum time allowed to complete authentication has been exceeded. Please try again.. Looks up a localized string similar to X.509 signing certificate issued to {0}, but a certificate for {1} was expected.. Looks up a localized string similar to Missing {0} element.. Looks up a localized string similar to No recognized association type matches the requested length of {0}.. Looks up a localized string similar to No recognized association type matches the requested name of '{0}'.. Looks up a localized string similar to Unless using transport layer encryption, "no-encryption" MUST NOT be used.. Looks up a localized string similar to No identifier has been set.. Looks up a localized string similar to No XRDS document containing OpenID relying party endpoint information could be found at {0}.. Looks up a localized string similar to Diffie-Hellman session type '{0}' not found for OpenID {1}.. Looks up a localized string similar to This operation is not supported by serialized authentication responses. Try this operation from the LoggedIn event handler.. Looks up a localized string similar to No OpenID endpoint found.. Looks up a localized string similar to No OpenID url is provided.. Looks up a localized string similar to This operation is only allowed when IAuthenticationResponse.State == AuthenticationStatus.SetupRequired.. Looks up a localized string similar to OpenID popup window or iframe did not recognize an OpenID response in the request.. Looks up a localized string similar to An positive OpenID assertion was received from OP endpoint {0} and was rejected based on this site's security settings.. Looks up a localized string similar to Unable to find the signing secret by the handle '{0}'.. Looks up a localized string similar to The {0} property must be set first.. Looks up a localized string similar to This property value is not supported by this control.. Looks up a localized string similar to Unable to determine the version of the OpenID protocol implemented by the Provider at endpoint '{0}'.. Looks up a localized string similar to An HTTP request to the realm URL ({0}) resulted in a redirect, which is not allowed during relying party discovery.. Looks up a localized string similar to Sorry. This site only accepts OpenIDs that are HTTPS-secured, but {0} is not a secure Identifier.. Looks up a localized string similar to The response is not ready. Use IsResponseReady to check whether a response is ready first.. Looks up a localized string similar to return_to '{0}' not under realm '{1}'.. Looks up a localized string similar to The {0} parameter ({1}) does not match the actual URL ({2}) the request was made with.. Looks up a localized string similar to The ReturnTo property must not be null to support this operation.. Looks up a localized string similar to The openid.return_to parameter is required in the request message in order to construct a response, but that parameter was missing.. Looks up a localized string similar to The following parameter(s) are not included in the signature but must be: {0}. Looks up a localized string similar to Invalid birthdate value. Must be in the form yyyy-MM-dd.. Looks up a localized string similar to The type must implement {0}.. Looks up a localized string similar to The property {0} had unexpected value {1}.. Looks up a localized string similar to Unexpected HTTP status code {0} {1} received in direct response.. Looks up a localized string similar to An unsolicited assertion cannot be sent for the claimed identifier {0} because this is not an authorized Provider for that identifier.. Looks up a localized string similar to Rejecting unsolicited assertions requires a nonce store and an association store.. Looks up a localized string similar to Unsolicited assertions are not allowed at this relying party.. Looks up a localized string similar to Unsolicited assertions are not allowed from 1.0 OpenID Providers.. Looks up a localized string similar to Providing a DateTime whose Kind is Unspecified is not allowed.. Looks up a localized string similar to Unrecognized or missing canonicalization method.. Looks up a localized string similar to This feature is unavailable due to an unrecognized channel configuration.. Looks up a localized string similar to Unrecognized or missing signature method.. Looks up a localized string similar to The openid.user_setup_url parameter is required when sending negative assertion messages in response to immediate mode requests.. Looks up a localized string similar to The X.509 certificate used to sign this document is not trusted.. Looks up a localized string similar to XRI support has been disabled at this site.. Looks up a localized string similar to XRI resolution failed.. An enumeration of the OpenID protocol versions supported by this library. OpenID Authentication 1.0 OpenID Authentication 1.1 OpenID Authentication 2.0 Tracks the several versions of OpenID this library supports and the unique constants to each version used in the protocol. The value of the openid.ns parameter in the OpenID 2.0 specification. The parameter of the callback parameter we tack onto the return_to URL to store the replay-detection nonce. Scans a list for matches with some element of the OpenID protocol, searching from newest to oldest protocol for the first and best match. The type of element retrieved from the instance. Takes a instance and returns an element of it. The list to scan for matches. The protocol with the element that matches some item in the list. A list of all supported OpenID versions, in order starting from newest version. A list of all supported OpenID versions, in order starting from newest version. V1.1 and V1.0 are considered the same and only V1.1 is in the list. The default (or most recent) supported version of the OpenID protocol. Attempts to detect the right OpenID protocol version based on the contents of an incoming OpenID indirect message or direct request. Attempts to detect the right OpenID protocol version based on the contents of an incoming OpenID direct response message. Attemps to detect the highest OpenID protocol version supported given a set of XRDS Service Type URIs included for some service. The OpenID version that this instance describes. The namespace of OpenId 1.x elements in XRDS documents. The value of the openid.ns parameter that appears on the query string whenever data is passed between relying party and provider for OpenID 2.0 and later. The XRD/Service/Type value discovered in an XRDS document when "discovering" on a Claimed Identifier (http://andrewarnott.yahoo.com) The XRD/Service/Type value discovered in an XRDS document when "discovering" on an OP Identifier rather than a Claimed Identifier. (http://yahoo.com) The XRD/Service/Type value discovered in an XRDS document when "discovering" on a Realm URL and looking for the endpoint URL that can receive authentication assertions. Used as the Claimed Identifier and the OP Local Identifier when the User Supplied Identifier is an OP Identifier. The value of the 'rel' attribute in an HTML document's LINK tag when the same LINK tag's HREF attribute value contains the URL to an OP Endpoint URL. The value of the 'rel' attribute in an HTML document's LINK tag when the same LINK tag's HREF attribute value contains the URL to use as the OP Local Identifier. Parts of the protocol that define parameter names that appear in the query string. Each parameter name is prefixed with 'openid.'. Parts of the protocol that define parameter names that appear in the query string. Each parameter name is NOT prefixed with 'openid.'. The various 'constants' that appear as parameter arguments (values). The maximum time a user can be allowed to take to complete authentication. This is used to calculate the length of time that nonces are stored. This is internal until we can decide whether to leave this static, or make it an instance member, or put it inside the IConsumerApplicationStore interface. The maximum permissible difference in clocks between relying party and provider web servers, discounting time zone differences. This is used when storing/validating nonces from the provider. If it is conceivable that a server's clock could be up to five minutes off from true UTC time, then the maximum time skew should be set to ten minutes to allow one server to be five minutes ahead and the remote server to be five minutes behind and still be able to communicate. Checks whether a given Protocol version practically equals this one for purposes of verifying a match for assertion verification. The other version to check against this one. true if this and the given Protocol versions are essentially the same. OpenID v1.0 never had a spec, and 1.0 and 1.1 are indistinguishable because of that. Therefore for assertion verification, 1.0 and 1.1 are considered equivalent. Returns the enum value for the instance. The value "openid." A preference order list of all supported session types. A preference order list of signature algorithms we support. A hybrid of the store interfaces that an OpenID Provider must implement, and an OpenID Relying Party may implement to operate in stateful (smart) mode. Security settings that are applicable to relying parties. The default value for the property. Initializes a new instance of the class. Filters out any disallowed endpoints. The endpoints discovered on an Identifier. A sequence of endpoints that satisfy all security requirements. Gets or sets a value indicating whether the entire pipeline from Identifier discovery to Provider redirect is guaranteed to be encrypted using HTTPS for authentication to succeed. Setting this property to true is appropriate for RPs with highly sensitive personal information behind the authentication (money management, health records, etc.) When set to true, some behavioral changes and additional restrictions are placed: User-supplied identifiers lacking a scheme are prepended with HTTPS:// rather than the standard HTTP:// automatically. User-supplied identifiers are not allowed to use HTTP for the scheme. All redirects during discovery on the user-supplied identifier must be HTTPS. Any XRDS file found by discovery on the User-supplied identifier must be protected using HTTPS. Only Provider endpoints found at HTTPS URLs will be considered. If the discovered identifier is an OP Identifier (directed identity), the Claimed Identifier eventually asserted by the Provider must be an HTTPS identifier. In the case of an unsolicited assertion, the asserted Identifier, discovery on it and the asserting provider endpoint must all be secured by HTTPS. Although the first redirect from this relying party to the Provider is required to use HTTPS, any additional redirects within the Provider cannot be protected and MAY revert the user's connection to HTTP, based on individual Provider implementation. There is nothing that the RP can do to detect or prevent this. A is thrown during discovery or authentication when a secure pipeline cannot be established. Gets or sets a value indicating whether only OP Identifiers will be discoverable when creating authentication requests. Gets or sets the oldest version of OpenID the remote party is allowed to implement. Defaults to Gets or sets the maximum allowable age of the secret a Relying Party uses to its return_to URLs and nonces with 1.0 Providers. The default value is 7 days. Gets or sets a value indicating whether all unsolicited assertions should be ignored. The default value is false. Gets or sets a value indicating whether delegating identifiers are refused for authentication. The default value is false. When set to true, login attempts that start at the RP or arrive via unsolicited assertions will be rejected if discovery on the identifier shows that OpenID delegation is used for the identifier. This is useful for an RP that should only accept identifiers directly issued by the Provider that is sending the assertion. Gets or sets a value indicating whether unsigned extensions in authentication responses should be ignored. The default value is false. When set to true, the methods will not return any extension that was not signed by the Provider. Gets or sets a value indicating whether authentication requests will only be sent to Providers with whom we can create a shared association. true to immediately fail authentication if an association with the Provider cannot be established; otherwise, false. The default value is false. Gets or sets a value indicating whether certain Claimed Identifiers that exploit features that .NET does not have the ability to send exact HTTP requests for will still be allowed by using an approximate HTTP request. The default value is true. Gets the set of trusted OpenID Provider Endpoint URIs. Gets or sets a value indicating whether any login attempt coming from an OpenID Provider Endpoint that is not on this whitelist of trusted OP Endpoints will be rejected. If the trusted providers list is empty and this value is true, all assertions are rejected. Default is false. Gets or sets a value indicating whether special measures are taken to protect users from replay attacks when those users' identities are hosted by OpenID 1.x Providers. The default value is true. Nonces for protection against replay attacks were not mandated by OpenID 1.x, which leaves users open to replay attacks. This feature works by adding a signed nonce to the authentication request. This might increase the request size beyond what some OpenID 1.1 Providers (such as Blogger) are capable of handling. The discovery service for URI identifiers. Initializes a new instance of the class. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. Searches HTML for the HEAD META tags that describe OpenID provider services. The final URL that provided this HTML document. This may not be the same as (this) userSuppliedIdentifier if the userSuppliedIdentifier pointed to a 301 Redirect. The user supplied identifier. The HTML that was downloaded and should be searched. A sequence of any discovered ServiceEndpoints. The discovery service for XRI identifiers that uses an XRI proxy resolver for discovery. The magic URL that will provide us an XRDS document for a given XRI identifier. We use application/xrd+xml instead of application/xrds+xml because it gets xri.net to automatically give us exactly the right XRD element for community i-names automatically, saving us having to choose which one to use out of the result. The ssl=true parameter tells the proxy resolver to accept only SSL connections when resolving community i-names. Initializes a new instance of the class. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. Downloads the XRDS document for this XRI. The identifier. The request handler. The XRDS document. Gets the URL from which this XRI's XRDS document may be downloaded. The identifier. The URI to HTTP GET from to get the services. A URI style of OpenID Identifier. The allowed protocol schemes in a URI Identifier. The special scheme to use for HTTP URLs that should not have their paths compressed. The special scheme to use for HTTPS URLs that should not have their paths compressed. The special scheme to use for HTTP URLs that should not have their paths compressed. The special scheme to use for HTTPS URLs that should not have their paths compressed. A value indicating whether scheme substitution is being used to workaround .NET path compression that invalidates some OpenIDs that have trailing periods in one of their path segments. Initializes static members of the class. This method attempts to workaround the .NET Uri class parsing bug described here: https://connect.microsoft.com/VisualStudio/feedback/details/386695/system-uri-incorrectly-strips-trailing-dots?wa=wsignin1.0#tabs since some identifiers (like some of the pseudonymous identifiers from Yahoo) include path segments that end with periods, which the Uri class will typically trim off. Initializes a new instance of the class. The value this identifier will represent. Initializes a new instance of the class. The value this identifier will represent. if set to true [require SSL discovery]. Initializes a new instance of the class. The value this identifier will represent. Initializes a new instance of the class. The value this identifier will represent. if set to true [require SSL discovery]. Converts a instance to a instance. The identifier to convert to an ordinary instance. The result of the conversion. Converts a instance to a instance. The instance to turn into a . The result of the conversion. Tests equality between this URI and another URI. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Returns the hash code of this XRI. A hash code for the current . Returns the string form of the URI. A that represents the current . Determines whether a URI is a valid OpenID Identifier (of any kind). The URI to test for OpenID validity. true if the identifier is valid; otherwise, false. A valid URI is absolute (not relative) and uses an http(s) scheme. Determines whether a URI is a valid OpenID Identifier (of any kind). The URI to test for OpenID validity. true if the identifier is valid; otherwise, false. A valid URI is absolute (not relative) and uses an http(s) scheme. Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. Determines whether the given URI is using a scheme in the list of allowed schemes. The URI whose scheme is to be checked. true if the scheme is allowed; otherwise, false. false is also returned if is null. Determines whether the given URI is using a scheme in the list of allowed schemes. The URI whose scheme is to be checked. true if the scheme is allowed; otherwise, false. false is also returned if is null. Tries to canonicalize a user-supplied identifier. This does NOT convert a user-supplied identifier to a Claimed Identifier! The user-supplied identifier. The resulting canonical URI. If set to true and the user-supplied identifier lacks a scheme, the "https://" scheme will be prepended instead of the standard "http://" one. if set to true [scheme prepended]. true if the identifier was valid and could be canonicalized. false if the identifier is outside the scope of allowed inputs and should be rejected. Canonicalization is done by adding a scheme in front of an identifier if it isn't already present. Other trivial changes that do not require network access are also done, such as lower-casing the hostname in the URI. Fixes up the scheme if appropriate. The URI, already in legal form (with http(s):// prepended if necessary). The resulting canonical URI. true if the canonicalization was successful; false otherwise. This does NOT standardize an OpenID URL for storage in a database, as it does nothing to convert the URL to a Claimed Identifier, besides the fact that it only deals with URLs whereas OpenID 2.0 supports XRIs. For this, you should lookup the value stored in IAuthenticationResponse.ClaimedIdentifier. Gets the special non-compressing scheme or URL for a standard scheme or URL. The ordinary URL or scheme name. The non-compressing equivalent scheme or URL for the given value. Performs the minimal URL normalization to allow a string to be passed to the constructor. The user-supplied identifier URI to normalize. if set to true, a missing scheme should result in HTTPS being prepended instead of HTTP. if set to true, the scheme was prepended during normalization. The somewhat normalized URL. Gets or sets a value indicating whether scheme substitution is being used to workaround .NET path compression that invalidates some OpenIDs that have trailing periods in one of their path segments. Gets the URI this instance represents. Gets a value indicating whether the scheme was missing when this Identifier was created and added automatically as part of the normalization process. Gets a value indicating whether this Identifier has characters or patterns that the class normalizes away and invalidating the Identifier. A simple URI class that doesn't suffer from the parsing problems of the class. URI characters that separate the URI Path from subsequent elements. Initializes a new instance of the class. The value. Returns a that represents this instance. A that represents this instance. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. The parameter is null. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Normalizes the characters that are escaped in the given URI path. The path to normalize. The given path, with exactly those characters escaped which should be. Gets the scheme. The scheme. Gets the authority. The authority. Gets the path of the URI. The path from the URI. Gets the query. The query. Gets the fragment. The fragment. A URI parser that does not compress paths, such as trimming trailing periods from path segments. The field that stores the scheme that this parser is registered under. The standard "http" or "https" scheme that this parser is subverting. Initializes a new instance of the class. The standard scheme that this parser will be subverting. Initializes this parser with the actual scheme it should appear to be. if set to true Uris using this scheme will look like they're using the original standard scheme. Gets the scheme this parser is registered under. The registered scheme. An XRI style of OpenID Identifier. The scheme and separator "xri://" An XRI always starts with one of these symbols. Backing store for the property. Initializes a new instance of the class. The string value of the XRI. Initializes a new instance of the class. The XRI that this Identifier will represent. If set to true, discovery and the initial authentication redirect will only succeed if it can be done entirely using SSL. Tests equality between this XRI and another XRI. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Returns the hash code of this XRI. A hash code for the current . Returns the canonical string form of the XRI. A that represents the current . Tests whether a given string represents a valid XRI format. The value to test for XRI validity. true if the given string constitutes a valid XRI; otherwise, false. Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. XRI Identifiers never have a fragment part, and thus this method always returns this same instance. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. Takes any valid form of XRI string and returns the canonical form of the same XRI. The xri to canonicalize. The canonicalized form of the XRI. The canonical form, per the OpenID spec, is no scheme and no whitespace on either end. Gets the original XRI supplied to the constructor. Gets the canonical form of the XRI string. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to XRI CanonicalID verification failed.. Looks up a localized string similar to Failure parsing XRDS document.. Looks up a localized string similar to The XRDS document for XRI {0} is missing the required CanonicalID element.. Looks up a localized string similar to Could not find XRI resolution Status tag or code attribute was invalid.. String constants for various content-type header values used in YADIS discovery. The text/html content-type The application/xhtml+xml content-type The application/xrds+xml content-type The text/xml content type Contains the result of YADIS discovery. The original web response, backed up here if the final web response is the preferred response to use in case it turns out to not work out. Initializes a new instance of the class. The user-supplied identifier. The initial response. The final response. Reverts to the HTML response after the XRDS response didn't work out. Applies the HTML response to the object. The initial response. Gets the URI of the original YADIS discovery request. This is the user supplied Identifier as given in the original YADIS discovery request. Gets the fully resolved (after redirects) URL of the user supplied Identifier. This becomes the ClaimedIdentifier. Gets the location the XRDS document was downloaded from, if different from the user supplied Identifier. Gets the Content-Type associated with the . Gets the text in the final response. This may be an XRDS document or it may be an HTML document, as determined by the property. Gets a value indicating whether the represents an XRDS document. False if the response is an HTML document. An HTML HEAD tag parser. Common flags to use on regex tests. A regular expression designed to select tags (?) A regular expression designed to select start tags (?) A regular expression designed to select attributes within a tag. A regular expression designed to select the HEAD tag. A regular expression designed to select the HTML tag. A regular expression designed to remove all comments and scripts from a string. Finds all the HTML HEAD tag child elements that match the tag name of a given type. The HTML tag of interest. The HTML to scan. A sequence of the matching elements. Filters a list of controls based on presence of an attribute. The type of HTML controls being filtered. The sequence. The attribute. A filtered sequence of attributes. Generates a regular expression that will find a given HTML tag. Name of the tag. The close tags (?). The created regular expression. Generates a regular expression designed to find a given tag. The tag to find. The created regular expression. The Service element in an XRDS document. A node in an XRDS document. The XRD namespace xri://$xrd*($v*2.0) The XRDS namespace xri://$xrds Initializes a new instance of the class. The node represented by this instance. The parent node. Initializes a new instance of the class. The document's root node, which this instance represents. Gets the node. Gets the parent node, or null if this is the root node. Gets the XML namespace resolver to use in XPath expressions. Initializes a new instance of the class. The service element. The parent. Compares the current object with another object of the same type. An object to compare with this object. A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter. Zero This object is equal to . Greater than zero This object is greater than . Gets the XRD parent element. Gets the priority. Gets the URI child elements. Gets the type child elements. The type elements. Gets the type child element's URIs. Gets the OP Local Identifier. The Type element in an XRDS document. Initializes a new instance of the class. The type element. The parent. Gets the URI. The Uri element in an XRDS document. Initializes a new instance of the class. The URI element. The service. Compares the current object with another object of the same type. An object to compare with this object. A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter. Zero This object is equal to . Greater than zero This object is greater than . Gets the priority. Gets the URI. Gets the parent service. The Xrd element in an XRDS document. Initializes a new instance of the class. The XRD element. The parent. Searches for service sub-elements that have Type URI sub-elements that match one that we have for a known OpenID protocol version. A function that selects what element of the OpenID Protocol we're interested in finding. A sequence of service elements that match the search criteria, sorted in XRDS @priority attribute order. Gets the child service elements. The services. Gets a value indicating whether this XRD element's resolution at the XRI resolver was successful. true if this XRD's resolution was successful; otherwise, false. Gets the canonical ID (i-number) for this element. Gets a value indicating whether the was verified. Gets the services for OP Identifiers. Gets the services for Claimed Identifiers. Gets the services that would be discoverable at an RP for return_to verification. Gets the services that would be discoverable at an RP for the UI extension icon. Gets an enumeration of all Service/URI elements, sorted in priority order. Gets the XRI resolution status code. An XRDS document. The namespace used by XML digital signatures. The namespace used by Google Apps for Domains for OpenID URI templates. Initializes a new instance of the class. The root node of the XRDS document. Initializes a new instance of the class. The Xml reader positioned at the root node of the XRDS document. Initializes a new instance of the class. The text that is the XRDS document. Gets the XRD child elements of the document. Gets a value indicating whether all child XRD elements were resolved successfully. YADIS discovery manager. The HTTP header to look for in responses to declare where the XRDS document should be found. The maximum number of bytes to read from an HTTP response in searching for a link to a YADIS document. Gets or sets the cache that can be used for HTTP requests made during identifier discovery. Performs YADIS discovery on some identifier. The mechanism to use for sending HTTP requests. The URI to perform discovery on. Whether discovery should fail if any step of it is not encrypted. The result of discovery on the given URL. Null may be returned if an error occurs, or if is true but part of discovery is not protected by SSL. Searches an HTML document for a <meta http-equiv="X-XRDS-Location" content="{YadisURL}"> tag and returns the content of YadisURL. The HTML to search. The URI of the XRDS document if found; otherwise null. Sends a YADIS HTTP request as part of identifier discovery. The request handler to use to actually submit the request. The URI to GET. Whether only HTTPS URLs should ever be retrieved. The value of the Accept HTTP header to include in the request. The HTTP response retrieved from the request. Determines whether a given HTTP response constitutes an XRDS document. The response to test. true if the response constains an XRDS document; otherwise, false. ================================================ FILE: packages/DotNetOpenAuth.OpenId.Core.4.3.0.13117/lib/net35-full/Mono.Math.xml ================================================ Mono.Math Default length of a BigInteger in bytes The Length of this BigInteger The data for this BigInteger Table of primes below 2000. This table was generated using Mathematica 4.1 using the following function: PrimeTable [x_] := Prime [Range [1, PrimePi [x]]] PrimeTable [6000] Generates a new, random BigInteger of the specified length. The number of bits for the new number. A random number generator to use to obtain the bits. A random number of the specified length. Generates a new, random BigInteger of the specified length using the default RNG crypto service provider. The number of bits for the new number. A random number of the specified length. Randomizes the bits in "this" from the specified RNG. A RNG. Randomizes the bits in "this" from the default RNG. Tests if the specified bit is 1. The bit to test. The least significant bit is 0. True if bitNum is set to 1, else false. Normalizes this by setting the length to the actual number of uints used in data and by setting the sign to Sign.Zero if the value of this is 0. Generates the smallest prime >= bi A BigInteger The smallest prime >= bi. More mathematically, if bi is prime: bi, else Prime [PrimePi [bi] + 1]. Increments this by two Low level functions for the BigInteger Adds two numbers with the same sign. A BigInteger A BigInteger bi1 + bi2 Compares two BigInteger A BigInteger A BigInteger The sign of bi1 - bi2 Performs n / d and n % d in one operation. A BigInteger, upon exit this will hold n / d The divisor n % d Multiplies the data in x [xOffset:xOffset+xLen] by y [yOffset:yOffset+yLen] and puts it into d [dOffset:dOffset+xLen+yLen]. Multiplies the data in x [xOffset:xOffset+xLen] by y [yOffset:yOffset+yLen] and puts the low mod words into d [dOffset:dOffset+mod]. A factor of confidence. Only suitable for development use, probability of failure may be greater than 1/2^20. Suitable only for transactions which do not require forward secrecy. Probability of failure about 1/2^40 Designed for production use. Probability of failure about 1/2^80. Suitable for sensitive data. Probability of failure about 1/2^160. Use only if you have lots of time! Probability of failure about 1/2^320. Only use methods which generate provable primes. Not yet implemented. Finds the next prime after a given number. Performs primality tests on bi, assumes trial division has been done. A BigInteger that has been subjected to and passed trial division False if bi is composite, true if it may be prime. The speed of this method is dependent on Confidence Probabilistic prime test based on Rabin-Miller's test The number to test. The number of chosen bases. The test has at least a 1/4^confidence chance of falsely returning True. True if "this" is a strong pseudoprime to randomly chosen bases. False if "this" is definitely NOT prime. ================================================ FILE: packages/DotNetOpenAuth.OpenId.Core.4.3.0.13117/lib/net35-full/Org.Mentalis.Security.Cryptography.xml ================================================ Org.Mentalis.Security.Cryptography Defines the different Diffie-Hellman key generation methods. Returns dynamically generated values for P and G. Unlike the Sophie Germain or DSA key generation methods, this method does not ensure that the selected prime offers an adequate security level. Returns values for P and G that are hard coded in this library. Contrary to what your intuition may tell you, using these hard coded values is perfectly safe. The values of the P and G parameters are taken from 'The OAKLEY Key Determination Protocol' [RFC2412]. This is the prefered key generation method, because it is very fast and very safe. Because this method uses fixed values for the P and G parameters, not all bit sizes are supported. The current implementation supports bit sizes of 768, 1024 and 1536. Represents the parameters of the Diffie-Hellman algorithm. Represents the public P parameter of the Diffie-Hellman algorithm. Represents the public G parameter of the Diffie-Hellman algorithm. Represents the private X parameter of the Diffie-Hellman algorithm. Defines a base class from which all Diffie-Hellman implementations inherit. Creates an instance of the default implementation of the algorithm. A new instance of the default implementation of DiffieHellman. Creates an instance of the specified implementation of . The name of the implementation of DiffieHellman to use. A new instance of the specified implementation of DiffieHellman. Initializes a new instance. When overridden in a derived class, creates the key exchange data. The key exchange data to be sent to the intended recipient. When overridden in a derived class, extracts secret information from the key exchange data. The key exchange data within which the secret information is hidden. The secret information derived from the key exchange data. When overridden in a derived class, exports the . true to include private parameters; otherwise, false. The parameters for Diffie-Hellman. When overridden in a derived class, imports the specified . The parameters for Diffie-Hellman. Reconstructs a object from an XML string. The XML string to use to reconstruct the DiffieHellman object. One of the values in the XML string is invalid. Creates and returns an XML string representation of the current object. true to include private parameters; otherwise, false. An XML string encoding of the current DiffieHellman object. Implements the Diffie-Hellman algorithm. Initializes a new instance. The default length of the shared secret is 1024 bits. Initializes a new instance. The length, in bits, of the public P parameter. The length, in bits, of the secret value X. This parameter can be set to 0 to use the default size. One of the values. The larger the bit length, the more secure the algorithm is. The default is 1024 bits. The minimum bit length is 128 bits.
The size of the private value will be one fourth of the bit length specified.
The specified bit length is invalid.
Initializes a new instance. The P parameter of the Diffie-Hellman algorithm. This is a public parameter. The G parameter of the Diffie-Hellman algorithm. This is a public parameter. The X parameter of the Diffie-Hellman algorithm. This is a private parameter. If this parameters is a null reference (Nothing in Visual Basic), a secret value of the default size will be generated. or is a null reference (Nothing in Visual Basic). or is invalid. Initializes a new instance. The P parameter of the Diffie-Hellman algorithm. The G parameter of the Diffie-Hellman algorithm. The length, in bits, of the private value. If 0 is specified, the default value will be used. or is a null reference (Nothing in Visual Basic). is invalid. or is invalid. Creates the key exchange data. The key exchange data to be sent to the intended recipient. Extracts secret information from the key exchange data. The key exchange data within which the shared key is hidden. The shared key derived from the key exchange data. Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources. true to release both managed and unmanaged resources; false to release only unmanaged resources. Exports the . true to include private parameters; otherwise, false. The parameters for . Imports the specified . The parameters for . parameters.P or parameters.G is a null reference (Nothing in Visual Basic) -or- parameters.P is not a prime number. Releases the unmanaged resources used by the SymmetricAlgorithm. Gets the name of the key exchange algorithm. The name of the key exchange algorithm. Gets the name of the signature algorithm. The name of the signature algorithm.
================================================ FILE: packages/DotNetOpenAuth.OpenId.Core.4.3.0.13117/lib/net40-full/DotNetOpenAuth.OpenId.xml ================================================ DotNetOpenAuth.OpenId Describes a collection of association type sub-elements in a .config file. Initializes a new instance of the class. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. When overridden in a derived class, creates a new . A new . Gets the element key for a specified configuration element when overridden in a derived class. The to return the key for. An that acts as the key for the specified . Describes an association type and its maximum lifetime as an element in a .config file. The name of the attribute that stores the association type. The name of the attribute that stores the association's maximum lifetime. Initializes a new instance of the class. Gets or sets the protocol name of the association. Gets or sets the maximum time a shared association should live. The default value is 14 days. The configuration element that can adjust how hostmeta discovery works. The property name for enableCertificateValidationCache. Initializes a new instance of the class. Gets or sets a value indicating whether validated certificates should be cached and not validated again. This helps to avoid unexplained 5-10 second delays in certificate validation for Google Apps for Domains that impact some servers. Represents the <openid> element in the host's .config file. The name of the section under which this library's settings must be found. The name of the <relyingParty> sub-element. The name of the <provider> sub-element. The name of the <extensions> sub-element. The name of the <xriResolver> sub-element. The name of the @maxAuthenticationTime attribute. The name of the @cacheDiscovery attribute. Initializes a new instance of the class. Gets the configuration section from the .config file. Gets or sets the maximum time a user can take to complete authentication. This time limit allows the library to decide how long to cache certain values necessary to complete authentication. The lower the time, the less demand on the server. But too short a time can frustrate the user. Gets or sets a value indicating whether the results of Identifier discovery should be cached. Use true to allow identifier discovery to immediately return cached results when available; otherwise, use false.to force fresh results every time at the cost of slightly slower logins. The default value is true. When enabled, caching is done according to HTTP standards. Gets or sets the configuration specific for Relying Parties. Gets or sets the configuration specific for Providers. Gets or sets the registered OpenID extension factories. Gets or sets the configuration for the XRI resolver. The section in the .config file that allows customization of OpenID Provider behaviors. The name of the <provider> sub-element. The name of the security sub-element. Gets the name of the <behaviors> sub-element. The name of the custom store sub-element. Initializes a new instance of the class. Gets or sets the security settings. Gets or sets the special behaviors to apply. Gets or sets the type to use for storing application state. Represents the .config file element that allows for setting the security policies of the Provider. Gets the name of the @protectDownlevelReplayAttacks attribute. Gets the name of the @minimumHashBitLength attribute. Gets the name of the @maximumHashBitLength attribute. The name of the associations collection sub-element. The name of the @encodeAssociationSecretsInHandles attribute. Gets the name of the @requireSsl attribute. Gets the name of the @unsolicitedAssertionVerification attribute. Initializes a new instance of the class. Initializes a programmatically manipulatable bag of these security settings with the settings from the config file. The newly created security settings object. Gets or sets a value indicating whether all discovery and authentication should require SSL security. Gets or sets the minimum length of the hash that protects the protocol from hijackers. Gets or sets the maximum length of the hash that protects the protocol from hijackers. Gets or sets a value indicating whether the Provider should take special care to protect OpenID 1.x relying parties against replay attacks. Gets or sets the level of verification a Provider performs on an identifier before sending an unsolicited assertion for it. The default value is . Gets or sets the configured lifetimes of the various association types. Gets or sets a value indicating whether the Provider should ease the burden of storing associations by encoding their secrets (in signed, encrypted form) into the association handles themselves, storing only a few rotating, private symmetric keys in the Provider's store instead. The section in the .config file that allows customization of OpenID Relying Party behaviors. The name of the custom store sub-element. The name of the <relyingParty> sub-element. The name of the attribute that specifies whether dnoa.userSuppliedIdentifier is tacked onto the openid.return_to URL. Gets the name of the security sub-element. The name of the <behaviors> sub-element. The name of the <discoveryServices> sub-element. The name of the <hostMetaDiscovery> sub-element. The built-in set of identifier discovery services. Initializes a new instance of the class. Gets or sets a value indicating whether "dnoa.userSuppliedIdentifier" is tacked onto the openid.return_to URL in order to preserve what the user typed into the OpenID box. The default value is true. Gets or sets the security settings. Gets or sets the special behaviors to apply. Gets or sets the type to use for storing application state. Gets or sets the host meta discovery configuration element. Gets or sets the services to use for discovering service endpoints for identifiers. If no discovery services are defined in the (web) application's .config file, the default set of discovery services built into the library are used. Represents the .config file element that allows for setting the security policies of the Relying Party. Gets the name of the @minimumRequiredOpenIdVersion attribute. Gets the name of the @minimumHashBitLength attribute. Gets the name of the @maximumHashBitLength attribute. Gets the name of the @requireSsl attribute. Gets the name of the @requireDirectedIdentity attribute. Gets the name of the @requireAssociation attribute. Gets the name of the @rejectUnsolicitedAssertions attribute. Gets the name of the @rejectDelegatedIdentifiers attribute. Gets the name of the @ignoreUnsignedExtensions attribute. Gets the name of the @allowDualPurposeIdentifiers attribute. Gets the name of the @allowApproximateIdentifierDiscovery attribute. Gets the name of the @protectDownlevelReplayAttacks attribute. The name of the <trustedProviders> sub-element. Initializes a new instance of the class. Initializes a programmatically manipulatable bag of these security settings with the settings from the config file. The newly created security settings object. Gets or sets a value indicating whether all discovery and authentication should require SSL security. Gets or sets a value indicating whether only OP Identifiers will be discoverable when creating authentication requests. Gets or sets a value indicating whether authentication requests will only be created where an association with the Provider can be established. Gets or sets the minimum OpenID version a Provider is required to support in order for this library to interoperate with it. Although the earliest versions of OpenID are supported, for security reasons it may be desirable to require the remote party to support a later version of OpenID. Gets or sets the minimum length of the hash that protects the protocol from hijackers. Gets or sets the maximum length of the hash that protects the protocol from hijackers. Gets or sets a value indicating whether all unsolicited assertions should be ignored. The default value is false. Gets or sets a value indicating whether delegating identifiers are refused for authentication. The default value is false. When set to true, login attempts that start at the RP or arrive via unsolicited assertions will be rejected if discovery on the identifier shows that OpenID delegation is used for the identifier. This is useful for an RP that should only accept identifiers directly issued by the Provider that is sending the assertion. Gets or sets a value indicating whether unsigned extensions in authentication responses should be ignored. The default value is false. When set to true, the methods will not return any extension that was not signed by the Provider. Gets or sets a value indicating whether identifiers that are both OP Identifiers and Claimed Identifiers should ever be recognized as claimed identifiers. The default value is false, per the OpenID 2.0 spec. Gets or sets a value indicating whether certain Claimed Identifiers that exploit features that .NET does not have the ability to send exact HTTP requests for will still be allowed by using an approximate HTTP request. The default value is true. Gets or sets a value indicating whether the Relying Party should take special care to protect users against replay attacks when interoperating with OpenID 1.1 Providers. Gets or sets the set of trusted OpenID Provider Endpoints. Represents the <xriResolver> element in the host's .config file. Gets the name of the @enabled attribute. The default value for . The name of the <proxy> sub-element. The default XRI proxy resolver to use. Initializes a new instance of the class. Gets or sets a value indicating whether this XRI resolution is enabled. The default value is true. Gets or sets the proxy to use for resolving XRIs. The default value is "xri.net". Adds OpenID-specific extension methods to the XrdsDocument class. Creates the service endpoints described in this document, useful for requesting authentication of one of the OpenID Providers that result from it. The XrdsDocument instance to use in this process. The claimed identifier that was used to discover this XRDS document. The user supplied identifier. A sequence of OpenID Providers that can assert ownership of the . Creates the service endpoints described in this document, useful for requesting authentication of one of the OpenID Providers that result from it. The XrdsDocument instance to use in this process. The user-supplied i-name that was used to discover this XRDS document. A sequence of OpenID Providers that can assert ownership of the canonical ID given in this document. Generates OpenID Providers that can authenticate using directed identity. The XrdsDocument instance to use in this process. The OP Identifier entered (and resolved) by the user. Essentially the user-supplied identifier. A sequence of the providers that can offer directed identity services. Generates the OpenID Providers that are capable of asserting ownership of a particular URI claimed identifier. The XrdsDocument instance to use in this process. The claimed identifier. The user supplied identifier. A sequence of the providers that can assert ownership of the given identifier. Generates the OpenID Providers that are capable of asserting ownership of a particular XRI claimed identifier. The XrdsDocument instance to use in this process. The i-name supplied by the user. A sequence of the providers that can assert ownership of the given identifier. Enumerates the XRDS service elements that describe OpenID Providers offering directed identity assertions. The XrdsDocument instance to use in this process. A sequence of service elements. Returns the OpenID-compatible services described by a given XRDS document, in priority order. The XrdsDocument instance to use in this process. A sequence of the services offered. Stores a secret used in signing and verifying messages. OpenID associations may be shared between Provider and Relying Party (smart associations), or be a way for a Provider to recall its own secret for later (dumb associations). Initializes a new instance of the class. The handle. The secret. How long the association will be useful. The UTC time of when this association was originally issued by the Provider. Re-instantiates an previously persisted in a database or some other shared store. The property of the previous instance. The UTC value of the property of the previous instance. The byte array returned by a call to on the previous instance. The newly dehydrated , which can be returned from a custom association store's IRelyingPartyAssociationStore.GetAssociation method. Returns private data required to persist this in permanent storage (a shared database for example) for deserialization later. An opaque byte array that must be stored and returned exactly as it is provided here. The byte array may vary in length depending on the specific type of , but in current versions are no larger than 256 bytes. Values of public properties on the base class are not included in this byte array, as they are useful for fast database lookup and are persisted separately. Tests equality of two objects. The to compare with the current . true if the specified is equal to the current ; otherwise, false. Returns the hash code. A hash code for the current . The string to pass as the assoc_type value in the OpenID protocol. The protocol version of the message that the assoc_type value will be included in. The value that should be used for the openid.assoc_type parameter. Generates a signature from a given blob of data. The data to sign. This data will not be changed (the signature is the return value). The calculated signature of the data. Returns the specific hash algorithm used for message signing. The hash algorithm used for message signing. Gets a unique handle by which this may be stored or retrieved. Gets the UTC time when this will expire. Gets a value indicating whether this has already expired. Gets the length (in bits) of the hash this association creates when signing. Gets a value indicating whether this instance has useful life remaining. true if this instance has useful life remaining; otherwise, false. Gets or sets the UTC time that this was first created. Gets the duration a secret key used for signing dumb client requests will be good for. Gets the number of seconds until this expires. Never negative (counter runs to zero). Gets the shared secret key between the consumer and provider. Gets the lifetime the OpenID provider permits this . Gets the minimum lifetime an association must still be good for in order for it to be used for a future authentication. Associations that are not likely to last the duration of a user login are not worth using at all. Gets the TimeSpan till this association expires. Indicates the mode the Provider should use while authenticating the end user. The Provider should use whatever credentials are immediately available to determine whether the end user owns the Identifier. If sufficient credentials (i.e. cookies) are not immediately available, the Provider should fail rather than prompt the user. The Provider should determine whether the end user owns the Identifier, displaying a web page to the user to login etc., if necessary. An Attribute Exchange and Simple Registration filter to make all incoming attribute requests look like Simple Registration requests, and to convert the response to the originally requested extension and format. Initializes a new instance of the class. Gets or sets the AX attribute type URI formats this transform is willing to work with. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to The PAPE request has an incomplete set of authentication policies.. Looks up a localized string similar to A PAPE response is missing or is missing required policies.. Looks up a localized string similar to No personally identifiable information should be included in authentication responses when the PAPE authentication policy http://www.idmanagement.gov/schema/2009/05/icam/no-pii.pdf is present.. Looks up a localized string similar to No personally identifiable information should be requested when the http://www.idmanagement.gov/schema/2009/05/icam/no-pii.pdf PAPE policy is present.. Looks up a localized string similar to No PPID provider has been configured.. Looks up a localized string similar to Discovery on the Realm URL MUST be performed before sending a positive assertion.. Looks up a localized string similar to The Realm in an authentication request must be an HTTPS URL.. Implements the Identity, Credential, & Access Management (ICAM) OpenID 2.0 Profile for the General Services Administration (GSA). Relying parties that include this profile are always held to the terms required by the profile, but Providers are only affected by the special behaviors of the profile when the RP specifically indicates that they want to use this profile. Backing field for the static property. Initializes a new instance of the class. Gets or sets a value indicating whether PII is allowed to be requested or received via OpenID. The default value is false. Gets or sets a value indicating whether to ignore the SSL requirement (for testing purposes only). Provides a mechanism for Relying Parties to work with OpenID 1.0 Providers without losing claimed_id and op_endpoint data, which OpenID 2.0 Providers are required to send back with positive assertions. The "dnoa.op_endpoint" callback parameter that stores the Provider Endpoint URL to tack onto the return_to URI. The "dnoa.claimed_id" callback parameter that stores the Claimed Identifier to tack onto the return_to URI. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection offered (if any) by this binding element. Code contract for the class. Signs and verifies authentication assertions. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Verifies the signature by unrecognized handle. The message. The signed message. The protections applied. The applied protections. Calculates the signature for a given message. The message to sign or verify. The association to use to sign the message. The calculated signature of the method. Gets the association to use to sign or verify a message. The message to sign or verify. The association to use to sign or verify the message. Gets a specific association referenced in a given message's association handle. The signed message whose association handle should be used to lookup the association to return. The referenced association; or null if such an association cannot be found. If the association handle set in the message does not match any valid association, the association handle property is cleared, and the property is set to the handle that could not be found. Gets a private Provider association used for signing messages in "dumb" mode. An existing or newly created association. Ensures that all message parameters that must be signed are in fact included in the signature. The signed message. Gets the protection offered (if any) by this binding element. Gets or sets the channel that this binding element belongs to. Gets a value indicating whether this binding element is on a Provider channel. Verifies the signature by unrecognized handle. The message. The signed message. The protections applied. The applied protections. Gets the association to use to sign or verify a message. The message to sign or verify. The association to use to sign or verify the message. Gets a specific association referenced in a given message's association handle. The signed message whose association handle should be used to lookup the association to return. The referenced association; or null if such an association cannot be found. The binding element that serializes/deserializes OpenID extensions to/from their carrying OpenID messages. False if unsigned extensions should be dropped. Must always be true on Providers, since RPs never sign extensions. Initializes a new instance of the class. The extension factory. The security settings. Security setting for relying parties. Should be true for Providers. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets the extensions on a message. The carrier of the extensions. If set to true only signed extensions will be available. A optional filter that takes an extension type URI and returns a value indicating whether that extension should be deserialized and returned in the sequence. May be null. A sequence of extensions in the message. Gets the dictionary of message parts that should be deserialized into extensions. The message. If set to true only signed extensions will be available. A dictionary of message parts, including only signed parts when appropriate. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the extension factory. Gets the protection offered (if any) by this binding element. OpenID extension factory class for creating extensions based on received Type URIs. OpenID extension factories must be registered with the library. This can be done by adding a factory to OpenIdRelyingParty.ExtensionFactories or OpenIdProvider.ExtensionFactories, or by adding a snippet such as the following to your web.config file: <dotNetOpenAuth> <openid> <extensionFactories> <add type="DotNetOpenAuth.ApplicationBlock.CustomExtensions.Acme, DotNetOpenAuth.ApplicationBlock" /> </extensionFactories> </openid> </dotNetOpenAuth> Creates a new instance of some extension based on the received extension parameters. The type URI of the extension. The parameters associated specifically with this extension. The OpenID message carrying this extension. A value indicating whether this extension is being received at the OpenID Provider. An instance of if the factory recognizes the extension described in the input parameters; null otherwise. This factory method need only initialize properties in the instantiated extension object that are not bound using . An interface that OAuth messages implement to support signing. Gets or sets the association handle used to sign the message. The handle for the association that was used to sign this assertion. Gets or sets the association handle that the Provider wants the Relying Party to not use any more. If the Relying Party sent an invalid association handle with the request, it SHOULD be included here. Gets or sets the signed parameter order. Comma-separated list of signed fields. "op_endpoint,identity,claimed_id,return_to,assoc_handle,response_nonce" This entry consists of the fields without the "openid." prefix that the signature covers. This list MUST contain at least "op_endpoint", "return_to" "response_nonce" and "assoc_handle", and if present in the response, "claimed_id" and "identity". Additional keys MAY be signed as part of the message. See Generating Signatures. A Uri encoder that serializes using rather than the standard . Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Indicates the level of strictness to require when decoding a Key-Value Form encoded dictionary. Be as forgiving as possible to errors made while encoding. Allow for certain errors in encoding attributable to ambiguities in the OpenID 1.1 spec's description of the encoding. The strictest mode. The decoder requires the encoded dictionary to be in strict compliance with OpenID 2.0's description of the encoding. Performs conversion to and from the Key-Value Form Encoding defined by OpenID Authentication 2.0 section 4.1.1. http://openid.net/specs/openid-authentication-2_0.html#anchor4 This class is thread safe and immutable. The newline character sequence to use. Characters that must not appear in parameter names. Characters that must not appaer in parameter values. The character encoding to use. Initializes a new instance of the class. Initializes a new instance of the class. How strictly an incoming Key-Value Form message will be held to the spec. Encodes key/value pairs to Key-Value Form. The dictionary of key/value pairs to convert to a byte stream. The UTF8 byte array. Enumerating a Dictionary<TKey, TValue> has undeterministic ordering. If ordering of the key=value pairs is important, a deterministic enumerator must be used. Decodes bytes in Key-Value Form to key/value pairs. The stream of Key-Value Form encoded bytes. The deserialized dictionary. Thrown when the data is not in the expected format. Gets a value controlling how strictly an incoming Key-Value Form message will be held to the spec. A channel that knows how to send and receive OpenID messages. The HTTP Content-Type to use in Key-Value Form responses. OpenID 2.0 section 5.1.2 says this SHOULD be text/plain. But this value does not prevent free hosters like GoDaddy from tacking on their ads to the end of the direct response, corrupting the data. So we deviate from the spec a bit here to improve the story for free Providers. The encoder that understands how to read and write Key-Value Form. Initializes a new instance of the class. A class prepared to analyze incoming messages and indicate what concrete message types can deserialize from it. The binding elements to use in sending and receiving messages. Verifies the integrity and applicability of an incoming message. The message just received. Thrown when the message is somehow invalid, except for check_authentication messages. This can be due to tampering, replay attack or expiration, among other things. Prepares an HTTP request that carries a given message. The message to send. The prepared to send the request. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Thrown when the response is not valid. Called when receiving a direct response message, before deserialization begins. The HTTP direct response. The newly instantiated message, prior to deserialization. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec V1.0 section 5.3. Gets the direct response of a direct HTTP request. The web request. The response to the web request. Thrown on network or protocol errors. This binding element signs a Relying Party's openid.return_to parameter so that upon return, it can verify that it hasn't been tampered with. Since Providers can send unsolicited assertions, not all openid.return_to values will be signed. But those that are signed will be validated, and any invalid or missing signatures will cause this library to not trust the parameters in the return_to URL. In the messaging stack, this binding element looks like an ordinary transform-type of binding element rather than a protection element, due to its required order in the channel stack and that it doesn't sign anything except a particular message part. The name of the callback parameter we'll tack onto the return_to value to store our signature on the return_to parameter. The name of the callback parameter we'll tack onto the return_to value to store the handle of the association we use to sign the return_to parameter. The URI to use for private associations at this RP. The key store used to generate the private signature on the return_to parameter. Initializes a new instance of the class. The crypto key store. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets the return to signature. The return to. The crypto key. The generated signature. Only the parameters in the return_to URI are signed, rather than the base URI itself, in order that OPs that might change the return_to's implicit port :80 part or other minor changes do not invalidate the signature. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection offered (if any) by this binding element. No message protection is reported because this binding element does not protect the entire message -- only a part. Spoofs security checks on incoming OpenID messages. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. Code contract for the class. Prevents a default instance of the class from being created. The string to pass as the assoc_type value in the OpenID protocol. The protocol version of the message that the assoc_type value will be included in. The value that should be used for the openid.assoc_type parameter. Returns the specific hash algorithm used for message signing. The hash algorithm used for message signing. Gets the length (in bits) of the hash this association creates when signing. Manages a fast, two-way mapping between type URIs and their aliases. The format of auto-generated aliases. Tracks extension Type URIs and aliases assigned to them. Tracks extension aliases and Type URIs assigned to them. Gets an alias assigned for a given Type URI. A new alias is assigned if necessary. The type URI. The alias assigned to this type URI. Never null. Sets an alias and the value that will be returned by . The alias. The type URI. Takes a sequence of type URIs and assigns aliases for all of them. The type URIs to create aliases for. An optional dictionary of URI/alias pairs that suggest preferred aliases to use if available for certain type URIs. Sets up aliases for any Type URIs in a dictionary that do not yet have aliases defined, and where the given preferred alias is still available. A dictionary of type URI keys and alias values. Gets the Type Uri encoded by a given alias. The alias. The Type URI. Thrown if the given alias does not have a matching TypeURI. Gets the Type Uri encoded by a given alias. The alias. The Type URI for the given alias, or null if none for that alias exist. Returns a value indicating whether an alias has already been assigned to a type URI. The alias in question. True if the alias has already been assigned. False otherwise. Determines whether a given TypeURI has an associated alias assigned to it. The type URI. true if the given type URI already has an alias assigned; false otherwise. Assigns a new alias to a given Type URI. The type URI to assign a new alias to. The newly generated alias. Gets the aliases that have been set. An individual attribute to be requested of the OpenID Provider using the Attribute Exchange extension. Backing field for the property. Initializes a new instance of the class with = false, = 1. Initializes a new instance of the class with = false, = 1. The unique TypeURI for that describes the attribute being sought. Initializes a new instance of the class with = 1. The unique TypeURI for that describes the attribute being sought. A value indicating whether the Relying Party considers this attribute to be required for registration. Initializes a new instance of the class. The unique TypeURI for that describes the attribute being sought. A value indicating whether the Relying Party considers this attribute to be required for registration. The maximum number of values for this attribute the Relying Party is prepared to receive. Used by a Provider to create a response to a request for an attribute's value(s) using a given array of strings. The values for the requested attribute. The newly created object that should be added to the object. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Gets or sets the URI uniquely identifying the attribute being requested. Gets or sets a value indicating whether the relying party considers this a required field. Note that even if set to true, the Provider may not provide the value. Gets or sets the maximum number of values for this attribute the Relying Party wishes to receive from the OpenID Provider. A value of int.MaxValue is considered infinity. An individual attribute's value(s) as supplied by an OpenID Provider in response to a prior request by an OpenID Relying Party as part of a fetch request, or by a relying party as part of a store request. Initializes a new instance of the class. The TypeURI that uniquely identifies the attribute. The values for the attribute. Initializes a new instance of the class. This is internal because web sites should be using the method to instantiate. Initializes a new instance of the class. The TypeURI of the attribute whose values are being provided. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Gets the URI uniquely identifying the attribute whose value is being supplied. Gets the values supplied by the Provider. The various Type URI formats an AX attribute may use by various remote parties. No attribute format. AX attributes should use the Type URI format starting with http://axschema.org/. AX attributes should use the Type URI format starting with http://schema.openid.net/. AX attributes should use the Type URI format starting with http://openid.net/schema/. All known schemas. The most common schemas. Helper methods shared by multiple messages in the Attribute Exchange extension. Adds a request for an attribute considering it 'required'. The attribute request collection. The type URI of the required attribute. Adds a request for an attribute without considering it 'required'. The attribute request collection. The type URI of the requested attribute. Adds a given attribute with one or more values to the request for storage. Applicable to Relying Parties only. The collection of to add to. The type URI of the attribute. The attribute values. Serializes a set of attribute values to a dictionary of fields to send in the message. The dictionary to fill with serialized attributes. The attributes. Deserializes attribute values from an incoming set of message data. The data coming in with the message. The attribute values found in the message. Reads through the attributes included in the response to discover the alias-TypeURI relationships. The data included in the extension message. The alias manager that provides lookup between aliases and type URIs. Attribute Exchange constants The TypeURI by which the AX extension is recognized in OpenID messages and in XRDS documents. The Attribute Exchange Fetch message, request leg. A handy base class for built-in extensions. The contract any OpenID extension for DotNetOpenAuth must implement. Classes that implement this interface should be marked as [] to allow serializing state servers to cache messages, particularly responses. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets or sets a value indicating whether this extension was signed by the sender. true if this instance is signed by the sender; otherwise, false. Backing store for the property. Backing store for the property. Backing store for the property. Initializes a new instance of the class. The version of the extension. The type URI to use in the OpenID message. The additional supported type URIs by which this extension might be recognized. May be null. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets or sets a value indicating whether this extension was signed by the OpenID Provider. true if this instance is signed by the provider; otherwise, false. Gets the version of the protocol or extension this message is prepared to implement. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets or sets a value indicating whether this extension was signed by the OpenID Provider. true if this instance is signed by the provider; otherwise, false. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. The value for the 'mode' parameter. The factory method that may be used in deserialization of this message. Characters that may not appear in an attribute alias list. Characters that may not appear in an attribute Type URI alias. The collection of requested attributes. Initializes a new instance of the class. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Splits a list of aliases by their commas. The comma-delimited list of aliases. May be null or empty. The list of aliases. Never null, but may be empty. Gets a collection of the attributes whose values are requested by the Relying Party. A collection where the keys are the attribute type URIs, and the value is all the attribute request details. Gets or sets the URL that the OpenID Provider may re-post the fetch response message to at some time after the initial response has been sent, using an OpenID Authentication Positive Assertion to inform the relying party of updates to the requested fields. Gets or sets a list of aliases for optional attributes. A comma-delimited list of aliases. Gets or sets a list of aliases for required attributes. A comma-delimited list of aliases. The Attribute Exchange Fetch message, response leg. The value of the 'mode' parameter. The factory method that may be used in deserialization of this message. The collection of provided attributes. This field will never be null. Initializes a new instance of the class. Gets the first attribute value provided for a given attribute Type URI. The type URI of the attribute. Usually a constant from . The first value provided for the attribute, or null if the attribute is missing or no values were provided. This is meant as a helper method for the common case of just wanting one attribute value. For greater flexibility or to retrieve more than just the first value for an attribute, use the collection directly. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets a sequence of the attributes whose values are provided by the OpenID Provider. Gets a value indicating whether the OpenID Provider intends to honor the request for updates. Gets or sets the URL the OpenID Provider will post updates to. Must be set if the Provider supports and will use this feature. Gets a value indicating whether this extension is signed by the Provider. true if this instance is signed by the Provider; otherwise, false. The Attribute Exchange Store message, request leg. The value of the 'mode' parameter. The factory method that may be used in deserialization of this message. The collection of provided attribute values. This field will never be null. Initializes a new instance of the class. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Gets the collection of all the attributes that are included in the store request. The Attribute Exchange Store message, response leg. The value of the mode parameter used to express a successful store operation. The value of the mode parameter used to express a store operation failure. The factory method that may be used in deserialization of this message. Initializes a new instance of the class to represent a successful store operation. Initializes a new instance of the class to represent a failed store operation. The reason for failure. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets or sets a value indicating whether the storage request succeeded. Defaults to true. Gets or sets the reason for the failure, if applicable. Gets a value indicating whether this extension is signed by the Provider. true if this instance is signed by the Provider; otherwise, false. Gets or sets the mode argument. One of 'store_response_success' or 'store_response_failure'. Attribute types defined at http://www.axschema.org/types/. If you don't see what you need here, check that URL to see if any have been added. You can use new ones directly without adding them to this class, and can even make up your own if you expect the other end to understand what you make up. Inherent attributes about a personality such as gender and bio. Gender, either "M" or "F" "M", "F" Biography (text) "I am the very model of a modern Major General." Preferences such as language and timezone. Preferred language, as per RFC4646 "en-US" Home time zone information (as specified in zoneinfo) "America/Pacific" The names a person goes by. Subject's alias or "screen" name "Johnny5" Full name of subject "John Doe" Honorific prefix for the subject's name "Mr.", "Mrs.", "Dr." First or given name of subject "John" Last name or surname of subject "Smith" Middle name(s) of subject "Robert" Suffix of subject's name "III", "Jr." Business affiliation. Company name (employer) "Springfield Power" Employee title "Engineer" Information about a person's birthdate. Date of birth. "1979-01-01" Year of birth (four digits) "1979" Month of birth (1-12) "05" Day of birth "31" Various ways to contact a person. Internet SMTP email address as per RFC2822 "jsmith@isp.example.com" Various types of phone numbers. Main phone number (preferred) +1-800-555-1234 Home phone number +1-800-555-1234 Business phone number +1-800-555-1234 Cellular (or mobile) phone number +1-800-555-1234 Fax number +1-800-555-1234 The many fields that make up an address. Home postal address: street number, name and apartment number "#42 135 East 1st Street" "#42 135 East 1st Street" "Box 67" Home city name "Vancouver" Home state or province name "BC" Home country code in ISO.3166.1988 (alpha 2) format "CA" Home postal code; region specific format "V5A 4B2" The many fields that make up an address. Business postal address: street number, name and apartment number "#42 135 East 1st Street" "#42 135 East 1st Street" "Box 67" Business city name "Vancouver" Business state or province name "BC" Business country code in ISO.3166.1988 (alpha 2) format "CA" Business postal code; region specific format "V5A 4B2" Various handles for instant message clients. AOL instant messaging service handle "jsmith421234" ICQ instant messaging service handle "1234567" MSN instant messaging service handle "jsmith42@hotmail.com" Yahoo! instant messaging service handle "jsmith421234" Jabber instant messaging service handle "jsmith@jabber.example.com" Skype instant messaging service handle "jsmith42" Various web addresses connected with this personality. Web site URL "http://example.com/~jsmith/" Blog home page URL "http://example.com/jsmith_blog/" LinkedIn URL "http://www.linkedin.com/pub/1/234/56" Amazon URL "http://www.amazon.com/gp/pdp/profile/A24DLKJ825" Flickr URL "http://flickr.com/photos/jsmith42/" del.icio.us URL "http://del.icio.us/jsmith42" Audio and images of this personality. Spoken name (web URL) "http://example.com/~jsmith/john_smith.wav" Audio greeting (web URL) "http://example.com/~jsmith/i_greet_you.wav" Video greeting (web URL) "http://example.com/~jsmith/i_greet_you.mov" Images of this personality. Image (web URL); unspecified dimension "http://example.com/~jsmith/image.jpg" Image (web URL) with equal width and height "http://example.com/~jsmith/image.jpg" Image (web URL) 4:3 aspect ratio - landscape "http://example.com/~jsmith/image.jpg" Image (web URL) 4:3 aspect ratio - landscape "http://example.com/~jsmith/image.jpg" Image (web URL); favicon format as per FAVICON-W3C. The format for the image must be 16x16 pixels or 32x32 pixels, using either 8-bit or 24-bit colors. The format of the image must be one of PNG (a W3C standard), GIF, or ICO. "http://example.com/~jsmith/image.jpg" Manages the processing and construction of OpenID extensions parts. This contains a set of aliases that we must be willing to implicitly match to namespaces for backward compatibility with other OpenID libraries. The version of OpenID that the message is using. Whether extensions are being read or written. The alias manager that will track Type URI to alias mappings. A complex dictionary where the key is the Type URI of the extension, and the value is another dictionary of the name/value args of the extension. Prevents a default instance of the class from being created. Creates a instance to process incoming extensions. The parameters in the OpenID message. The newly created instance of . Creates a instance to prepare outgoing extensions. The protocol version used for the outgoing message. The newly created instance of . Adds query parameters for OpenID extensions to the request directed at the OpenID provider. The extension type URI. The arguments for this extension to add to the message. Gets the actual arguments to add to a querystring or other response, where type URI, alias, and actual key/values are all defined. true if the generated parameter names should include the 'openid.' prefix. This should be true for all but direct response messages. A dictionary of key=value pairs to add to the message to carry the extension. Gets the fields carried by a given OpenId extension. The type URI of the extension whose fields are being queried for. The fields included in the given extension, or null if the extension is not present. Gets whether any arguments for a given extension are present. The extension Type URI in question. true if this extension is present; false otherwise. Gets the type URIs of all discovered extensions in the message. A sequence of the type URIs. Gets a value indicating whether the extensions are being read (as opposed to written). An interface that OpenID extensions can implement to allow authentication response messages with included extensions to be processed by Javascript on the user agent. Reads the extension information on an authentication response from the provider. The incoming OpenID response carrying the extension. A Javascript snippet that when executed on the user agent returns an object with the information deserialized from the extension response. This method is called before the signature on the assertion response has been verified. Therefore all information in these fields should be assumed unreliable and potentially falsified. An extension to include with an authentication request in order to also obtain authorization to access user data at the combined OpenID Provider and Service Provider. When requesting OpenID Authentication via the protocol mode "checkid_setup" or "checkid_immediate", this extension can be used to request that the end user authorize an OAuth access token at the same time as an OpenID authentication. This is done by sending the following parameters as part of the OpenID request. (Note that the use of "oauth" as part of the parameter names here and in subsequent sections is just an example. See Section 5 for details.) See section 8. The factory method that may be used in deserialization of this message. Initializes a new instance of the class. Gets or sets the consumer key agreed upon between the Consumer and Service Provider. Gets or sets a string that encodes, in a way possibly specific to the Combined Provider, one or more scopes for the OAuth token expected in the authentication response. The OAuth response that a Provider may include with a positive OpenID identity assertion with an approved request token. The factory method that may be used in deserialization of this message. Initializes a new instance of the class. Gets or sets the user-approved request token. The request token. Gets or sets a string that encodes, in a way possibly specific to the Combined Provider, one or more scopes that the returned request token is valid for. This will typically indicate a subset of the scopes requested in Section 8. Constants used in the OpenID OAuth extension. The TypeURI for the OpenID OAuth extension. The name of the parameter that carries the request token in the response. The OAuth response that a Provider should include with a positive OpenID identity assertion when OAuth authorization was declined. The factory method that may be used in deserialization of this message. Initializes a new instance of the class. An OpenID extension factory that only delegates extension instantiation requests to other factories. The list of factories this factory delegates to. Initializes a new instance of the class. Creates a new instance of some extension based on the received extension parameters. The type URI of the extension. The parameters associated specifically with this extension. The OpenID message carrying this extension. A value indicating whether this extension is being received at the OpenID Provider. An instance of if the factory recognizes the extension described in the input parameters; null otherwise. This factory method need only initialize properties in the instantiated extension object that are not bound using . Loads the default factory and additional ones given by the configuration. A new instance of . Gets the extension factories that this aggregating factory delegates to. A list of factories. May be empty, but never null. Encodes/decodes the Simple Registration Gender type to its string representation. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. An OpenID extension factory that supports registration so that third-party extensions can add themselves to this library's supported extension list. A collection of the registered OpenID extensions. Initializes a new instance of the class. Creates a new instance of some extension based on the received extension parameters. The type URI of the extension. The parameters associated specifically with this extension. The OpenID message carrying this extension. A value indicating whether this extension is being received at the OpenID Provider. An instance of if the factory recognizes the extension described in the input parameters; null otherwise. This factory method need only initialize properties in the instantiated extension object that are not bound using . Registers a new extension delegate. The factory method that can create the extension. A delegate that individual extensions may register with this factory. The type URI of the extension. The parameters associated specifically with this extension. The OpenID message carrying this extension. A value indicating whether this extension is being received at the OpenID Provider. An instance of if the factory recognizes the extension described in the input parameters; null otherwise. Well-known authentication policies defined in the PAPE extension spec or by a recognized standards body. This is a class of constants rather than a flags enum because policies may be freely defined and used by anyone, just by using a new Uri. An authentication mechanism where the End User does not provide a shared secret to a party potentially under the control of the Relying Party. (Note that the potentially malicious Relying Party controls where the User-Agent is redirected to and thus may not send it to the End User's actual OpenID Provider). An authentication mechanism where the End User authenticates to the OpenID Provider by providing over one authentication factor. Common authentication factors are something you know, something you have, and something you are. An example would be authentication using a password and a software token or digital certificate. An authentication mechanism where the End User authenticates to the OpenID Provider by providing over one authentication factor where at least one of the factors is a physical factor such as a hardware device or biometric. Common authentication factors are something you know, something you have, and something you are. This policy also implies the Multi-Factor Authentication policy (http://schemas.openid.net/pape/policies/2007/06/multi-factor) and both policies MAY BE specified in conjunction without conflict. An example would be authentication using a password and a hardware token. Indicates that the Provider MUST use a pair-wise pseudonym for the user that is persistent and unique across the requesting realm as the openid.claimed_id and openid.identity (see Section 4.2). Indicates that the OP MUST only respond with a positive assertion if the requirements demonstrated by the OP to obtain certification by a Federally adopted Trust Framework Provider have been met. Notwithstanding the RP may request this authentication policy, the RP MUST still verify that this policy appears in the positive assertion response rather than assume the OP recognized and complied with the request. Indicates that the OP MUST not include any OpenID Attribute Exchange or Simple Registration information regarding the user in the assertion. Used in a PAPE response to indicate that no PAPE authentication policies could be satisfied. Used internally by the PAPE extension, so that users don't have to know about it. OpenID Provider Authentication Policy extension constants. The namespace used by this extension in messages. The namespace alias to use for OpenID 1.x interop, where aliases are not defined in the message. The string to prepend on an Auth Level Type alias definition. Well-known assurance level Type URIs. The Type URI of the NIST assurance level. A mapping between the PAPE TypeURI and the alias to use if possible for backward compatibility reasons. Parameters to be included with PAPE requests. Optional. If the End User has not actively authenticated to the OP within the number of seconds specified in a manner fitting the requested policies, the OP SHOULD authenticate the End User for this request. Integer value greater than or equal to zero in seconds. The OP should realize that not adhering to the request for re-authentication most likely means that the End User will not be allowed access to the services provided by the RP. If this parameter is absent in the request, the OP should authenticate the user at its own discretion. Zero or more authentication policy URIs that the OP SHOULD conform to when authenticating the user. If multiple policies are requested, the OP SHOULD satisfy as many as it can. Space separated list of authentication policy URIs. If no policies are requested, the RP may be interested in other information such as the authentication age. The space separated list of the name spaces of the custom Assurance Level that RP requests, in the order of its preference. An encoder/decoder design for DateTimes that must conform to the PAPE spec. The timestamp MUST be formatted as specified in section 5.6 of [RFC3339] (Klyne, G. and C. Newman, “Date and Time on the Internet: Timestamps,” .), with the following restrictions: * All times must be in the UTC timezone, indicated with a "Z". * No fractional seconds are allowed For example: 2005-05-15T17:11:51Z An array of the date/time formats allowed by the PAPE extension. TODO: This array of formats is not yet a complete list. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Descriptions for NIST-defined levels of assurance that a credential has not been compromised and therefore the extent to which an authentication assertion can be trusted. One using this enum should review the following publication for details before asserting or interpreting what these levels signify, notwithstanding the brief summaries attached to each level in DotNetOpenAuth documentation. http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf See PAPE spec Appendix A.1.2 (NIST Assurance Levels) for high-level example classifications of authentication methods within the defined levels. Not an assurance level defined by NIST, but rather SHOULD be used to signify that the OP recognizes the parameter and the End User authentication did not meet the requirements of Level 1. See this document for a thorough description: http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf See this document for a thorough description: http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf See this document for a thorough description: http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf See this document for a thorough description: http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf Utility methods for use by the PAPE extension. Looks at the incoming fields and figures out what the aliases and name spaces for auth level types are. The incoming message data in which to discover TypeURIs and aliases. The initialized with the given data. Concatenates a sequence of strings using a space as a separator. The elements to concatenate together.. The concatenated string of elements. Thrown if any element in the sequence includes a space. The PAPE request part of an OpenID Authentication request message. The factory method that may be used in deserialization of this message. The transport field for the RP's preferred authentication policies. This field is written to/read from during custom serialization. Initializes a new instance of the class. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Serializes the policies as a single string per the PAPE spec.. The policies to include in the list. The concatenated string of the given policies. Serializes the auth levels to a list of aliases. The preferred auth level types. The alias manager. A space-delimited list of aliases. Gets or sets the maximum acceptable time since the End User has actively authenticated to the OP in a manner fitting the requested policies, beyond which the Provider SHOULD authenticate the End User for this request. The OP should realize that not adhering to the request for re-authentication most likely means that the End User will not be allowed access to the services provided by the RP. If this parameter is absent in the request, the OP should authenticate the user at its own discretion. Gets the list of authentication policy URIs that the OP SHOULD conform to when authenticating the user. If multiple policies are requested, the OP SHOULD satisfy as many as it can. List of authentication policy URIs obtainable from the class or from a custom list. If no policies are requested, the RP may be interested in other information such as the authentication age. Gets the namespaces of the custom Assurance Level the Relying Party requests, in the order of its preference. The PAPE response part of an OpenID Authentication response message. The first part of a parameter name that gives the custom string value for the assurance level. The second part of the parameter name is the alias for that assurance level. The factory method that may be used in deserialization of this message. One or more authentication policy URIs that the OP conformed to when authenticating the End User. Space separated list of authentication policy URIs. If no policies were met though the OP wishes to convey other information in the response, this parameter MUST be included with the value of "none". Backing field for the property. Initializes a new instance of the class. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Serializes the applied policies for transmission from the Provider to the Relying Party. The applied policies. A space-delimited list of applied policies. Gets a list of authentication policy URIs that the OP conformed to when authenticating the End User. Gets or sets the most recent timestamp when the End User has actively authenticated to the OP in a manner fitting the asserted policies. If the RP's request included the "openid.pape.max_auth_age" parameter then the OP MUST include "openid.pape.auth_time" in its response. If "openid.pape.max_auth_age" was not requested, the OP MAY choose to include "openid.pape.auth_time" in its response. Gets or sets the Assurance Level as defined by the National Institute of Standards and Technology (NIST) in Special Publication 800-63 (Burr, W., Dodson, D., and W. Polk, Ed., “Electronic Authentication Guideline,” April 2006.) [NIST_SP800‑63] corresponding to the authentication method and policies employed by the OP when authenticating the End User. See PAPE spec Appendix A.1.2 (NIST Assurance Levels) for high-level example classifications of authentication methods within the defined levels. Gets a dictionary where keys are the authentication level type URIs and the values are the per authentication level defined custom value. A very common key is and values for this key are available in . Gets a value indicating whether this extension is signed by the Provider. true if this instance is signed by the Provider; otherwise, false. Carries the request/require/none demand state of the simple registration fields. The factory method that may be used in deserialization of this message. The type URI that this particular (deserialized) extension was read in using, allowing a response to alter be crafted using the same type URI. Initializes a new instance of the class. Initializes a new instance of the class by deserializing from a message. The type URI this extension was recognized by in the OpenID message. Tests equality between two structs. One instance to compare. Another instance to compare. The result of the operator. Tests inequality between two structs. One instance to compare. Another instance to compare. The result of the operator. Tests equality between two structs. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Renders the requested information as a string. A that represents the current . Prepares a Simple Registration response extension that is compatible with the version of Simple Registration used in the request message. The newly created instance. Sets the profile request properties according to a list of field names that might have been passed in the OpenId query dictionary. The list of field names that should receive a given . These field names should match the OpenId specification for field names, omitting the 'openid.sreg' prefix. The none/request/require state of the listed fields. Assembles the profile parameter names that have a given . The demand level (request, require, none). An array of the profile parameter names that meet the criteria. Gets or sets the URL the consumer site provides for the authenticating user to review for how his claims will be used by the consumer web site. Gets or sets the level of interest a relying party has in the nickname of the user. Gets or sets the level of interest a relying party has in the email of the user. Gets or sets the level of interest a relying party has in the full name of the user. Gets or sets the level of interest a relying party has in the birthdate of the user. Gets or sets the level of interest a relying party has in the gender of the user. Gets or sets the level of interest a relying party has in the postal code of the user. Gets or sets the level of interest a relying party has in the Country of the user. Gets or sets the level of interest a relying party has in the language of the user. Gets or sets the level of interest a relying party has in the time zone of the user. Gets or sets a value indicating whether this instance is synthesized from an AX request at the Provider. Gets or sets the value of the sreg.required parameter. A comma-delimited list of sreg fields. Gets or sets the value of the sreg.optional parameter. A comma-delimited list of sreg fields. A struct storing Simple Registration field values describing an authenticating user. The factory method that may be used in deserialization of this message. The allowed format for birthdates. Storage for the raw string birthdate value. Backing field for the property. Backing field for the property. Initializes a new instance of the class using the most common, and spec prescribed type URI. Initializes a new instance of the class. The type URI that must be used to identify this extension in the response message. This value should be the same one the relying party used to send the extension request. Commonly used type URIs supported by relying parties are defined in the class. Tests equality of two objects. One instance to compare. Another instance to compare. The result of the operator. Tests inequality of two objects. One instance to compare. Another instance to compare. The result of the operator. Tests equality of two objects. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Reads the extension information on an authentication response from the provider. The incoming OpenID response carrying the extension. A Javascript snippet that when executed on the user agent returns an object with the information deserialized from the extension response. This method is called before the signature on the assertion response has been verified. Therefore all information in these fields should be assumed unreliable and potentially falsified. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Translates an empty string value to null, or passes through non-empty values. The value to consider changing to null. Either null or a non-empty string. Gets or sets the nickname the user goes by. Gets or sets the user's email address. Gets or sets the full name of a user as a single string. Gets or sets the user's birthdate. Gets or sets the raw birth date string given by the extension. A string in the format yyyy-MM-dd. Gets or sets the gender of the user. Gets or sets the zip code / postal code of the user. Gets or sets the country of the user. Gets or sets the primary/preferred language of the user. Gets or sets the user's timezone. Gets a combination of the user's full name and email address. Gets or sets a combination of the language and country of the user. Gets a value indicating whether this extension is signed by the Provider. true if this instance is signed by the Provider; otherwise, false. Simple Registration constants Additional type URIs that this extension is sometimes known by remote parties. Commonly used type URIs to represent the Simple Registration extension. The URI "http://openid.net/extensions/sreg/1.1". This is the type URI prescribed by the Simple Registration 1.1 spec. http://openid.net/specs/openid-simple-registration-extension-1_1-01.html#anchor3 The URI "http://openid.net/sreg/1.0" The URI "http://openid.net/sreg/1.1" Specifies what level of interest a relying party has in obtaining the value of a given field offered by the Simple Registration extension. The relying party has no interest in obtaining this field. The relying party would like the value of this field, but wants the Provider to display the field to the user as optionally provided. The relying party considers this a required field as part of authentication. The Provider and/or user agent MAY still choose to not provide the value of the field however, according to the Simple Registration extension specification. Indicates the gender of a user. The user is male. The user is female. Constants used to support the UI extension. The type URI associated with this extension. The Type URI that appears in an XRDS document when the OP supports popups through the UI extension. The Type URI that appears in an XRDS document when the OP supports the RP specifying the user's preferred language through the UI extension. The Type URI that appears in the XRDS document when the OP supports the RP specifying the icon for the OP to display during authentication through the UI extension. Valid values for the mode parameter of the OpenID User Interface extension. Indicates that the Provider's authentication page appears in a popup window. The constant "popup". The RP SHOULD create the popup to be 450 pixels wide and 500 pixels tall. The popup MUST have the address bar displayed, and MUST be in a standalone browser window. The contents of the popup MUST NOT be framed by the RP. The RP SHOULD open the popup centered above the main browser window, and SHOULD dim the contents of the parent window while the popup is active. The RP SHOULD ensure that the user is not surprised by the appearance of the popup, and understands how to interact with it. To keep the user popup user experience consistent, it is RECOMMENDED that the OP does not resize the popup window unless the OP requires additional space to show special features that are not usually displayed as part of the default popup user experience. The OP MAY close the popup without returning a response to the RP. Closing the popup without sending a response should be interpreted as a negative assertion. The response to an authentication request in a popup is unchanged from [OpenID 2.0] (OpenID 2.0 Workgroup, “OpenID 2.0,” .). Relying Parties detecting that the popup was closed without receiving an authentication response SHOULD interpret the close event to be a negative assertion. OpenID User Interface extension 1.0 request message. Implements the extension described by: http://wiki.openid.net/f/openid_ui_extension_draft01.html This extension only applies to checkid_setup requests, since checkid_immediate requests display no UI to the user. For rules about how the popup window should be displayed, please see the documentation of . An RP may determine whether an arbitrary OP supports this extension (and thereby determine whether to use a standard full window redirect or a popup) via the method. The factory method that may be used in deserialization of this message. Additional type URIs that this extension is sometimes known by remote parties. Backing store for . Initializes a new instance of the class. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Gets or sets the list of user's preferred languages, sorted in decreasing preferred order. The default is the of the thread that created this instance. The user's preferred languages as a [BCP 47] language priority list, represented as a comma-separated list of BCP 47 basic language ranges in descending priority order. For instance, the value "fr-CA,fr-FR,en-CA" represents the preference for French spoken in Canada, French spoken in France, followed by English spoken in Canada. Gets or sets the style of UI that the RP is hosting the OP's authentication page in. Some value from the class. Defaults to . Gets or sets a value indicating whether the Relying Party has an icon it would like the Provider to display to the user while asking them whether they would like to log in. true if the Provider should display an icon; otherwise, false. By default, the Provider displays the relying party's favicon.ico. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets or sets a value indicating whether this extension was signed by the sender. true if this instance is signed by the sender; otherwise, false. Gets the version of the protocol or extension this message is prepared to implement. The value 1.0. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Constants used in implementing support for the UI extension. The required width of the popup window the relying party creates for the provider. The required height of the popup window the relying party creates for the provider. An Identifier is either a "http" or "https" URI, or an XRI. Initializes a new instance of the class. The original string before any normalization. Whether the derived class is prepared to guarantee end-to-end discovery and initial redirect for authentication is performed using SSL. Converts the string representation of an Identifier to its strong type. The identifier. The particular Identifier instance to represent the value given. Converts a given Uri to a strongly-typed Identifier. The identifier to convert. The result of the conversion. Converts an Identifier to its string representation. The identifier to convert to a string. The result of the conversion. Parses an identifier string and automatically determines whether it is an XRI or URI. Either a URI or XRI identifier. An instance for the given value. Parses an identifier string and automatically determines whether it is an XRI or URI. Either a URI or XRI identifier. if set to true this Identifier will serialize exactly as given rather than in its normalized form. An instance for the given value. Attempts to parse a string for an OpenId Identifier. The string to be parsed. The parsed Identifier form. True if the operation was successful. False if the string was not a valid OpenId Identifier. Checks the validity of a given string representation of some Identifier. The identifier. true if the specified identifier is valid; otherwise, false. Tests equality between two s. The first Identifier. The second Identifier. true if the two instances should be considered equal; false otherwise. Tests inequality between two s. The first Identifier. The second Identifier. true if the two instances should be considered unequal; false if they are equal. Tests equality between two s. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Gets the hash code for an for storage in a hashtable. A hash code for the current . Reparses the specified identifier in order to be assured that the concrete type that implements the identifier is one of the well-known ones. The identifier. Either or . Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. Gets the original string that was normalized to create this Identifier. Gets the Identifier in the form in which it should be serialized. For Identifiers that were originally deserialized, this is the exact same string that was deserialized. For Identifiers instantiated in some other way, this is the normalized form of the string used to instantiate the identifier. Gets or sets a value indicating whether instances are considered equal based solely on their string reprsentations. This property serves as a test hook, so that MockIdentifier instances can be considered "equal" to UriIdentifier instances. Gets a value indicating whether this Identifier will ensure SSL is used throughout the discovery phase and initial redirect of authentication. If this is false, a value of true may be obtained by calling . Gets a value indicating whether this instance was initialized from deserializing a message. This is interesting because when an Identifier comes from the network, we can't normalize it and then expect signatures to still verify. But if the Identifier is initialized locally, we can and should normalize it before serializing it. Provides conversions to and from strings for messages that include members of this type. Encodes the specified value as the original value that was formerly decoded. The value. Guaranteed to never be null. The in string form, ready for message transport. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Code Contract for the class. Prevents a default instance of the IdentifierContract class from being created. Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. A set of methods designed to assist in improving interop across different OpenID implementations and their extensions. The gender decoder to translate AX genders to Sreg. Splits the AX attribute format flags into individual values for processing. The formats to split up into individual flags. A sequence of individual flags. Transforms an AX attribute type URI from the axschema.org format into a given format. The ax schema org format type URI. The target format. Only one flag should be set. The AX attribute type URI in the target format. Detects the AX attribute type URI format from a given sample. The type URIs to scan for recognized formats. The first AX type URI format recognized in the list. Adds an attribute fetch request if it is not already present in the AX request. The AX request to add the attribute request to. The format of the attribute's Type URI to use. The attribute in axschema.org format. The demand level. Gets the gender decoder to translate AX genders to Sreg. Represents a single OP endpoint from discovery on some OpenID Identifier. Information published about an OpenId Provider by the OpenId discovery documents found at a user's Claimed Identifier. Because information provided by this interface is suppplied by a user's individually published documents, it may be incomplete or inaccurate. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Gets the detected version of OpenID implemented by the Provider. Gets the URL that the OpenID Provider receives authentication requests at. This value MUST be an absolute HTTP or HTTPS URL. Backing field for the property. Backing field for the property. Backing field for the property. Initializes a new instance of the class. The provider endpoint. The Claimed Identifier. The User-supplied Identifier. The Provider Local Identifier. The service priority. The URI priority. Implements the operator ==. The first service endpoint. The second service endpoint. The result of the operator. Implements the operator !=. The first service endpoint. The second service endpoint. The result of the operator. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Returns a that represents the current . A that represents the current . Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Determines whether a given extension is supported by this endpoint. An instance of the extension to check support for. true if the extension is supported by this endpoint; otherwise, false. Creates a instance to represent some OP Identifier. The provider identifier (actually the user-supplied identifier). The provider endpoint. The service priority. The URI priority. The created instance Creates a instance to represent some Claimed Identifier. The claimed identifier. The provider local identifier. The provider endpoint. The service priority. The URI priority. The created instance Creates a instance to represent some Claimed Identifier. The claimed identifier. The user supplied identifier. The provider local identifier. The provider endpoint. The service priority. The URI priority. The created instance Determines whether a given type URI is present on the specified provider endpoint. The type URI. true if the type URI is present on the specified provider endpoint; otherwise, false. Sets the Capabilities property (this method is a test hook.) The value. The publicize.exe tool should work for the unit tests, but for some reason it fails on the build server. Gets the priority rating for a given type of endpoint, allowing a priority sorting of endpoints. The endpoint to prioritize. An arbitary integer, which may be used for sorting against other returned values from this method. Gets the detected version of OpenID implemented by the Provider. Gets the Identifier that was presented by the end user to the Relying Party, or selected by the user at the OpenID Provider. During the initiation phase of the protocol, an end user may enter either their own Identifier or an OP Identifier. If an OP Identifier is used, the OP may then assist the end user in selecting an Identifier to share with the Relying Party. Gets the Identifier that the end user claims to control. Gets an alternate Identifier for an end user that is local to a particular OP and thus not necessarily under the end user's control. Gets a more user-friendly (but NON-secure!) string to display to the user as his identifier. A human-readable, abbreviated (but not secure) identifier the user MAY recognize as his own. Gets the provider endpoint. Gets the @priority given in the XRDS document for this specific OP endpoint. Gets the @priority given in the XRDS document for this service (which may consist of several endpoints). Gets the collection of service type URIs found in the XRDS document describing this Provider. Should never be null, but may be empty. Gets the URL that the OpenID Provider receives authentication requests at. This value MUST be an absolute HTTP or HTTPS URL. Gets an XRDS sorting routine that uses the XRDS Service/@Priority attribute to determine order. Endpoints lacking any priority value are sorted to the end of the list. Gets the protocol used by the OpenID Provider. A module that provides discovery services for OpenID identifiers. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. Code contract for the interface. Prevents a default instance of the class from being created. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. A service that can perform discovery on OpenID identifiers. The RP or OP that is hosting these services. Backing field for the property. Initializes a new instance of the class. The RP or OP that creates this instance. Performs discovery on the specified identifier. The identifier to discover services for. A non-null sequence of services discovered for the identifier. Gets the list of services that can perform discovery on identifiers given. An interface implemented by both providers and relying parties. Gets the security settings. Gets the web request handler. Code contract for the type. Prevents a default instance of the class from being created. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Gets the detected version of OpenID implemented by the Provider. Gets the URL that the OpenID Provider receives authentication requests at. Instances of this interface represent incoming authentication requests. This interface provides the details of the request and allows setting the response. Interface exposing incoming messages to the OpenID Provider that require interaction with the host site. Represents an incoming OpenId authentication request. Requests may be infrastructural to OpenID and allow auto-responses, or they may be authentication requests where the Provider site has to make decisions based on its own user database and policies. Adds an extension to the response to send to the relying party. The extension to add to the response message. Removes any response extensions previously added using . This should be called before sending a negative response back to the relying party if extensions were already added, since negative responses cannot carry extensions. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets a value indicating whether the response is ready to be sent to the user agent. This property returns false if there are properties that must be set on this request instance before the response can be sent. Gets or sets the security settings that apply to this request. Defaults to the OpenIdProvider.SecuritySettings on the OpenIdProvider. Attempts to perform relying party discovery of the return URL claimed by the Relying Party. The web request handler. The details of how successful the relying party discovery was. Return URL verification is only attempted if this method is called. See OpenID Authentication 2.0 spec section 9.2.1. Gets the version of OpenID being used by the relying party that sent the request. Gets the URL the consumer site claims to use as its 'base' address. Gets a value indicating whether the consumer demands an immediate response. If false, the consumer is willing to wait for the identity provider to authenticate the user. Gets or sets the provider endpoint claimed in the positive assertion. The default value is the URL that the request came in on from the relying party. This value MUST match the value for the OP Endpoint in the discovery results for the claimed identifier being asserted in a positive response. Adds an optional fragment (#fragment) portion to the ClaimedIdentifier. Useful for identifier recycling. Should not include the # prefix character as that will be added internally. May be null or the empty string to clear a previously set fragment. Unlike the property, which can only be set if using directed identity, this method can be called on any URI claimed identifier. Because XRI claimed identifiers (the canonical IDs) are never recycled, this method shouldnot be called for XRIs. Thrown when this method is called on an XRI, or on a directed identity request before the property is set. Gets a value indicating whether the Provider should help the user select a Claimed Identifier to send back to the relying party. Gets a value indicating whether the requesting Relying Party is using a delegated URL. When delegated identifiers are used, the should not be changed at the Provider during authentication. Delegation is only detectable on requests originating from OpenID 2.0 relying parties. A relying party implementing only OpenID 1.x may use delegation and this property will return false anyway. Gets or sets the Local Identifier to this OpenID Provider of the user attempting to authenticate. Check to see if this value is valid. This may or may not be the same as the Claimed Identifier that the user agent originally supplied to the relying party. The Claimed Identifier endpoint may be delegating authentication to this provider using this provider's local id, which is what this property contains. Use this identifier when looking up this user in the provider's user account list. Gets or sets the identifier that the user agent is claiming at the relying party site. Check to see if this value is valid. This property can only be set if is false, to prevent breaking URL delegation. This will not be the same as this provider's local identifier for the user if the user has set up his/her own identity page that points to this provider for authentication. The provider may use this identifier for displaying to the user when asking for the user's permission to authenticate to the relying party. Thrown from the setter if is true. Gets or sets a value indicating whether the provider has determined that the belongs to the currently logged in user and wishes to share this information with the consumer. Code contract class for the type. Initializes a new instance of the class. Adds an optional fragment (#fragment) portion to the ClaimedIdentifier. Useful for identifier recycling. Should not include the # prefix character as that will be added internally. May be null or the empty string to clear a previously set fragment. Unlike the property, which can only be set if using directed identity, this method can be called on any URI claimed identifier. Because XRI claimed identifiers (the canonical IDs) are never recycled, this method shouldnot be called for XRIs. Thrown when this method is called on an XRI, or on a directed identity request before the property is set. Attempts to perform relying party discovery of the return URL claimed by the Relying Party. The web request handler to use for the RP discovery request. The details of how successful the relying party discovery was. Return URL verification is only attempted if this method is called. See OpenID Authentication 2.0 spec section 9.2.1. Adds an extension to the response to send to the relying party. The extension to add to the response message. Removes any response extensions previously added using . This should be called before sending a negative response back to the relying party if extensions were already added, since negative responses cannot carry extensions. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets a value indicating whether the Provider should help the user select a Claimed Identifier to send back to the relying party. Gets a value indicating whether the requesting Relying Party is using a delegated URL. When delegated identifiers are used, the should not be changed at the Provider during authentication. Delegation is only detectable on requests originating from OpenID 2.0 relying parties. A relying party implementing only OpenID 1.x may use delegation and this property will return false anyway. Gets or sets the Local Identifier to this OpenID Provider of the user attempting to authenticate. Check to see if this value is valid. This may or may not be the same as the Claimed Identifier that the user agent originally supplied to the relying party. The Claimed Identifier endpoint may be delegating authentication to this provider using this provider's local id, which is what this property contains. Use this identifier when looking up this user in the provider's user account list. Gets or sets the identifier that the user agent is claiming at the relying party site. Check to see if this value is valid. This property can only be set if is false, to prevent breaking URL delegation. This will not be the same as this provider's local identifier for the user if the user has set up his/her own identity page that points to this provider for authentication. The provider may use this identifier for displaying to the user when asking for the user's permission to authenticate to the relying party. Thrown from the setter if is true. Gets or sets a value indicating whether the provider has determined that the belongs to the currently logged in user and wishes to share this information with the consumer. Gets the version of OpenID being used by the relying party that sent the request. Gets the URL the consumer site claims to use as its 'base' address. Gets a value indicating whether the consumer demands an immediate response. If false, the consumer is willing to wait for the identity provider to authenticate the user. Gets or sets the provider endpoint claimed in the positive assertion. The default value is the URL that the request came in on from the relying party. This value MUST match the value for the OP Endpoint in the discovery results for the claimed identifier being asserted in a positive response. Gets a value indicating whether the response is ready to be sent to the user agent. This property returns false if there are properties that must be set on this request instance before the response can be sent. Gets or sets the security settings that apply to this request. Defaults to the OpenIdProvider.SecuritySettings on the OpenIdProvider. Code contract for the type. Initializes a new instance of the class. Adds an extension to the response to send to the relying party. The extension to add to the response message. Removes any response extensions previously added using . This should be called before sending a negative response back to the relying party if extensions were already added, since negative responses cannot carry extensions. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Attempts to perform relying party discovery of the return URL claimed by the Relying Party. The web request handler. The details of how successful the relying party discovery was. Return URL verification is only attempted if this method is called. See OpenID Authentication 2.0 spec section 9.2.1. Gets the version of OpenID being used by the relying party that sent the request. Gets the URL the consumer site claims to use as its 'base' address. Gets a value indicating whether the consumer demands an immediate response. If false, the consumer is willing to wait for the identity provider to authenticate the user. Gets or sets the provider endpoint. The default value is the URL that the request came in on from the relying party. Gets or sets the security settings that apply to this request. Defaults to the OpenIdProvider.SecuritySettings on the OpenIdProvider. Gets a value indicating whether the response is ready to be sent to the user agent. This property returns false if there are properties that must be set on this request instance before the response can be sent. Applies a custom security policy to certain OpenID security settings and behaviors. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when a request is received by the Provider. The incoming request. true if this behavior owns this request and wants to stop other behaviors from handling it; false to allow other behaviors to process this request. Implementations may set a new value to but should not change the properties on the instance of itself as that instance may be shared across many requests. Called when the Provider is preparing to send a response to an authentication request. The request that is configured to generate the outgoing response. true if this behavior owns this request and wants to stop other behaviors from handling it; false to allow other behaviors to process this request. Code contract for the type. Initializes a new instance of the class. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when a request is received by the Provider. The incoming request. true if this behavior owns this request and wants to stop other behaviors from handling it; false to allow other behaviors to process this request. Implementations may set a new value to but should not change the properties on the instance of itself as that instance may be shared across many requests. Called when the Provider is preparing to send a response to an authentication request. The request that is configured to generate the outgoing response. true if this behavior owns this request and wants to stop other behaviors from handling it; false to allow other behaviors to process this request. Code contract for the interface. Prevents a default instance of the class from being created. Adds an extension to the response to send to the relying party. The extension to add to the response message. Removes any response extensions previously added using . This should be called before sending a negative response back to the relying party if extensions were already added, since negative responses cannot carry extensions. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets or sets the security settings that apply to this request. Defaults to the OpenIdProvider.SecuritySettings on the OpenIdProvider. Gets a value indicating whether the response is ready to be sent to the user agent. This property returns false if there are properties that must be set on this request instance before the response can be sent. Security settings that are applicable to providers. Security settings that may be applicable to both relying parties and providers. Gets the default minimum hash bit length. Gets the maximum hash bit length default for relying parties. Gets the maximum hash bit length default for providers. Initializes a new instance of the class. A value indicating whether this class is being instantiated for a Provider. Determines whether a named association fits the security requirements. The protocol carrying the association. The value of the openid.assoc_type parameter. true if the association is permitted given the security requirements; otherwise, false. Determines whether a given association fits the security requirements. The association to check. true if the association is permitted given the security requirements; otherwise, false. Gets or sets the minimum hash length (in bits) allowed to be used in an with the remote party. The default is 160. SHA-1 (160 bits) has been broken. The minimum secure hash length is now 256 bits. The default is still a 160 bit minimum to allow interop with common remote parties, such as Yahoo! that only supports 160 bits. For sites that require high security such as to store bank account information and health records, 256 is the recommended value. Gets or sets the maximum hash length (in bits) allowed to be used in an with the remote party. The default is 256 for relying parties and 512 for providers. The longer the bit length, the more secure the identities of your visitors are. Setting a value higher than 256 on a relying party site may reduce performance as many association requests will be denied, causing secondary requests or even authentication failures. Setting a value higher than 256 on a provider increases security where possible without these side-effects. Gets or sets a value indicating whether identifiers that are both OP Identifiers and Claimed Identifiers should ever be recognized as claimed identifiers. The default value is false, per the OpenID 2.0 spec. OpenID 2.0 sections 7.3.2.2 and 11.2 specify that OP Identifiers never be recognized as Claimed Identifiers. However, for some scenarios it may be desirable for an RP to override this behavior and allow this. The security ramifications of setting this property to true have not been fully explored and therefore this setting should only be changed with caution. The default value for the property. The default value for the property. The default value for the property. The default value for the property. The subset of association types and their customized lifetimes. Initializes a new instance of the class. Creates a deep clone of this instance. A new instance that is a deep clone of this instance. Gets a subset of the available association types and their customized maximum lifetimes. Gets or sets a value indicating whether Relying Party discovery will only succeed if done over a secure HTTPS channel. Default is false. Gets or sets the level of verification a Provider performs on an identifier before sending an unsolicited assertion for it. The default value is . Gets or sets a value indicating whether the Provider should ease the burden of storing associations by encoding them in signed, encrypted form into the association handles themselves, storing only a few rotating, private symmetric keys in the Provider's store instead. The default value for this property is true. Gets or sets a value indicating whether OpenID 1.x relying parties that may not be protecting their users from replay attacks are protected from replay attacks by this provider. The default value is true. Nonces for protection against replay attacks were not mandated by OpenID 1.x, which leaves users open to replay attacks. This feature works by preventing associations from being used with OpenID 1.x relying parties, thereby forcing them into "dumb" mode and verifying every claim with this provider. This gives the provider an opportunity to verify its own nonce to protect against replay attacks. Gets or sets a value indicating whether outgoing extensions are always signed. true if outgoing extensions should be signed; otherwise, false. The default is true. This property is internal because Providers should never turn it off, but it is needed for testing the RP's rejection of unsigned extensions. The behavior a Provider takes when verifying that it is authoritative for an identifier it is about to send an unsolicited assertion for. Always verify that the Provider is authoritative for an identifier before sending an unsolicited assertion for it and fail if it is not. Always check that the Provider is authoritative for an identifier before sending an unsolicited assertion for it, but only log failures, and proceed to send the unsolicited assertion. Never verify that the Provider is authoritative for an identifier before sending an unsolicited assertion for it. This setting is useful for web servers that refuse to allow a Provider to introspectively perform an HTTP GET on itself, when sending unsolicited assertions for identifiers that the OP controls. The result codes that may be returned from an attempt at relying party discovery. Relying Party discovery failed to find an XRDS document or the document was invalid. This can happen either when a relying party does not offer a service document at all, or when a man-in-the-middle attack is in progress that prevents the Provider from being able to discover that document. Relying Party discovery yielded a valid XRDS document, but no matching return_to URI was found. This is perhaps the most dangerous rating for a relying party, since it suggests that they are implementing OpenID 2.0 securely, but that a hijack operation may be in progress. Relying Party discovery succeeded, and a matching return_to URI was found. An enumeration of the possible results of an authentication attempt. The authentication was canceled by the user agent while at the provider. The authentication failed because an error was detected in the OpenId communication. The Provider responded to a request for immediate authentication approval with a message stating that additional user agent interaction is required before authentication can be completed. Casting the to a ISetupRequiredAuthenticationResponse in this case can help you retry the authentication using setup (non-immediate) mode. Authentication is completed successfully. The Provider sent a message that did not contain an identity assertion, but may carry OpenID extensions. Instances of this interface represent relying party authentication requests that may be queried/modified in specific ways before being routed to the OpenID Provider. Makes a dictionary of key/value pairs available when the authentication is completed. The arguments to add to the request's return_to URI. Values must not be null. Note that these values are NOT protected against eavesdropping in transit. No privacy-sensitive data should be stored using this method. The values stored here can be retrieved using , which will only return the value if it can be verified as untampered with in transit. Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against eavesdropping in transit. No privacy-sensitive data should be stored using this method. The value stored here can be retrieved using , which will only return the value if it can be verified as untampered with in transit. Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against eavesdropping in transit. No security-sensitive data should be stored using this method. The value stored here can be retrieved using . Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed without requiring a return_to signature to protect against tampering of the callback argument. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against eavesdropping or tampering in transit. No security-sensitive data should be stored using this method. The value stored here can be retrieved using . Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Adds an OpenID extension to the request directed at the OpenID provider. The initialized extension to add to the request. Redirects the user agent to the provider for authentication. Execution of the current page terminates after this call. This method requires an ASP.NET HttpContext. Gets or sets the mode the Provider should use during authentication. Gets the HTTP response the relying party should send to the user agent to redirect it to the OpenID Provider to start the OpenID authentication process. Gets the URL that the user agent will return to after authentication completes or fails at the Provider. Gets the URL that identifies this consumer web application that the Provider will display to the end user. Gets the Claimed Identifier that the User Supplied Identifier resolved to. Null if the user provided an OP Identifier (directed identity). Null is returned if the user is using the directed identity feature of OpenID 2.0 to make it nearly impossible for a relying party site to improperly store the reserved OpenID URL used for directed identity as a user's own Identifier. However, to test for the Directed Identity feature, please test the property rather than testing this property for a null value. Gets a value indicating whether the authenticating user has chosen to let the Provider determine and send the ClaimedIdentifier after authentication. Gets or sets a value indicating whether this request only carries extensions and is not a request to verify that the user controls some identifier. true if this request is merely a carrier of extensions and is not about an OpenID identifier; otherwise, false. Although OpenID is first and primarily an authentication protocol, its extensions can be interesting all by themselves. For instance, a relying party might want to know that its user is over 21 years old, or perhaps a member of some organization. OpenID extensions can provide this, without any need for asserting the identity of the user. Constructing an OpenID request for only extensions can be done by calling OpenIdRelyingParty.CreateRequest with any valid OpenID identifier (claimed identifier or OP identifier). But once this property is set to true, the claimed identifier value in the request is not included in the transmitted message. It is anticipated that an RP would only issue these types of requests to OPs that trusts to make assertions regarding the individual holding an account at that OP, so it is not likely that the RP would allow the user to type in an arbitrary claimed identifier without checking that it resolved to an OP endpoint the RP has on a trust whitelist. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. Gets the discovery result leading to the formulation of this request. The discovery result. An instance of this interface represents an identity assertion from an OpenID Provider. It may be in response to an authentication request previously put to it by a Relying Party site or it may be an unsolicited assertion. Relying party web sites should handle both solicited and unsolicited assertions. This interface does not offer a way to discern between solicited and unsolicited assertions as they should be treated equally. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode null is always returned since the callback arguments could not be signed to protect against tampering. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode an empty dictionary is always returned since the callback arguments could not be signed to protect against tampering. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location, if available. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Code contract for the type. Initializes a new instance of the class. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. This may return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. This MAY return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location, if available. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Applies a custom security policy to certain OpenID security settings and behaviors. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when an authentication request is about to be sent. The request. Implementations should be prepared to be called multiple times on the same outgoing message without malfunctioning. Called when an incoming positive assertion is received. The positive assertion. Contract class for the interface. Prevents a default instance of the class from being created. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when an authentication request is about to be sent. The request. Implementations should be prepared to be called multiple times on the same outgoing message without malfunctioning. Called when an incoming positive assertion is received. The positive assertion. A message a Relying Party sends to a Provider to confirm the validity of a positive assertion that was signed by a Provider-only secret. The significant payload of this message depends entirely upon the assertion message, and therefore is all in the property bag. A common base class for OpenID request messages and indirect responses (since they are ultimately requests). The openid.ns parameter in the message. "http://specs.openid.net/auth/2.0" This particular value MUST be present for the request to be a valid OpenID Authentication 2.0 request. Future versions of the specification may define different values in order to allow message recipients to properly interpret the request. Backing store for the property. Backing store for the property. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. The value for the openid.mode parameter. A value indicating whether the message will be transmitted directly or indirectly. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Sets a flag indicating that this message is received (as opposed to sent). Gets some string from a given version of the OpenID protocol. The protocol version to use for lookup. A function that can retrieve the desired protocol constant. The value of the constant. This method can be used by a constructor to throw an instead of a . Gets the value of the openid.mode parameter. Gets the preferred method of transport for the message. For direct messages this is the OpenID mandated POST. For indirect messages both GET and POST are allowed. Gets the recipient of the message. The OP endpoint, or the RP return_to. Gets the version of the protocol this message is prepared to implement. Version 2.0 Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the extra parameters included in the message. An empty dictionary. Gets a value indicating whether this message was deserialized as an incoming message. Gets the protocol used by this message. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. Initializes a new instance of the class based on the contents of some signed message whose signature must be verified. The message whose signature should be verified. The channel. This is used only within the constructor and is not stored in a field. Gets or sets a value indicating whether the signature being verified by this request is in fact valid. true if the signature is valid; otherwise, false. This property is automatically set as the message is received by the channel's signing binding element. Gets or sets the ReturnTo that existed in the original signed message. This exists strictly for convenience in recreating the message. The message sent from the Provider to the Relying Party to confirm/deny the validity of an assertion that was signed by a private Provider secret. A common base class for OpenID direct message responses. The openid.ns parameter in the message. "http://specs.openid.net/auth/2.0" OpenID 2.0 Section 5.1.2: This particular value MUST be present for the response to be a valid OpenID 2.0 response. Future versions of the specification may define different values in order to allow message recipients to properly interpret the request. Backing store for the properties. Backing store for the properties. The dictionary of parameters that are not part of the OpenID specification. Initializes a new instance of the class. The OpenID version of the response message. The originating request. May be null in case the request is unrecognizable and this is an error response. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Sets a flag indicating that this message is received (as opposed to sent). Gets the version of the protocol this message is prepared to implement. Version 2.0 Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the extra, non-OAuth parameters included in the message. Gets the originating request message that caused this response to be formed. This property may be null if the request message was undecipherable. Gets a value indicating whether this message was deserialized as an incoming message. Gets the protocol used by this message. Gets the originating request message that caused this response to be formed. Initializes a new instance of the class for use by the Relying Party. The OpenID version of the response message. The request that this message is responding to. Gets or sets a value indicating whether the signature of the verification request is valid. Gets or sets the handle the relying party should invalidate if is true. The "invalidate_handle" value sent in the verification request, if the OP confirms it is invalid. If present in a verification response with "is_valid" set to "true", the Relying Party SHOULD remove the corresponding association from its store and SHOULD NOT send further authentication requests with this handle. This two-step process for invalidating associations is necessary to prevent an attacker from invalidating an association at will by adding "invalidate_handle" parameters to an authentication response. For OpenID 1.1, we allow this to be present but empty to put up with poor implementations such as Blogger. An authentication request from a Relying Party to a Provider. This message type satisfies OpenID 2.0 section 9.1. An indirect request from a Relying Party to a Provider where the response is expected to be signed. Backing store for the property. Initializes a new instance of the class. The OpenID version to use. The Provider endpoint that receives this message. for asynchronous javascript clients; to allow the Provider to interact with the user in order to complete authentication. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Adds parameters to the return_to querystring. The keys=value pairs to add to the return_to query string. This method is useful if the Relying Party wants to recall some value when and if a positive assertion comes back from the Provider. Adds a parameter to the return_to querystring. The name of the parameter. The value of the argument. This method is useful if the Relying Party wants to recall some value when and if a positive assertion comes back from the Provider. Gets the value of the openid.mode parameter based on the protocol version and immediate flag. The OpenID version to use. for asynchronous javascript clients; to allow the Provider to interact with the user in order to complete authentication. checkid_immediate or checkid_setup Gets the list of extensions that are included with this message. Implementations of this interface should ensure that this property never returns null. Gets a value indicating whether the Provider is allowed to interact with the user as part of authentication. true if using OpenID immediate mode; otherwise, false. Gets or sets the handle of the association the RP would like the Provider to use for signing a positive assertion in the response message. A handle for an association between the Relying Party and the OP that SHOULD be used to sign the response. If no association handle is sent, the transaction will take place in Stateless Mode (Verifying Directly with the OpenID Provider). Gets or sets the URL the Provider should redirect the user agent to following the authentication attempt. URL to which the OP SHOULD return the User-Agent with the response indicating the status of the request. If this value is not sent in the request it signifies that the Relying Party does not wish for the end user to be returned. The return_to URL MAY be used as a mechanism for the Relying Party to attach context about the authentication request to the authentication response. This document does not define a mechanism by which the RP can ensure that query parameters are not modified by outside parties; such a mechanism can be defined by the RP itself. Gets or sets the Relying Party discovery URL the Provider may use to verify the source of the authentication request. URL pattern the OP SHOULD ask the end user to trust. See Section 9.2 (Realms). This value MUST be sent if openid.return_to is omitted. Default: The URL. Gets or sets a value indicating whether the return_to value should be signed. Initializes a new instance of the class. The OpenID version to use. The Provider endpoint that receives this message. for asynchronous javascript clients; to allow the Provider to interact with the user in order to complete authentication. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets or sets the Claimed Identifier. "openid.claimed_id" and "openid.identity" SHALL be either both present or both absent. If neither value is present, the assertion is not about an identifier, and will contain other information in its payload, using extensions (Extensions). It is RECOMMENDED that OPs accept XRI identifiers with or without the "xri://" prefix, as specified in the Normalization (Normalization) section. Gets or sets the OP Local Identifier. The OP-Local Identifier. If a different OP-Local Identifier is not specified, the claimed identifier MUST be used as the value for openid.identity. Note: If this is set to the special value "http://specs.openid.net/auth/2.0/identifier_select" then the OP SHOULD choose an Identifier that belongs to the end user. This parameter MAY be omitted if the request is not about an identifier (for instance if an extension is in use that makes the request meaningful without it; see openid.claimed_id above). The base class that all successful association response messages derive from. Association response messages are described in OpenID 2.0 section 8.2. This type covers section 8.2.1. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets or sets the association handle is used as a key to refer to this association in subsequent messages. A string 255 characters or less in length. It MUST consist only of ASCII characters in the range 33-126 inclusive (printable non-whitespace characters). Gets or sets the preferred association type. The association type defines the algorithm to be used to sign subsequent messages. Value: A valid association type from Section 8.3. Gets or sets the value of the "openid.session_type" parameter from the request. If the OP is unwilling or unable to support this association type, it MUST return an unsuccessful response (Unsuccessful Response Parameters). Value: A valid association session type from Section 8.4 (Association Session Types). Note: Unless using transport layer encryption, "no-encryption" MUST NOT be used. Gets or sets the lifetime, in seconds, of this association. The Relying Party MUST NOT use the association after this time has passed. An integer, represented in base 10 ASCII. Members found on error response messages sent from a Provider to a Relying Party in response to direct and indirect message requests that result in an error. Gets or sets a human-readable message indicating why the request failed. Gets or sets the contact address for the administrator of the server. The contact address may take any form, as it is intended to be displayed to a person. Gets or sets a reference token, such as a support ticket number or a URL to a news blog, etc. A common base class from which indirect response messages should derive. Backing store for the property. Initializes a new instance of the class. The request that caused this response message to be constructed. The value of the openid.mode parameter. Initializes a new instance of the class for unsolicited assertion scenarios. The OpenID version supported at the Relying Party. The URI at which the Relying Party receives OpenID indirect messages. The value to use for the openid.mode parameter. Gets the property of a message. The message to fetch the protocol version from. The value of the property. This method can be used by a constructor to throw an instead of a . Gets the property of a message. The message to fetch the ReturnTo from. The value of the property. This method can be used by a constructor to throw an instead of a . Gets the list of extensions that are included with this message. Implementations of this interface should ensure that this property never returns null. Gets the signed extensions on this message. Gets the unsigned extensions on this message. Gets the originating request message, if applicable. An indirect message from a Provider to a Relying Party where at least part of the payload is signed so the Relying Party can verify it has not been tampered with. The allowed date/time formats for the response_nonce parameter. This array of formats is not yet a complete list. Backing field for the property. The field initializer being DateTime.UtcNow allows for OpenID 1.x messages to pass through the StandardExpirationBindingElement. Backing store for the property. Initializes a new instance of the class. The authentication request that caused this assertion to be generated. Initializes a new instance of the class in order to perform signature verification at the Provider. The previously signed message. The channel. This is used only within the constructor and is not stored in a field. Initializes a new instance of the class for unsolicited assertions. The OpenID version to use. The return_to URL of the Relying Party. This value will commonly be from , but for unsolicited assertions may come from the Provider performing RP discovery to find the appropriate return_to URL to use. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the value of a named parameter in the return_to URL without signature protection. The full name of the parameter whose value is being sought. The value of the parameter if it is present and unaltered from when the Relying Party signed it; null otherwise. This method will always return null on the Provider-side, since Providers cannot verify the private signature made by the relying party. Gets the names of the callback parameters added to the original authentication request without signature protection. A sequence of the callback parameter names. Gets a dictionary of all the message part names and values that are included in the message signature. The channel. A dictionary of the signed message parts. Determines whether one querystring contains every key=value pair that another querystring contains. The querystring that should contain at least all the key=value pairs of the other. The querystring containing the set of key=value pairs to test for in the other. true if contains all the query parameters that does; false otherwise. Verifies that the openid.return_to field matches the URL of the actual HTTP request. From OpenId Authentication 2.0 section 11.1: To verify that the "openid.return_to" URL matches the URL that is processing this assertion: * The URL scheme, authority, and path MUST be the same between the two URLs. * Any query parameters that are present in the "openid.return_to" URL MUST also be present with the same values in the URL of the HTTP request the RP received. Gets the level of protection this message requires. for OpenID 2.0 messages. for OpenID 1.x messages. Although the required protection is reduced for OpenID 1.x, this library will provide Relying Party hosts with all protections by adding its own specially-crafted nonce to the authentication request messages except for stateless RPs in OpenID 1.x messages. Gets or sets the message signature. Base 64 encoded signature calculated as specified in Section 6 (Generating Signatures). Gets or sets the signed parameter order. Comma-separated list of signed fields. "op_endpoint,identity,claimed_id,return_to,assoc_handle,response_nonce" This entry consists of the fields without the "openid." prefix that the signature covers. This list MUST contain at least "op_endpoint", "return_to" "response_nonce" and "assoc_handle", and if present in the response, "claimed_id" and "identity". Additional keys MAY be signed as part of the message. See Generating Signatures. Gets or sets the association handle used to sign the message. The handle for the association that was used to sign this assertion. Gets or sets the nonce that will protect the message from replay attacks. Gets the context within which the nonce must be unique. Gets or sets the UTC date/time the message was originally sent onto the network. The property setter should ensure a UTC date/time, and throw an exception if this is not possible. Thrown when a DateTime that cannot be converted to UTC is set. Gets or sets the association handle that the Provider wants the Relying Party to not use any more. If the Relying Party sent an invalid association handle with the request, it SHOULD be included here. For OpenID 1.1, we allow this to be present but empty to put up with poor implementations such as Blogger. Gets or sets the Provider Endpoint URI. Gets or sets the return_to parameter as the relying party provided it in . Verbatim copy of the return_to URL parameter sent in the request, before the Provider modified it. Gets or sets a value indicating whether the URI's query string is unaltered between when the Relying Party sent the original request and when the response was received. This property is not persisted in the transmitted message, and has no effect on the Provider-side of the communication. Gets or sets the nonce that will protect the message from replay attacks. A string 255 characters or less in length, that MUST be unique to this particular successful authentication response. The nonce MUST start with the current time on the server, and MAY contain additional ASCII characters in the range 33-126 inclusive (printable non-whitespace characters), as necessary to make each response unique. The date and time MUST be formatted as specified in section 5.6 of [RFC3339] (Klyne, G. and C. Newman, “Date and Time on the Internet: Timestamps,” .), with the following restrictions: All times must be in the UTC timezone, indicated with a "Z". No fractional seconds are allowed 2005-05-15T17:11:51ZUNIQUE Gets or sets the nonce that will protect the message from replay attacks. A string 255 characters or less in length, that MUST be unique to this particular successful authentication response. The nonce MUST start with the current time on the server, and MAY contain additional ASCII characters in the range 33-126 inclusive (printable non-whitespace characters), as necessary to make each response unique. The date and time MUST be formatted as specified in section 5.6 of [RFC3339] (Klyne, G. and C. Newman, “Date and Time on the Internet: Timestamps,” .), with the following restrictions: All times must be in the UTC timezone, indicated with a "Z". No fractional seconds are allowed 2005-05-15T17:11:51ZUNIQUE Gets the querystring key=value pairs in the return_to URL. Code contract class for the IOpenIdMessageExtension interface. Prevents a default instance of the class from being created. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets or sets a value indicating whether this extension was signed by the sender. true if this instance is signed by the sender; otherwise, false. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. The message OpenID Providers send back to Relying Parties to refuse to assert the identity of a user. Initializes a new instance of the class. The request that the relying party sent. Initializes a new instance of the class. The request that the relying party sent. The channel to use to simulate construction of the user_setup_url, if applicable. May be null, but the user_setup_url will not be constructed. Initializes a new instance of the class. The version. The relying party return to. The value of the openid.mode parameter. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Constructs the value for the user_setup_url parameter to be sent back in negative assertions in response to OpenID 1.x RP's checkid_immediate requests. The immediate request. The channel to use to simulate construction of the message. The value to use for the user_setup_url parameter. Gets the value for the openid.mode that is appropriate for this response. The request that we're responding to. The value of the openid.mode parameter to use. Gets or sets the URL the relying party can use to upgrade their authentication request from an immediate to a setup message. URL to redirect User-Agent to so the End User can do whatever's necessary to fulfill the assertion. This part is only included in OpenID 1.x responses. Gets a value indicating whether this is in response to an authentication request made in immediate mode. true if the request was in immediate mode; otherwise, false. An identity assertion from a Provider to a Relying Party, stating that the user operating the user agent is in fact some specific user known to the Provider. Initializes a new instance of the class. The authentication request that caused this assertion to be generated. Initializes a new instance of the class for unsolicited assertions. The OpenID version to use. The return_to URL of the Relying Party. This value will commonly be from , but for unsolicited assertions may come from the Provider performing RP discovery to find the appropriate return_to URL to use. Initializes a new instance of the class. The relying party return_to endpoint that will receive this positive assertion. Gets or sets the Claimed Identifier. "openid.claimed_id" and "openid.identity" SHALL be either both present or both absent. If neither value is present, the assertion is not about an identifier, and will contain other information in its payload, using extensions (Extensions). Gets or sets the OP Local Identifier. The OP-Local Identifier. OpenID Providers MAY assist the end user in selecting the Claimed and OP-Local Identifiers about which the assertion is made. The openid.identity field MAY be omitted if an extension is in use that makes the response meaningful without it (see openid.claimed_id above). Wraps an existing Identifier and prevents it from performing discovery. The wrapped identifier. Initializes a new instance of the class. The ordinary Identifier whose discovery is being masked. Whether this Identifier should claim to be SSL-secure, although no discovery will never generate service endpoints anyway. Returns a that represents the current . A that represents the current . Tests equality between two s. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Gets the hash code for an for storage in a hashtable. A hash code for the current . Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. A set of utilities especially useful to OpenID. The prefix to designate this library's proprietary parameters added to the protocol. A static variable that carries the results of a check for the presence of assemblies that are required for the Diffie-Hellman algorithm. Creates a random association handle. The association handle. Gets the OpenID protocol instance for the version in a message. The message. The OpenID protocol instance. Changes the position of some element in a list. The type of elements stored in the list. The list to be modified. The new position for the given element. The element to move within the list. Thrown if the element does not already exist in the list. Corrects any URI decoding the Provider may have inappropriately done to our return_to URL, resulting in an otherwise corrupted base64 encoded value. The base64 encoded value. May be null. The value; corrected if corruption had occurred. AOL may have incorrectly URI-decoded the token for us in the return_to, resulting in a token URI-decoded twice by the time we see it, and no longer being a valid base64 string. It turns out that the only symbols from base64 that is also encoded in URI encoding rules are the + and / characters. AOL decodes the %2b sequence to the + character and the %2f sequence to the / character (it shouldn't decode at all). When we do our own URI decoding, the + character becomes a space (corrupting base64) but the / character remains a /, so no further corruption happens to this character. So to correct this we just need to change any spaces we find in the token back to + characters. Rounds the given downward to the whole second. The DateTime object to adjust. The new value. Gets the fully qualified Realm URL, given a Realm that may be relative to a particular page. The hosting page that has the realm value to resolve. The realm, which may begin with "*." or "~/". The request context. The fully-qualified realm. Gets the extension factories from the extension aggregator on an OpenID channel. The channel. The list of factories that will be used to generate extension instances. This is an extension method on rather than an instance method on because the OpenIdRelyingParty and OpenIdProvider classes don't strong-type to to allow flexibility in the specific type of channel the user (or tests) can plug in. Loads the Diffie-Hellman assemblies. Thrown if the DH assemblies are missing. Gets a value indicating whether Diffie Hellman is available in this installation. true if Diffie-Hellman functionality is present; otherwise, false. Utility methods for working with XRDS documents. Finds the Relying Party return_to receiving endpoints. The XrdsDocument instance to use in this process. A sequence of Relying Party descriptors for the return_to endpoints. This is useful for Providers to send unsolicited assertions to Relying Parties, or for Provider's to perform RP discovery/verification as part of authentication. Finds the icons the relying party wants an OP to display as part of authentication, per the UI extension spec. The XrdsDocument to search. A sequence of the icon URLs in preferred order. Enumerates the XRDS service elements that describe OpenID Relying Party return_to URLs that can receive authentication assertions. The XrdsDocument instance to use in this process. A sequence of service elements. Describes some OpenID Provider endpoint and its capabilities. This is an immutable type. Initializes a new instance of the class. The OpenID Provider endpoint URL. The OpenID version supported by this particular endpoint. Initializes a new instance of the class. The URI the provider listens on for OpenID requests. The set of services offered by this endpoint. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Gets the URL that the OpenID Provider listens for incoming OpenID messages on. Gets the OpenID protocol version this endpoint supports. If an endpoint supports multiple versions, each version must be represented by its own object. Gets the collection of service type URIs found in the XRDS document describing this Provider. A trust root to validate requests and match return URLs against. This fills the OpenID Authentication 2.0 specification for realms. See http://openid.net/specs/openid-authentication-2_0.html#realms A regex used to detect a wildcard that is being used in the realm. A (more or less) comprehensive list of top-level (i.e. ".com") domains, for use by in order to disallow overly-broad realms that allow all web sites ending with '.com', for example. The Uri of the realm, with the wildcard (if any) removed. Initializes a new instance of the class. The realm URL to use in the new instance. Initializes a new instance of the class. The realm URL of the Relying Party. Initializes a new instance of the class. The realm URI builder. This is useful because UriBuilder can construct a host with a wildcard in the Host property, but once there it can't be converted to a Uri. Implicitly converts the string-form of a URI to a object. The URI that the new Realm instance will represent. The result of the conversion. Implicitly converts a to a object. The URI to convert to a realm. The result of the conversion. Implicitly converts a object to its form. The realm to convert to a string value. The result of the conversion. Checks whether one is equal to another. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Returns the hash code used for storing this object in a hash table. A hash code for the current . Returns the string form of this . A that represents the current . Validates a URL against this trust root. A string specifying URL to check. Whether the given URL is within this trust root. Validates a URL against this trust root. The URL to check. Whether the given URL is within this trust root. Searches for an XRDS document at the realm URL, and if found, searches for a description of a relying party endpoints (OpenId login pages). The mechanism to use for sending HTTP requests. Whether redirects may be followed when discovering the Realm. This may be true when creating an unsolicited assertion, but must be false when performing return URL verification per 2.0 spec section 9.2.1. The details of the endpoints if found; or null if no service document was discovered. Searches for an XRDS document at the realm URL. The mechanism to use for sending HTTP requests. Whether redirects may be followed when discovering the Realm. This may be true when creating an unsolicited assertion, but must be false when performing return URL verification per 2.0 spec section 9.2.1. The XRDS document if found; or null if no service document was discovered. Calls if the argument is non-null. Otherwise throws . The realm URI builder. The result of UriBuilder.ToString() This simple method is worthwhile because it checks for null before dereferencing the UriBuilder. Since this is called from within a constructor's base(...) call, this avoids a when we should be throwing an . Gets the suggested realm to use for the calling web application. A realm that matches this applications root URL. For most circumstances the Realm generated by this property is sufficient. However a wildcard Realm, such as "http://*.microsoft.com/" may at times be more desirable than "http://www.microsoft.com/" in order to allow identifier correlation across related web sites for directed identity Providers. Requires an HttpContext.Current context. Gets a value indicating whether a '*.' prefix to the hostname is used in the realm to allow subdomains or hosts to be added to the URL. Gets the host component of this instance. Gets the scheme name for this URI. Gets the port number of this URI. Gets the absolute path of the URI. Gets the System.Uri.AbsolutePath and System.Uri.Query properties separated by a question mark (?). Gets the original string. The original string. Gets the realm URL. If the realm includes a wildcard, it is not included here. Gets the Realm discovery URL, where the wildcard (if present) is replaced with "www.". See OpenID 2.0 spec section 9.2.1 for the explanation on the addition of the "www" prefix. Gets a value indicating whether this realm represents a reasonable (sane) set of URLs. 'http://*.com/', for example is not a reasonable pattern, as it cannot meaningfully specify the site claiming it. This function attempts to find many related examples, but it can only work via heuristics. Negative responses from this method should be treated as advisory, used only to alert the user to examine the trust root carefully. Provides conversions to and from strings for messages that include members of this type. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Encodes the specified value as the original value that was formerly decoded. The value. Guaranteed to never be null. The in string form, ready for message transport. A description of some OpenID Relying Party endpoint. This is an immutable type. Initializes a new instance of the class. The return to. The Type URIs of supported services advertised on a relying party's XRDS document. Derives the highest OpenID protocol that this library and the OpenID Provider have in common. The supported service type URIs. The best OpenID protocol version to use when communicating with this Provider. Gets the URL to the login page on the discovered relying party web site. Gets the OpenId protocol that the discovered relying party supports. Diffie-Hellman encryption methods used by both the relying party and provider. An array of known Diffie Hellman sessions, sorted by decreasing hash size. Finds the hashing algorithm to use given an openid.session_type value. The protocol version of the message that named the session_type to be used. The value of the openid.session_type parameter. The hashing algorithm to use. Thrown if no match could be found for the given . Looks up the value to be used for the openid.session_type parameter. The protocol version that is to be used. The hash size (in bits) that the DH session must have. The value to be used for the openid.session_type parameter, or null if no match was found. Encrypts/decrypts a shared secret. The hashing algorithm that is agreed by both parties to use as part of the secret exchange. If the secret is being encrypted, this is the new Diffie Hellman object to use. If the secret is being decrypted, this must be the same Diffie Hellman object used to send the original request message. The public key of the remote party. The secret to encode, or the encoded secret. Whichever one is given will generate the opposite in the return value. The encrypted version of the secret if the secret itself was given in . The secret itself if the encrypted version of the secret was given in . Ensures that the big integer represented by a given series of bytes is a positive integer. The bytes that make up the big integer. A byte array (possibly new if a change was required) whose integer is guaranteed to be positive. This is to be consistent with OpenID spec section 4.2. Returns the value used to initialize the static field storing DH session types. A non-null, non-empty array. > This is a method rather than being inlined to the field initializer to try to avoid the CLR bug that crops up sometimes if we initialize arrays using object initializer syntax. Provides access to a Diffie-Hellman session algorithm and its name. Initializes a new instance of the class. The hashing algorithm used in this particular Diffie-Hellman session type. A function that will return the value of the openid.session_type parameter for a given version of OpenID. Gets the function that will return the value of the openid.session_type parameter for a given version of OpenID. Gets the hashing algorithm used in this particular Diffie-Hellman session type An association that uses the HMAC-SHA family of algorithms for message signing. A list of HMAC-SHA algorithms in order of decreasing bit lengths. The specific variety of HMAC-SHA this association is based on (whether it be HMAC-SHA1, HMAC-SHA256, etc.) Initializes a new instance of the class. The specific variety of HMAC-SHA this association is based on (whether it be HMAC-SHA1, HMAC-SHA256, etc.) The association handle. The association secret. The time duration the association will be good for. Creates an HMAC-SHA association. The OpenID protocol version that the request for an association came in on. The value of the openid.assoc_type parameter. The association handle. The association secret. How long the association will be good for. The newly created association. Creates an association with the specified handle, secret, and lifetime. The handle. The secret. Total lifetime. The newly created association. Returns the length of the shared secret (in bytes). The protocol version being used that will be used to lookup the text in The value of the protocol argument specifying the type of association. For example: "HMAC-SHA1". The length (in bytes) of the association secret. Thrown if no association can be found by the given name. Looks for the first association type in a preferred-order list that is likely to be supported given a specific OpenID version and the security settings, and perhaps a matching Diffie-Hellman session type. The OpenID version that dictates which associations are available. A value indicating whether to consider higher strength security to be better. Use true for initial association requests from the Relying Party; use false from Providers when the Relying Party asks for an unrecognized association in order to pick a suggested alternative that is likely to be supported on both sides. The set of requirements the selected association type must comply to. Use true for HTTP associations, false for HTTPS associations. The resulting association type's well known protocol name. (i.e. HMAC-SHA256) The resulting session type's well known protocol name, if a matching one is available. (i.e. DH-SHA256) True if a qualifying association could be found; false otherwise. Determines whether a named Diffie-Hellman session type and association type can be used together. The protocol carrying the names of the session and association types. The value of the openid.assoc_type parameter. The value of the openid.session_type parameter. true if the named association and session types are compatible; otherwise, false. Gets the string to pass as the assoc_type value in the OpenID protocol. The protocol version of the message that the assoc_type value will be included in. The value that should be used for the openid.assoc_type parameter. Returns the specific hash algorithm used for message signing. The hash algorithm used for message signing. Returns the value used to initialize the static field storing association types. A non-null, non-empty array. > This is a method rather than being inlined to the field initializer to try to avoid the CLR bug that crops up sometimes if we initialize arrays using object initializer syntax. Gets the length (in bits) of the hash this association creates when signing. Provides information about some HMAC-SHA hashing algorithm that OpenID supports. Creates the using a given shared secret for the mac. The HMAC secret. The algorithm. Gets or sets the function that takes a particular OpenID version and returns the value of the openid.assoc_type parameter in that protocol. Gets or sets the name of the HMAC-SHA algorithm. (e.g. "HMAC-SHA256") Gets or sets the base hash algorithm. Gets the size of the hash (in bytes). Represents an association request that is sent using HTTPS and otherwise communicates the shared secret in plain text. An OpenID direct request from Relying Party to Provider to initiate an association. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets or sets the preferred association type. The association type defines the algorithm to be used to sign subsequent messages. Value: A valid association type from Section 8.3. Gets or sets the preferred association session type. This defines the method used to encrypt the association's MAC key in transit. Value: A valid association session type from Section 8.4 (Association Session Types). Note: Unless using transport layer encryption, "no-encryption" MUST NOT be used. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. An OpenID direct request from Relying Party to Provider to initiate an association that uses Diffie-Hellman encryption. The (only) value we use for the X variable in the Diffie-Hellman algorithm. The default gen value for the Diffie-Hellman algorithm. The default modulus value for the Diffie-Hellman algorithm. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. Called by the Relying Party to initialize the Diffie-Hellman algorithm and consumer public key properties. Gets or sets the openid.dh_modulus value. May be null if the default value given in the OpenID spec is to be used. Gets or sets the openid.dh_gen value. May be null if the default value given in the OpenID spec is to be used. Gets or sets the openid.dh_consumer_public value. This property is initialized with a call to . Gets the Diffie-Hellman algorithm. This property is initialized with a call to . The successful Diffie-Hellman association response message. Association response messages are described in OpenID 2.0 section 8.2. This type covers section 8.2.3. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Gets or sets the Provider's Diffie-Hellman public key. btwoc(g ^ xb mod p) Gets or sets the MAC key (shared secret), encrypted with the secret Diffie-Hellman value. H(btwoc(g ^ (xa * xb) mod p)) XOR MAC key. H is either "SHA1" or "SHA256" depending on the session type. The successful unencrypted association response message. Association response messages are described in OpenID 2.0 section 8.2. This type covers section 8.2.2. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Gets or sets the MAC key (shared secret) for this association, Base 64 (Josefsson, S., “The Base16, Base32, and Base64 Data Encodings,” .) [RFC3548] encoded. The Provider's response to a Relying Party that requested an association that the Provider does not support. This message type described in OpenID 2.0 section 8.2.4. A message sent from a Provider to a Relying Party in response to a direct message request that resulted in an error. This message must be sent with an HTTP status code of 400. This class satisfies OpenID 2.0 section 5.1.2.2. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Gets the HTTP status code that the direct respones should be sent with. Gets the HTTP headers to add to the response. May be an empty collection, but must not be null. Gets or sets a human-readable message indicating why the request failed. Gets or sets the contact address for the administrator of the server. The contact address may take any form, as it is intended to be displayed to a person. Gets or sets a reference token, such as a support ticket number or a URL to a news blog, etc. A hard-coded string indicating an error occurred. "unsupported-type" Initializes a new instance of the class. The OpenID version of the response message. The originating request. Gets or sets an association type supported by the OP from Section 8.3 (Association Types). Gets or sets a valid association session type from Section 8.4 (Association Session Types) that the OP supports. A message sent from a Provider to a Relying Party in response to an indirect message request that resulted in an error. This class satisfies OpenID 2.0 section 5.2.3. Initializes a new instance of the class. The request that resulted in this error on the Provider. Initializes a new instance of the class. The OpenID version this message should comply with. The recipient of this message. Gets or sets a human-readable message indicating why the request failed. Gets or sets the contact address for the administrator of the server. The contact address may take any form, as it is intended to be displayed to a person. Gets or sets a reference token, such as a support ticket number or a URL to a news blog, etc. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to An absolute URI is required for this value.. Looks up a localized string similar to This is already a PPID Identifier.. Looks up a localized string similar to The requested association type '{0}' with session type '{1}' is unrecognized or not supported by this Provider due to security requirements.. Looks up a localized string similar to The length of the shared secret ({0}) does not match the length required by the association type ('{1}').. Looks up a localized string similar to The length of the encrypted shared secret ({0}) does not match the length of the hashing algorithm ({1}).. Looks up a localized string similar to No association store has been given but is required for the current configuration.. Looks up a localized string similar to If an association store is given, a nonce store must also be provided.. Looks up a localized string similar to An attribute with type URI '{0}' has already been added.. Looks up a localized string similar to Only {0} values for attribute '{1}' were requested, but {2} were supplied.. Looks up a localized string similar to The private data supplied does not meet the requirements of any known Association type. Its length may be too short, or it may have been corrupted.. Looks up a localized string similar to The {0} extension failed to deserialize and will be skipped. {1}. Looks up a localized string similar to Callback arguments are only supported when a {0} is provided to the {1}.. Looks up a localized string similar to A Simple Registration request can only generate a response on the receiving end.. Looks up a localized string similar to The openid.claimed_id and openid.identity parameters must both be present or both be absent.. Looks up a localized string similar to The ClaimedIdentifier property cannot be set when IsDelegatedIdentifier is true to avoid breaking OpenID URL delegation.. Looks up a localized string similar to This OpenID exploits features that this relying party cannot reliably verify. Please try logging in with a human-readable OpenID or from a different OpenID Provider.. Looks up a localized string similar to The ClaimedIdentifier property must be set first.. Looks up a localized string similar to An extension with this property name ('{0}') has already been registered.. Looks up a localized string similar to The extension '{0}' has already been registered.. Looks up a localized string similar to An authentication request has already been created using CreateRequest().. Looks up a localized string similar to Only OpenIDs issued directly by their OpenID Provider are allowed here.. Looks up a localized string similar to The associate request instance must be a Diffie-Hellman instance.. Looks up a localized string similar to The following properties must be set before the Diffie-Hellman algorithm can generate a public key: {0}. Looks up a localized string similar to URI is not SSL yet requireSslDiscovery is set to true.. Looks up a localized string similar to An extension sharing namespace '{0}' has already been added. Only one extension per namespace is allowed in a given request.. Looks up a localized string similar to Cannot lookup extension support on a rehydrated ServiceEndpoint.. Looks up a localized string similar to Fragment segments do not apply to XRI identifiers.. Looks up a localized string similar to The HTML head tag must include runat="server".. Looks up a localized string similar to ClaimedIdentifier and LocalIdentifier must be the same when IsIdentifierSelect is true.. Looks up a localized string similar to The openid.identity and openid.claimed_id parameters must either be both present or both absent from the message.. Looks up a localized string similar to The Provider requested association type '{0}' and session type '{1}', which are not compatible with each other.. Looks up a localized string similar to {0} (Contact: {1}, Reference: {2}). Looks up a localized string similar to Cannot encode '{0}' because it contains an illegal character for Key-Value Form encoding. (line {1}: '{2}'). Looks up a localized string similar to Invalid XmlDSig signature on XRDS document.. Looks up a localized string similar to Cannot decode Key-Value Form because a line was found without a '{0}' character. (line {1}: '{2}'). Looks up a localized string similar to The scheme must be http or https but was '{0}'.. Looks up a localized string similar to The value '{0}' is not a valid URI.. Looks up a localized string similar to Not a recognized XRI format.. Looks up a localized string similar to The OpenID Provider issued an assertion for an Identifier whose discovery information did not match. Assertion endpoint info: {0} Discovered endpoint info: {1}. Looks up a localized string similar to The list of keys do not match the provided dictionary.. Looks up a localized string similar to The '{0}' and '{1}' parameters must both be or not be '{2}'.. Looks up a localized string similar to The maximum time allowed to complete authentication has been exceeded. Please try again.. Looks up a localized string similar to X.509 signing certificate issued to {0}, but a certificate for {1} was expected.. Looks up a localized string similar to Missing {0} element.. Looks up a localized string similar to No recognized association type matches the requested length of {0}.. Looks up a localized string similar to No recognized association type matches the requested name of '{0}'.. Looks up a localized string similar to Unless using transport layer encryption, "no-encryption" MUST NOT be used.. Looks up a localized string similar to No identifier has been set.. Looks up a localized string similar to No XRDS document containing OpenID relying party endpoint information could be found at {0}.. Looks up a localized string similar to Diffie-Hellman session type '{0}' not found for OpenID {1}.. Looks up a localized string similar to This operation is not supported by serialized authentication responses. Try this operation from the LoggedIn event handler.. Looks up a localized string similar to No OpenID endpoint found.. Looks up a localized string similar to No OpenID url is provided.. Looks up a localized string similar to This operation is only allowed when IAuthenticationResponse.State == AuthenticationStatus.SetupRequired.. Looks up a localized string similar to OpenID popup window or iframe did not recognize an OpenID response in the request.. Looks up a localized string similar to An positive OpenID assertion was received from OP endpoint {0} and was rejected based on this site's security settings.. Looks up a localized string similar to Unable to find the signing secret by the handle '{0}'.. Looks up a localized string similar to The {0} property must be set first.. Looks up a localized string similar to This property value is not supported by this control.. Looks up a localized string similar to Unable to determine the version of the OpenID protocol implemented by the Provider at endpoint '{0}'.. Looks up a localized string similar to An HTTP request to the realm URL ({0}) resulted in a redirect, which is not allowed during relying party discovery.. Looks up a localized string similar to Sorry. This site only accepts OpenIDs that are HTTPS-secured, but {0} is not a secure Identifier.. Looks up a localized string similar to The response is not ready. Use IsResponseReady to check whether a response is ready first.. Looks up a localized string similar to return_to '{0}' not under realm '{1}'.. Looks up a localized string similar to The {0} parameter ({1}) does not match the actual URL ({2}) the request was made with.. Looks up a localized string similar to The ReturnTo property must not be null to support this operation.. Looks up a localized string similar to The openid.return_to parameter is required in the request message in order to construct a response, but that parameter was missing.. Looks up a localized string similar to The following parameter(s) are not included in the signature but must be: {0}. Looks up a localized string similar to Invalid birthdate value. Must be in the form yyyy-MM-dd.. Looks up a localized string similar to The type must implement {0}.. Looks up a localized string similar to The property {0} had unexpected value {1}.. Looks up a localized string similar to Unexpected HTTP status code {0} {1} received in direct response.. Looks up a localized string similar to An unsolicited assertion cannot be sent for the claimed identifier {0} because this is not an authorized Provider for that identifier.. Looks up a localized string similar to Rejecting unsolicited assertions requires a nonce store and an association store.. Looks up a localized string similar to Unsolicited assertions are not allowed at this relying party.. Looks up a localized string similar to Unsolicited assertions are not allowed from 1.0 OpenID Providers.. Looks up a localized string similar to Providing a DateTime whose Kind is Unspecified is not allowed.. Looks up a localized string similar to Unrecognized or missing canonicalization method.. Looks up a localized string similar to This feature is unavailable due to an unrecognized channel configuration.. Looks up a localized string similar to Unrecognized or missing signature method.. Looks up a localized string similar to The openid.user_setup_url parameter is required when sending negative assertion messages in response to immediate mode requests.. Looks up a localized string similar to The X.509 certificate used to sign this document is not trusted.. Looks up a localized string similar to XRI support has been disabled at this site.. Looks up a localized string similar to XRI resolution failed.. An enumeration of the OpenID protocol versions supported by this library. OpenID Authentication 1.0 OpenID Authentication 1.1 OpenID Authentication 2.0 Tracks the several versions of OpenID this library supports and the unique constants to each version used in the protocol. The value of the openid.ns parameter in the OpenID 2.0 specification. The parameter of the callback parameter we tack onto the return_to URL to store the replay-detection nonce. Scans a list for matches with some element of the OpenID protocol, searching from newest to oldest protocol for the first and best match. The type of element retrieved from the instance. Takes a instance and returns an element of it. The list to scan for matches. The protocol with the element that matches some item in the list. A list of all supported OpenID versions, in order starting from newest version. A list of all supported OpenID versions, in order starting from newest version. V1.1 and V1.0 are considered the same and only V1.1 is in the list. The default (or most recent) supported version of the OpenID protocol. Attempts to detect the right OpenID protocol version based on the contents of an incoming OpenID indirect message or direct request. Attempts to detect the right OpenID protocol version based on the contents of an incoming OpenID direct response message. Attemps to detect the highest OpenID protocol version supported given a set of XRDS Service Type URIs included for some service. The OpenID version that this instance describes. The namespace of OpenId 1.x elements in XRDS documents. The value of the openid.ns parameter that appears on the query string whenever data is passed between relying party and provider for OpenID 2.0 and later. The XRD/Service/Type value discovered in an XRDS document when "discovering" on a Claimed Identifier (http://andrewarnott.yahoo.com) The XRD/Service/Type value discovered in an XRDS document when "discovering" on an OP Identifier rather than a Claimed Identifier. (http://yahoo.com) The XRD/Service/Type value discovered in an XRDS document when "discovering" on a Realm URL and looking for the endpoint URL that can receive authentication assertions. Used as the Claimed Identifier and the OP Local Identifier when the User Supplied Identifier is an OP Identifier. The value of the 'rel' attribute in an HTML document's LINK tag when the same LINK tag's HREF attribute value contains the URL to an OP Endpoint URL. The value of the 'rel' attribute in an HTML document's LINK tag when the same LINK tag's HREF attribute value contains the URL to use as the OP Local Identifier. Parts of the protocol that define parameter names that appear in the query string. Each parameter name is prefixed with 'openid.'. Parts of the protocol that define parameter names that appear in the query string. Each parameter name is NOT prefixed with 'openid.'. The various 'constants' that appear as parameter arguments (values). The maximum time a user can be allowed to take to complete authentication. This is used to calculate the length of time that nonces are stored. This is internal until we can decide whether to leave this static, or make it an instance member, or put it inside the IConsumerApplicationStore interface. The maximum permissible difference in clocks between relying party and provider web servers, discounting time zone differences. This is used when storing/validating nonces from the provider. If it is conceivable that a server's clock could be up to five minutes off from true UTC time, then the maximum time skew should be set to ten minutes to allow one server to be five minutes ahead and the remote server to be five minutes behind and still be able to communicate. Checks whether a given Protocol version practically equals this one for purposes of verifying a match for assertion verification. The other version to check against this one. true if this and the given Protocol versions are essentially the same. OpenID v1.0 never had a spec, and 1.0 and 1.1 are indistinguishable because of that. Therefore for assertion verification, 1.0 and 1.1 are considered equivalent. Returns the enum value for the instance. The value "openid." A preference order list of all supported session types. A preference order list of signature algorithms we support. A hybrid of the store interfaces that an OpenID Provider must implement, and an OpenID Relying Party may implement to operate in stateful (smart) mode. Security settings that are applicable to relying parties. The default value for the property. Initializes a new instance of the class. Filters out any disallowed endpoints. The endpoints discovered on an Identifier. A sequence of endpoints that satisfy all security requirements. Gets or sets a value indicating whether the entire pipeline from Identifier discovery to Provider redirect is guaranteed to be encrypted using HTTPS for authentication to succeed. Setting this property to true is appropriate for RPs with highly sensitive personal information behind the authentication (money management, health records, etc.) When set to true, some behavioral changes and additional restrictions are placed: User-supplied identifiers lacking a scheme are prepended with HTTPS:// rather than the standard HTTP:// automatically. User-supplied identifiers are not allowed to use HTTP for the scheme. All redirects during discovery on the user-supplied identifier must be HTTPS. Any XRDS file found by discovery on the User-supplied identifier must be protected using HTTPS. Only Provider endpoints found at HTTPS URLs will be considered. If the discovered identifier is an OP Identifier (directed identity), the Claimed Identifier eventually asserted by the Provider must be an HTTPS identifier. In the case of an unsolicited assertion, the asserted Identifier, discovery on it and the asserting provider endpoint must all be secured by HTTPS. Although the first redirect from this relying party to the Provider is required to use HTTPS, any additional redirects within the Provider cannot be protected and MAY revert the user's connection to HTTP, based on individual Provider implementation. There is nothing that the RP can do to detect or prevent this. A is thrown during discovery or authentication when a secure pipeline cannot be established. Gets or sets a value indicating whether only OP Identifiers will be discoverable when creating authentication requests. Gets or sets the oldest version of OpenID the remote party is allowed to implement. Defaults to Gets or sets the maximum allowable age of the secret a Relying Party uses to its return_to URLs and nonces with 1.0 Providers. The default value is 7 days. Gets or sets a value indicating whether all unsolicited assertions should be ignored. The default value is false. Gets or sets a value indicating whether delegating identifiers are refused for authentication. The default value is false. When set to true, login attempts that start at the RP or arrive via unsolicited assertions will be rejected if discovery on the identifier shows that OpenID delegation is used for the identifier. This is useful for an RP that should only accept identifiers directly issued by the Provider that is sending the assertion. Gets or sets a value indicating whether unsigned extensions in authentication responses should be ignored. The default value is false. When set to true, the methods will not return any extension that was not signed by the Provider. Gets or sets a value indicating whether authentication requests will only be sent to Providers with whom we can create a shared association. true to immediately fail authentication if an association with the Provider cannot be established; otherwise, false. The default value is false. Gets or sets a value indicating whether certain Claimed Identifiers that exploit features that .NET does not have the ability to send exact HTTP requests for will still be allowed by using an approximate HTTP request. The default value is true. Gets the set of trusted OpenID Provider Endpoint URIs. Gets or sets a value indicating whether any login attempt coming from an OpenID Provider Endpoint that is not on this whitelist of trusted OP Endpoints will be rejected. If the trusted providers list is empty and this value is true, all assertions are rejected. Default is false. Gets or sets a value indicating whether special measures are taken to protect users from replay attacks when those users' identities are hosted by OpenID 1.x Providers. The default value is true. Nonces for protection against replay attacks were not mandated by OpenID 1.x, which leaves users open to replay attacks. This feature works by adding a signed nonce to the authentication request. This might increase the request size beyond what some OpenID 1.1 Providers (such as Blogger) are capable of handling. The discovery service for URI identifiers. Initializes a new instance of the class. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. Searches HTML for the HEAD META tags that describe OpenID provider services. The final URL that provided this HTML document. This may not be the same as (this) userSuppliedIdentifier if the userSuppliedIdentifier pointed to a 301 Redirect. The user supplied identifier. The HTML that was downloaded and should be searched. A sequence of any discovered ServiceEndpoints. The discovery service for XRI identifiers that uses an XRI proxy resolver for discovery. The magic URL that will provide us an XRDS document for a given XRI identifier. We use application/xrd+xml instead of application/xrds+xml because it gets xri.net to automatically give us exactly the right XRD element for community i-names automatically, saving us having to choose which one to use out of the result. The ssl=true parameter tells the proxy resolver to accept only SSL connections when resolving community i-names. Initializes a new instance of the class. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. Downloads the XRDS document for this XRI. The identifier. The request handler. The XRDS document. Gets the URL from which this XRI's XRDS document may be downloaded. The identifier. The URI to HTTP GET from to get the services. A URI style of OpenID Identifier. The allowed protocol schemes in a URI Identifier. The special scheme to use for HTTP URLs that should not have their paths compressed. The special scheme to use for HTTPS URLs that should not have their paths compressed. The special scheme to use for HTTP URLs that should not have their paths compressed. The special scheme to use for HTTPS URLs that should not have their paths compressed. A value indicating whether scheme substitution is being used to workaround .NET path compression that invalidates some OpenIDs that have trailing periods in one of their path segments. Initializes static members of the class. This method attempts to workaround the .NET Uri class parsing bug described here: https://connect.microsoft.com/VisualStudio/feedback/details/386695/system-uri-incorrectly-strips-trailing-dots?wa=wsignin1.0#tabs since some identifiers (like some of the pseudonymous identifiers from Yahoo) include path segments that end with periods, which the Uri class will typically trim off. Initializes a new instance of the class. The value this identifier will represent. Initializes a new instance of the class. The value this identifier will represent. if set to true [require SSL discovery]. Initializes a new instance of the class. The value this identifier will represent. Initializes a new instance of the class. The value this identifier will represent. if set to true [require SSL discovery]. Converts a instance to a instance. The identifier to convert to an ordinary instance. The result of the conversion. Converts a instance to a instance. The instance to turn into a . The result of the conversion. Tests equality between this URI and another URI. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Returns the hash code of this XRI. A hash code for the current . Returns the string form of the URI. A that represents the current . Determines whether a URI is a valid OpenID Identifier (of any kind). The URI to test for OpenID validity. true if the identifier is valid; otherwise, false. A valid URI is absolute (not relative) and uses an http(s) scheme. Determines whether a URI is a valid OpenID Identifier (of any kind). The URI to test for OpenID validity. true if the identifier is valid; otherwise, false. A valid URI is absolute (not relative) and uses an http(s) scheme. Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. Determines whether the given URI is using a scheme in the list of allowed schemes. The URI whose scheme is to be checked. true if the scheme is allowed; otherwise, false. false is also returned if is null. Determines whether the given URI is using a scheme in the list of allowed schemes. The URI whose scheme is to be checked. true if the scheme is allowed; otherwise, false. false is also returned if is null. Tries to canonicalize a user-supplied identifier. This does NOT convert a user-supplied identifier to a Claimed Identifier! The user-supplied identifier. The resulting canonical URI. If set to true and the user-supplied identifier lacks a scheme, the "https://" scheme will be prepended instead of the standard "http://" one. if set to true [scheme prepended]. true if the identifier was valid and could be canonicalized. false if the identifier is outside the scope of allowed inputs and should be rejected. Canonicalization is done by adding a scheme in front of an identifier if it isn't already present. Other trivial changes that do not require network access are also done, such as lower-casing the hostname in the URI. Fixes up the scheme if appropriate. The URI, already in legal form (with http(s):// prepended if necessary). The resulting canonical URI. true if the canonicalization was successful; false otherwise. This does NOT standardize an OpenID URL for storage in a database, as it does nothing to convert the URL to a Claimed Identifier, besides the fact that it only deals with URLs whereas OpenID 2.0 supports XRIs. For this, you should lookup the value stored in IAuthenticationResponse.ClaimedIdentifier. Gets the special non-compressing scheme or URL for a standard scheme or URL. The ordinary URL or scheme name. The non-compressing equivalent scheme or URL for the given value. Performs the minimal URL normalization to allow a string to be passed to the constructor. The user-supplied identifier URI to normalize. if set to true, a missing scheme should result in HTTPS being prepended instead of HTTP. if set to true, the scheme was prepended during normalization. The somewhat normalized URL. Gets or sets a value indicating whether scheme substitution is being used to workaround .NET path compression that invalidates some OpenIDs that have trailing periods in one of their path segments. Gets the URI this instance represents. Gets a value indicating whether the scheme was missing when this Identifier was created and added automatically as part of the normalization process. Gets a value indicating whether this Identifier has characters or patterns that the class normalizes away and invalidating the Identifier. A simple URI class that doesn't suffer from the parsing problems of the class. URI characters that separate the URI Path from subsequent elements. Initializes a new instance of the class. The value. Returns a that represents this instance. A that represents this instance. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. The parameter is null. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Normalizes the characters that are escaped in the given URI path. The path to normalize. The given path, with exactly those characters escaped which should be. Gets the scheme. The scheme. Gets the authority. The authority. Gets the path of the URI. The path from the URI. Gets the query. The query. Gets the fragment. The fragment. A URI parser that does not compress paths, such as trimming trailing periods from path segments. The field that stores the scheme that this parser is registered under. The standard "http" or "https" scheme that this parser is subverting. Initializes a new instance of the class. The standard scheme that this parser will be subverting. Initializes this parser with the actual scheme it should appear to be. if set to true Uris using this scheme will look like they're using the original standard scheme. Gets the scheme this parser is registered under. The registered scheme. An XRI style of OpenID Identifier. The scheme and separator "xri://" An XRI always starts with one of these symbols. Backing store for the property. Initializes a new instance of the class. The string value of the XRI. Initializes a new instance of the class. The XRI that this Identifier will represent. If set to true, discovery and the initial authentication redirect will only succeed if it can be done entirely using SSL. Tests equality between this XRI and another XRI. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Returns the hash code of this XRI. A hash code for the current . Returns the canonical string form of the XRI. A that represents the current . Tests whether a given string represents a valid XRI format. The value to test for XRI validity. true if the given string constitutes a valid XRI; otherwise, false. Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. XRI Identifiers never have a fragment part, and thus this method always returns this same instance. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. Takes any valid form of XRI string and returns the canonical form of the same XRI. The xri to canonicalize. The canonicalized form of the XRI. The canonical form, per the OpenID spec, is no scheme and no whitespace on either end. Gets the original XRI supplied to the constructor. Gets the canonical form of the XRI string. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to XRI CanonicalID verification failed.. Looks up a localized string similar to Failure parsing XRDS document.. Looks up a localized string similar to The XRDS document for XRI {0} is missing the required CanonicalID element.. Looks up a localized string similar to Could not find XRI resolution Status tag or code attribute was invalid.. String constants for various content-type header values used in YADIS discovery. The text/html content-type The application/xhtml+xml content-type The application/xrds+xml content-type The text/xml content type Contains the result of YADIS discovery. The original web response, backed up here if the final web response is the preferred response to use in case it turns out to not work out. Initializes a new instance of the class. The user-supplied identifier. The initial response. The final response. Reverts to the HTML response after the XRDS response didn't work out. Applies the HTML response to the object. The initial response. Gets the URI of the original YADIS discovery request. This is the user supplied Identifier as given in the original YADIS discovery request. Gets the fully resolved (after redirects) URL of the user supplied Identifier. This becomes the ClaimedIdentifier. Gets the location the XRDS document was downloaded from, if different from the user supplied Identifier. Gets the Content-Type associated with the . Gets the text in the final response. This may be an XRDS document or it may be an HTML document, as determined by the property. Gets a value indicating whether the represents an XRDS document. False if the response is an HTML document. An HTML HEAD tag parser. Common flags to use on regex tests. A regular expression designed to select tags (?) A regular expression designed to select start tags (?) A regular expression designed to select attributes within a tag. A regular expression designed to select the HEAD tag. A regular expression designed to select the HTML tag. A regular expression designed to remove all comments and scripts from a string. Finds all the HTML HEAD tag child elements that match the tag name of a given type. The HTML tag of interest. The HTML to scan. A sequence of the matching elements. Filters a list of controls based on presence of an attribute. The type of HTML controls being filtered. The sequence. The attribute. A filtered sequence of attributes. Generates a regular expression that will find a given HTML tag. Name of the tag. The close tags (?). The created regular expression. Generates a regular expression designed to find a given tag. The tag to find. The created regular expression. The Service element in an XRDS document. A node in an XRDS document. The XRD namespace xri://$xrd*($v*2.0) The XRDS namespace xri://$xrds Initializes a new instance of the class. The node represented by this instance. The parent node. Initializes a new instance of the class. The document's root node, which this instance represents. Gets the node. Gets the parent node, or null if this is the root node. Gets the XML namespace resolver to use in XPath expressions. Initializes a new instance of the class. The service element. The parent. Compares the current object with another object of the same type. An object to compare with this object. A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter. Zero This object is equal to . Greater than zero This object is greater than . Gets the XRD parent element. Gets the priority. Gets the URI child elements. Gets the type child elements. The type elements. Gets the type child element's URIs. Gets the OP Local Identifier. The Type element in an XRDS document. Initializes a new instance of the class. The type element. The parent. Gets the URI. The Uri element in an XRDS document. Initializes a new instance of the class. The URI element. The service. Compares the current object with another object of the same type. An object to compare with this object. A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter. Zero This object is equal to . Greater than zero This object is greater than . Gets the priority. Gets the URI. Gets the parent service. The Xrd element in an XRDS document. Initializes a new instance of the class. The XRD element. The parent. Searches for service sub-elements that have Type URI sub-elements that match one that we have for a known OpenID protocol version. A function that selects what element of the OpenID Protocol we're interested in finding. A sequence of service elements that match the search criteria, sorted in XRDS @priority attribute order. Gets the child service elements. The services. Gets a value indicating whether this XRD element's resolution at the XRI resolver was successful. true if this XRD's resolution was successful; otherwise, false. Gets the canonical ID (i-number) for this element. Gets a value indicating whether the was verified. Gets the services for OP Identifiers. Gets the services for Claimed Identifiers. Gets the services that would be discoverable at an RP for return_to verification. Gets the services that would be discoverable at an RP for the UI extension icon. Gets an enumeration of all Service/URI elements, sorted in priority order. Gets the XRI resolution status code. An XRDS document. The namespace used by XML digital signatures. The namespace used by Google Apps for Domains for OpenID URI templates. Initializes a new instance of the class. The root node of the XRDS document. Initializes a new instance of the class. The Xml reader positioned at the root node of the XRDS document. Initializes a new instance of the class. The text that is the XRDS document. Gets the XRD child elements of the document. Gets a value indicating whether all child XRD elements were resolved successfully. YADIS discovery manager. The HTTP header to look for in responses to declare where the XRDS document should be found. The maximum number of bytes to read from an HTTP response in searching for a link to a YADIS document. Gets or sets the cache that can be used for HTTP requests made during identifier discovery. Performs YADIS discovery on some identifier. The mechanism to use for sending HTTP requests. The URI to perform discovery on. Whether discovery should fail if any step of it is not encrypted. The result of discovery on the given URL. Null may be returned if an error occurs, or if is true but part of discovery is not protected by SSL. Searches an HTML document for a <meta http-equiv="X-XRDS-Location" content="{YadisURL}"> tag and returns the content of YadisURL. The HTML to search. The URI of the XRDS document if found; otherwise null. Sends a YADIS HTTP request as part of identifier discovery. The request handler to use to actually submit the request. The URI to GET. Whether only HTTPS URLs should ever be retrieved. The value of the Accept HTTP header to include in the request. The HTTP response retrieved from the request. Determines whether a given HTTP response constitutes an XRDS document. The response to test. true if the response constains an XRDS document; otherwise, false. ================================================ FILE: packages/DotNetOpenAuth.OpenId.Core.4.3.0.13117/lib/net40-full/Mono.Math.xml ================================================ Mono.Math Default length of a BigInteger in bytes The Length of this BigInteger The data for this BigInteger Table of primes below 2000. This table was generated using Mathematica 4.1 using the following function: PrimeTable [x_] := Prime [Range [1, PrimePi [x]]] PrimeTable [6000] Generates a new, random BigInteger of the specified length. The number of bits for the new number. A random number generator to use to obtain the bits. A random number of the specified length. Generates a new, random BigInteger of the specified length using the default RNG crypto service provider. The number of bits for the new number. A random number of the specified length. Randomizes the bits in "this" from the specified RNG. A RNG. Randomizes the bits in "this" from the default RNG. Tests if the specified bit is 1. The bit to test. The least significant bit is 0. True if bitNum is set to 1, else false. Normalizes this by setting the length to the actual number of uints used in data and by setting the sign to Sign.Zero if the value of this is 0. Generates the smallest prime >= bi A BigInteger The smallest prime >= bi. More mathematically, if bi is prime: bi, else Prime [PrimePi [bi] + 1]. Increments this by two Low level functions for the BigInteger Adds two numbers with the same sign. A BigInteger A BigInteger bi1 + bi2 Compares two BigInteger A BigInteger A BigInteger The sign of bi1 - bi2 Performs n / d and n % d in one operation. A BigInteger, upon exit this will hold n / d The divisor n % d Multiplies the data in x [xOffset:xOffset+xLen] by y [yOffset:yOffset+yLen] and puts it into d [dOffset:dOffset+xLen+yLen]. Multiplies the data in x [xOffset:xOffset+xLen] by y [yOffset:yOffset+yLen] and puts the low mod words into d [dOffset:dOffset+mod]. A factor of confidence. Only suitable for development use, probability of failure may be greater than 1/2^20. Suitable only for transactions which do not require forward secrecy. Probability of failure about 1/2^40 Designed for production use. Probability of failure about 1/2^80. Suitable for sensitive data. Probability of failure about 1/2^160. Use only if you have lots of time! Probability of failure about 1/2^320. Only use methods which generate provable primes. Not yet implemented. Finds the next prime after a given number. Performs primality tests on bi, assumes trial division has been done. A BigInteger that has been subjected to and passed trial division False if bi is composite, true if it may be prime. The speed of this method is dependent on Confidence Probabilistic prime test based on Rabin-Miller's test The number to test. The number of chosen bases. The test has at least a 1/4^confidence chance of falsely returning True. True if "this" is a strong pseudoprime to randomly chosen bases. False if "this" is definitely NOT prime. ================================================ FILE: packages/DotNetOpenAuth.OpenId.Core.4.3.0.13117/lib/net40-full/Org.Mentalis.Security.Cryptography.xml ================================================ Org.Mentalis.Security.Cryptography Defines the different Diffie-Hellman key generation methods. Returns dynamically generated values for P and G. Unlike the Sophie Germain or DSA key generation methods, this method does not ensure that the selected prime offers an adequate security level. Returns values for P and G that are hard coded in this library. Contrary to what your intuition may tell you, using these hard coded values is perfectly safe. The values of the P and G parameters are taken from 'The OAKLEY Key Determination Protocol' [RFC2412]. This is the prefered key generation method, because it is very fast and very safe. Because this method uses fixed values for the P and G parameters, not all bit sizes are supported. The current implementation supports bit sizes of 768, 1024 and 1536. Represents the parameters of the Diffie-Hellman algorithm. Represents the public P parameter of the Diffie-Hellman algorithm. Represents the public G parameter of the Diffie-Hellman algorithm. Represents the private X parameter of the Diffie-Hellman algorithm. Defines a base class from which all Diffie-Hellman implementations inherit. Creates an instance of the default implementation of the algorithm. A new instance of the default implementation of DiffieHellman. Creates an instance of the specified implementation of . The name of the implementation of DiffieHellman to use. A new instance of the specified implementation of DiffieHellman. Initializes a new instance. When overridden in a derived class, creates the key exchange data. The key exchange data to be sent to the intended recipient. When overridden in a derived class, extracts secret information from the key exchange data. The key exchange data within which the secret information is hidden. The secret information derived from the key exchange data. When overridden in a derived class, exports the . true to include private parameters; otherwise, false. The parameters for Diffie-Hellman. When overridden in a derived class, imports the specified . The parameters for Diffie-Hellman. Reconstructs a object from an XML string. The XML string to use to reconstruct the DiffieHellman object. One of the values in the XML string is invalid. Creates and returns an XML string representation of the current object. true to include private parameters; otherwise, false. An XML string encoding of the current DiffieHellman object. Implements the Diffie-Hellman algorithm. Initializes a new instance. The default length of the shared secret is 1024 bits. Initializes a new instance. The length, in bits, of the public P parameter. The length, in bits, of the secret value X. This parameter can be set to 0 to use the default size. One of the values. The larger the bit length, the more secure the algorithm is. The default is 1024 bits. The minimum bit length is 128 bits.
The size of the private value will be one fourth of the bit length specified.
The specified bit length is invalid.
Initializes a new instance. The P parameter of the Diffie-Hellman algorithm. This is a public parameter. The G parameter of the Diffie-Hellman algorithm. This is a public parameter. The X parameter of the Diffie-Hellman algorithm. This is a private parameter. If this parameters is a null reference (Nothing in Visual Basic), a secret value of the default size will be generated. or is a null reference (Nothing in Visual Basic). or is invalid. Initializes a new instance. The P parameter of the Diffie-Hellman algorithm. The G parameter of the Diffie-Hellman algorithm. The length, in bits, of the private value. If 0 is specified, the default value will be used. or is a null reference (Nothing in Visual Basic). is invalid. or is invalid. Creates the key exchange data. The key exchange data to be sent to the intended recipient. Extracts secret information from the key exchange data. The key exchange data within which the shared key is hidden. The shared key derived from the key exchange data. Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources. true to release both managed and unmanaged resources; false to release only unmanaged resources. Exports the . true to include private parameters; otherwise, false. The parameters for . Imports the specified . The parameters for . parameters.P or parameters.G is a null reference (Nothing in Visual Basic) -or- parameters.P is not a prime number. Releases the unmanaged resources used by the SymmetricAlgorithm. Gets the name of the key exchange algorithm. The name of the key exchange algorithm. Gets the name of the signature algorithm. The name of the signature algorithm.
================================================ FILE: packages/DotNetOpenAuth.OpenId.Core.4.3.0.13117/lib/net45-full/DotNetOpenAuth.OpenId.xml ================================================ DotNetOpenAuth.OpenId Describes a collection of association type sub-elements in a .config file. Initializes a new instance of the class. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. When overridden in a derived class, creates a new . A new . Gets the element key for a specified configuration element when overridden in a derived class. The to return the key for. An that acts as the key for the specified . Describes an association type and its maximum lifetime as an element in a .config file. The name of the attribute that stores the association type. The name of the attribute that stores the association's maximum lifetime. Initializes a new instance of the class. Gets or sets the protocol name of the association. Gets or sets the maximum time a shared association should live. The default value is 14 days. The configuration element that can adjust how hostmeta discovery works. The property name for enableCertificateValidationCache. Initializes a new instance of the class. Gets or sets a value indicating whether validated certificates should be cached and not validated again. This helps to avoid unexplained 5-10 second delays in certificate validation for Google Apps for Domains that impact some servers. Represents the <openid> element in the host's .config file. The name of the section under which this library's settings must be found. The name of the <relyingParty> sub-element. The name of the <provider> sub-element. The name of the <extensions> sub-element. The name of the <xriResolver> sub-element. The name of the @maxAuthenticationTime attribute. The name of the @cacheDiscovery attribute. Initializes a new instance of the class. Gets the configuration section from the .config file. Gets or sets the maximum time a user can take to complete authentication. This time limit allows the library to decide how long to cache certain values necessary to complete authentication. The lower the time, the less demand on the server. But too short a time can frustrate the user. Gets or sets a value indicating whether the results of Identifier discovery should be cached. Use true to allow identifier discovery to immediately return cached results when available; otherwise, use false.to force fresh results every time at the cost of slightly slower logins. The default value is true. When enabled, caching is done according to HTTP standards. Gets or sets the configuration specific for Relying Parties. Gets or sets the configuration specific for Providers. Gets or sets the registered OpenID extension factories. Gets or sets the configuration for the XRI resolver. The section in the .config file that allows customization of OpenID Provider behaviors. The name of the <provider> sub-element. The name of the security sub-element. Gets the name of the <behaviors> sub-element. The name of the custom store sub-element. Initializes a new instance of the class. Gets or sets the security settings. Gets or sets the special behaviors to apply. Gets or sets the type to use for storing application state. Represents the .config file element that allows for setting the security policies of the Provider. Gets the name of the @protectDownlevelReplayAttacks attribute. Gets the name of the @minimumHashBitLength attribute. Gets the name of the @maximumHashBitLength attribute. The name of the associations collection sub-element. The name of the @encodeAssociationSecretsInHandles attribute. Gets the name of the @requireSsl attribute. Gets the name of the @unsolicitedAssertionVerification attribute. Initializes a new instance of the class. Initializes a programmatically manipulatable bag of these security settings with the settings from the config file. The newly created security settings object. Gets or sets a value indicating whether all discovery and authentication should require SSL security. Gets or sets the minimum length of the hash that protects the protocol from hijackers. Gets or sets the maximum length of the hash that protects the protocol from hijackers. Gets or sets a value indicating whether the Provider should take special care to protect OpenID 1.x relying parties against replay attacks. Gets or sets the level of verification a Provider performs on an identifier before sending an unsolicited assertion for it. The default value is . Gets or sets the configured lifetimes of the various association types. Gets or sets a value indicating whether the Provider should ease the burden of storing associations by encoding their secrets (in signed, encrypted form) into the association handles themselves, storing only a few rotating, private symmetric keys in the Provider's store instead. The section in the .config file that allows customization of OpenID Relying Party behaviors. The name of the custom store sub-element. The name of the <relyingParty> sub-element. The name of the attribute that specifies whether dnoa.userSuppliedIdentifier is tacked onto the openid.return_to URL. Gets the name of the security sub-element. The name of the <behaviors> sub-element. The name of the <discoveryServices> sub-element. The name of the <hostMetaDiscovery> sub-element. The built-in set of identifier discovery services. Initializes a new instance of the class. Gets or sets a value indicating whether "dnoa.userSuppliedIdentifier" is tacked onto the openid.return_to URL in order to preserve what the user typed into the OpenID box. The default value is true. Gets or sets the security settings. Gets or sets the special behaviors to apply. Gets or sets the type to use for storing application state. Gets or sets the host meta discovery configuration element. Gets or sets the services to use for discovering service endpoints for identifiers. If no discovery services are defined in the (web) application's .config file, the default set of discovery services built into the library are used. Represents the .config file element that allows for setting the security policies of the Relying Party. Gets the name of the @minimumRequiredOpenIdVersion attribute. Gets the name of the @minimumHashBitLength attribute. Gets the name of the @maximumHashBitLength attribute. Gets the name of the @requireSsl attribute. Gets the name of the @requireDirectedIdentity attribute. Gets the name of the @requireAssociation attribute. Gets the name of the @rejectUnsolicitedAssertions attribute. Gets the name of the @rejectDelegatedIdentifiers attribute. Gets the name of the @ignoreUnsignedExtensions attribute. Gets the name of the @allowDualPurposeIdentifiers attribute. Gets the name of the @allowApproximateIdentifierDiscovery attribute. Gets the name of the @protectDownlevelReplayAttacks attribute. The name of the <trustedProviders> sub-element. Initializes a new instance of the class. Initializes a programmatically manipulatable bag of these security settings with the settings from the config file. The newly created security settings object. Gets or sets a value indicating whether all discovery and authentication should require SSL security. Gets or sets a value indicating whether only OP Identifiers will be discoverable when creating authentication requests. Gets or sets a value indicating whether authentication requests will only be created where an association with the Provider can be established. Gets or sets the minimum OpenID version a Provider is required to support in order for this library to interoperate with it. Although the earliest versions of OpenID are supported, for security reasons it may be desirable to require the remote party to support a later version of OpenID. Gets or sets the minimum length of the hash that protects the protocol from hijackers. Gets or sets the maximum length of the hash that protects the protocol from hijackers. Gets or sets a value indicating whether all unsolicited assertions should be ignored. The default value is false. Gets or sets a value indicating whether delegating identifiers are refused for authentication. The default value is false. When set to true, login attempts that start at the RP or arrive via unsolicited assertions will be rejected if discovery on the identifier shows that OpenID delegation is used for the identifier. This is useful for an RP that should only accept identifiers directly issued by the Provider that is sending the assertion. Gets or sets a value indicating whether unsigned extensions in authentication responses should be ignored. The default value is false. When set to true, the methods will not return any extension that was not signed by the Provider. Gets or sets a value indicating whether identifiers that are both OP Identifiers and Claimed Identifiers should ever be recognized as claimed identifiers. The default value is false, per the OpenID 2.0 spec. Gets or sets a value indicating whether certain Claimed Identifiers that exploit features that .NET does not have the ability to send exact HTTP requests for will still be allowed by using an approximate HTTP request. The default value is true. Gets or sets a value indicating whether the Relying Party should take special care to protect users against replay attacks when interoperating with OpenID 1.1 Providers. Gets or sets the set of trusted OpenID Provider Endpoints. Represents the <xriResolver> element in the host's .config file. Gets the name of the @enabled attribute. The default value for . The name of the <proxy> sub-element. The default XRI proxy resolver to use. Initializes a new instance of the class. Gets or sets a value indicating whether this XRI resolution is enabled. The default value is true. Gets or sets the proxy to use for resolving XRIs. The default value is "xri.net". Adds OpenID-specific extension methods to the XrdsDocument class. Creates the service endpoints described in this document, useful for requesting authentication of one of the OpenID Providers that result from it. The XrdsDocument instance to use in this process. The claimed identifier that was used to discover this XRDS document. The user supplied identifier. A sequence of OpenID Providers that can assert ownership of the . Creates the service endpoints described in this document, useful for requesting authentication of one of the OpenID Providers that result from it. The XrdsDocument instance to use in this process. The user-supplied i-name that was used to discover this XRDS document. A sequence of OpenID Providers that can assert ownership of the canonical ID given in this document. Generates OpenID Providers that can authenticate using directed identity. The XrdsDocument instance to use in this process. The OP Identifier entered (and resolved) by the user. Essentially the user-supplied identifier. A sequence of the providers that can offer directed identity services. Generates the OpenID Providers that are capable of asserting ownership of a particular URI claimed identifier. The XrdsDocument instance to use in this process. The claimed identifier. The user supplied identifier. A sequence of the providers that can assert ownership of the given identifier. Generates the OpenID Providers that are capable of asserting ownership of a particular XRI claimed identifier. The XrdsDocument instance to use in this process. The i-name supplied by the user. A sequence of the providers that can assert ownership of the given identifier. Enumerates the XRDS service elements that describe OpenID Providers offering directed identity assertions. The XrdsDocument instance to use in this process. A sequence of service elements. Returns the OpenID-compatible services described by a given XRDS document, in priority order. The XrdsDocument instance to use in this process. A sequence of the services offered. Stores a secret used in signing and verifying messages. OpenID associations may be shared between Provider and Relying Party (smart associations), or be a way for a Provider to recall its own secret for later (dumb associations). Initializes a new instance of the class. The handle. The secret. How long the association will be useful. The UTC time of when this association was originally issued by the Provider. Re-instantiates an previously persisted in a database or some other shared store. The property of the previous instance. The UTC value of the property of the previous instance. The byte array returned by a call to on the previous instance. The newly dehydrated , which can be returned from a custom association store's IRelyingPartyAssociationStore.GetAssociation method. Returns private data required to persist this in permanent storage (a shared database for example) for deserialization later. An opaque byte array that must be stored and returned exactly as it is provided here. The byte array may vary in length depending on the specific type of , but in current versions are no larger than 256 bytes. Values of public properties on the base class are not included in this byte array, as they are useful for fast database lookup and are persisted separately. Tests equality of two objects. The to compare with the current . true if the specified is equal to the current ; otherwise, false. Returns the hash code. A hash code for the current . The string to pass as the assoc_type value in the OpenID protocol. The protocol version of the message that the assoc_type value will be included in. The value that should be used for the openid.assoc_type parameter. Generates a signature from a given blob of data. The data to sign. This data will not be changed (the signature is the return value). The calculated signature of the data. Returns the specific hash algorithm used for message signing. The hash algorithm used for message signing. Gets a unique handle by which this may be stored or retrieved. Gets the UTC time when this will expire. Gets a value indicating whether this has already expired. Gets the length (in bits) of the hash this association creates when signing. Gets a value indicating whether this instance has useful life remaining. true if this instance has useful life remaining; otherwise, false. Gets or sets the UTC time that this was first created. Gets the duration a secret key used for signing dumb client requests will be good for. Gets the number of seconds until this expires. Never negative (counter runs to zero). Gets the shared secret key between the consumer and provider. Gets the lifetime the OpenID provider permits this . Gets the minimum lifetime an association must still be good for in order for it to be used for a future authentication. Associations that are not likely to last the duration of a user login are not worth using at all. Gets the TimeSpan till this association expires. Indicates the mode the Provider should use while authenticating the end user. The Provider should use whatever credentials are immediately available to determine whether the end user owns the Identifier. If sufficient credentials (i.e. cookies) are not immediately available, the Provider should fail rather than prompt the user. The Provider should determine whether the end user owns the Identifier, displaying a web page to the user to login etc., if necessary. An Attribute Exchange and Simple Registration filter to make all incoming attribute requests look like Simple Registration requests, and to convert the response to the originally requested extension and format. Initializes a new instance of the class. Gets or sets the AX attribute type URI formats this transform is willing to work with. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to The PAPE request has an incomplete set of authentication policies.. Looks up a localized string similar to A PAPE response is missing or is missing required policies.. Looks up a localized string similar to No personally identifiable information should be included in authentication responses when the PAPE authentication policy http://www.idmanagement.gov/schema/2009/05/icam/no-pii.pdf is present.. Looks up a localized string similar to No personally identifiable information should be requested when the http://www.idmanagement.gov/schema/2009/05/icam/no-pii.pdf PAPE policy is present.. Looks up a localized string similar to No PPID provider has been configured.. Looks up a localized string similar to Discovery on the Realm URL MUST be performed before sending a positive assertion.. Looks up a localized string similar to The Realm in an authentication request must be an HTTPS URL.. Implements the Identity, Credential, & Access Management (ICAM) OpenID 2.0 Profile for the General Services Administration (GSA). Relying parties that include this profile are always held to the terms required by the profile, but Providers are only affected by the special behaviors of the profile when the RP specifically indicates that they want to use this profile. Backing field for the static property. Initializes a new instance of the class. Gets or sets a value indicating whether PII is allowed to be requested or received via OpenID. The default value is false. Gets or sets a value indicating whether to ignore the SSL requirement (for testing purposes only). Provides a mechanism for Relying Parties to work with OpenID 1.0 Providers without losing claimed_id and op_endpoint data, which OpenID 2.0 Providers are required to send back with positive assertions. The "dnoa.op_endpoint" callback parameter that stores the Provider Endpoint URL to tack onto the return_to URI. The "dnoa.claimed_id" callback parameter that stores the Claimed Identifier to tack onto the return_to URI. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection offered (if any) by this binding element. Code contract for the class. Signs and verifies authentication assertions. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Verifies the signature by unrecognized handle. The message. The signed message. The protections applied. The applied protections. Calculates the signature for a given message. The message to sign or verify. The association to use to sign the message. The calculated signature of the method. Gets the association to use to sign or verify a message. The message to sign or verify. The association to use to sign or verify the message. Gets a specific association referenced in a given message's association handle. The signed message whose association handle should be used to lookup the association to return. The referenced association; or null if such an association cannot be found. If the association handle set in the message does not match any valid association, the association handle property is cleared, and the property is set to the handle that could not be found. Gets a private Provider association used for signing messages in "dumb" mode. An existing or newly created association. Ensures that all message parameters that must be signed are in fact included in the signature. The signed message. Gets the protection offered (if any) by this binding element. Gets or sets the channel that this binding element belongs to. Gets a value indicating whether this binding element is on a Provider channel. Verifies the signature by unrecognized handle. The message. The signed message. The protections applied. The applied protections. Gets the association to use to sign or verify a message. The message to sign or verify. The association to use to sign or verify the message. Gets a specific association referenced in a given message's association handle. The signed message whose association handle should be used to lookup the association to return. The referenced association; or null if such an association cannot be found. The binding element that serializes/deserializes OpenID extensions to/from their carrying OpenID messages. False if unsigned extensions should be dropped. Must always be true on Providers, since RPs never sign extensions. Initializes a new instance of the class. The extension factory. The security settings. Security setting for relying parties. Should be true for Providers. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets the extensions on a message. The carrier of the extensions. If set to true only signed extensions will be available. A optional filter that takes an extension type URI and returns a value indicating whether that extension should be deserialized and returned in the sequence. May be null. A sequence of extensions in the message. Gets the dictionary of message parts that should be deserialized into extensions. The message. If set to true only signed extensions will be available. A dictionary of message parts, including only signed parts when appropriate. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the extension factory. Gets the protection offered (if any) by this binding element. OpenID extension factory class for creating extensions based on received Type URIs. OpenID extension factories must be registered with the library. This can be done by adding a factory to OpenIdRelyingParty.ExtensionFactories or OpenIdProvider.ExtensionFactories, or by adding a snippet such as the following to your web.config file: <dotNetOpenAuth> <openid> <extensionFactories> <add type="DotNetOpenAuth.ApplicationBlock.CustomExtensions.Acme, DotNetOpenAuth.ApplicationBlock" /> </extensionFactories> </openid> </dotNetOpenAuth> Creates a new instance of some extension based on the received extension parameters. The type URI of the extension. The parameters associated specifically with this extension. The OpenID message carrying this extension. A value indicating whether this extension is being received at the OpenID Provider. An instance of if the factory recognizes the extension described in the input parameters; null otherwise. This factory method need only initialize properties in the instantiated extension object that are not bound using . An interface that OAuth messages implement to support signing. Gets or sets the association handle used to sign the message. The handle for the association that was used to sign this assertion. Gets or sets the association handle that the Provider wants the Relying Party to not use any more. If the Relying Party sent an invalid association handle with the request, it SHOULD be included here. Gets or sets the signed parameter order. Comma-separated list of signed fields. "op_endpoint,identity,claimed_id,return_to,assoc_handle,response_nonce" This entry consists of the fields without the "openid." prefix that the signature covers. This list MUST contain at least "op_endpoint", "return_to" "response_nonce" and "assoc_handle", and if present in the response, "claimed_id" and "identity". Additional keys MAY be signed as part of the message. See Generating Signatures. A Uri encoder that serializes using rather than the standard . Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Indicates the level of strictness to require when decoding a Key-Value Form encoded dictionary. Be as forgiving as possible to errors made while encoding. Allow for certain errors in encoding attributable to ambiguities in the OpenID 1.1 spec's description of the encoding. The strictest mode. The decoder requires the encoded dictionary to be in strict compliance with OpenID 2.0's description of the encoding. Performs conversion to and from the Key-Value Form Encoding defined by OpenID Authentication 2.0 section 4.1.1. http://openid.net/specs/openid-authentication-2_0.html#anchor4 This class is thread safe and immutable. The newline character sequence to use. Characters that must not appear in parameter names. Characters that must not appaer in parameter values. The character encoding to use. Initializes a new instance of the class. Initializes a new instance of the class. How strictly an incoming Key-Value Form message will be held to the spec. Encodes key/value pairs to Key-Value Form. The dictionary of key/value pairs to convert to a byte stream. The UTF8 byte array. Enumerating a Dictionary<TKey, TValue> has undeterministic ordering. If ordering of the key=value pairs is important, a deterministic enumerator must be used. Decodes bytes in Key-Value Form to key/value pairs. The stream of Key-Value Form encoded bytes. The deserialized dictionary. Thrown when the data is not in the expected format. Gets a value controlling how strictly an incoming Key-Value Form message will be held to the spec. A channel that knows how to send and receive OpenID messages. The HTTP Content-Type to use in Key-Value Form responses. OpenID 2.0 section 5.1.2 says this SHOULD be text/plain. But this value does not prevent free hosters like GoDaddy from tacking on their ads to the end of the direct response, corrupting the data. So we deviate from the spec a bit here to improve the story for free Providers. The encoder that understands how to read and write Key-Value Form. Initializes a new instance of the class. A class prepared to analyze incoming messages and indicate what concrete message types can deserialize from it. The binding elements to use in sending and receiving messages. Verifies the integrity and applicability of an incoming message. The message just received. Thrown when the message is somehow invalid, except for check_authentication messages. This can be due to tampering, replay attack or expiration, among other things. Prepares an HTTP request that carries a given message. The message to send. The prepared to send the request. Gets the protocol message that may be in the given HTTP response. The response that is anticipated to contain an protocol message. The deserialized message parts, if found. Null otherwise. Thrown when the response is not valid. Called when receiving a direct response message, before deserialization begins. The HTTP direct response. The newly instantiated message, prior to deserialization. Queues a message for sending in the response stream where the fields are sent in the response stream in querystring style. The message to send as a response. The pending user agent redirect based message to be sent as an HttpResponse. This method implements spec V1.0 section 5.3. Gets the direct response of a direct HTTP request. The web request. The response to the web request. Thrown on network or protocol errors. This binding element signs a Relying Party's openid.return_to parameter so that upon return, it can verify that it hasn't been tampered with. Since Providers can send unsolicited assertions, not all openid.return_to values will be signed. But those that are signed will be validated, and any invalid or missing signatures will cause this library to not trust the parameters in the return_to URL. In the messaging stack, this binding element looks like an ordinary transform-type of binding element rather than a protection element, due to its required order in the channel stack and that it doesn't sign anything except a particular message part. The name of the callback parameter we'll tack onto the return_to value to store our signature on the return_to parameter. The name of the callback parameter we'll tack onto the return_to value to store the handle of the association we use to sign the return_to parameter. The URI to use for private associations at this RP. The key store used to generate the private signature on the return_to parameter. Initializes a new instance of the class. The crypto key store. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets the return to signature. The return to. The crypto key. The generated signature. Only the parameters in the return_to URI are signed, rather than the base URI itself, in order that OPs that might change the return_to's implicit port :80 part or other minor changes do not invalidate the signature. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection offered (if any) by this binding element. No message protection is reported because this binding element does not protect the entire message -- only a part. Spoofs security checks on incoming OpenID messages. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. Code contract for the class. Prevents a default instance of the class from being created. The string to pass as the assoc_type value in the OpenID protocol. The protocol version of the message that the assoc_type value will be included in. The value that should be used for the openid.assoc_type parameter. Returns the specific hash algorithm used for message signing. The hash algorithm used for message signing. Gets the length (in bits) of the hash this association creates when signing. Manages a fast, two-way mapping between type URIs and their aliases. The format of auto-generated aliases. Tracks extension Type URIs and aliases assigned to them. Tracks extension aliases and Type URIs assigned to them. Gets an alias assigned for a given Type URI. A new alias is assigned if necessary. The type URI. The alias assigned to this type URI. Never null. Sets an alias and the value that will be returned by . The alias. The type URI. Takes a sequence of type URIs and assigns aliases for all of them. The type URIs to create aliases for. An optional dictionary of URI/alias pairs that suggest preferred aliases to use if available for certain type URIs. Sets up aliases for any Type URIs in a dictionary that do not yet have aliases defined, and where the given preferred alias is still available. A dictionary of type URI keys and alias values. Gets the Type Uri encoded by a given alias. The alias. The Type URI. Thrown if the given alias does not have a matching TypeURI. Gets the Type Uri encoded by a given alias. The alias. The Type URI for the given alias, or null if none for that alias exist. Returns a value indicating whether an alias has already been assigned to a type URI. The alias in question. True if the alias has already been assigned. False otherwise. Determines whether a given TypeURI has an associated alias assigned to it. The type URI. true if the given type URI already has an alias assigned; false otherwise. Assigns a new alias to a given Type URI. The type URI to assign a new alias to. The newly generated alias. Gets the aliases that have been set. An individual attribute to be requested of the OpenID Provider using the Attribute Exchange extension. Backing field for the property. Initializes a new instance of the class with = false, = 1. Initializes a new instance of the class with = false, = 1. The unique TypeURI for that describes the attribute being sought. Initializes a new instance of the class with = 1. The unique TypeURI for that describes the attribute being sought. A value indicating whether the Relying Party considers this attribute to be required for registration. Initializes a new instance of the class. The unique TypeURI for that describes the attribute being sought. A value indicating whether the Relying Party considers this attribute to be required for registration. The maximum number of values for this attribute the Relying Party is prepared to receive. Used by a Provider to create a response to a request for an attribute's value(s) using a given array of strings. The values for the requested attribute. The newly created object that should be added to the object. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Gets or sets the URI uniquely identifying the attribute being requested. Gets or sets a value indicating whether the relying party considers this a required field. Note that even if set to true, the Provider may not provide the value. Gets or sets the maximum number of values for this attribute the Relying Party wishes to receive from the OpenID Provider. A value of int.MaxValue is considered infinity. An individual attribute's value(s) as supplied by an OpenID Provider in response to a prior request by an OpenID Relying Party as part of a fetch request, or by a relying party as part of a store request. Initializes a new instance of the class. The TypeURI that uniquely identifies the attribute. The values for the attribute. Initializes a new instance of the class. This is internal because web sites should be using the method to instantiate. Initializes a new instance of the class. The TypeURI of the attribute whose values are being provided. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Gets the URI uniquely identifying the attribute whose value is being supplied. Gets the values supplied by the Provider. The various Type URI formats an AX attribute may use by various remote parties. No attribute format. AX attributes should use the Type URI format starting with http://axschema.org/. AX attributes should use the Type URI format starting with http://schema.openid.net/. AX attributes should use the Type URI format starting with http://openid.net/schema/. All known schemas. The most common schemas. Helper methods shared by multiple messages in the Attribute Exchange extension. Adds a request for an attribute considering it 'required'. The attribute request collection. The type URI of the required attribute. Adds a request for an attribute without considering it 'required'. The attribute request collection. The type URI of the requested attribute. Adds a given attribute with one or more values to the request for storage. Applicable to Relying Parties only. The collection of to add to. The type URI of the attribute. The attribute values. Serializes a set of attribute values to a dictionary of fields to send in the message. The dictionary to fill with serialized attributes. The attributes. Deserializes attribute values from an incoming set of message data. The data coming in with the message. The attribute values found in the message. Reads through the attributes included in the response to discover the alias-TypeURI relationships. The data included in the extension message. The alias manager that provides lookup between aliases and type URIs. Attribute Exchange constants The TypeURI by which the AX extension is recognized in OpenID messages and in XRDS documents. The Attribute Exchange Fetch message, request leg. A handy base class for built-in extensions. The contract any OpenID extension for DotNetOpenAuth must implement. Classes that implement this interface should be marked as [] to allow serializing state servers to cache messages, particularly responses. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets or sets a value indicating whether this extension was signed by the sender. true if this instance is signed by the sender; otherwise, false. Backing store for the property. Backing store for the property. Backing store for the property. Initializes a new instance of the class. The version of the extension. The type URI to use in the OpenID message. The additional supported type URIs by which this extension might be recognized. May be null. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets or sets a value indicating whether this extension was signed by the OpenID Provider. true if this instance is signed by the provider; otherwise, false. Gets the version of the protocol or extension this message is prepared to implement. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets or sets a value indicating whether this extension was signed by the OpenID Provider. true if this instance is signed by the provider; otherwise, false. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. The value for the 'mode' parameter. The factory method that may be used in deserialization of this message. Characters that may not appear in an attribute alias list. Characters that may not appear in an attribute Type URI alias. The collection of requested attributes. Initializes a new instance of the class. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Splits a list of aliases by their commas. The comma-delimited list of aliases. May be null or empty. The list of aliases. Never null, but may be empty. Gets a collection of the attributes whose values are requested by the Relying Party. A collection where the keys are the attribute type URIs, and the value is all the attribute request details. Gets or sets the URL that the OpenID Provider may re-post the fetch response message to at some time after the initial response has been sent, using an OpenID Authentication Positive Assertion to inform the relying party of updates to the requested fields. Gets or sets a list of aliases for optional attributes. A comma-delimited list of aliases. Gets or sets a list of aliases for required attributes. A comma-delimited list of aliases. The Attribute Exchange Fetch message, response leg. The value of the 'mode' parameter. The factory method that may be used in deserialization of this message. The collection of provided attributes. This field will never be null. Initializes a new instance of the class. Gets the first attribute value provided for a given attribute Type URI. The type URI of the attribute. Usually a constant from . The first value provided for the attribute, or null if the attribute is missing or no values were provided. This is meant as a helper method for the common case of just wanting one attribute value. For greater flexibility or to retrieve more than just the first value for an attribute, use the collection directly. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets a sequence of the attributes whose values are provided by the OpenID Provider. Gets a value indicating whether the OpenID Provider intends to honor the request for updates. Gets or sets the URL the OpenID Provider will post updates to. Must be set if the Provider supports and will use this feature. Gets a value indicating whether this extension is signed by the Provider. true if this instance is signed by the Provider; otherwise, false. The Attribute Exchange Store message, request leg. The value of the 'mode' parameter. The factory method that may be used in deserialization of this message. The collection of provided attribute values. This field will never be null. Initializes a new instance of the class. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Gets the collection of all the attributes that are included in the store request. The Attribute Exchange Store message, response leg. The value of the mode parameter used to express a successful store operation. The value of the mode parameter used to express a store operation failure. The factory method that may be used in deserialization of this message. Initializes a new instance of the class to represent a successful store operation. Initializes a new instance of the class to represent a failed store operation. The reason for failure. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets or sets a value indicating whether the storage request succeeded. Defaults to true. Gets or sets the reason for the failure, if applicable. Gets a value indicating whether this extension is signed by the Provider. true if this instance is signed by the Provider; otherwise, false. Gets or sets the mode argument. One of 'store_response_success' or 'store_response_failure'. Attribute types defined at http://www.axschema.org/types/. If you don't see what you need here, check that URL to see if any have been added. You can use new ones directly without adding them to this class, and can even make up your own if you expect the other end to understand what you make up. Inherent attributes about a personality such as gender and bio. Gender, either "M" or "F" "M", "F" Biography (text) "I am the very model of a modern Major General." Preferences such as language and timezone. Preferred language, as per RFC4646 "en-US" Home time zone information (as specified in zoneinfo) "America/Pacific" The names a person goes by. Subject's alias or "screen" name "Johnny5" Full name of subject "John Doe" Honorific prefix for the subject's name "Mr.", "Mrs.", "Dr." First or given name of subject "John" Last name or surname of subject "Smith" Middle name(s) of subject "Robert" Suffix of subject's name "III", "Jr." Business affiliation. Company name (employer) "Springfield Power" Employee title "Engineer" Information about a person's birthdate. Date of birth. "1979-01-01" Year of birth (four digits) "1979" Month of birth (1-12) "05" Day of birth "31" Various ways to contact a person. Internet SMTP email address as per RFC2822 "jsmith@isp.example.com" Various types of phone numbers. Main phone number (preferred) +1-800-555-1234 Home phone number +1-800-555-1234 Business phone number +1-800-555-1234 Cellular (or mobile) phone number +1-800-555-1234 Fax number +1-800-555-1234 The many fields that make up an address. Home postal address: street number, name and apartment number "#42 135 East 1st Street" "#42 135 East 1st Street" "Box 67" Home city name "Vancouver" Home state or province name "BC" Home country code in ISO.3166.1988 (alpha 2) format "CA" Home postal code; region specific format "V5A 4B2" The many fields that make up an address. Business postal address: street number, name and apartment number "#42 135 East 1st Street" "#42 135 East 1st Street" "Box 67" Business city name "Vancouver" Business state or province name "BC" Business country code in ISO.3166.1988 (alpha 2) format "CA" Business postal code; region specific format "V5A 4B2" Various handles for instant message clients. AOL instant messaging service handle "jsmith421234" ICQ instant messaging service handle "1234567" MSN instant messaging service handle "jsmith42@hotmail.com" Yahoo! instant messaging service handle "jsmith421234" Jabber instant messaging service handle "jsmith@jabber.example.com" Skype instant messaging service handle "jsmith42" Various web addresses connected with this personality. Web site URL "http://example.com/~jsmith/" Blog home page URL "http://example.com/jsmith_blog/" LinkedIn URL "http://www.linkedin.com/pub/1/234/56" Amazon URL "http://www.amazon.com/gp/pdp/profile/A24DLKJ825" Flickr URL "http://flickr.com/photos/jsmith42/" del.icio.us URL "http://del.icio.us/jsmith42" Audio and images of this personality. Spoken name (web URL) "http://example.com/~jsmith/john_smith.wav" Audio greeting (web URL) "http://example.com/~jsmith/i_greet_you.wav" Video greeting (web URL) "http://example.com/~jsmith/i_greet_you.mov" Images of this personality. Image (web URL); unspecified dimension "http://example.com/~jsmith/image.jpg" Image (web URL) with equal width and height "http://example.com/~jsmith/image.jpg" Image (web URL) 4:3 aspect ratio - landscape "http://example.com/~jsmith/image.jpg" Image (web URL) 4:3 aspect ratio - landscape "http://example.com/~jsmith/image.jpg" Image (web URL); favicon format as per FAVICON-W3C. The format for the image must be 16x16 pixels or 32x32 pixels, using either 8-bit or 24-bit colors. The format of the image must be one of PNG (a W3C standard), GIF, or ICO. "http://example.com/~jsmith/image.jpg" Manages the processing and construction of OpenID extensions parts. This contains a set of aliases that we must be willing to implicitly match to namespaces for backward compatibility with other OpenID libraries. The version of OpenID that the message is using. Whether extensions are being read or written. The alias manager that will track Type URI to alias mappings. A complex dictionary where the key is the Type URI of the extension, and the value is another dictionary of the name/value args of the extension. Prevents a default instance of the class from being created. Creates a instance to process incoming extensions. The parameters in the OpenID message. The newly created instance of . Creates a instance to prepare outgoing extensions. The protocol version used for the outgoing message. The newly created instance of . Adds query parameters for OpenID extensions to the request directed at the OpenID provider. The extension type URI. The arguments for this extension to add to the message. Gets the actual arguments to add to a querystring or other response, where type URI, alias, and actual key/values are all defined. true if the generated parameter names should include the 'openid.' prefix. This should be true for all but direct response messages. A dictionary of key=value pairs to add to the message to carry the extension. Gets the fields carried by a given OpenId extension. The type URI of the extension whose fields are being queried for. The fields included in the given extension, or null if the extension is not present. Gets whether any arguments for a given extension are present. The extension Type URI in question. true if this extension is present; false otherwise. Gets the type URIs of all discovered extensions in the message. A sequence of the type URIs. Gets a value indicating whether the extensions are being read (as opposed to written). An interface that OpenID extensions can implement to allow authentication response messages with included extensions to be processed by Javascript on the user agent. Reads the extension information on an authentication response from the provider. The incoming OpenID response carrying the extension. A Javascript snippet that when executed on the user agent returns an object with the information deserialized from the extension response. This method is called before the signature on the assertion response has been verified. Therefore all information in these fields should be assumed unreliable and potentially falsified. An extension to include with an authentication request in order to also obtain authorization to access user data at the combined OpenID Provider and Service Provider. When requesting OpenID Authentication via the protocol mode "checkid_setup" or "checkid_immediate", this extension can be used to request that the end user authorize an OAuth access token at the same time as an OpenID authentication. This is done by sending the following parameters as part of the OpenID request. (Note that the use of "oauth" as part of the parameter names here and in subsequent sections is just an example. See Section 5 for details.) See section 8. The factory method that may be used in deserialization of this message. Initializes a new instance of the class. Gets or sets the consumer key agreed upon between the Consumer and Service Provider. Gets or sets a string that encodes, in a way possibly specific to the Combined Provider, one or more scopes for the OAuth token expected in the authentication response. The OAuth response that a Provider may include with a positive OpenID identity assertion with an approved request token. The factory method that may be used in deserialization of this message. Initializes a new instance of the class. Gets or sets the user-approved request token. The request token. Gets or sets a string that encodes, in a way possibly specific to the Combined Provider, one or more scopes that the returned request token is valid for. This will typically indicate a subset of the scopes requested in Section 8. Constants used in the OpenID OAuth extension. The TypeURI for the OpenID OAuth extension. The name of the parameter that carries the request token in the response. The OAuth response that a Provider should include with a positive OpenID identity assertion when OAuth authorization was declined. The factory method that may be used in deserialization of this message. Initializes a new instance of the class. An OpenID extension factory that only delegates extension instantiation requests to other factories. The list of factories this factory delegates to. Initializes a new instance of the class. Creates a new instance of some extension based on the received extension parameters. The type URI of the extension. The parameters associated specifically with this extension. The OpenID message carrying this extension. A value indicating whether this extension is being received at the OpenID Provider. An instance of if the factory recognizes the extension described in the input parameters; null otherwise. This factory method need only initialize properties in the instantiated extension object that are not bound using . Loads the default factory and additional ones given by the configuration. A new instance of . Gets the extension factories that this aggregating factory delegates to. A list of factories. May be empty, but never null. Encodes/decodes the Simple Registration Gender type to its string representation. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. An OpenID extension factory that supports registration so that third-party extensions can add themselves to this library's supported extension list. A collection of the registered OpenID extensions. Initializes a new instance of the class. Creates a new instance of some extension based on the received extension parameters. The type URI of the extension. The parameters associated specifically with this extension. The OpenID message carrying this extension. A value indicating whether this extension is being received at the OpenID Provider. An instance of if the factory recognizes the extension described in the input parameters; null otherwise. This factory method need only initialize properties in the instantiated extension object that are not bound using . Registers a new extension delegate. The factory method that can create the extension. A delegate that individual extensions may register with this factory. The type URI of the extension. The parameters associated specifically with this extension. The OpenID message carrying this extension. A value indicating whether this extension is being received at the OpenID Provider. An instance of if the factory recognizes the extension described in the input parameters; null otherwise. Well-known authentication policies defined in the PAPE extension spec or by a recognized standards body. This is a class of constants rather than a flags enum because policies may be freely defined and used by anyone, just by using a new Uri. An authentication mechanism where the End User does not provide a shared secret to a party potentially under the control of the Relying Party. (Note that the potentially malicious Relying Party controls where the User-Agent is redirected to and thus may not send it to the End User's actual OpenID Provider). An authentication mechanism where the End User authenticates to the OpenID Provider by providing over one authentication factor. Common authentication factors are something you know, something you have, and something you are. An example would be authentication using a password and a software token or digital certificate. An authentication mechanism where the End User authenticates to the OpenID Provider by providing over one authentication factor where at least one of the factors is a physical factor such as a hardware device or biometric. Common authentication factors are something you know, something you have, and something you are. This policy also implies the Multi-Factor Authentication policy (http://schemas.openid.net/pape/policies/2007/06/multi-factor) and both policies MAY BE specified in conjunction without conflict. An example would be authentication using a password and a hardware token. Indicates that the Provider MUST use a pair-wise pseudonym for the user that is persistent and unique across the requesting realm as the openid.claimed_id and openid.identity (see Section 4.2). Indicates that the OP MUST only respond with a positive assertion if the requirements demonstrated by the OP to obtain certification by a Federally adopted Trust Framework Provider have been met. Notwithstanding the RP may request this authentication policy, the RP MUST still verify that this policy appears in the positive assertion response rather than assume the OP recognized and complied with the request. Indicates that the OP MUST not include any OpenID Attribute Exchange or Simple Registration information regarding the user in the assertion. Used in a PAPE response to indicate that no PAPE authentication policies could be satisfied. Used internally by the PAPE extension, so that users don't have to know about it. OpenID Provider Authentication Policy extension constants. The namespace used by this extension in messages. The namespace alias to use for OpenID 1.x interop, where aliases are not defined in the message. The string to prepend on an Auth Level Type alias definition. Well-known assurance level Type URIs. The Type URI of the NIST assurance level. A mapping between the PAPE TypeURI and the alias to use if possible for backward compatibility reasons. Parameters to be included with PAPE requests. Optional. If the End User has not actively authenticated to the OP within the number of seconds specified in a manner fitting the requested policies, the OP SHOULD authenticate the End User for this request. Integer value greater than or equal to zero in seconds. The OP should realize that not adhering to the request for re-authentication most likely means that the End User will not be allowed access to the services provided by the RP. If this parameter is absent in the request, the OP should authenticate the user at its own discretion. Zero or more authentication policy URIs that the OP SHOULD conform to when authenticating the user. If multiple policies are requested, the OP SHOULD satisfy as many as it can. Space separated list of authentication policy URIs. If no policies are requested, the RP may be interested in other information such as the authentication age. The space separated list of the name spaces of the custom Assurance Level that RP requests, in the order of its preference. An encoder/decoder design for DateTimes that must conform to the PAPE spec. The timestamp MUST be formatted as specified in section 5.6 of [RFC3339] (Klyne, G. and C. Newman, “Date and Time on the Internet: Timestamps,” .), with the following restrictions: * All times must be in the UTC timezone, indicated with a "Z". * No fractional seconds are allowed For example: 2005-05-15T17:11:51Z An array of the date/time formats allowed by the PAPE extension. TODO: This array of formats is not yet a complete list. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Descriptions for NIST-defined levels of assurance that a credential has not been compromised and therefore the extent to which an authentication assertion can be trusted. One using this enum should review the following publication for details before asserting or interpreting what these levels signify, notwithstanding the brief summaries attached to each level in DotNetOpenAuth documentation. http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf See PAPE spec Appendix A.1.2 (NIST Assurance Levels) for high-level example classifications of authentication methods within the defined levels. Not an assurance level defined by NIST, but rather SHOULD be used to signify that the OP recognizes the parameter and the End User authentication did not meet the requirements of Level 1. See this document for a thorough description: http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf See this document for a thorough description: http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf See this document for a thorough description: http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf See this document for a thorough description: http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf Utility methods for use by the PAPE extension. Looks at the incoming fields and figures out what the aliases and name spaces for auth level types are. The incoming message data in which to discover TypeURIs and aliases. The initialized with the given data. Concatenates a sequence of strings using a space as a separator. The elements to concatenate together.. The concatenated string of elements. Thrown if any element in the sequence includes a space. The PAPE request part of an OpenID Authentication request message. The factory method that may be used in deserialization of this message. The transport field for the RP's preferred authentication policies. This field is written to/read from during custom serialization. Initializes a new instance of the class. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Serializes the policies as a single string per the PAPE spec.. The policies to include in the list. The concatenated string of the given policies. Serializes the auth levels to a list of aliases. The preferred auth level types. The alias manager. A space-delimited list of aliases. Gets or sets the maximum acceptable time since the End User has actively authenticated to the OP in a manner fitting the requested policies, beyond which the Provider SHOULD authenticate the End User for this request. The OP should realize that not adhering to the request for re-authentication most likely means that the End User will not be allowed access to the services provided by the RP. If this parameter is absent in the request, the OP should authenticate the user at its own discretion. Gets the list of authentication policy URIs that the OP SHOULD conform to when authenticating the user. If multiple policies are requested, the OP SHOULD satisfy as many as it can. List of authentication policy URIs obtainable from the class or from a custom list. If no policies are requested, the RP may be interested in other information such as the authentication age. Gets the namespaces of the custom Assurance Level the Relying Party requests, in the order of its preference. The PAPE response part of an OpenID Authentication response message. The first part of a parameter name that gives the custom string value for the assurance level. The second part of the parameter name is the alias for that assurance level. The factory method that may be used in deserialization of this message. One or more authentication policy URIs that the OP conformed to when authenticating the End User. Space separated list of authentication policy URIs. If no policies were met though the OP wishes to convey other information in the response, this parameter MUST be included with the value of "none". Backing field for the property. Initializes a new instance of the class. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Serializes the applied policies for transmission from the Provider to the Relying Party. The applied policies. A space-delimited list of applied policies. Gets a list of authentication policy URIs that the OP conformed to when authenticating the End User. Gets or sets the most recent timestamp when the End User has actively authenticated to the OP in a manner fitting the asserted policies. If the RP's request included the "openid.pape.max_auth_age" parameter then the OP MUST include "openid.pape.auth_time" in its response. If "openid.pape.max_auth_age" was not requested, the OP MAY choose to include "openid.pape.auth_time" in its response. Gets or sets the Assurance Level as defined by the National Institute of Standards and Technology (NIST) in Special Publication 800-63 (Burr, W., Dodson, D., and W. Polk, Ed., “Electronic Authentication Guideline,” April 2006.) [NIST_SP800‑63] corresponding to the authentication method and policies employed by the OP when authenticating the End User. See PAPE spec Appendix A.1.2 (NIST Assurance Levels) for high-level example classifications of authentication methods within the defined levels. Gets a dictionary where keys are the authentication level type URIs and the values are the per authentication level defined custom value. A very common key is and values for this key are available in . Gets a value indicating whether this extension is signed by the Provider. true if this instance is signed by the Provider; otherwise, false. Carries the request/require/none demand state of the simple registration fields. The factory method that may be used in deserialization of this message. The type URI that this particular (deserialized) extension was read in using, allowing a response to alter be crafted using the same type URI. Initializes a new instance of the class. Initializes a new instance of the class by deserializing from a message. The type URI this extension was recognized by in the OpenID message. Tests equality between two structs. One instance to compare. Another instance to compare. The result of the operator. Tests inequality between two structs. One instance to compare. Another instance to compare. The result of the operator. Tests equality between two structs. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Renders the requested information as a string. A that represents the current . Prepares a Simple Registration response extension that is compatible with the version of Simple Registration used in the request message. The newly created instance. Sets the profile request properties according to a list of field names that might have been passed in the OpenId query dictionary. The list of field names that should receive a given . These field names should match the OpenId specification for field names, omitting the 'openid.sreg' prefix. The none/request/require state of the listed fields. Assembles the profile parameter names that have a given . The demand level (request, require, none). An array of the profile parameter names that meet the criteria. Gets or sets the URL the consumer site provides for the authenticating user to review for how his claims will be used by the consumer web site. Gets or sets the level of interest a relying party has in the nickname of the user. Gets or sets the level of interest a relying party has in the email of the user. Gets or sets the level of interest a relying party has in the full name of the user. Gets or sets the level of interest a relying party has in the birthdate of the user. Gets or sets the level of interest a relying party has in the gender of the user. Gets or sets the level of interest a relying party has in the postal code of the user. Gets or sets the level of interest a relying party has in the Country of the user. Gets or sets the level of interest a relying party has in the language of the user. Gets or sets the level of interest a relying party has in the time zone of the user. Gets or sets a value indicating whether this instance is synthesized from an AX request at the Provider. Gets or sets the value of the sreg.required parameter. A comma-delimited list of sreg fields. Gets or sets the value of the sreg.optional parameter. A comma-delimited list of sreg fields. A struct storing Simple Registration field values describing an authenticating user. The factory method that may be used in deserialization of this message. The allowed format for birthdates. Storage for the raw string birthdate value. Backing field for the property. Backing field for the property. Initializes a new instance of the class using the most common, and spec prescribed type URI. Initializes a new instance of the class. The type URI that must be used to identify this extension in the response message. This value should be the same one the relying party used to send the extension request. Commonly used type URIs supported by relying parties are defined in the class. Tests equality of two objects. One instance to compare. Another instance to compare. The result of the operator. Tests inequality of two objects. One instance to compare. Another instance to compare. The result of the operator. Tests equality of two objects. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Reads the extension information on an authentication response from the provider. The incoming OpenID response carrying the extension. A Javascript snippet that when executed on the user agent returns an object with the information deserialized from the extension response. This method is called before the signature on the assertion response has been verified. Therefore all information in these fields should be assumed unreliable and potentially falsified. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Translates an empty string value to null, or passes through non-empty values. The value to consider changing to null. Either null or a non-empty string. Gets or sets the nickname the user goes by. Gets or sets the user's email address. Gets or sets the full name of a user as a single string. Gets or sets the user's birthdate. Gets or sets the raw birth date string given by the extension. A string in the format yyyy-MM-dd. Gets or sets the gender of the user. Gets or sets the zip code / postal code of the user. Gets or sets the country of the user. Gets or sets the primary/preferred language of the user. Gets or sets the user's timezone. Gets a combination of the user's full name and email address. Gets or sets a combination of the language and country of the user. Gets a value indicating whether this extension is signed by the Provider. true if this instance is signed by the Provider; otherwise, false. Simple Registration constants Additional type URIs that this extension is sometimes known by remote parties. Commonly used type URIs to represent the Simple Registration extension. The URI "http://openid.net/extensions/sreg/1.1". This is the type URI prescribed by the Simple Registration 1.1 spec. http://openid.net/specs/openid-simple-registration-extension-1_1-01.html#anchor3 The URI "http://openid.net/sreg/1.0" The URI "http://openid.net/sreg/1.1" Specifies what level of interest a relying party has in obtaining the value of a given field offered by the Simple Registration extension. The relying party has no interest in obtaining this field. The relying party would like the value of this field, but wants the Provider to display the field to the user as optionally provided. The relying party considers this a required field as part of authentication. The Provider and/or user agent MAY still choose to not provide the value of the field however, according to the Simple Registration extension specification. Indicates the gender of a user. The user is male. The user is female. Constants used to support the UI extension. The type URI associated with this extension. The Type URI that appears in an XRDS document when the OP supports popups through the UI extension. The Type URI that appears in an XRDS document when the OP supports the RP specifying the user's preferred language through the UI extension. The Type URI that appears in the XRDS document when the OP supports the RP specifying the icon for the OP to display during authentication through the UI extension. Valid values for the mode parameter of the OpenID User Interface extension. Indicates that the Provider's authentication page appears in a popup window. The constant "popup". The RP SHOULD create the popup to be 450 pixels wide and 500 pixels tall. The popup MUST have the address bar displayed, and MUST be in a standalone browser window. The contents of the popup MUST NOT be framed by the RP. The RP SHOULD open the popup centered above the main browser window, and SHOULD dim the contents of the parent window while the popup is active. The RP SHOULD ensure that the user is not surprised by the appearance of the popup, and understands how to interact with it. To keep the user popup user experience consistent, it is RECOMMENDED that the OP does not resize the popup window unless the OP requires additional space to show special features that are not usually displayed as part of the default popup user experience. The OP MAY close the popup without returning a response to the RP. Closing the popup without sending a response should be interpreted as a negative assertion. The response to an authentication request in a popup is unchanged from [OpenID 2.0] (OpenID 2.0 Workgroup, “OpenID 2.0,” .). Relying Parties detecting that the popup was closed without receiving an authentication response SHOULD interpret the close event to be a negative assertion. OpenID User Interface extension 1.0 request message. Implements the extension described by: http://wiki.openid.net/f/openid_ui_extension_draft01.html This extension only applies to checkid_setup requests, since checkid_immediate requests display no UI to the user. For rules about how the popup window should be displayed, please see the documentation of . An RP may determine whether an arbitrary OP supports this extension (and thereby determine whether to use a standard full window redirect or a popup) via the method. The factory method that may be used in deserialization of this message. Additional type URIs that this extension is sometimes known by remote parties. Backing store for . Initializes a new instance of the class. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Called when the message is about to be transmitted, before it passes through the channel binding elements. Called when the message has been received, after it passes through the channel binding elements. Gets or sets the list of user's preferred languages, sorted in decreasing preferred order. The default is the of the thread that created this instance. The user's preferred languages as a [BCP 47] language priority list, represented as a comma-separated list of BCP 47 basic language ranges in descending priority order. For instance, the value "fr-CA,fr-FR,en-CA" represents the preference for French spoken in Canada, French spoken in France, followed by English spoken in Canada. Gets or sets the style of UI that the RP is hosting the OP's authentication page in. Some value from the class. Defaults to . Gets or sets a value indicating whether the Relying Party has an icon it would like the Provider to display to the user while asking them whether they would like to log in. true if the Provider should display an icon; otherwise, false. By default, the Provider displays the relying party's favicon.ico. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets or sets a value indicating whether this extension was signed by the sender. true if this instance is signed by the sender; otherwise, false. Gets the version of the protocol or extension this message is prepared to implement. The value 1.0. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. Constants used in implementing support for the UI extension. The required width of the popup window the relying party creates for the provider. The required height of the popup window the relying party creates for the provider. An Identifier is either a "http" or "https" URI, or an XRI. Initializes a new instance of the class. The original string before any normalization. Whether the derived class is prepared to guarantee end-to-end discovery and initial redirect for authentication is performed using SSL. Converts the string representation of an Identifier to its strong type. The identifier. The particular Identifier instance to represent the value given. Converts a given Uri to a strongly-typed Identifier. The identifier to convert. The result of the conversion. Converts an Identifier to its string representation. The identifier to convert to a string. The result of the conversion. Parses an identifier string and automatically determines whether it is an XRI or URI. Either a URI or XRI identifier. An instance for the given value. Parses an identifier string and automatically determines whether it is an XRI or URI. Either a URI or XRI identifier. if set to true this Identifier will serialize exactly as given rather than in its normalized form. An instance for the given value. Attempts to parse a string for an OpenId Identifier. The string to be parsed. The parsed Identifier form. True if the operation was successful. False if the string was not a valid OpenId Identifier. Checks the validity of a given string representation of some Identifier. The identifier. true if the specified identifier is valid; otherwise, false. Tests equality between two s. The first Identifier. The second Identifier. true if the two instances should be considered equal; false otherwise. Tests inequality between two s. The first Identifier. The second Identifier. true if the two instances should be considered unequal; false if they are equal. Tests equality between two s. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Gets the hash code for an for storage in a hashtable. A hash code for the current . Reparses the specified identifier in order to be assured that the concrete type that implements the identifier is one of the well-known ones. The identifier. Either or . Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. Gets the original string that was normalized to create this Identifier. Gets the Identifier in the form in which it should be serialized. For Identifiers that were originally deserialized, this is the exact same string that was deserialized. For Identifiers instantiated in some other way, this is the normalized form of the string used to instantiate the identifier. Gets or sets a value indicating whether instances are considered equal based solely on their string reprsentations. This property serves as a test hook, so that MockIdentifier instances can be considered "equal" to UriIdentifier instances. Gets a value indicating whether this Identifier will ensure SSL is used throughout the discovery phase and initial redirect of authentication. If this is false, a value of true may be obtained by calling . Gets a value indicating whether this instance was initialized from deserializing a message. This is interesting because when an Identifier comes from the network, we can't normalize it and then expect signatures to still verify. But if the Identifier is initialized locally, we can and should normalize it before serializing it. Provides conversions to and from strings for messages that include members of this type. Encodes the specified value as the original value that was formerly decoded. The value. Guaranteed to never be null. The in string form, ready for message transport. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Code Contract for the class. Prevents a default instance of the IdentifierContract class from being created. Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. A set of methods designed to assist in improving interop across different OpenID implementations and their extensions. The gender decoder to translate AX genders to Sreg. Splits the AX attribute format flags into individual values for processing. The formats to split up into individual flags. A sequence of individual flags. Transforms an AX attribute type URI from the axschema.org format into a given format. The ax schema org format type URI. The target format. Only one flag should be set. The AX attribute type URI in the target format. Detects the AX attribute type URI format from a given sample. The type URIs to scan for recognized formats. The first AX type URI format recognized in the list. Adds an attribute fetch request if it is not already present in the AX request. The AX request to add the attribute request to. The format of the attribute's Type URI to use. The attribute in axschema.org format. The demand level. Gets the gender decoder to translate AX genders to Sreg. Represents a single OP endpoint from discovery on some OpenID Identifier. Information published about an OpenId Provider by the OpenId discovery documents found at a user's Claimed Identifier. Because information provided by this interface is suppplied by a user's individually published documents, it may be incomplete or inaccurate. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Gets the detected version of OpenID implemented by the Provider. Gets the URL that the OpenID Provider receives authentication requests at. This value MUST be an absolute HTTP or HTTPS URL. Backing field for the property. Backing field for the property. Backing field for the property. Initializes a new instance of the class. The provider endpoint. The Claimed Identifier. The User-supplied Identifier. The Provider Local Identifier. The service priority. The URI priority. Implements the operator ==. The first service endpoint. The second service endpoint. The result of the operator. Implements the operator !=. The first service endpoint. The second service endpoint. The result of the operator. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Returns a that represents the current . A that represents the current . Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Determines whether a given extension is supported by this endpoint. An instance of the extension to check support for. true if the extension is supported by this endpoint; otherwise, false. Creates a instance to represent some OP Identifier. The provider identifier (actually the user-supplied identifier). The provider endpoint. The service priority. The URI priority. The created instance Creates a instance to represent some Claimed Identifier. The claimed identifier. The provider local identifier. The provider endpoint. The service priority. The URI priority. The created instance Creates a instance to represent some Claimed Identifier. The claimed identifier. The user supplied identifier. The provider local identifier. The provider endpoint. The service priority. The URI priority. The created instance Determines whether a given type URI is present on the specified provider endpoint. The type URI. true if the type URI is present on the specified provider endpoint; otherwise, false. Sets the Capabilities property (this method is a test hook.) The value. The publicize.exe tool should work for the unit tests, but for some reason it fails on the build server. Gets the priority rating for a given type of endpoint, allowing a priority sorting of endpoints. The endpoint to prioritize. An arbitary integer, which may be used for sorting against other returned values from this method. Gets the detected version of OpenID implemented by the Provider. Gets the Identifier that was presented by the end user to the Relying Party, or selected by the user at the OpenID Provider. During the initiation phase of the protocol, an end user may enter either their own Identifier or an OP Identifier. If an OP Identifier is used, the OP may then assist the end user in selecting an Identifier to share with the Relying Party. Gets the Identifier that the end user claims to control. Gets an alternate Identifier for an end user that is local to a particular OP and thus not necessarily under the end user's control. Gets a more user-friendly (but NON-secure!) string to display to the user as his identifier. A human-readable, abbreviated (but not secure) identifier the user MAY recognize as his own. Gets the provider endpoint. Gets the @priority given in the XRDS document for this specific OP endpoint. Gets the @priority given in the XRDS document for this service (which may consist of several endpoints). Gets the collection of service type URIs found in the XRDS document describing this Provider. Should never be null, but may be empty. Gets the URL that the OpenID Provider receives authentication requests at. This value MUST be an absolute HTTP or HTTPS URL. Gets an XRDS sorting routine that uses the XRDS Service/@Priority attribute to determine order. Endpoints lacking any priority value are sorted to the end of the list. Gets the protocol used by the OpenID Provider. A module that provides discovery services for OpenID identifiers. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. Code contract for the interface. Prevents a default instance of the class from being created. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. A service that can perform discovery on OpenID identifiers. The RP or OP that is hosting these services. Backing field for the property. Initializes a new instance of the class. The RP or OP that creates this instance. Performs discovery on the specified identifier. The identifier to discover services for. A non-null sequence of services discovered for the identifier. Gets the list of services that can perform discovery on identifiers given. An interface implemented by both providers and relying parties. Gets the security settings. Gets the web request handler. Code contract for the type. Prevents a default instance of the class from being created. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Gets the detected version of OpenID implemented by the Provider. Gets the URL that the OpenID Provider receives authentication requests at. Instances of this interface represent incoming authentication requests. This interface provides the details of the request and allows setting the response. Interface exposing incoming messages to the OpenID Provider that require interaction with the host site. Represents an incoming OpenId authentication request. Requests may be infrastructural to OpenID and allow auto-responses, or they may be authentication requests where the Provider site has to make decisions based on its own user database and policies. Adds an extension to the response to send to the relying party. The extension to add to the response message. Removes any response extensions previously added using . This should be called before sending a negative response back to the relying party if extensions were already added, since negative responses cannot carry extensions. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets a value indicating whether the response is ready to be sent to the user agent. This property returns false if there are properties that must be set on this request instance before the response can be sent. Gets or sets the security settings that apply to this request. Defaults to the OpenIdProvider.SecuritySettings on the OpenIdProvider. Attempts to perform relying party discovery of the return URL claimed by the Relying Party. The web request handler. The details of how successful the relying party discovery was. Return URL verification is only attempted if this method is called. See OpenID Authentication 2.0 spec section 9.2.1. Gets the version of OpenID being used by the relying party that sent the request. Gets the URL the consumer site claims to use as its 'base' address. Gets a value indicating whether the consumer demands an immediate response. If false, the consumer is willing to wait for the identity provider to authenticate the user. Gets or sets the provider endpoint claimed in the positive assertion. The default value is the URL that the request came in on from the relying party. This value MUST match the value for the OP Endpoint in the discovery results for the claimed identifier being asserted in a positive response. Adds an optional fragment (#fragment) portion to the ClaimedIdentifier. Useful for identifier recycling. Should not include the # prefix character as that will be added internally. May be null or the empty string to clear a previously set fragment. Unlike the property, which can only be set if using directed identity, this method can be called on any URI claimed identifier. Because XRI claimed identifiers (the canonical IDs) are never recycled, this method shouldnot be called for XRIs. Thrown when this method is called on an XRI, or on a directed identity request before the property is set. Gets a value indicating whether the Provider should help the user select a Claimed Identifier to send back to the relying party. Gets a value indicating whether the requesting Relying Party is using a delegated URL. When delegated identifiers are used, the should not be changed at the Provider during authentication. Delegation is only detectable on requests originating from OpenID 2.0 relying parties. A relying party implementing only OpenID 1.x may use delegation and this property will return false anyway. Gets or sets the Local Identifier to this OpenID Provider of the user attempting to authenticate. Check to see if this value is valid. This may or may not be the same as the Claimed Identifier that the user agent originally supplied to the relying party. The Claimed Identifier endpoint may be delegating authentication to this provider using this provider's local id, which is what this property contains. Use this identifier when looking up this user in the provider's user account list. Gets or sets the identifier that the user agent is claiming at the relying party site. Check to see if this value is valid. This property can only be set if is false, to prevent breaking URL delegation. This will not be the same as this provider's local identifier for the user if the user has set up his/her own identity page that points to this provider for authentication. The provider may use this identifier for displaying to the user when asking for the user's permission to authenticate to the relying party. Thrown from the setter if is true. Gets or sets a value indicating whether the provider has determined that the belongs to the currently logged in user and wishes to share this information with the consumer. Code contract class for the type. Initializes a new instance of the class. Adds an optional fragment (#fragment) portion to the ClaimedIdentifier. Useful for identifier recycling. Should not include the # prefix character as that will be added internally. May be null or the empty string to clear a previously set fragment. Unlike the property, which can only be set if using directed identity, this method can be called on any URI claimed identifier. Because XRI claimed identifiers (the canonical IDs) are never recycled, this method shouldnot be called for XRIs. Thrown when this method is called on an XRI, or on a directed identity request before the property is set. Attempts to perform relying party discovery of the return URL claimed by the Relying Party. The web request handler to use for the RP discovery request. The details of how successful the relying party discovery was. Return URL verification is only attempted if this method is called. See OpenID Authentication 2.0 spec section 9.2.1. Adds an extension to the response to send to the relying party. The extension to add to the response message. Removes any response extensions previously added using . This should be called before sending a negative response back to the relying party if extensions were already added, since negative responses cannot carry extensions. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets a value indicating whether the Provider should help the user select a Claimed Identifier to send back to the relying party. Gets a value indicating whether the requesting Relying Party is using a delegated URL. When delegated identifiers are used, the should not be changed at the Provider during authentication. Delegation is only detectable on requests originating from OpenID 2.0 relying parties. A relying party implementing only OpenID 1.x may use delegation and this property will return false anyway. Gets or sets the Local Identifier to this OpenID Provider of the user attempting to authenticate. Check to see if this value is valid. This may or may not be the same as the Claimed Identifier that the user agent originally supplied to the relying party. The Claimed Identifier endpoint may be delegating authentication to this provider using this provider's local id, which is what this property contains. Use this identifier when looking up this user in the provider's user account list. Gets or sets the identifier that the user agent is claiming at the relying party site. Check to see if this value is valid. This property can only be set if is false, to prevent breaking URL delegation. This will not be the same as this provider's local identifier for the user if the user has set up his/her own identity page that points to this provider for authentication. The provider may use this identifier for displaying to the user when asking for the user's permission to authenticate to the relying party. Thrown from the setter if is true. Gets or sets a value indicating whether the provider has determined that the belongs to the currently logged in user and wishes to share this information with the consumer. Gets the version of OpenID being used by the relying party that sent the request. Gets the URL the consumer site claims to use as its 'base' address. Gets a value indicating whether the consumer demands an immediate response. If false, the consumer is willing to wait for the identity provider to authenticate the user. Gets or sets the provider endpoint claimed in the positive assertion. The default value is the URL that the request came in on from the relying party. This value MUST match the value for the OP Endpoint in the discovery results for the claimed identifier being asserted in a positive response. Gets a value indicating whether the response is ready to be sent to the user agent. This property returns false if there are properties that must be set on this request instance before the response can be sent. Gets or sets the security settings that apply to this request. Defaults to the OpenIdProvider.SecuritySettings on the OpenIdProvider. Code contract for the type. Initializes a new instance of the class. Adds an extension to the response to send to the relying party. The extension to add to the response message. Removes any response extensions previously added using . This should be called before sending a negative response back to the relying party if extensions were already added, since negative responses cannot carry extensions. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Attempts to perform relying party discovery of the return URL claimed by the Relying Party. The web request handler. The details of how successful the relying party discovery was. Return URL verification is only attempted if this method is called. See OpenID Authentication 2.0 spec section 9.2.1. Gets the version of OpenID being used by the relying party that sent the request. Gets the URL the consumer site claims to use as its 'base' address. Gets a value indicating whether the consumer demands an immediate response. If false, the consumer is willing to wait for the identity provider to authenticate the user. Gets or sets the provider endpoint. The default value is the URL that the request came in on from the relying party. Gets or sets the security settings that apply to this request. Defaults to the OpenIdProvider.SecuritySettings on the OpenIdProvider. Gets a value indicating whether the response is ready to be sent to the user agent. This property returns false if there are properties that must be set on this request instance before the response can be sent. Applies a custom security policy to certain OpenID security settings and behaviors. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when a request is received by the Provider. The incoming request. true if this behavior owns this request and wants to stop other behaviors from handling it; false to allow other behaviors to process this request. Implementations may set a new value to but should not change the properties on the instance of itself as that instance may be shared across many requests. Called when the Provider is preparing to send a response to an authentication request. The request that is configured to generate the outgoing response. true if this behavior owns this request and wants to stop other behaviors from handling it; false to allow other behaviors to process this request. Code contract for the type. Initializes a new instance of the class. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when a request is received by the Provider. The incoming request. true if this behavior owns this request and wants to stop other behaviors from handling it; false to allow other behaviors to process this request. Implementations may set a new value to but should not change the properties on the instance of itself as that instance may be shared across many requests. Called when the Provider is preparing to send a response to an authentication request. The request that is configured to generate the outgoing response. true if this behavior owns this request and wants to stop other behaviors from handling it; false to allow other behaviors to process this request. Code contract for the interface. Prevents a default instance of the class from being created. Adds an extension to the response to send to the relying party. The extension to add to the response message. Removes any response extensions previously added using . This should be called before sending a negative response back to the relying party if extensions were already added, since negative responses cannot carry extensions. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets an extension sent from the relying party. The type of the extension. An instance of the extension initialized with values passed in with the request. Gets or sets the security settings that apply to this request. Defaults to the OpenIdProvider.SecuritySettings on the OpenIdProvider. Gets a value indicating whether the response is ready to be sent to the user agent. This property returns false if there are properties that must be set on this request instance before the response can be sent. Security settings that are applicable to providers. Security settings that may be applicable to both relying parties and providers. Gets the default minimum hash bit length. Gets the maximum hash bit length default for relying parties. Gets the maximum hash bit length default for providers. Initializes a new instance of the class. A value indicating whether this class is being instantiated for a Provider. Determines whether a named association fits the security requirements. The protocol carrying the association. The value of the openid.assoc_type parameter. true if the association is permitted given the security requirements; otherwise, false. Determines whether a given association fits the security requirements. The association to check. true if the association is permitted given the security requirements; otherwise, false. Gets or sets the minimum hash length (in bits) allowed to be used in an with the remote party. The default is 160. SHA-1 (160 bits) has been broken. The minimum secure hash length is now 256 bits. The default is still a 160 bit minimum to allow interop with common remote parties, such as Yahoo! that only supports 160 bits. For sites that require high security such as to store bank account information and health records, 256 is the recommended value. Gets or sets the maximum hash length (in bits) allowed to be used in an with the remote party. The default is 256 for relying parties and 512 for providers. The longer the bit length, the more secure the identities of your visitors are. Setting a value higher than 256 on a relying party site may reduce performance as many association requests will be denied, causing secondary requests or even authentication failures. Setting a value higher than 256 on a provider increases security where possible without these side-effects. Gets or sets a value indicating whether identifiers that are both OP Identifiers and Claimed Identifiers should ever be recognized as claimed identifiers. The default value is false, per the OpenID 2.0 spec. OpenID 2.0 sections 7.3.2.2 and 11.2 specify that OP Identifiers never be recognized as Claimed Identifiers. However, for some scenarios it may be desirable for an RP to override this behavior and allow this. The security ramifications of setting this property to true have not been fully explored and therefore this setting should only be changed with caution. The default value for the property. The default value for the property. The default value for the property. The default value for the property. The subset of association types and their customized lifetimes. Initializes a new instance of the class. Creates a deep clone of this instance. A new instance that is a deep clone of this instance. Gets a subset of the available association types and their customized maximum lifetimes. Gets or sets a value indicating whether Relying Party discovery will only succeed if done over a secure HTTPS channel. Default is false. Gets or sets the level of verification a Provider performs on an identifier before sending an unsolicited assertion for it. The default value is . Gets or sets a value indicating whether the Provider should ease the burden of storing associations by encoding them in signed, encrypted form into the association handles themselves, storing only a few rotating, private symmetric keys in the Provider's store instead. The default value for this property is true. Gets or sets a value indicating whether OpenID 1.x relying parties that may not be protecting their users from replay attacks are protected from replay attacks by this provider. The default value is true. Nonces for protection against replay attacks were not mandated by OpenID 1.x, which leaves users open to replay attacks. This feature works by preventing associations from being used with OpenID 1.x relying parties, thereby forcing them into "dumb" mode and verifying every claim with this provider. This gives the provider an opportunity to verify its own nonce to protect against replay attacks. Gets or sets a value indicating whether outgoing extensions are always signed. true if outgoing extensions should be signed; otherwise, false. The default is true. This property is internal because Providers should never turn it off, but it is needed for testing the RP's rejection of unsigned extensions. The behavior a Provider takes when verifying that it is authoritative for an identifier it is about to send an unsolicited assertion for. Always verify that the Provider is authoritative for an identifier before sending an unsolicited assertion for it and fail if it is not. Always check that the Provider is authoritative for an identifier before sending an unsolicited assertion for it, but only log failures, and proceed to send the unsolicited assertion. Never verify that the Provider is authoritative for an identifier before sending an unsolicited assertion for it. This setting is useful for web servers that refuse to allow a Provider to introspectively perform an HTTP GET on itself, when sending unsolicited assertions for identifiers that the OP controls. The result codes that may be returned from an attempt at relying party discovery. Relying Party discovery failed to find an XRDS document or the document was invalid. This can happen either when a relying party does not offer a service document at all, or when a man-in-the-middle attack is in progress that prevents the Provider from being able to discover that document. Relying Party discovery yielded a valid XRDS document, but no matching return_to URI was found. This is perhaps the most dangerous rating for a relying party, since it suggests that they are implementing OpenID 2.0 securely, but that a hijack operation may be in progress. Relying Party discovery succeeded, and a matching return_to URI was found. An enumeration of the possible results of an authentication attempt. The authentication was canceled by the user agent while at the provider. The authentication failed because an error was detected in the OpenId communication. The Provider responded to a request for immediate authentication approval with a message stating that additional user agent interaction is required before authentication can be completed. Casting the to a ISetupRequiredAuthenticationResponse in this case can help you retry the authentication using setup (non-immediate) mode. Authentication is completed successfully. The Provider sent a message that did not contain an identity assertion, but may carry OpenID extensions. Instances of this interface represent relying party authentication requests that may be queried/modified in specific ways before being routed to the OpenID Provider. Makes a dictionary of key/value pairs available when the authentication is completed. The arguments to add to the request's return_to URI. Values must not be null. Note that these values are NOT protected against eavesdropping in transit. No privacy-sensitive data should be stored using this method. The values stored here can be retrieved using , which will only return the value if it can be verified as untampered with in transit. Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against eavesdropping in transit. No privacy-sensitive data should be stored using this method. The value stored here can be retrieved using , which will only return the value if it can be verified as untampered with in transit. Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against eavesdropping in transit. No security-sensitive data should be stored using this method. The value stored here can be retrieved using . Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed without requiring a return_to signature to protect against tampering of the callback argument. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against eavesdropping or tampering in transit. No security-sensitive data should be stored using this method. The value stored here can be retrieved using . Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Adds an OpenID extension to the request directed at the OpenID provider. The initialized extension to add to the request. Redirects the user agent to the provider for authentication. Execution of the current page terminates after this call. This method requires an ASP.NET HttpContext. Gets or sets the mode the Provider should use during authentication. Gets the HTTP response the relying party should send to the user agent to redirect it to the OpenID Provider to start the OpenID authentication process. Gets the URL that the user agent will return to after authentication completes or fails at the Provider. Gets the URL that identifies this consumer web application that the Provider will display to the end user. Gets the Claimed Identifier that the User Supplied Identifier resolved to. Null if the user provided an OP Identifier (directed identity). Null is returned if the user is using the directed identity feature of OpenID 2.0 to make it nearly impossible for a relying party site to improperly store the reserved OpenID URL used for directed identity as a user's own Identifier. However, to test for the Directed Identity feature, please test the property rather than testing this property for a null value. Gets a value indicating whether the authenticating user has chosen to let the Provider determine and send the ClaimedIdentifier after authentication. Gets or sets a value indicating whether this request only carries extensions and is not a request to verify that the user controls some identifier. true if this request is merely a carrier of extensions and is not about an OpenID identifier; otherwise, false. Although OpenID is first and primarily an authentication protocol, its extensions can be interesting all by themselves. For instance, a relying party might want to know that its user is over 21 years old, or perhaps a member of some organization. OpenID extensions can provide this, without any need for asserting the identity of the user. Constructing an OpenID request for only extensions can be done by calling OpenIdRelyingParty.CreateRequest with any valid OpenID identifier (claimed identifier or OP identifier). But once this property is set to true, the claimed identifier value in the request is not included in the transmitted message. It is anticipated that an RP would only issue these types of requests to OPs that trusts to make assertions regarding the individual holding an account at that OP, so it is not likely that the RP would allow the user to type in an arbitrary claimed identifier without checking that it resolved to an OP endpoint the RP has on a trust whitelist. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. Gets the discovery result leading to the formulation of this request. The discovery result. An instance of this interface represents an identity assertion from an OpenID Provider. It may be in response to an authentication request previously put to it by a Relying Party site or it may be an unsolicited assertion. Relying party web sites should handle both solicited and unsolicited assertions. This interface does not offer a way to discern between solicited and unsolicited assertions as they should be treated equally. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode null is always returned since the callback arguments could not be signed to protect against tampering. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode an empty dictionary is always returned since the callback arguments could not be signed to protect against tampering. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location, if available. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Code contract for the type. Initializes a new instance of the class. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. This may return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. This MAY return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location, if available. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Applies a custom security policy to certain OpenID security settings and behaviors. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when an authentication request is about to be sent. The request. Implementations should be prepared to be called multiple times on the same outgoing message without malfunctioning. Called when an incoming positive assertion is received. The positive assertion. Contract class for the interface. Prevents a default instance of the class from being created. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when an authentication request is about to be sent. The request. Implementations should be prepared to be called multiple times on the same outgoing message without malfunctioning. Called when an incoming positive assertion is received. The positive assertion. A message a Relying Party sends to a Provider to confirm the validity of a positive assertion that was signed by a Provider-only secret. The significant payload of this message depends entirely upon the assertion message, and therefore is all in the property bag. A common base class for OpenID request messages and indirect responses (since they are ultimately requests). The openid.ns parameter in the message. "http://specs.openid.net/auth/2.0" This particular value MUST be present for the request to be a valid OpenID Authentication 2.0 request. Future versions of the specification may define different values in order to allow message recipients to properly interpret the request. Backing store for the property. Backing store for the property. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. The value for the openid.mode parameter. A value indicating whether the message will be transmitted directly or indirectly. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Sets a flag indicating that this message is received (as opposed to sent). Gets some string from a given version of the OpenID protocol. The protocol version to use for lookup. A function that can retrieve the desired protocol constant. The value of the constant. This method can be used by a constructor to throw an instead of a . Gets the value of the openid.mode parameter. Gets the preferred method of transport for the message. For direct messages this is the OpenID mandated POST. For indirect messages both GET and POST are allowed. Gets the recipient of the message. The OP endpoint, or the RP return_to. Gets the version of the protocol this message is prepared to implement. Version 2.0 Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the extra parameters included in the message. An empty dictionary. Gets a value indicating whether this message was deserialized as an incoming message. Gets the protocol used by this message. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. Initializes a new instance of the class based on the contents of some signed message whose signature must be verified. The message whose signature should be verified. The channel. This is used only within the constructor and is not stored in a field. Gets or sets a value indicating whether the signature being verified by this request is in fact valid. true if the signature is valid; otherwise, false. This property is automatically set as the message is received by the channel's signing binding element. Gets or sets the ReturnTo that existed in the original signed message. This exists strictly for convenience in recreating the message. The message sent from the Provider to the Relying Party to confirm/deny the validity of an assertion that was signed by a private Provider secret. A common base class for OpenID direct message responses. The openid.ns parameter in the message. "http://specs.openid.net/auth/2.0" OpenID 2.0 Section 5.1.2: This particular value MUST be present for the response to be a valid OpenID 2.0 response. Future versions of the specification may define different values in order to allow message recipients to properly interpret the request. Backing store for the properties. Backing store for the properties. The dictionary of parameters that are not part of the OpenID specification. Initializes a new instance of the class. The OpenID version of the response message. The originating request. May be null in case the request is unrecognizable and this is an error response. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Sets a flag indicating that this message is received (as opposed to sent). Gets the version of the protocol this message is prepared to implement. Version 2.0 Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the extra, non-OAuth parameters included in the message. Gets the originating request message that caused this response to be formed. This property may be null if the request message was undecipherable. Gets a value indicating whether this message was deserialized as an incoming message. Gets the protocol used by this message. Gets the originating request message that caused this response to be formed. Initializes a new instance of the class for use by the Relying Party. The OpenID version of the response message. The request that this message is responding to. Gets or sets a value indicating whether the signature of the verification request is valid. Gets or sets the handle the relying party should invalidate if is true. The "invalidate_handle" value sent in the verification request, if the OP confirms it is invalid. If present in a verification response with "is_valid" set to "true", the Relying Party SHOULD remove the corresponding association from its store and SHOULD NOT send further authentication requests with this handle. This two-step process for invalidating associations is necessary to prevent an attacker from invalidating an association at will by adding "invalidate_handle" parameters to an authentication response. For OpenID 1.1, we allow this to be present but empty to put up with poor implementations such as Blogger. An authentication request from a Relying Party to a Provider. This message type satisfies OpenID 2.0 section 9.1. An indirect request from a Relying Party to a Provider where the response is expected to be signed. Backing store for the property. Initializes a new instance of the class. The OpenID version to use. The Provider endpoint that receives this message. for asynchronous javascript clients; to allow the Provider to interact with the user in order to complete authentication. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Adds parameters to the return_to querystring. The keys=value pairs to add to the return_to query string. This method is useful if the Relying Party wants to recall some value when and if a positive assertion comes back from the Provider. Adds a parameter to the return_to querystring. The name of the parameter. The value of the argument. This method is useful if the Relying Party wants to recall some value when and if a positive assertion comes back from the Provider. Gets the value of the openid.mode parameter based on the protocol version and immediate flag. The OpenID version to use. for asynchronous javascript clients; to allow the Provider to interact with the user in order to complete authentication. checkid_immediate or checkid_setup Gets the list of extensions that are included with this message. Implementations of this interface should ensure that this property never returns null. Gets a value indicating whether the Provider is allowed to interact with the user as part of authentication. true if using OpenID immediate mode; otherwise, false. Gets or sets the handle of the association the RP would like the Provider to use for signing a positive assertion in the response message. A handle for an association between the Relying Party and the OP that SHOULD be used to sign the response. If no association handle is sent, the transaction will take place in Stateless Mode (Verifying Directly with the OpenID Provider). Gets or sets the URL the Provider should redirect the user agent to following the authentication attempt. URL to which the OP SHOULD return the User-Agent with the response indicating the status of the request. If this value is not sent in the request it signifies that the Relying Party does not wish for the end user to be returned. The return_to URL MAY be used as a mechanism for the Relying Party to attach context about the authentication request to the authentication response. This document does not define a mechanism by which the RP can ensure that query parameters are not modified by outside parties; such a mechanism can be defined by the RP itself. Gets or sets the Relying Party discovery URL the Provider may use to verify the source of the authentication request. URL pattern the OP SHOULD ask the end user to trust. See Section 9.2 (Realms). This value MUST be sent if openid.return_to is omitted. Default: The URL. Gets or sets a value indicating whether the return_to value should be signed. Initializes a new instance of the class. The OpenID version to use. The Provider endpoint that receives this message. for asynchronous javascript clients; to allow the Provider to interact with the user in order to complete authentication. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets or sets the Claimed Identifier. "openid.claimed_id" and "openid.identity" SHALL be either both present or both absent. If neither value is present, the assertion is not about an identifier, and will contain other information in its payload, using extensions (Extensions). It is RECOMMENDED that OPs accept XRI identifiers with or without the "xri://" prefix, as specified in the Normalization (Normalization) section. Gets or sets the OP Local Identifier. The OP-Local Identifier. If a different OP-Local Identifier is not specified, the claimed identifier MUST be used as the value for openid.identity. Note: If this is set to the special value "http://specs.openid.net/auth/2.0/identifier_select" then the OP SHOULD choose an Identifier that belongs to the end user. This parameter MAY be omitted if the request is not about an identifier (for instance if an extension is in use that makes the request meaningful without it; see openid.claimed_id above). The base class that all successful association response messages derive from. Association response messages are described in OpenID 2.0 section 8.2. This type covers section 8.2.1. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets or sets the association handle is used as a key to refer to this association in subsequent messages. A string 255 characters or less in length. It MUST consist only of ASCII characters in the range 33-126 inclusive (printable non-whitespace characters). Gets or sets the preferred association type. The association type defines the algorithm to be used to sign subsequent messages. Value: A valid association type from Section 8.3. Gets or sets the value of the "openid.session_type" parameter from the request. If the OP is unwilling or unable to support this association type, it MUST return an unsuccessful response (Unsuccessful Response Parameters). Value: A valid association session type from Section 8.4 (Association Session Types). Note: Unless using transport layer encryption, "no-encryption" MUST NOT be used. Gets or sets the lifetime, in seconds, of this association. The Relying Party MUST NOT use the association after this time has passed. An integer, represented in base 10 ASCII. Members found on error response messages sent from a Provider to a Relying Party in response to direct and indirect message requests that result in an error. Gets or sets a human-readable message indicating why the request failed. Gets or sets the contact address for the administrator of the server. The contact address may take any form, as it is intended to be displayed to a person. Gets or sets a reference token, such as a support ticket number or a URL to a news blog, etc. A common base class from which indirect response messages should derive. Backing store for the property. Initializes a new instance of the class. The request that caused this response message to be constructed. The value of the openid.mode parameter. Initializes a new instance of the class for unsolicited assertion scenarios. The OpenID version supported at the Relying Party. The URI at which the Relying Party receives OpenID indirect messages. The value to use for the openid.mode parameter. Gets the property of a message. The message to fetch the protocol version from. The value of the property. This method can be used by a constructor to throw an instead of a . Gets the property of a message. The message to fetch the ReturnTo from. The value of the property. This method can be used by a constructor to throw an instead of a . Gets the list of extensions that are included with this message. Implementations of this interface should ensure that this property never returns null. Gets the signed extensions on this message. Gets the unsigned extensions on this message. Gets the originating request message, if applicable. An indirect message from a Provider to a Relying Party where at least part of the payload is signed so the Relying Party can verify it has not been tampered with. The allowed date/time formats for the response_nonce parameter. This array of formats is not yet a complete list. Backing field for the property. The field initializer being DateTime.UtcNow allows for OpenID 1.x messages to pass through the StandardExpirationBindingElement. Backing store for the property. Initializes a new instance of the class. The authentication request that caused this assertion to be generated. Initializes a new instance of the class in order to perform signature verification at the Provider. The previously signed message. The channel. This is used only within the constructor and is not stored in a field. Initializes a new instance of the class for unsolicited assertions. The OpenID version to use. The return_to URL of the Relying Party. This value will commonly be from , but for unsolicited assertions may come from the Provider performing RP discovery to find the appropriate return_to URL to use. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the value of a named parameter in the return_to URL without signature protection. The full name of the parameter whose value is being sought. The value of the parameter if it is present and unaltered from when the Relying Party signed it; null otherwise. This method will always return null on the Provider-side, since Providers cannot verify the private signature made by the relying party. Gets the names of the callback parameters added to the original authentication request without signature protection. A sequence of the callback parameter names. Gets a dictionary of all the message part names and values that are included in the message signature. The channel. A dictionary of the signed message parts. Determines whether one querystring contains every key=value pair that another querystring contains. The querystring that should contain at least all the key=value pairs of the other. The querystring containing the set of key=value pairs to test for in the other. true if contains all the query parameters that does; false otherwise. Verifies that the openid.return_to field matches the URL of the actual HTTP request. From OpenId Authentication 2.0 section 11.1: To verify that the "openid.return_to" URL matches the URL that is processing this assertion: * The URL scheme, authority, and path MUST be the same between the two URLs. * Any query parameters that are present in the "openid.return_to" URL MUST also be present with the same values in the URL of the HTTP request the RP received. Gets the level of protection this message requires. for OpenID 2.0 messages. for OpenID 1.x messages. Although the required protection is reduced for OpenID 1.x, this library will provide Relying Party hosts with all protections by adding its own specially-crafted nonce to the authentication request messages except for stateless RPs in OpenID 1.x messages. Gets or sets the message signature. Base 64 encoded signature calculated as specified in Section 6 (Generating Signatures). Gets or sets the signed parameter order. Comma-separated list of signed fields. "op_endpoint,identity,claimed_id,return_to,assoc_handle,response_nonce" This entry consists of the fields without the "openid." prefix that the signature covers. This list MUST contain at least "op_endpoint", "return_to" "response_nonce" and "assoc_handle", and if present in the response, "claimed_id" and "identity". Additional keys MAY be signed as part of the message. See Generating Signatures. Gets or sets the association handle used to sign the message. The handle for the association that was used to sign this assertion. Gets or sets the nonce that will protect the message from replay attacks. Gets the context within which the nonce must be unique. Gets or sets the UTC date/time the message was originally sent onto the network. The property setter should ensure a UTC date/time, and throw an exception if this is not possible. Thrown when a DateTime that cannot be converted to UTC is set. Gets or sets the association handle that the Provider wants the Relying Party to not use any more. If the Relying Party sent an invalid association handle with the request, it SHOULD be included here. For OpenID 1.1, we allow this to be present but empty to put up with poor implementations such as Blogger. Gets or sets the Provider Endpoint URI. Gets or sets the return_to parameter as the relying party provided it in . Verbatim copy of the return_to URL parameter sent in the request, before the Provider modified it. Gets or sets a value indicating whether the URI's query string is unaltered between when the Relying Party sent the original request and when the response was received. This property is not persisted in the transmitted message, and has no effect on the Provider-side of the communication. Gets or sets the nonce that will protect the message from replay attacks. A string 255 characters or less in length, that MUST be unique to this particular successful authentication response. The nonce MUST start with the current time on the server, and MAY contain additional ASCII characters in the range 33-126 inclusive (printable non-whitespace characters), as necessary to make each response unique. The date and time MUST be formatted as specified in section 5.6 of [RFC3339] (Klyne, G. and C. Newman, “Date and Time on the Internet: Timestamps,” .), with the following restrictions: All times must be in the UTC timezone, indicated with a "Z". No fractional seconds are allowed 2005-05-15T17:11:51ZUNIQUE Gets or sets the nonce that will protect the message from replay attacks. A string 255 characters or less in length, that MUST be unique to this particular successful authentication response. The nonce MUST start with the current time on the server, and MAY contain additional ASCII characters in the range 33-126 inclusive (printable non-whitespace characters), as necessary to make each response unique. The date and time MUST be formatted as specified in section 5.6 of [RFC3339] (Klyne, G. and C. Newman, “Date and Time on the Internet: Timestamps,” .), with the following restrictions: All times must be in the UTC timezone, indicated with a "Z". No fractional seconds are allowed 2005-05-15T17:11:51ZUNIQUE Gets the querystring key=value pairs in the return_to URL. Code contract class for the IOpenIdMessageExtension interface. Prevents a default instance of the class from being created. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. Gets the additional TypeURIs that are supported by this extension, in preferred order. May be empty if none other than is supported, but should not be null. Useful for reading in messages with an older version of an extension. The value in the property is always checked before trying this list. If you do support multiple versions of an extension using this method, consider adding a CreateResponse method to your request extension class so that the response can have the context it needs to remain compatible given the version of the extension in the request message. The for an example. Gets or sets a value indicating whether this extension was signed by the sender. true if this instance is signed by the sender; otherwise, false. Gets the version of the protocol or extension this message is prepared to implement. Implementations of this interface should ensure that this property never returns null. Gets the extra, non-standard Protocol parameters included in the message. Implementations of this interface should ensure that this property never returns null. The message OpenID Providers send back to Relying Parties to refuse to assert the identity of a user. Initializes a new instance of the class. The request that the relying party sent. Initializes a new instance of the class. The request that the relying party sent. The channel to use to simulate construction of the user_setup_url, if applicable. May be null, but the user_setup_url will not be constructed. Initializes a new instance of the class. The version. The relying party return to. The value of the openid.mode parameter. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Constructs the value for the user_setup_url parameter to be sent back in negative assertions in response to OpenID 1.x RP's checkid_immediate requests. The immediate request. The channel to use to simulate construction of the message. The value to use for the user_setup_url parameter. Gets the value for the openid.mode that is appropriate for this response. The request that we're responding to. The value of the openid.mode parameter to use. Gets or sets the URL the relying party can use to upgrade their authentication request from an immediate to a setup message. URL to redirect User-Agent to so the End User can do whatever's necessary to fulfill the assertion. This part is only included in OpenID 1.x responses. Gets a value indicating whether this is in response to an authentication request made in immediate mode. true if the request was in immediate mode; otherwise, false. An identity assertion from a Provider to a Relying Party, stating that the user operating the user agent is in fact some specific user known to the Provider. Initializes a new instance of the class. The authentication request that caused this assertion to be generated. Initializes a new instance of the class for unsolicited assertions. The OpenID version to use. The return_to URL of the Relying Party. This value will commonly be from , but for unsolicited assertions may come from the Provider performing RP discovery to find the appropriate return_to URL to use. Initializes a new instance of the class. The relying party return_to endpoint that will receive this positive assertion. Gets or sets the Claimed Identifier. "openid.claimed_id" and "openid.identity" SHALL be either both present or both absent. If neither value is present, the assertion is not about an identifier, and will contain other information in its payload, using extensions (Extensions). Gets or sets the OP Local Identifier. The OP-Local Identifier. OpenID Providers MAY assist the end user in selecting the Claimed and OP-Local Identifiers about which the assertion is made. The openid.identity field MAY be omitted if an extension is in use that makes the response meaningful without it (see openid.claimed_id above). Wraps an existing Identifier and prevents it from performing discovery. The wrapped identifier. Initializes a new instance of the class. The ordinary Identifier whose discovery is being masked. Whether this Identifier should claim to be SSL-secure, although no discovery will never generate service endpoints anyway. Returns a that represents the current . A that represents the current . Tests equality between two s. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Gets the hash code for an for storage in a hashtable. A hash code for the current . Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. A set of utilities especially useful to OpenID. The prefix to designate this library's proprietary parameters added to the protocol. A static variable that carries the results of a check for the presence of assemblies that are required for the Diffie-Hellman algorithm. Creates a random association handle. The association handle. Gets the OpenID protocol instance for the version in a message. The message. The OpenID protocol instance. Changes the position of some element in a list. The type of elements stored in the list. The list to be modified. The new position for the given element. The element to move within the list. Thrown if the element does not already exist in the list. Corrects any URI decoding the Provider may have inappropriately done to our return_to URL, resulting in an otherwise corrupted base64 encoded value. The base64 encoded value. May be null. The value; corrected if corruption had occurred. AOL may have incorrectly URI-decoded the token for us in the return_to, resulting in a token URI-decoded twice by the time we see it, and no longer being a valid base64 string. It turns out that the only symbols from base64 that is also encoded in URI encoding rules are the + and / characters. AOL decodes the %2b sequence to the + character and the %2f sequence to the / character (it shouldn't decode at all). When we do our own URI decoding, the + character becomes a space (corrupting base64) but the / character remains a /, so no further corruption happens to this character. So to correct this we just need to change any spaces we find in the token back to + characters. Rounds the given downward to the whole second. The DateTime object to adjust. The new value. Gets the fully qualified Realm URL, given a Realm that may be relative to a particular page. The hosting page that has the realm value to resolve. The realm, which may begin with "*." or "~/". The request context. The fully-qualified realm. Gets the extension factories from the extension aggregator on an OpenID channel. The channel. The list of factories that will be used to generate extension instances. This is an extension method on rather than an instance method on because the OpenIdRelyingParty and OpenIdProvider classes don't strong-type to to allow flexibility in the specific type of channel the user (or tests) can plug in. Loads the Diffie-Hellman assemblies. Thrown if the DH assemblies are missing. Gets a value indicating whether Diffie Hellman is available in this installation. true if Diffie-Hellman functionality is present; otherwise, false. Utility methods for working with XRDS documents. Finds the Relying Party return_to receiving endpoints. The XrdsDocument instance to use in this process. A sequence of Relying Party descriptors for the return_to endpoints. This is useful for Providers to send unsolicited assertions to Relying Parties, or for Provider's to perform RP discovery/verification as part of authentication. Finds the icons the relying party wants an OP to display as part of authentication, per the UI extension spec. The XrdsDocument to search. A sequence of the icon URLs in preferred order. Enumerates the XRDS service elements that describe OpenID Relying Party return_to URLs that can receive authentication assertions. The XrdsDocument instance to use in this process. A sequence of service elements. Describes some OpenID Provider endpoint and its capabilities. This is an immutable type. Initializes a new instance of the class. The OpenID Provider endpoint URL. The OpenID version supported by this particular endpoint. Initializes a new instance of the class. The URI the provider listens on for OpenID requests. The set of services offered by this endpoint. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Gets the URL that the OpenID Provider listens for incoming OpenID messages on. Gets the OpenID protocol version this endpoint supports. If an endpoint supports multiple versions, each version must be represented by its own object. Gets the collection of service type URIs found in the XRDS document describing this Provider. A trust root to validate requests and match return URLs against. This fills the OpenID Authentication 2.0 specification for realms. See http://openid.net/specs/openid-authentication-2_0.html#realms A regex used to detect a wildcard that is being used in the realm. A (more or less) comprehensive list of top-level (i.e. ".com") domains, for use by in order to disallow overly-broad realms that allow all web sites ending with '.com', for example. The Uri of the realm, with the wildcard (if any) removed. Initializes a new instance of the class. The realm URL to use in the new instance. Initializes a new instance of the class. The realm URL of the Relying Party. Initializes a new instance of the class. The realm URI builder. This is useful because UriBuilder can construct a host with a wildcard in the Host property, but once there it can't be converted to a Uri. Implicitly converts the string-form of a URI to a object. The URI that the new Realm instance will represent. The result of the conversion. Implicitly converts a to a object. The URI to convert to a realm. The result of the conversion. Implicitly converts a object to its form. The realm to convert to a string value. The result of the conversion. Checks whether one is equal to another. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Returns the hash code used for storing this object in a hash table. A hash code for the current . Returns the string form of this . A that represents the current . Validates a URL against this trust root. A string specifying URL to check. Whether the given URL is within this trust root. Validates a URL against this trust root. The URL to check. Whether the given URL is within this trust root. Searches for an XRDS document at the realm URL, and if found, searches for a description of a relying party endpoints (OpenId login pages). The mechanism to use for sending HTTP requests. Whether redirects may be followed when discovering the Realm. This may be true when creating an unsolicited assertion, but must be false when performing return URL verification per 2.0 spec section 9.2.1. The details of the endpoints if found; or null if no service document was discovered. Searches for an XRDS document at the realm URL. The mechanism to use for sending HTTP requests. Whether redirects may be followed when discovering the Realm. This may be true when creating an unsolicited assertion, but must be false when performing return URL verification per 2.0 spec section 9.2.1. The XRDS document if found; or null if no service document was discovered. Calls if the argument is non-null. Otherwise throws . The realm URI builder. The result of UriBuilder.ToString() This simple method is worthwhile because it checks for null before dereferencing the UriBuilder. Since this is called from within a constructor's base(...) call, this avoids a when we should be throwing an . Gets the suggested realm to use for the calling web application. A realm that matches this applications root URL. For most circumstances the Realm generated by this property is sufficient. However a wildcard Realm, such as "http://*.microsoft.com/" may at times be more desirable than "http://www.microsoft.com/" in order to allow identifier correlation across related web sites for directed identity Providers. Requires an HttpContext.Current context. Gets a value indicating whether a '*.' prefix to the hostname is used in the realm to allow subdomains or hosts to be added to the URL. Gets the host component of this instance. Gets the scheme name for this URI. Gets the port number of this URI. Gets the absolute path of the URI. Gets the System.Uri.AbsolutePath and System.Uri.Query properties separated by a question mark (?). Gets the original string. The original string. Gets the realm URL. If the realm includes a wildcard, it is not included here. Gets the Realm discovery URL, where the wildcard (if present) is replaced with "www.". See OpenID 2.0 spec section 9.2.1 for the explanation on the addition of the "www" prefix. Gets a value indicating whether this realm represents a reasonable (sane) set of URLs. 'http://*.com/', for example is not a reasonable pattern, as it cannot meaningfully specify the site claiming it. This function attempts to find many related examples, but it can only work via heuristics. Negative responses from this method should be treated as advisory, used only to alert the user to examine the trust root carefully. Provides conversions to and from strings for messages that include members of this type. Encodes the specified value. The value. Guaranteed to never be null. The in string form, ready for message transport. Decodes the specified value. The string value carried by the transport. Guaranteed to never be null, although it may be empty. The deserialized form of the given string. Thrown when the string value given cannot be decoded into the required object type. Encodes the specified value as the original value that was formerly decoded. The value. Guaranteed to never be null. The in string form, ready for message transport. A description of some OpenID Relying Party endpoint. This is an immutable type. Initializes a new instance of the class. The return to. The Type URIs of supported services advertised on a relying party's XRDS document. Derives the highest OpenID protocol that this library and the OpenID Provider have in common. The supported service type URIs. The best OpenID protocol version to use when communicating with this Provider. Gets the URL to the login page on the discovered relying party web site. Gets the OpenId protocol that the discovered relying party supports. Diffie-Hellman encryption methods used by both the relying party and provider. An array of known Diffie Hellman sessions, sorted by decreasing hash size. Finds the hashing algorithm to use given an openid.session_type value. The protocol version of the message that named the session_type to be used. The value of the openid.session_type parameter. The hashing algorithm to use. Thrown if no match could be found for the given . Looks up the value to be used for the openid.session_type parameter. The protocol version that is to be used. The hash size (in bits) that the DH session must have. The value to be used for the openid.session_type parameter, or null if no match was found. Encrypts/decrypts a shared secret. The hashing algorithm that is agreed by both parties to use as part of the secret exchange. If the secret is being encrypted, this is the new Diffie Hellman object to use. If the secret is being decrypted, this must be the same Diffie Hellman object used to send the original request message. The public key of the remote party. The secret to encode, or the encoded secret. Whichever one is given will generate the opposite in the return value. The encrypted version of the secret if the secret itself was given in . The secret itself if the encrypted version of the secret was given in . Ensures that the big integer represented by a given series of bytes is a positive integer. The bytes that make up the big integer. A byte array (possibly new if a change was required) whose integer is guaranteed to be positive. This is to be consistent with OpenID spec section 4.2. Returns the value used to initialize the static field storing DH session types. A non-null, non-empty array. > This is a method rather than being inlined to the field initializer to try to avoid the CLR bug that crops up sometimes if we initialize arrays using object initializer syntax. Provides access to a Diffie-Hellman session algorithm and its name. Initializes a new instance of the class. The hashing algorithm used in this particular Diffie-Hellman session type. A function that will return the value of the openid.session_type parameter for a given version of OpenID. Gets the function that will return the value of the openid.session_type parameter for a given version of OpenID. Gets the hashing algorithm used in this particular Diffie-Hellman session type An association that uses the HMAC-SHA family of algorithms for message signing. A list of HMAC-SHA algorithms in order of decreasing bit lengths. The specific variety of HMAC-SHA this association is based on (whether it be HMAC-SHA1, HMAC-SHA256, etc.) Initializes a new instance of the class. The specific variety of HMAC-SHA this association is based on (whether it be HMAC-SHA1, HMAC-SHA256, etc.) The association handle. The association secret. The time duration the association will be good for. Creates an HMAC-SHA association. The OpenID protocol version that the request for an association came in on. The value of the openid.assoc_type parameter. The association handle. The association secret. How long the association will be good for. The newly created association. Creates an association with the specified handle, secret, and lifetime. The handle. The secret. Total lifetime. The newly created association. Returns the length of the shared secret (in bytes). The protocol version being used that will be used to lookup the text in The value of the protocol argument specifying the type of association. For example: "HMAC-SHA1". The length (in bytes) of the association secret. Thrown if no association can be found by the given name. Looks for the first association type in a preferred-order list that is likely to be supported given a specific OpenID version and the security settings, and perhaps a matching Diffie-Hellman session type. The OpenID version that dictates which associations are available. A value indicating whether to consider higher strength security to be better. Use true for initial association requests from the Relying Party; use false from Providers when the Relying Party asks for an unrecognized association in order to pick a suggested alternative that is likely to be supported on both sides. The set of requirements the selected association type must comply to. Use true for HTTP associations, false for HTTPS associations. The resulting association type's well known protocol name. (i.e. HMAC-SHA256) The resulting session type's well known protocol name, if a matching one is available. (i.e. DH-SHA256) True if a qualifying association could be found; false otherwise. Determines whether a named Diffie-Hellman session type and association type can be used together. The protocol carrying the names of the session and association types. The value of the openid.assoc_type parameter. The value of the openid.session_type parameter. true if the named association and session types are compatible; otherwise, false. Gets the string to pass as the assoc_type value in the OpenID protocol. The protocol version of the message that the assoc_type value will be included in. The value that should be used for the openid.assoc_type parameter. Returns the specific hash algorithm used for message signing. The hash algorithm used for message signing. Returns the value used to initialize the static field storing association types. A non-null, non-empty array. > This is a method rather than being inlined to the field initializer to try to avoid the CLR bug that crops up sometimes if we initialize arrays using object initializer syntax. Gets the length (in bits) of the hash this association creates when signing. Provides information about some HMAC-SHA hashing algorithm that OpenID supports. Creates the using a given shared secret for the mac. The HMAC secret. The algorithm. Gets or sets the function that takes a particular OpenID version and returns the value of the openid.assoc_type parameter in that protocol. Gets or sets the name of the HMAC-SHA algorithm. (e.g. "HMAC-SHA256") Gets or sets the base hash algorithm. Gets the size of the hash (in bytes). Represents an association request that is sent using HTTPS and otherwise communicates the shared secret in plain text. An OpenID direct request from Relying Party to Provider to initiate an association. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. Gets or sets the preferred association type. The association type defines the algorithm to be used to sign subsequent messages. Value: A valid association type from Section 8.3. Gets or sets the preferred association session type. This defines the method used to encrypt the association's MAC key in transit. Value: A valid association session type from Section 8.4 (Association Session Types). Note: Unless using transport layer encryption, "no-encryption" MUST NOT be used. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Some messages have required fields, or combinations of fields that must relate to each other in specialized ways. After deserializing a message, this method checks the state of the message to see if it conforms to the protocol. Note that this property should not check signatures or perform any state checks outside this scope of this particular message. Thrown if the message is invalid. An OpenID direct request from Relying Party to Provider to initiate an association that uses Diffie-Hellman encryption. The (only) value we use for the X variable in the Diffie-Hellman algorithm. The default gen value for the Diffie-Hellman algorithm. The default modulus value for the Diffie-Hellman algorithm. Initializes a new instance of the class. The OpenID version this message must comply with. The OpenID Provider endpoint. Called by the Relying Party to initialize the Diffie-Hellman algorithm and consumer public key properties. Gets or sets the openid.dh_modulus value. May be null if the default value given in the OpenID spec is to be used. Gets or sets the openid.dh_gen value. May be null if the default value given in the OpenID spec is to be used. Gets or sets the openid.dh_consumer_public value. This property is initialized with a call to . Gets the Diffie-Hellman algorithm. This property is initialized with a call to . The successful Diffie-Hellman association response message. Association response messages are described in OpenID 2.0 section 8.2. This type covers section 8.2.3. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Gets or sets the Provider's Diffie-Hellman public key. btwoc(g ^ xb mod p) Gets or sets the MAC key (shared secret), encrypted with the secret Diffie-Hellman value. H(btwoc(g ^ (xa * xb) mod p)) XOR MAC key. H is either "SHA1" or "SHA256" depending on the session type. The successful unencrypted association response message. Association response messages are described in OpenID 2.0 section 8.2. This type covers section 8.2.2. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Gets or sets the MAC key (shared secret) for this association, Base 64 (Josefsson, S., “The Base16, Base32, and Base64 Data Encodings,” .) [RFC3548] encoded. The Provider's response to a Relying Party that requested an association that the Provider does not support. This message type described in OpenID 2.0 section 8.2.4. A message sent from a Provider to a Relying Party in response to a direct message request that resulted in an error. This message must be sent with an HTTP status code of 400. This class satisfies OpenID 2.0 section 5.1.2.2. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Gets the HTTP status code that the direct respones should be sent with. Gets the HTTP headers to add to the response. May be an empty collection, but must not be null. Gets or sets a human-readable message indicating why the request failed. Gets or sets the contact address for the administrator of the server. The contact address may take any form, as it is intended to be displayed to a person. Gets or sets a reference token, such as a support ticket number or a URL to a news blog, etc. A hard-coded string indicating an error occurred. "unsupported-type" Initializes a new instance of the class. The OpenID version of the response message. The originating request. Gets or sets an association type supported by the OP from Section 8.3 (Association Types). Gets or sets a valid association session type from Section 8.4 (Association Session Types) that the OP supports. A message sent from a Provider to a Relying Party in response to an indirect message request that resulted in an error. This class satisfies OpenID 2.0 section 5.2.3. Initializes a new instance of the class. The request that resulted in this error on the Provider. Initializes a new instance of the class. The OpenID version this message should comply with. The recipient of this message. Gets or sets a human-readable message indicating why the request failed. Gets or sets the contact address for the administrator of the server. The contact address may take any form, as it is intended to be displayed to a person. Gets or sets a reference token, such as a support ticket number or a URL to a news blog, etc. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to An absolute URI is required for this value.. Looks up a localized string similar to This is already a PPID Identifier.. Looks up a localized string similar to The requested association type '{0}' with session type '{1}' is unrecognized or not supported by this Provider due to security requirements.. Looks up a localized string similar to The length of the shared secret ({0}) does not match the length required by the association type ('{1}').. Looks up a localized string similar to The length of the encrypted shared secret ({0}) does not match the length of the hashing algorithm ({1}).. Looks up a localized string similar to No association store has been given but is required for the current configuration.. Looks up a localized string similar to If an association store is given, a nonce store must also be provided.. Looks up a localized string similar to An attribute with type URI '{0}' has already been added.. Looks up a localized string similar to Only {0} values for attribute '{1}' were requested, but {2} were supplied.. Looks up a localized string similar to The private data supplied does not meet the requirements of any known Association type. Its length may be too short, or it may have been corrupted.. Looks up a localized string similar to The {0} extension failed to deserialize and will be skipped. {1}. Looks up a localized string similar to Callback arguments are only supported when a {0} is provided to the {1}.. Looks up a localized string similar to A Simple Registration request can only generate a response on the receiving end.. Looks up a localized string similar to The openid.claimed_id and openid.identity parameters must both be present or both be absent.. Looks up a localized string similar to The ClaimedIdentifier property cannot be set when IsDelegatedIdentifier is true to avoid breaking OpenID URL delegation.. Looks up a localized string similar to This OpenID exploits features that this relying party cannot reliably verify. Please try logging in with a human-readable OpenID or from a different OpenID Provider.. Looks up a localized string similar to The ClaimedIdentifier property must be set first.. Looks up a localized string similar to An extension with this property name ('{0}') has already been registered.. Looks up a localized string similar to The extension '{0}' has already been registered.. Looks up a localized string similar to An authentication request has already been created using CreateRequest().. Looks up a localized string similar to Only OpenIDs issued directly by their OpenID Provider are allowed here.. Looks up a localized string similar to The associate request instance must be a Diffie-Hellman instance.. Looks up a localized string similar to The following properties must be set before the Diffie-Hellman algorithm can generate a public key: {0}. Looks up a localized string similar to URI is not SSL yet requireSslDiscovery is set to true.. Looks up a localized string similar to An extension sharing namespace '{0}' has already been added. Only one extension per namespace is allowed in a given request.. Looks up a localized string similar to Cannot lookup extension support on a rehydrated ServiceEndpoint.. Looks up a localized string similar to Fragment segments do not apply to XRI identifiers.. Looks up a localized string similar to The HTML head tag must include runat="server".. Looks up a localized string similar to ClaimedIdentifier and LocalIdentifier must be the same when IsIdentifierSelect is true.. Looks up a localized string similar to The openid.identity and openid.claimed_id parameters must either be both present or both absent from the message.. Looks up a localized string similar to The Provider requested association type '{0}' and session type '{1}', which are not compatible with each other.. Looks up a localized string similar to {0} (Contact: {1}, Reference: {2}). Looks up a localized string similar to Cannot encode '{0}' because it contains an illegal character for Key-Value Form encoding. (line {1}: '{2}'). Looks up a localized string similar to Invalid XmlDSig signature on XRDS document.. Looks up a localized string similar to Cannot decode Key-Value Form because a line was found without a '{0}' character. (line {1}: '{2}'). Looks up a localized string similar to The scheme must be http or https but was '{0}'.. Looks up a localized string similar to The value '{0}' is not a valid URI.. Looks up a localized string similar to Not a recognized XRI format.. Looks up a localized string similar to The OpenID Provider issued an assertion for an Identifier whose discovery information did not match. Assertion endpoint info: {0} Discovered endpoint info: {1}. Looks up a localized string similar to The list of keys do not match the provided dictionary.. Looks up a localized string similar to The '{0}' and '{1}' parameters must both be or not be '{2}'.. Looks up a localized string similar to The maximum time allowed to complete authentication has been exceeded. Please try again.. Looks up a localized string similar to X.509 signing certificate issued to {0}, but a certificate for {1} was expected.. Looks up a localized string similar to Missing {0} element.. Looks up a localized string similar to No recognized association type matches the requested length of {0}.. Looks up a localized string similar to No recognized association type matches the requested name of '{0}'.. Looks up a localized string similar to Unless using transport layer encryption, "no-encryption" MUST NOT be used.. Looks up a localized string similar to No identifier has been set.. Looks up a localized string similar to No XRDS document containing OpenID relying party endpoint information could be found at {0}.. Looks up a localized string similar to Diffie-Hellman session type '{0}' not found for OpenID {1}.. Looks up a localized string similar to This operation is not supported by serialized authentication responses. Try this operation from the LoggedIn event handler.. Looks up a localized string similar to No OpenID endpoint found.. Looks up a localized string similar to No OpenID url is provided.. Looks up a localized string similar to This operation is only allowed when IAuthenticationResponse.State == AuthenticationStatus.SetupRequired.. Looks up a localized string similar to OpenID popup window or iframe did not recognize an OpenID response in the request.. Looks up a localized string similar to An positive OpenID assertion was received from OP endpoint {0} and was rejected based on this site's security settings.. Looks up a localized string similar to Unable to find the signing secret by the handle '{0}'.. Looks up a localized string similar to The {0} property must be set first.. Looks up a localized string similar to This property value is not supported by this control.. Looks up a localized string similar to Unable to determine the version of the OpenID protocol implemented by the Provider at endpoint '{0}'.. Looks up a localized string similar to An HTTP request to the realm URL ({0}) resulted in a redirect, which is not allowed during relying party discovery.. Looks up a localized string similar to Sorry. This site only accepts OpenIDs that are HTTPS-secured, but {0} is not a secure Identifier.. Looks up a localized string similar to The response is not ready. Use IsResponseReady to check whether a response is ready first.. Looks up a localized string similar to return_to '{0}' not under realm '{1}'.. Looks up a localized string similar to The {0} parameter ({1}) does not match the actual URL ({2}) the request was made with.. Looks up a localized string similar to The ReturnTo property must not be null to support this operation.. Looks up a localized string similar to The openid.return_to parameter is required in the request message in order to construct a response, but that parameter was missing.. Looks up a localized string similar to The following parameter(s) are not included in the signature but must be: {0}. Looks up a localized string similar to Invalid birthdate value. Must be in the form yyyy-MM-dd.. Looks up a localized string similar to The type must implement {0}.. Looks up a localized string similar to The property {0} had unexpected value {1}.. Looks up a localized string similar to Unexpected HTTP status code {0} {1} received in direct response.. Looks up a localized string similar to An unsolicited assertion cannot be sent for the claimed identifier {0} because this is not an authorized Provider for that identifier.. Looks up a localized string similar to Rejecting unsolicited assertions requires a nonce store and an association store.. Looks up a localized string similar to Unsolicited assertions are not allowed at this relying party.. Looks up a localized string similar to Unsolicited assertions are not allowed from 1.0 OpenID Providers.. Looks up a localized string similar to Providing a DateTime whose Kind is Unspecified is not allowed.. Looks up a localized string similar to Unrecognized or missing canonicalization method.. Looks up a localized string similar to This feature is unavailable due to an unrecognized channel configuration.. Looks up a localized string similar to Unrecognized or missing signature method.. Looks up a localized string similar to The openid.user_setup_url parameter is required when sending negative assertion messages in response to immediate mode requests.. Looks up a localized string similar to The X.509 certificate used to sign this document is not trusted.. Looks up a localized string similar to XRI support has been disabled at this site.. Looks up a localized string similar to XRI resolution failed.. An enumeration of the OpenID protocol versions supported by this library. OpenID Authentication 1.0 OpenID Authentication 1.1 OpenID Authentication 2.0 Tracks the several versions of OpenID this library supports and the unique constants to each version used in the protocol. The value of the openid.ns parameter in the OpenID 2.0 specification. The parameter of the callback parameter we tack onto the return_to URL to store the replay-detection nonce. Scans a list for matches with some element of the OpenID protocol, searching from newest to oldest protocol for the first and best match. The type of element retrieved from the instance. Takes a instance and returns an element of it. The list to scan for matches. The protocol with the element that matches some item in the list. A list of all supported OpenID versions, in order starting from newest version. A list of all supported OpenID versions, in order starting from newest version. V1.1 and V1.0 are considered the same and only V1.1 is in the list. The default (or most recent) supported version of the OpenID protocol. Attempts to detect the right OpenID protocol version based on the contents of an incoming OpenID indirect message or direct request. Attempts to detect the right OpenID protocol version based on the contents of an incoming OpenID direct response message. Attemps to detect the highest OpenID protocol version supported given a set of XRDS Service Type URIs included for some service. The OpenID version that this instance describes. The namespace of OpenId 1.x elements in XRDS documents. The value of the openid.ns parameter that appears on the query string whenever data is passed between relying party and provider for OpenID 2.0 and later. The XRD/Service/Type value discovered in an XRDS document when "discovering" on a Claimed Identifier (http://andrewarnott.yahoo.com) The XRD/Service/Type value discovered in an XRDS document when "discovering" on an OP Identifier rather than a Claimed Identifier. (http://yahoo.com) The XRD/Service/Type value discovered in an XRDS document when "discovering" on a Realm URL and looking for the endpoint URL that can receive authentication assertions. Used as the Claimed Identifier and the OP Local Identifier when the User Supplied Identifier is an OP Identifier. The value of the 'rel' attribute in an HTML document's LINK tag when the same LINK tag's HREF attribute value contains the URL to an OP Endpoint URL. The value of the 'rel' attribute in an HTML document's LINK tag when the same LINK tag's HREF attribute value contains the URL to use as the OP Local Identifier. Parts of the protocol that define parameter names that appear in the query string. Each parameter name is prefixed with 'openid.'. Parts of the protocol that define parameter names that appear in the query string. Each parameter name is NOT prefixed with 'openid.'. The various 'constants' that appear as parameter arguments (values). The maximum time a user can be allowed to take to complete authentication. This is used to calculate the length of time that nonces are stored. This is internal until we can decide whether to leave this static, or make it an instance member, or put it inside the IConsumerApplicationStore interface. The maximum permissible difference in clocks between relying party and provider web servers, discounting time zone differences. This is used when storing/validating nonces from the provider. If it is conceivable that a server's clock could be up to five minutes off from true UTC time, then the maximum time skew should be set to ten minutes to allow one server to be five minutes ahead and the remote server to be five minutes behind and still be able to communicate. Checks whether a given Protocol version practically equals this one for purposes of verifying a match for assertion verification. The other version to check against this one. true if this and the given Protocol versions are essentially the same. OpenID v1.0 never had a spec, and 1.0 and 1.1 are indistinguishable because of that. Therefore for assertion verification, 1.0 and 1.1 are considered equivalent. Returns the enum value for the instance. The value "openid." A preference order list of all supported session types. A preference order list of signature algorithms we support. A hybrid of the store interfaces that an OpenID Provider must implement, and an OpenID Relying Party may implement to operate in stateful (smart) mode. Security settings that are applicable to relying parties. The default value for the property. Initializes a new instance of the class. Filters out any disallowed endpoints. The endpoints discovered on an Identifier. A sequence of endpoints that satisfy all security requirements. Gets or sets a value indicating whether the entire pipeline from Identifier discovery to Provider redirect is guaranteed to be encrypted using HTTPS for authentication to succeed. Setting this property to true is appropriate for RPs with highly sensitive personal information behind the authentication (money management, health records, etc.) When set to true, some behavioral changes and additional restrictions are placed: User-supplied identifiers lacking a scheme are prepended with HTTPS:// rather than the standard HTTP:// automatically. User-supplied identifiers are not allowed to use HTTP for the scheme. All redirects during discovery on the user-supplied identifier must be HTTPS. Any XRDS file found by discovery on the User-supplied identifier must be protected using HTTPS. Only Provider endpoints found at HTTPS URLs will be considered. If the discovered identifier is an OP Identifier (directed identity), the Claimed Identifier eventually asserted by the Provider must be an HTTPS identifier. In the case of an unsolicited assertion, the asserted Identifier, discovery on it and the asserting provider endpoint must all be secured by HTTPS. Although the first redirect from this relying party to the Provider is required to use HTTPS, any additional redirects within the Provider cannot be protected and MAY revert the user's connection to HTTP, based on individual Provider implementation. There is nothing that the RP can do to detect or prevent this. A is thrown during discovery or authentication when a secure pipeline cannot be established. Gets or sets a value indicating whether only OP Identifiers will be discoverable when creating authentication requests. Gets or sets the oldest version of OpenID the remote party is allowed to implement. Defaults to Gets or sets the maximum allowable age of the secret a Relying Party uses to its return_to URLs and nonces with 1.0 Providers. The default value is 7 days. Gets or sets a value indicating whether all unsolicited assertions should be ignored. The default value is false. Gets or sets a value indicating whether delegating identifiers are refused for authentication. The default value is false. When set to true, login attempts that start at the RP or arrive via unsolicited assertions will be rejected if discovery on the identifier shows that OpenID delegation is used for the identifier. This is useful for an RP that should only accept identifiers directly issued by the Provider that is sending the assertion. Gets or sets a value indicating whether unsigned extensions in authentication responses should be ignored. The default value is false. When set to true, the methods will not return any extension that was not signed by the Provider. Gets or sets a value indicating whether authentication requests will only be sent to Providers with whom we can create a shared association. true to immediately fail authentication if an association with the Provider cannot be established; otherwise, false. The default value is false. Gets or sets a value indicating whether certain Claimed Identifiers that exploit features that .NET does not have the ability to send exact HTTP requests for will still be allowed by using an approximate HTTP request. The default value is true. Gets the set of trusted OpenID Provider Endpoint URIs. Gets or sets a value indicating whether any login attempt coming from an OpenID Provider Endpoint that is not on this whitelist of trusted OP Endpoints will be rejected. If the trusted providers list is empty and this value is true, all assertions are rejected. Default is false. Gets or sets a value indicating whether special measures are taken to protect users from replay attacks when those users' identities are hosted by OpenID 1.x Providers. The default value is true. Nonces for protection against replay attacks were not mandated by OpenID 1.x, which leaves users open to replay attacks. This feature works by adding a signed nonce to the authentication request. This might increase the request size beyond what some OpenID 1.1 Providers (such as Blogger) are capable of handling. The discovery service for URI identifiers. Initializes a new instance of the class. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. Searches HTML for the HEAD META tags that describe OpenID provider services. The final URL that provided this HTML document. This may not be the same as (this) userSuppliedIdentifier if the userSuppliedIdentifier pointed to a 301 Redirect. The user supplied identifier. The HTML that was downloaded and should be searched. A sequence of any discovered ServiceEndpoints. The discovery service for XRI identifiers that uses an XRI proxy resolver for discovery. The magic URL that will provide us an XRDS document for a given XRI identifier. We use application/xrd+xml instead of application/xrds+xml because it gets xri.net to automatically give us exactly the right XRD element for community i-names automatically, saving us having to choose which one to use out of the result. The ssl=true parameter tells the proxy resolver to accept only SSL connections when resolving community i-names. Initializes a new instance of the class. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. Downloads the XRDS document for this XRI. The identifier. The request handler. The XRDS document. Gets the URL from which this XRI's XRDS document may be downloaded. The identifier. The URI to HTTP GET from to get the services. A URI style of OpenID Identifier. The allowed protocol schemes in a URI Identifier. The special scheme to use for HTTP URLs that should not have their paths compressed. The special scheme to use for HTTPS URLs that should not have their paths compressed. The special scheme to use for HTTP URLs that should not have their paths compressed. The special scheme to use for HTTPS URLs that should not have their paths compressed. A value indicating whether scheme substitution is being used to workaround .NET path compression that invalidates some OpenIDs that have trailing periods in one of their path segments. Initializes static members of the class. This method attempts to workaround the .NET Uri class parsing bug described here: https://connect.microsoft.com/VisualStudio/feedback/details/386695/system-uri-incorrectly-strips-trailing-dots?wa=wsignin1.0#tabs since some identifiers (like some of the pseudonymous identifiers from Yahoo) include path segments that end with periods, which the Uri class will typically trim off. Initializes a new instance of the class. The value this identifier will represent. Initializes a new instance of the class. The value this identifier will represent. if set to true [require SSL discovery]. Initializes a new instance of the class. The value this identifier will represent. Initializes a new instance of the class. The value this identifier will represent. if set to true [require SSL discovery]. Converts a instance to a instance. The identifier to convert to an ordinary instance. The result of the conversion. Converts a instance to a instance. The instance to turn into a . The result of the conversion. Tests equality between this URI and another URI. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Returns the hash code of this XRI. A hash code for the current . Returns the string form of the URI. A that represents the current . Determines whether a URI is a valid OpenID Identifier (of any kind). The URI to test for OpenID validity. true if the identifier is valid; otherwise, false. A valid URI is absolute (not relative) and uses an http(s) scheme. Determines whether a URI is a valid OpenID Identifier (of any kind). The URI to test for OpenID validity. true if the identifier is valid; otherwise, false. A valid URI is absolute (not relative) and uses an http(s) scheme. Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. Determines whether the given URI is using a scheme in the list of allowed schemes. The URI whose scheme is to be checked. true if the scheme is allowed; otherwise, false. false is also returned if is null. Determines whether the given URI is using a scheme in the list of allowed schemes. The URI whose scheme is to be checked. true if the scheme is allowed; otherwise, false. false is also returned if is null. Tries to canonicalize a user-supplied identifier. This does NOT convert a user-supplied identifier to a Claimed Identifier! The user-supplied identifier. The resulting canonical URI. If set to true and the user-supplied identifier lacks a scheme, the "https://" scheme will be prepended instead of the standard "http://" one. if set to true [scheme prepended]. true if the identifier was valid and could be canonicalized. false if the identifier is outside the scope of allowed inputs and should be rejected. Canonicalization is done by adding a scheme in front of an identifier if it isn't already present. Other trivial changes that do not require network access are also done, such as lower-casing the hostname in the URI. Fixes up the scheme if appropriate. The URI, already in legal form (with http(s):// prepended if necessary). The resulting canonical URI. true if the canonicalization was successful; false otherwise. This does NOT standardize an OpenID URL for storage in a database, as it does nothing to convert the URL to a Claimed Identifier, besides the fact that it only deals with URLs whereas OpenID 2.0 supports XRIs. For this, you should lookup the value stored in IAuthenticationResponse.ClaimedIdentifier. Gets the special non-compressing scheme or URL for a standard scheme or URL. The ordinary URL or scheme name. The non-compressing equivalent scheme or URL for the given value. Performs the minimal URL normalization to allow a string to be passed to the constructor. The user-supplied identifier URI to normalize. if set to true, a missing scheme should result in HTTPS being prepended instead of HTTP. if set to true, the scheme was prepended during normalization. The somewhat normalized URL. Gets or sets a value indicating whether scheme substitution is being used to workaround .NET path compression that invalidates some OpenIDs that have trailing periods in one of their path segments. Gets the URI this instance represents. Gets a value indicating whether the scheme was missing when this Identifier was created and added automatically as part of the normalization process. Gets a value indicating whether this Identifier has characters or patterns that the class normalizes away and invalidating the Identifier. A simple URI class that doesn't suffer from the parsing problems of the class. URI characters that separate the URI Path from subsequent elements. Initializes a new instance of the class. The value. Returns a that represents this instance. A that represents this instance. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. The parameter is null. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Normalizes the characters that are escaped in the given URI path. The path to normalize. The given path, with exactly those characters escaped which should be. Gets the scheme. The scheme. Gets the authority. The authority. Gets the path of the URI. The path from the URI. Gets the query. The query. Gets the fragment. The fragment. A URI parser that does not compress paths, such as trimming trailing periods from path segments. The field that stores the scheme that this parser is registered under. The standard "http" or "https" scheme that this parser is subverting. Initializes a new instance of the class. The standard scheme that this parser will be subverting. Initializes this parser with the actual scheme it should appear to be. if set to true Uris using this scheme will look like they're using the original standard scheme. Gets the scheme this parser is registered under. The registered scheme. An XRI style of OpenID Identifier. The scheme and separator "xri://" An XRI always starts with one of these symbols. Backing store for the property. Initializes a new instance of the class. The string value of the XRI. Initializes a new instance of the class. The XRI that this Identifier will represent. If set to true, discovery and the initial authentication redirect will only succeed if it can be done entirely using SSL. Tests equality between this XRI and another XRI. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Returns the hash code of this XRI. A hash code for the current . Returns the canonical string form of the XRI. A that represents the current . Tests whether a given string represents a valid XRI format. The value to test for XRI validity. true if the given string constitutes a valid XRI; otherwise, false. Returns an that has no URI fragment. Quietly returns the original if it is not a or no fragment exists. A new instance if there was a fragment to remove, otherwise this same instance.. XRI Identifiers never have a fragment part, and thus this method always returns this same instance. Converts a given identifier to its secure equivalent. UriIdentifiers originally created with an implied HTTP scheme change to HTTPS. Discovery is made to require SSL for the entire resolution process. The newly created secure identifier. If the conversion fails, retains this identifiers identity, but will never discover any endpoints. True if the secure conversion was successful. False if the Identifier was originally created with an explicit HTTP scheme. Takes any valid form of XRI string and returns the canonical form of the same XRI. The xri to canonicalize. The canonicalized form of the XRI. The canonical form, per the OpenID spec, is no scheme and no whitespace on either end. Gets the original XRI supplied to the constructor. Gets the canonical form of the XRI string. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to XRI CanonicalID verification failed.. Looks up a localized string similar to Failure parsing XRDS document.. Looks up a localized string similar to The XRDS document for XRI {0} is missing the required CanonicalID element.. Looks up a localized string similar to Could not find XRI resolution Status tag or code attribute was invalid.. String constants for various content-type header values used in YADIS discovery. The text/html content-type The application/xhtml+xml content-type The application/xrds+xml content-type The text/xml content type Contains the result of YADIS discovery. The original web response, backed up here if the final web response is the preferred response to use in case it turns out to not work out. Initializes a new instance of the class. The user-supplied identifier. The initial response. The final response. Reverts to the HTML response after the XRDS response didn't work out. Applies the HTML response to the object. The initial response. Gets the URI of the original YADIS discovery request. This is the user supplied Identifier as given in the original YADIS discovery request. Gets the fully resolved (after redirects) URL of the user supplied Identifier. This becomes the ClaimedIdentifier. Gets the location the XRDS document was downloaded from, if different from the user supplied Identifier. Gets the Content-Type associated with the . Gets the text in the final response. This may be an XRDS document or it may be an HTML document, as determined by the property. Gets a value indicating whether the represents an XRDS document. False if the response is an HTML document. An HTML HEAD tag parser. Common flags to use on regex tests. A regular expression designed to select tags (?) A regular expression designed to select start tags (?) A regular expression designed to select attributes within a tag. A regular expression designed to select the HEAD tag. A regular expression designed to select the HTML tag. A regular expression designed to remove all comments and scripts from a string. Finds all the HTML HEAD tag child elements that match the tag name of a given type. The HTML tag of interest. The HTML to scan. A sequence of the matching elements. Filters a list of controls based on presence of an attribute. The type of HTML controls being filtered. The sequence. The attribute. A filtered sequence of attributes. Generates a regular expression that will find a given HTML tag. Name of the tag. The close tags (?). The created regular expression. Generates a regular expression designed to find a given tag. The tag to find. The created regular expression. The Service element in an XRDS document. A node in an XRDS document. The XRD namespace xri://$xrd*($v*2.0) The XRDS namespace xri://$xrds Initializes a new instance of the class. The node represented by this instance. The parent node. Initializes a new instance of the class. The document's root node, which this instance represents. Gets the node. Gets the parent node, or null if this is the root node. Gets the XML namespace resolver to use in XPath expressions. Initializes a new instance of the class. The service element. The parent. Compares the current object with another object of the same type. An object to compare with this object. A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter. Zero This object is equal to . Greater than zero This object is greater than . Gets the XRD parent element. Gets the priority. Gets the URI child elements. Gets the type child elements. The type elements. Gets the type child element's URIs. Gets the OP Local Identifier. The Type element in an XRDS document. Initializes a new instance of the class. The type element. The parent. Gets the URI. The Uri element in an XRDS document. Initializes a new instance of the class. The URI element. The service. Compares the current object with another object of the same type. An object to compare with this object. A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter. Zero This object is equal to . Greater than zero This object is greater than . Gets the priority. Gets the URI. Gets the parent service. The Xrd element in an XRDS document. Initializes a new instance of the class. The XRD element. The parent. Searches for service sub-elements that have Type URI sub-elements that match one that we have for a known OpenID protocol version. A function that selects what element of the OpenID Protocol we're interested in finding. A sequence of service elements that match the search criteria, sorted in XRDS @priority attribute order. Gets the child service elements. The services. Gets a value indicating whether this XRD element's resolution at the XRI resolver was successful. true if this XRD's resolution was successful; otherwise, false. Gets the canonical ID (i-number) for this element. Gets a value indicating whether the was verified. Gets the services for OP Identifiers. Gets the services for Claimed Identifiers. Gets the services that would be discoverable at an RP for return_to verification. Gets the services that would be discoverable at an RP for the UI extension icon. Gets an enumeration of all Service/URI elements, sorted in priority order. Gets the XRI resolution status code. An XRDS document. The namespace used by XML digital signatures. The namespace used by Google Apps for Domains for OpenID URI templates. Initializes a new instance of the class. The root node of the XRDS document. Initializes a new instance of the class. The Xml reader positioned at the root node of the XRDS document. Initializes a new instance of the class. The text that is the XRDS document. Gets the XRD child elements of the document. Gets a value indicating whether all child XRD elements were resolved successfully. YADIS discovery manager. The HTTP header to look for in responses to declare where the XRDS document should be found. The maximum number of bytes to read from an HTTP response in searching for a link to a YADIS document. Gets or sets the cache that can be used for HTTP requests made during identifier discovery. Performs YADIS discovery on some identifier. The mechanism to use for sending HTTP requests. The URI to perform discovery on. Whether discovery should fail if any step of it is not encrypted. The result of discovery on the given URL. Null may be returned if an error occurs, or if is true but part of discovery is not protected by SSL. Searches an HTML document for a <meta http-equiv="X-XRDS-Location" content="{YadisURL}"> tag and returns the content of YadisURL. The HTML to search. The URI of the XRDS document if found; otherwise null. Sends a YADIS HTTP request as part of identifier discovery. The request handler to use to actually submit the request. The URI to GET. Whether only HTTPS URLs should ever be retrieved. The value of the Accept HTTP header to include in the request. The HTTP response retrieved from the request. Determines whether a given HTTP response constitutes an XRDS document. The response to test. true if the response constains an XRDS document; otherwise, false. ================================================ FILE: packages/DotNetOpenAuth.OpenId.Core.4.3.0.13117/lib/net45-full/Mono.Math.xml ================================================ Mono.Math Default length of a BigInteger in bytes The Length of this BigInteger The data for this BigInteger Table of primes below 2000. This table was generated using Mathematica 4.1 using the following function: PrimeTable [x_] := Prime [Range [1, PrimePi [x]]] PrimeTable [6000] Generates a new, random BigInteger of the specified length. The number of bits for the new number. A random number generator to use to obtain the bits. A random number of the specified length. Generates a new, random BigInteger of the specified length using the default RNG crypto service provider. The number of bits for the new number. A random number of the specified length. Randomizes the bits in "this" from the specified RNG. A RNG. Randomizes the bits in "this" from the default RNG. Tests if the specified bit is 1. The bit to test. The least significant bit is 0. True if bitNum is set to 1, else false. Normalizes this by setting the length to the actual number of uints used in data and by setting the sign to Sign.Zero if the value of this is 0. Generates the smallest prime >= bi A BigInteger The smallest prime >= bi. More mathematically, if bi is prime: bi, else Prime [PrimePi [bi] + 1]. Increments this by two Low level functions for the BigInteger Adds two numbers with the same sign. A BigInteger A BigInteger bi1 + bi2 Compares two BigInteger A BigInteger A BigInteger The sign of bi1 - bi2 Performs n / d and n % d in one operation. A BigInteger, upon exit this will hold n / d The divisor n % d Multiplies the data in x [xOffset:xOffset+xLen] by y [yOffset:yOffset+yLen] and puts it into d [dOffset:dOffset+xLen+yLen]. Multiplies the data in x [xOffset:xOffset+xLen] by y [yOffset:yOffset+yLen] and puts the low mod words into d [dOffset:dOffset+mod]. A factor of confidence. Only suitable for development use, probability of failure may be greater than 1/2^20. Suitable only for transactions which do not require forward secrecy. Probability of failure about 1/2^40 Designed for production use. Probability of failure about 1/2^80. Suitable for sensitive data. Probability of failure about 1/2^160. Use only if you have lots of time! Probability of failure about 1/2^320. Only use methods which generate provable primes. Not yet implemented. Finds the next prime after a given number. Performs primality tests on bi, assumes trial division has been done. A BigInteger that has been subjected to and passed trial division False if bi is composite, true if it may be prime. The speed of this method is dependent on Confidence Probabilistic prime test based on Rabin-Miller's test The number to test. The number of chosen bases. The test has at least a 1/4^confidence chance of falsely returning True. True if "this" is a strong pseudoprime to randomly chosen bases. False if "this" is definitely NOT prime. ================================================ FILE: packages/DotNetOpenAuth.OpenId.Core.4.3.0.13117/lib/net45-full/Org.Mentalis.Security.Cryptography.xml ================================================ Org.Mentalis.Security.Cryptography Defines the different Diffie-Hellman key generation methods. Returns dynamically generated values for P and G. Unlike the Sophie Germain or DSA key generation methods, this method does not ensure that the selected prime offers an adequate security level. Returns values for P and G that are hard coded in this library. Contrary to what your intuition may tell you, using these hard coded values is perfectly safe. The values of the P and G parameters are taken from 'The OAKLEY Key Determination Protocol' [RFC2412]. This is the prefered key generation method, because it is very fast and very safe. Because this method uses fixed values for the P and G parameters, not all bit sizes are supported. The current implementation supports bit sizes of 768, 1024 and 1536. Represents the parameters of the Diffie-Hellman algorithm. Represents the public P parameter of the Diffie-Hellman algorithm. Represents the public G parameter of the Diffie-Hellman algorithm. Represents the private X parameter of the Diffie-Hellman algorithm. Defines a base class from which all Diffie-Hellman implementations inherit. Creates an instance of the default implementation of the algorithm. A new instance of the default implementation of DiffieHellman. Creates an instance of the specified implementation of . The name of the implementation of DiffieHellman to use. A new instance of the specified implementation of DiffieHellman. Initializes a new instance. When overridden in a derived class, creates the key exchange data. The key exchange data to be sent to the intended recipient. When overridden in a derived class, extracts secret information from the key exchange data. The key exchange data within which the secret information is hidden. The secret information derived from the key exchange data. When overridden in a derived class, exports the . true to include private parameters; otherwise, false. The parameters for Diffie-Hellman. When overridden in a derived class, imports the specified . The parameters for Diffie-Hellman. Reconstructs a object from an XML string. The XML string to use to reconstruct the DiffieHellman object. One of the values in the XML string is invalid. Creates and returns an XML string representation of the current object. true to include private parameters; otherwise, false. An XML string encoding of the current DiffieHellman object. Implements the Diffie-Hellman algorithm. Initializes a new instance. The default length of the shared secret is 1024 bits. Initializes a new instance. The length, in bits, of the public P parameter. The length, in bits, of the secret value X. This parameter can be set to 0 to use the default size. One of the values. The larger the bit length, the more secure the algorithm is. The default is 1024 bits. The minimum bit length is 128 bits.
The size of the private value will be one fourth of the bit length specified.
The specified bit length is invalid.
Initializes a new instance. The P parameter of the Diffie-Hellman algorithm. This is a public parameter. The G parameter of the Diffie-Hellman algorithm. This is a public parameter. The X parameter of the Diffie-Hellman algorithm. This is a private parameter. If this parameters is a null reference (Nothing in Visual Basic), a secret value of the default size will be generated. or is a null reference (Nothing in Visual Basic). or is invalid. Initializes a new instance. The P parameter of the Diffie-Hellman algorithm. The G parameter of the Diffie-Hellman algorithm. The length, in bits, of the private value. If 0 is specified, the default value will be used. or is a null reference (Nothing in Visual Basic). is invalid. or is invalid. Creates the key exchange data. The key exchange data to be sent to the intended recipient. Extracts secret information from the key exchange data. The key exchange data within which the shared key is hidden. The shared key derived from the key exchange data. Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources. true to release both managed and unmanaged resources; false to release only unmanaged resources. Exports the . true to include private parameters; otherwise, false. The parameters for . Imports the specified . The parameters for . parameters.P or parameters.G is a null reference (Nothing in Visual Basic) -or- parameters.P is not a prime number. Releases the unmanaged resources used by the SymmetricAlgorithm. Gets the name of the key exchange algorithm. The name of the key exchange algorithm. Gets the name of the signature algorithm. The name of the signature algorithm.
================================================ FILE: packages/DotNetOpenAuth.OpenId.RelyingParty.4.0.3.12153/content/web.config.transform ================================================ ================================================ FILE: packages/DotNetOpenAuth.OpenId.RelyingParty.4.0.3.12153/lib/net35-full/DotNetOpenAuth.OpenId.RelyingParty.xml ================================================ DotNetOpenAuth.OpenId.RelyingParty The COM interface describing the DotNetOpenAuth functionality available to COM client OpenID relying parties. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. A comma-delimited list of simple registration fields to request as optional. A comma-delimited list of simple registration fields to request as required. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Gets the result of a user agent's visit to his OpenId provider in an authentication attempt. Null if no response is available. The incoming request URL . The form data that may have been included in the case of a POST request. The Provider's response to a previous authentication request, or null if no response is present. An Attribute Exchange and Simple Registration filter to make all incoming attribute requests look like Simple Registration requests, and to convert the response to the originally requested extension and format. Initializes a new instance of the class. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when an authentication request is about to be sent. The request. Implementations should be prepared to be called multiple times on the same outgoing message without malfunctioning. Called when an incoming positive assertion is received. The positive assertion. Implements the Identity, Credential, & Access Management (ICAM) OpenID 2.0 Profile for the General Services Administration (GSA). Relying parties that include this profile are always held to the terms required by the profile, but Providers are only affected by the special behaviors of the profile when the RP specifically indicates that they want to use this profile. Initializes a new instance of the class. Applies a well known set of security requirements. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when an authentication request is about to be sent. The request. Called when an incoming positive assertion is received. The positive assertion. The OpenID binding element responsible for reading/writing OpenID extensions at the Relying Party. The security settings that apply to this relying party, if it is a relying party. Initializes a new instance of the class. The extension factory. The security settings. The messaging channel for OpenID relying parties. Initializes a new instance of the class. The association store to use. The nonce store to use. The security settings to apply. Initializes a new instance of the class. The association store to use. The nonce store to use. An object that knows how to distinguish the various OpenID message types for deserialization purposes. The security settings to apply. A value indicating whether the channel is set up with no functional security binding elements. A value indicating whether the channel is set up with no functional security binding elements. A new instance that will not perform verification on incoming messages or apply any security to outgoing messages. A value of true allows the relying party to preview incoming messages without invalidating nonces or checking signatures. Setting this to true poses a great security risk and is only present to support the OpenIdAjaxTextBox which needs to preview messages, and will validate them later. Initializes the binding elements. The crypto key store. The nonce store to use. The security settings to apply. Must be an instance of either or ProviderSecuritySettings. A value indicating whether the channel is set up with no functional security binding elements. An array of binding elements which may be used to construct the channel. Message factory for OpenID Relying Parties. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Helps ensure compliance to some properties in the . The security settings that are active on the relying party. Initializes a new instance of the class. The security settings. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. The signing binding element for OpenID Relying Parties. The association store used by Relying Parties to look up the secrets needed for signing. Initializes a new instance of the class. The association store used to look up the secrets needed for signing. May be null for dumb Relying Parties. Gets a specific association referenced in a given message's association handle. The signed message whose association handle should be used to lookup the association to return. The referenced association; or null if such an association cannot be found. Gets the association to use to sign or verify a message. The message to sign or verify. The association to use to sign or verify the message. Verifies the signature by unrecognized handle. The message. The signed message. The protections applied. The applied protections. This binding element adds a nonce to a Relying Party's outgoing authentication request when working against an OpenID 1.0 Provider in order to protect against replay attacks or on all authentication requests to distinguish solicited from unsolicited assertions. This nonce goes beyond the OpenID 1.x spec, but adds to security. Since this library's Provider implementation also provides special nonce protection for 1.0 messages, this security feature overlaps with that one. This means that if an RP from this library were talking to an OP from this library, but the Identifier being authenticated advertised the OP as a 1.x OP, then both RP and OP might try to use a nonce for protecting the assertion. There's no problem with that--it will still all work out. And it would be a very rare combination of elements anyway. This binding element deactivates itself for OpenID 2.0 (or later) messages since they are automatically protected in the protocol by the Provider's openid.response_nonce parameter. The exception to this is when is set to true, which will not only add a request nonce to every outgoing authentication request but also require that it be present in positive assertions, effectively disabling unsolicited assertions. In the messaging stack, this binding element looks like an ordinary transform-type of binding element rather than a protection element, due to its required order in the channel stack and that it exists only on the RP side and only on some messages. The context within which return_to nonces must be unique -- they all go into the same bucket. The length of the generated nonce's random part. The nonce store that will allow us to recall which nonces we've seen before. The security settings at the RP. Backing field for the property. Initializes a new instance of the class. The nonce store to use. The security settings of the RP. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Determines whether a request nonce should be applied the request or should be expected in the response. The authentication request or the positive assertion response. true if the message exchanged with an OpenID 1.x provider or if unsolicited assertions should be rejected at the RP; otherwise false. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection offered (if any) by this binding element. Gets the maximum message age from the standard expiration binding element. A special DotNetOpenAuth-only nonce used by the RP when talking to 1.0 OPs in order to protect against replay attacks. The random bits generated for the nonce. Initializes a new instance of the class. The creation date of the nonce. The random bits that help make the nonce unique. Creates a new nonce. The newly instantiated instance. Deserializes a nonce from the return_to parameter. The base64-encoded value of the nonce. The instantiated and initialized nonce. Serializes the entire nonce for adding to the return_to URL. The base64-encoded string representing the nonce. Gets the creation date. Gets the random part of the nonce as a base64 encoded string. A set of methods designed to assist in improving interop across different OpenID implementations and their extensions. Adds an Attribute Exchange (AX) extension to the authentication request that asks for the same attributes as the Simple Registration (sreg) extension that is already applied. The authentication request. The attribute formats to use in the AX request. If discovery on the user-supplied identifier yields hints regarding which extensions and attribute formats the Provider supports, this method MAY ignore the argument and accomodate the Provider to minimize the size of the request. If the request does not carry an sreg extension, the method logs a warning but otherwise quietly returns doing nothing. Looks for Simple Registration and Attribute Exchange (all known formats) response extensions and returns them as a Simple Registration extension. The authentication response. if set to true unsigned extensions will be included in the search. The Simple Registration response if found, or a fabricated one based on the Attribute Exchange extension if found, or just an empty if there was no data. Never null. Gets the attribute value if available. The AX fetch response extension to look for the attribute value. The type URI of the attribute, using the axschema.org format of . The AX type URI formats to search. The first value of the attribute, if available. Tries to find the exact format of AX attribute Type URI supported by the Provider. The authentication request. The attribute formats the RP will try if this discovery fails. The AX format(s) to use based on the Provider's advertised AX support. The discovery service to support host-meta based discovery, such as Google Apps for Domains. The spec for this discovery mechanism can be found at: http://groups.google.com/group/google-federated-login-api/web/openid-discovery-for-hosted-domains and the XMLDSig spec referenced in that spec can be found at: http://wiki.oasis-open.org/xri/XrdOne/XmlDsigProfile Path to the well-known location of the host-meta document at a domain. The URI template for discovery host-meta on domains hosted by Google Apps for Domains. The pattern within a host-meta file to look for to obtain the URI to the XRDS document. Initializes a new instance of the class. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. Gets the XRD elements that have a given CanonicalID. The XRDS document. The CanonicalID to match on. A sequence of XRD elements. Gets the described-by services in XRD elements. The XRDs to search. A sequence of services. Gets the services for an identifier that are described by an external XRDS document. The XRD elements to search for described-by services. The identifier under discovery. The request handler. The discovered services. Validates the XML digital signature on an XRDS document. The XRDS document whose signature should be validated. The identifier under discovery. The response. The host name on the certificate that should be used to verify the signature in the XRDS. Thrown if the XRDS document has an invalid or a missing signature. Verifies the cert chain. The certs. This must be in a method of its own because there is a LinkDemand on the method. By being in a method of its own, the caller of this method may catch a that is thrown if we're not running with full trust and execute an alternative plan. Thrown if the certificate chain is invalid or unverifiable. Gets the XRDS HTTP response for a given identifier. The identifier. The request handler. The location of the XRDS document to retrieve. A HTTP response carrying an XRDS document. Thrown if the XRDS document could not be obtained. Gets the XRDS HTTP response for a given identifier. The identifier. The request handler. The host name on the certificate that should be used to verify the signature in the XRDS. A HTTP response carrying an XRDS document, or null if one could not be obtained. Thrown if the XRDS document could not be obtained. Gets the location of the XRDS document that describes a given identifier. The identifier under discovery. The request handler. The host name on the certificate that should be used to verify the signature in the XRDS. An absolute URI, or null if one could not be determined. Gets the host-meta for a given identifier. The identifier. The request handler. The host name on the certificate that should be used to verify the signature in the XRDS. The host-meta response, or null if no host-meta document could be obtained. Gets the URIs authorized to host host-meta documents on behalf of a given domain. The identifier. A sequence of URIs that MAY provide the host-meta for a given identifier. Gets the set of URI templates to use to contact host-meta hosting proxies for domain discovery. Gets or sets a value indicating whether to trust Google to host domains' host-meta documents. This property is just a convenient mechanism for checking or changing the set of trusted host-meta proxies in the property. A description of a web server that hosts host-meta documents. Initializes a new instance of the class. The proxy formatting string. The signing host formatting string. Gets the absolute proxy URI. The identifier being discovered. The an absolute URI. Gets the signing host URI. The identifier being discovered. A host name. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Gets the URL of the host-meta proxy. The absolute proxy URL, which may include {0} to be replaced with the host of the identifier to be discovered. Gets the formatting string to determine the expected host name on the certificate that is expected to be used to sign the XRDS document. Either a string literal, or a formatting string where these placeholders may exist: {0} the host on the identifier discovery was originally performed on; {1} the host on this proxy. The COM type used to provide details of an authentication result to a relying party COM client. The response read in by the Relying Party. Initializes a new instance of the class. The response. Gets an Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the provider endpoint that sent the assertion. Gets a value indicating whether the authentication attempt succeeded. Gets the Simple Registration response. Gets details regarding a failed authentication attempt, if available. A struct storing Simple Registration field values describing an authenticating user. The Simple Registration claims response message that this shim wraps. Initializes a new instance of the class. The Simple Registration response to wrap. Gets the nickname the user goes by. Gets the user's email address. Gets the full name of a user as a single string. Gets the raw birth date string given by the extension. A string in the format yyyy-MM-dd. Gets the gender of the user. Gets the zip code / postal code of the user. Gets the country of the user. Gets the primary/preferred language of the user. Gets the user's timezone. Implementation of , providing a subset of the functionality available to .NET clients. The OpenIdRelyingParty instance to use for requests. Initializes static members of the class. Initializes a new instance of the class. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. A comma-delimited list of simple registration fields to request as optional. A comma-delimited list of simple registration fields to request as required. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Gets the result of a user agent's visit to his OpenId provider in an authentication attempt. Null if no response is available. The incoming request URL. The form data that may have been included in the case of a POST request. The Provider's response to a previous authentication request, or null if no response is present. The successful Diffie-Hellman association response message. Association response messages are described in OpenID 2.0 section 8.2. This type covers section 8.2.3. A successful association response as it is received by the relying party. Called to create the Association based on a request previously given by the Relying Party. The prior request for an association. The created association. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Creates the association at relying party side after the association response has been received. The original association request that was already sent and responded to. The newly created association. The resulting association is not added to the association store and must be done by the caller. Utility methods for requesting associations from the relying party. Creates an association request message that is appropriate for a given Provider. The set of requirements the selected association type must comply to. The provider to create an association with. The message to send to the Provider to request an association. Null if no association could be created that meet the security requirements and the provider OpenID version. Creates an association request message that is appropriate for a given Provider. The set of requirements the selected association type must comply to. The provider to create an association with. Type of the association. Type of the session. The message to send to the Provider to request an association. Null if no association could be created that meet the security requirements and the provider OpenID version. Code contract for the interface. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Thrown if the message is invalid. Called to create the Association based on a request previously given by the Relying Party. The prior request for an association. The created association. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the version of the protocol or extension this message is prepared to implement. Gets the extra, non-standard Protocol parameters included in the message. A response to an unencrypted assocation request, as it is received by the relying party. Initializes a new instance of the class. The version. The request. Called to create the Association based on a request previously given by the Relying Party. The prior request for an association. The created association. Wraps a standard so that it behaves as an association store. Stores s for lookup by their handle, keeping associations separated by a given OP Endpoint. Expired associations should be periodically cleared out of an association store. This should be done frequently enough to avoid a memory leak, but sparingly enough to not be a performance drain. Because this balance can vary by host, it is the responsibility of the host to initiate this cleaning. Saves an for later recall. The OP Endpoint with which the association is established. The association to store. If the new association conflicts (in OP endpoint and association handle) with an existing association, (which should never happen by the way) implementations may overwrite the previously saved association. Gets the best association (the one with the longest remaining life) for a given key. The OP Endpoint with which the association is established. The security requirements that the returned association must meet. The requested association, or null if no unexpired s exist for the given key. In the event that multiple associations exist for the given , it is important for the implementation for this method to use the to pick the best (highest grade or longest living as the host's policy may dictate) association that fits the security requirements. Associations that are returned that do not meet the security requirements will be ignored and a new association created. Gets the association for a given key and handle. The OP Endpoint with which the association is established. The handle of the specific association that must be recalled. The requested association, or null if no unexpired s exist for the given key and handle. Removes a specified handle that may exist in the store. The OP Endpoint with which the association is established. The handle of the specific association that must be deleted. Deprecated. The return value is insignificant. Previously: True if the association existed in this store previous to this call. No exception should be thrown if the association does not exist in the store before this call. The underlying key store. Initializes a new instance of the class. The key store. Saves an for later recall. The OP Endpoint with which the association is established. The association to store. Gets the best association (the one with the longest remaining life) for a given key. The OP Endpoint with which the association is established. The security requirements that the returned association must meet. The requested association, or null if no unexpired s exist for the given key. Gets the association for a given key and handle. The OP Endpoint with which the association is established. The handle of the specific association that must be recalled. The requested association, or null if no unexpired s exist for the given key and handle. Removes a specified handle that may exist in the store. The OP Endpoint with which the association is established. The handle of the specific association that must be deleted. True if the association existed in this store previous to this call. Constants used in implementing support for the UI extension. Gets the window.open javascript snippet to use to open a popup window compliant with the UI extension. The relying party. The authentication request to place in the window. The name to assign to the popup window. A string starting with 'window.open' and forming just that one method call. Code Contract for the class. Saves an for later recall. The Uri (for relying parties) or Smart/Dumb (for providers). The association to store. TODO: what should implementations do on association handle conflict? Gets the best association (the one with the longest remaining life) for a given key. The Uri (for relying parties) or Smart/Dumb (for Providers). The security requirements that the returned association must meet. The requested association, or null if no unexpired s exist for the given key. In the event that multiple associations exist for the given , it is important for the implementation for this method to use the to pick the best (highest grade or longest living as the host's policy may dictate) association that fits the security requirements. Associations that are returned that do not meet the security requirements will be ignored and a new association created. Gets the association for a given key and handle. The Uri (for relying parties) or Smart/Dumb (for Providers). The handle of the specific association that must be recalled. The requested association, or null if no unexpired s exist for the given key and handle. Removes a specified handle that may exist in the store. The Uri (for relying parties) or Smart/Dumb (for Providers). The handle of the specific association that must be deleted. True if the association existed in this store previous to this call. No exception should be thrown if the association does not exist in the store before this call. A dictionary of handle/Association pairs. Each method is locked, even if it is only one line, so that they are thread safe against each other, particularly the ones that enumerate over the list, since they can break if the collection is changed by another thread during enumeration. The lookup table where keys are the association handles and values are the associations themselves. Initializes a new instance of the class. Stores an in the collection. The association to add to the collection. Returns the with the given handle. Null if not found. The handle to the required association. The desired association, or null if none with the given handle could be found. Removes the with the given handle. The handle to the required association. Whether an with the given handle was in the collection for removal. Removes all expired associations from the collection. Gets the s ordered in order of descending issue date (most recently issued comes first). An empty sequence if no valid associations exist. This property is used by relying parties that are initiating authentication requests. It does not apply to Providers, which always need a specific association by handle. Manages the establishment, storage and retrieval of associations at the relying party. The storage to use for saving and retrieving associations. May be null. Backing field for the property. Backing field for the property. Initializes a new instance of the class. The channel the relying party is using. The association store. May be null for dumb mode relying parties. The security settings. Gets an association between this Relying Party and a given Provider if it already exists in the association store. The provider to create an association with. The association if one exists and has useful life remaining. Otherwise null. Gets an existing association with the specified Provider, or attempts to create a new association of one does not already exist. The provider to get an association for. The existing or new association; null if none existed and one could not be created. Creates a new association with a given Provider. The provider to create an association with. The newly created association, or null if no association can be created with the given Provider given the current security settings. A new association is created and returned even if one already exists in the association store. Any new association is automatically added to the . Creates a new association with a given Provider. The provider to create an association with. The associate request. May be null, which will always result in a null return value.. The number of times to try the associate request again if the Provider suggests it. The newly created association, or null if no association can be created with the given Provider given the current security settings. Gets or sets the channel to use for establishing associations. The channel. Gets or sets the security settings to apply in choosing association types to support. Gets a value indicating whether this instance has an association store. true if the relying party can act in 'smart' mode; false if the relying party must always act in 'dumb' mode. Gets the storage to use for saving and retrieving associations. May be null. Preferences regarding creation and use of an association between a relying party and provider for authentication. Indicates that an association should be created for use in authentication if one has not already been established between the relying party and the selected provider. Even with this value, if an association attempt fails or the relying party has no application store to recall associations, the authentication may proceed without an association. Indicates that an association should be used for authentication only if it happens to already exist. Indicates that an authentication attempt should NOT use an OpenID association between the relying party and the provider, even if an association was previously created. Facilitates customization and creation and an authentication request that a Relying Party is preparing to send. The name of the internal callback parameter to use to store the user-supplied identifier. The relying party that created this request object. How an association may or should be created or used in the formulation of the authentication request. The extensions that have been added to this authentication request. Arguments to add to the return_to part of the query string, so that these values come back to the consumer when the user agent returns. A value indicating whether the return_to callback arguments must be signed. This field defaults to false, but is set to true as soon as the first callback argument is added that indicates it must be signed. At which point, all arguments are signed even if individual ones did not need to be. Initializes a new instance of the class. The endpoint that describes the OpenID Identifier and Provider that will complete the authentication. The realm, or root URL, of the host web site. The base return_to URL that the Provider should return the user to to complete authentication. This should not include callback parameters as these should be added using the method. The relying party that created this instance. Makes a dictionary of key/value pairs available when the authentication is completed. The arguments to add to the request's return_to URI. Note that these values are NOT protected against eavesdropping in transit. No privacy-sensitive data should be stored using this method. The values stored here can be retrieved using , which will only return the value if it hasn't been tampered with in transit. Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed. The parameter name. The value of the argument. Note that these values are NOT protected against eavesdropping in transit. No privacy-sensitive data should be stored using this method. The value stored here can be retrieved using , which will only return the value if it hasn't been tampered with in transit. Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against tampering in transit. No security-sensitive data should be stored using this method. The value stored here can be retrieved using . Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed without requiring a return_to signature to protect against tampering of the callback argument. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against eavesdropping or tampering in transit. No security-sensitive data should be stored using this method. The value stored here can be retrieved using . Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Adds an OpenID extension to the request directed at the OpenID provider. The initialized extension to add to the request. Redirects the user agent to the provider for authentication. This method requires an ASP.NET HttpContext. Performs identifier discovery, creates associations and generates authentication requests on-demand for as long as new ones can be generated based on the results of Identifier discovery. The user supplied identifier. The relying party. The realm. The return_to base URL. if set to true, associations that do not exist between this Relying Party and the asserting Providers are created before the authentication request is created. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. Creates an instance of FOR TESTING PURPOSES ONLY. The discovery result. The realm. The return to. The relying party. The instantiated . Creates the request message to send to the Provider, based on the properties in this instance. The message to send to the Provider. Performs deferred request generation for the method. The user supplied identifier. The relying party. The realm. The return_to base URL. The discovered service endpoints on the Claimed Identifier. if set to true, associations that do not exist between this Relying Party and the asserting Providers are created before the authentication request is created. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. All data validation and cleansing steps must have ALREADY taken place before calling this method. Returns a filtered and sorted list of the available OP endpoints for a discovered Identifier. The endpoints. The relying party. A filtered and sorted list of endpoints; may be empty if the input was empty or the filter removed all endpoints. Creates the request message to send to the Provider, based on the properties in this instance. The message to send to the Provider. Gets the association to use for this authentication request. The association to use; null to use 'dumb mode'. Gets or sets the mode the Provider should use during authentication. Gets the HTTP response the relying party should send to the user agent to redirect it to the OpenID Provider to start the OpenID authentication process. Gets the URL that the user agent will return to after authentication completes or fails at the Provider. Gets the URL that identifies this consumer web application that the Provider will display to the end user. Gets the Claimed Identifier that the User Supplied Identifier resolved to. Null if the user provided an OP Identifier (directed identity). Null is returned if the user is using the directed identity feature of OpenID 2.0 to make it nearly impossible for a relying party site to improperly store the reserved OpenID URL used for directed identity as a user's own Identifier. However, to test for the Directed Identity feature, please test the property rather than testing this property for a null value. Gets a value indicating whether the authenticating user has chosen to let the Provider determine and send the ClaimedIdentifier after authentication. Gets or sets a value indicating whether this request only carries extensions and is not a request to verify that the user controls some identifier. true if this request is merely a carrier of extensions and is not about an OpenID identifier; otherwise, false. Gets information about the OpenId Provider, as advertised by the OpenId discovery documents found at the location. Gets the discovery result leading to the formulation of this request. The discovery result. Gets or sets how an association may or should be created or used in the formulation of the authentication request. Gets the extensions that have been added to the request. Gets the list of extensions for this request. An authentication request comparer that judges equality solely on the OP endpoint hostname. The singleton instance of this comparer. Prevents a default instance of the class from being created. Determines whether the specified objects are equal. The first object to compare. The second object to compare. true if the specified objects are equal; otherwise, false. Returns a hash code for the specified object. The for which a hash code is to be returned. A hash code for the specified object. The type of is a reference type and is null. Gets the singleton instance of this comparer. Wraps a negative assertion response in an instance for public consumption by the host web site. An interface to expose useful properties and functionality for handling authentication responses that are returned from Immediate authentication requests that require a subsequent request to be made in non-immediate mode. Gets the to pass to in a subsequent authentication attempt. The negative assertion message that was received by the RP that was used to create this instance. Initializes a new instance of the class. The negative assertion response received by the Relying Party. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. This may return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. This MAY return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Gets the to pass to in a subsequent authentication attempt. Wraps an extension-only response from the OP in an instance for public consumption by the host web site. Backin field for the property. Information about the OP endpoint that issued this assertion. Initializes a new instance of the class. The response message. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode null is always returned since the callback arguments could not be signed to protect against tampering. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode an empty dictionary is always returned since the callback arguments could not be signed to protect against tampering. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode an empty dictionary is always returned since the callback arguments could not be signed to protect against tampering. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Gets a value indicating whether trusted callback arguments are available. We use this internally to avoid logging a warning during a standard snapshot creation. Gets the positive extension-only message the Relying Party received that this instance wraps. Wraps a positive assertion response in an instance for public consumption by the host web site. Initializes a new instance of the class. The positive assertion response that was just received by the Relying Party. The relying party. Verifies that the positive assertion data matches the results of discovery on the Claimed Identifier. The relying party. Thrown when the Provider is asserting that a user controls an Identifier when discovery on that Identifier contradicts what the Provider says. This would be an indication of either a misconfigured Provider or an attempt by someone to spoof another user's identity with a rogue Provider. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets the OpenID service endpoint reconstructed from the assertion message. This information is straight from the Provider, and therefore must not be trusted until verified as matching the discovery information for the claimed identifier to avoid a Provider asserting an Identifier for which it has no authority. Gets the positive assertion response message. Wraps a failed authentication response in an instance for public consumption by the host web site. Initializes a new instance of the class. The exception that resulted in the failed authentication. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. This MAY return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. This may return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Code contract class for the type. Initializes a new instance of the class. Gets the to pass to in a subsequent authentication attempt. A delegate that decides whether a given OpenID Provider endpoint may be considered for authenticating a user. The endpoint for consideration. True if the endpoint should be considered. False to remove it from the pool of acceptable providers. Provides the programmatic facilities to act as an OpenID relying party. The name of the key to use in the HttpApplication cache to store the instance of to use. Backing store for the property. The discovery services to use for identifiers. Backing field for the property. The lock to obtain when initializing the member. A dictionary of extension response types and the javascript member name to map them to on the user agent. Backing field for the property. Backing store for the property. Backing field for the property. Initializes a new instance of the class. Initializes a new instance of the class. The application store. If null, the relying party will always operate in "stateless/dumb mode". Initializes a new instance of the class. The association store. If null, the relying party will always operate in "stateless/dumb mode". The nonce store to use. If null, the relying party will always operate in "stateless/dumb mode". Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. An authentication request object to customize the request and generate an object to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Requires an HttpContext.Current context. Thrown if no OpenID endpoint could be found. Thrown if HttpContext.Current == null. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Requires an HttpContext.Current context. Thrown if no OpenID endpoint could be found. Thrown if HttpContext.Current == null. Generates the authentication requests that can satisfy the requirements of some OpenID Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. Any individual generated request can satisfy the authentication. The generated requests are sorted in preferred order. Each request is generated as it is enumerated to. Associations are created only as is called. No exception is thrown if no OpenID endpoints were discovered. An empty enumerable is returned instead. Generates the authentication requests that can satisfy the requirements of some OpenID Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. Any individual generated request can satisfy the authentication. The generated requests are sorted in preferred order. Each request is generated as it is enumerated to. Associations are created only as is called. No exception is thrown if no OpenID endpoints were discovered. An empty enumerable is returned instead. Requires an HttpContext.Current context. Thrown if HttpContext.Current == null. Generates the authentication requests that can satisfy the requirements of some OpenID Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. Any individual generated request can satisfy the authentication. The generated requests are sorted in preferred order. Each request is generated as it is enumerated to. Associations are created only as is called. No exception is thrown if no OpenID endpoints were discovered. An empty enumerable is returned instead. Requires an HttpContext.Current context. Thrown if HttpContext.Current == null. Gets an authentication response from a Provider. The processed authentication response if there is any; null otherwise. Requires an HttpContext.Current context. Gets an authentication response from a Provider. The HTTP request that may be carrying an authentication response from the Provider. The processed authentication response if there is any; null otherwise. Processes the response received in a popup window or iframe to an AJAX-directed OpenID authentication. The HTTP response to send to this HTTP request. Requires an HttpContext.Current context. Processes the response received in a popup window or iframe to an AJAX-directed OpenID authentication. The incoming HTTP request that is expected to carry an OpenID authentication response. The HTTP response to send to this HTTP request. Allows an OpenID extension to read data out of an unverified positive authentication assertion and send it down to the client browser so that Javascript running on the page can perform some preprocessing on the extension data. The extension response type that will read data from the assertion. The property name on the openid_identifier input box object that will be used to store the extension data. For example: sreg This method should be called before . Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Determines whether some parameter name belongs to OpenID or this library as a protocol or internal parameter name. Name of the parameter. true if the named parameter is a library- or protocol-specific parameter; otherwise, false. Creates a relying party that does not verify incoming messages against nonce or association stores. The instantiated . Useful for previewing messages while allowing them to be fully processed and verified later. Processes the response received in a popup window or iframe to an AJAX-directed OpenID authentication. The incoming HTTP request that is expected to carry an OpenID authentication response. The callback fired after the response status has been determined but before the Javascript response is formulated. The HTTP response to send to this HTTP request. Performs discovery on the specified identifier. The identifier to discover services for. A non-null sequence of services discovered for the identifier. Checks whether a given OP Endpoint is permitted by the host relying party. The OP endpoint. true if the OP Endpoint is allowed; false otherwise. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Invokes a method on a parent frame or window and closes the calling popup window if applicable. The method to call on the parent window, including parameters. (i.e. "callback('arg1', 2)"). No escaping is done by this method. The entire HTTP response to send to the popup window or iframe to perform the invocation. Called by derived classes when behaviors are added or removed. The collection being modified. The instance containing the event data. Gets an XRDS sorting routine that uses the XRDS Service/@Priority attribute to determine order. Endpoints lacking any priority value are sorted to the end of the list. Gets the standard state storage mechanism that uses ASP.NET's HttpApplication state dictionary to store associations and nonces. Gets or sets the channel to use for sending/receiving messages. Gets the security settings used by this Relying Party. Gets the security settings. Gets or sets the optional Provider Endpoint filter to use. Provides a way to optionally filter the providers that may be used in authenticating a user. If provided, the delegate should return true to accept an endpoint, and false to reject it. If null, all identity providers will be accepted. This is the default. Gets or sets the ordering routine that will determine which XRDS Service element to try first Default is . This may never be null. To reset to default behavior this property can be set to the value of . Gets the extension factories. Gets a list of custom behaviors to apply to OpenID actions. Adding behaviors can impact the security settings of this instance in ways that subsequently removing the behaviors will not reverse. Gets the list of services that can perform discovery on identifiers given to this relying party. Gets the web request handler to use for discovery and the part of authentication where direct messages are sent to an untrusted remote party. Gets a value indicating whether this Relying Party can sign its return_to parameter in outgoing authentication requests. Gets the web request handler to use for discovery and the part of authentication where direct messages are sent to an untrusted remote party. Gets the association manager. Gets the instance used to process authentication responses without verifying the assertion or consuming nonces. A serializable snapshot of a verified authentication message. The callback arguments that came with the authentication response. The untrusted callback arguments that came with the authentication response. Initializes a new instance of the class. The authentication response to copy from. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. This MAY return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. This may return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . A very simple IXrdsProviderEndpoint implementation for verifying that all positive assertions (particularly unsolicited ones) are received from OP endpoints that are deemed permissible by the host RP. Initializes a new instance of the class. The positive assertion. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Gets the detected version of OpenID implemented by the Provider. Gets the URL that the OpenID Provider receives authentication requests at. An in-memory store for Relying Parties, suitable for single server, single process ASP.NET web sites. The nonce store to use. The association store to use. Initializes a new instance of the class. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Thrown in the event of a conflict with an existing key in the same bucket and with the same handle. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. Stores a given nonce and timestamp. The context, or namespace, within which the must be unique. A series of random characters. The timestamp that together with the nonce string make it unique. The timestamp may also be used by the data store to clear out old nonces. True if the nonce+timestamp (combination) was not previously in the database. False if the nonce was stored previously with the same timestamp. The nonce must be stored for no less than the maximum time window a message may be processed within before being discarded as an expired message. If the binding element is applicable to your channel, this expiration window is retrieved or set using the property. Common OpenID Provider Identifiers. The Yahoo OP Identifier. The Google OP Identifier. The MyOpenID OP Identifier. The Verisign OP Identifier. The MyVidoop OP Identifier. Prevents a default instance of the class from being created. ================================================ FILE: packages/DotNetOpenAuth.OpenId.RelyingParty.4.0.3.12153/lib/net40-full/DotNetOpenAuth.OpenId.RelyingParty.xml ================================================ DotNetOpenAuth.OpenId.RelyingParty The COM interface describing the DotNetOpenAuth functionality available to COM client OpenID relying parties. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. A comma-delimited list of simple registration fields to request as optional. A comma-delimited list of simple registration fields to request as required. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Gets the result of a user agent's visit to his OpenId provider in an authentication attempt. Null if no response is available. The incoming request URL . The form data that may have been included in the case of a POST request. The Provider's response to a previous authentication request, or null if no response is present. An Attribute Exchange and Simple Registration filter to make all incoming attribute requests look like Simple Registration requests, and to convert the response to the originally requested extension and format. Initializes a new instance of the class. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when an authentication request is about to be sent. The request. Implementations should be prepared to be called multiple times on the same outgoing message without malfunctioning. Called when an incoming positive assertion is received. The positive assertion. Implements the Identity, Credential, & Access Management (ICAM) OpenID 2.0 Profile for the General Services Administration (GSA). Relying parties that include this profile are always held to the terms required by the profile, but Providers are only affected by the special behaviors of the profile when the RP specifically indicates that they want to use this profile. Initializes a new instance of the class. Applies a well known set of security requirements. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when an authentication request is about to be sent. The request. Called when an incoming positive assertion is received. The positive assertion. The OpenID binding element responsible for reading/writing OpenID extensions at the Relying Party. The security settings that apply to this relying party, if it is a relying party. Initializes a new instance of the class. The extension factory. The security settings. The messaging channel for OpenID relying parties. Initializes a new instance of the class. The association store to use. The nonce store to use. The security settings to apply. Initializes a new instance of the class. The association store to use. The nonce store to use. An object that knows how to distinguish the various OpenID message types for deserialization purposes. The security settings to apply. A value indicating whether the channel is set up with no functional security binding elements. A value indicating whether the channel is set up with no functional security binding elements. A new instance that will not perform verification on incoming messages or apply any security to outgoing messages. A value of true allows the relying party to preview incoming messages without invalidating nonces or checking signatures. Setting this to true poses a great security risk and is only present to support the OpenIdAjaxTextBox which needs to preview messages, and will validate them later. Initializes the binding elements. The crypto key store. The nonce store to use. The security settings to apply. Must be an instance of either or ProviderSecuritySettings. A value indicating whether the channel is set up with no functional security binding elements. An array of binding elements which may be used to construct the channel. Message factory for OpenID Relying Parties. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Helps ensure compliance to some properties in the . The security settings that are active on the relying party. Initializes a new instance of the class. The security settings. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. The signing binding element for OpenID Relying Parties. The association store used by Relying Parties to look up the secrets needed for signing. Initializes a new instance of the class. The association store used to look up the secrets needed for signing. May be null for dumb Relying Parties. Gets a specific association referenced in a given message's association handle. The signed message whose association handle should be used to lookup the association to return. The referenced association; or null if such an association cannot be found. Gets the association to use to sign or verify a message. The message to sign or verify. The association to use to sign or verify the message. Verifies the signature by unrecognized handle. The message. The signed message. The protections applied. The applied protections. This binding element adds a nonce to a Relying Party's outgoing authentication request when working against an OpenID 1.0 Provider in order to protect against replay attacks or on all authentication requests to distinguish solicited from unsolicited assertions. This nonce goes beyond the OpenID 1.x spec, but adds to security. Since this library's Provider implementation also provides special nonce protection for 1.0 messages, this security feature overlaps with that one. This means that if an RP from this library were talking to an OP from this library, but the Identifier being authenticated advertised the OP as a 1.x OP, then both RP and OP might try to use a nonce for protecting the assertion. There's no problem with that--it will still all work out. And it would be a very rare combination of elements anyway. This binding element deactivates itself for OpenID 2.0 (or later) messages since they are automatically protected in the protocol by the Provider's openid.response_nonce parameter. The exception to this is when is set to true, which will not only add a request nonce to every outgoing authentication request but also require that it be present in positive assertions, effectively disabling unsolicited assertions. In the messaging stack, this binding element looks like an ordinary transform-type of binding element rather than a protection element, due to its required order in the channel stack and that it exists only on the RP side and only on some messages. The context within which return_to nonces must be unique -- they all go into the same bucket. The length of the generated nonce's random part. The nonce store that will allow us to recall which nonces we've seen before. The security settings at the RP. Backing field for the property. Initializes a new instance of the class. The nonce store to use. The security settings of the RP. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Determines whether a request nonce should be applied the request or should be expected in the response. The authentication request or the positive assertion response. true if the message exchanged with an OpenID 1.x provider or if unsolicited assertions should be rejected at the RP; otherwise false. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection offered (if any) by this binding element. Gets the maximum message age from the standard expiration binding element. A special DotNetOpenAuth-only nonce used by the RP when talking to 1.0 OPs in order to protect against replay attacks. The random bits generated for the nonce. Initializes a new instance of the class. The creation date of the nonce. The random bits that help make the nonce unique. Creates a new nonce. The newly instantiated instance. Deserializes a nonce from the return_to parameter. The base64-encoded value of the nonce. The instantiated and initialized nonce. Serializes the entire nonce for adding to the return_to URL. The base64-encoded string representing the nonce. Gets the creation date. Gets the random part of the nonce as a base64 encoded string. A set of methods designed to assist in improving interop across different OpenID implementations and their extensions. Adds an Attribute Exchange (AX) extension to the authentication request that asks for the same attributes as the Simple Registration (sreg) extension that is already applied. The authentication request. The attribute formats to use in the AX request. If discovery on the user-supplied identifier yields hints regarding which extensions and attribute formats the Provider supports, this method MAY ignore the argument and accomodate the Provider to minimize the size of the request. If the request does not carry an sreg extension, the method logs a warning but otherwise quietly returns doing nothing. Looks for Simple Registration and Attribute Exchange (all known formats) response extensions and returns them as a Simple Registration extension. The authentication response. if set to true unsigned extensions will be included in the search. The Simple Registration response if found, or a fabricated one based on the Attribute Exchange extension if found, or just an empty if there was no data. Never null. Gets the attribute value if available. The AX fetch response extension to look for the attribute value. The type URI of the attribute, using the axschema.org format of . The AX type URI formats to search. The first value of the attribute, if available. Tries to find the exact format of AX attribute Type URI supported by the Provider. The authentication request. The attribute formats the RP will try if this discovery fails. The AX format(s) to use based on the Provider's advertised AX support. The discovery service to support host-meta based discovery, such as Google Apps for Domains. The spec for this discovery mechanism can be found at: http://groups.google.com/group/google-federated-login-api/web/openid-discovery-for-hosted-domains and the XMLDSig spec referenced in that spec can be found at: http://wiki.oasis-open.org/xri/XrdOne/XmlDsigProfile Path to the well-known location of the host-meta document at a domain. The URI template for discovery host-meta on domains hosted by Google Apps for Domains. The pattern within a host-meta file to look for to obtain the URI to the XRDS document. Initializes a new instance of the class. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. Gets the XRD elements that have a given CanonicalID. The XRDS document. The CanonicalID to match on. A sequence of XRD elements. Gets the described-by services in XRD elements. The XRDs to search. A sequence of services. Gets the services for an identifier that are described by an external XRDS document. The XRD elements to search for described-by services. The identifier under discovery. The request handler. The discovered services. Validates the XML digital signature on an XRDS document. The XRDS document whose signature should be validated. The identifier under discovery. The response. The host name on the certificate that should be used to verify the signature in the XRDS. Thrown if the XRDS document has an invalid or a missing signature. Verifies the cert chain. The certs. This must be in a method of its own because there is a LinkDemand on the method. By being in a method of its own, the caller of this method may catch a that is thrown if we're not running with full trust and execute an alternative plan. Thrown if the certificate chain is invalid or unverifiable. Gets the XRDS HTTP response for a given identifier. The identifier. The request handler. The location of the XRDS document to retrieve. A HTTP response carrying an XRDS document. Thrown if the XRDS document could not be obtained. Gets the XRDS HTTP response for a given identifier. The identifier. The request handler. The host name on the certificate that should be used to verify the signature in the XRDS. A HTTP response carrying an XRDS document, or null if one could not be obtained. Thrown if the XRDS document could not be obtained. Gets the location of the XRDS document that describes a given identifier. The identifier under discovery. The request handler. The host name on the certificate that should be used to verify the signature in the XRDS. An absolute URI, or null if one could not be determined. Gets the host-meta for a given identifier. The identifier. The request handler. The host name on the certificate that should be used to verify the signature in the XRDS. The host-meta response, or null if no host-meta document could be obtained. Gets the URIs authorized to host host-meta documents on behalf of a given domain. The identifier. A sequence of URIs that MAY provide the host-meta for a given identifier. Gets the set of URI templates to use to contact host-meta hosting proxies for domain discovery. Gets or sets a value indicating whether to trust Google to host domains' host-meta documents. This property is just a convenient mechanism for checking or changing the set of trusted host-meta proxies in the property. A description of a web server that hosts host-meta documents. Initializes a new instance of the class. The proxy formatting string. The signing host formatting string. Gets the absolute proxy URI. The identifier being discovered. The an absolute URI. Gets the signing host URI. The identifier being discovered. A host name. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Gets the URL of the host-meta proxy. The absolute proxy URL, which may include {0} to be replaced with the host of the identifier to be discovered. Gets the formatting string to determine the expected host name on the certificate that is expected to be used to sign the XRDS document. Either a string literal, or a formatting string where these placeholders may exist: {0} the host on the identifier discovery was originally performed on; {1} the host on this proxy. The COM type used to provide details of an authentication result to a relying party COM client. The response read in by the Relying Party. Initializes a new instance of the class. The response. Gets an Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the provider endpoint that sent the assertion. Gets a value indicating whether the authentication attempt succeeded. Gets the Simple Registration response. Gets details regarding a failed authentication attempt, if available. A struct storing Simple Registration field values describing an authenticating user. The Simple Registration claims response message that this shim wraps. Initializes a new instance of the class. The Simple Registration response to wrap. Gets the nickname the user goes by. Gets the user's email address. Gets the full name of a user as a single string. Gets the raw birth date string given by the extension. A string in the format yyyy-MM-dd. Gets the gender of the user. Gets the zip code / postal code of the user. Gets the country of the user. Gets the primary/preferred language of the user. Gets the user's timezone. Implementation of , providing a subset of the functionality available to .NET clients. The OpenIdRelyingParty instance to use for requests. Initializes static members of the class. Initializes a new instance of the class. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. A comma-delimited list of simple registration fields to request as optional. A comma-delimited list of simple registration fields to request as required. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Gets the result of a user agent's visit to his OpenId provider in an authentication attempt. Null if no response is available. The incoming request URL. The form data that may have been included in the case of a POST request. The Provider's response to a previous authentication request, or null if no response is present. The successful Diffie-Hellman association response message. Association response messages are described in OpenID 2.0 section 8.2. This type covers section 8.2.3. A successful association response as it is received by the relying party. Called to create the Association based on a request previously given by the Relying Party. The prior request for an association. The created association. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Creates the association at relying party side after the association response has been received. The original association request that was already sent and responded to. The newly created association. The resulting association is not added to the association store and must be done by the caller. Utility methods for requesting associations from the relying party. Creates an association request message that is appropriate for a given Provider. The set of requirements the selected association type must comply to. The provider to create an association with. The message to send to the Provider to request an association. Null if no association could be created that meet the security requirements and the provider OpenID version. Creates an association request message that is appropriate for a given Provider. The set of requirements the selected association type must comply to. The provider to create an association with. Type of the association. Type of the session. The message to send to the Provider to request an association. Null if no association could be created that meet the security requirements and the provider OpenID version. Code contract for the interface. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Thrown if the message is invalid. Called to create the Association based on a request previously given by the Relying Party. The prior request for an association. The created association. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the version of the protocol or extension this message is prepared to implement. Gets the extra, non-standard Protocol parameters included in the message. A response to an unencrypted assocation request, as it is received by the relying party. Initializes a new instance of the class. The version. The request. Called to create the Association based on a request previously given by the Relying Party. The prior request for an association. The created association. Wraps a standard so that it behaves as an association store. Stores s for lookup by their handle, keeping associations separated by a given OP Endpoint. Expired associations should be periodically cleared out of an association store. This should be done frequently enough to avoid a memory leak, but sparingly enough to not be a performance drain. Because this balance can vary by host, it is the responsibility of the host to initiate this cleaning. Saves an for later recall. The OP Endpoint with which the association is established. The association to store. If the new association conflicts (in OP endpoint and association handle) with an existing association, (which should never happen by the way) implementations may overwrite the previously saved association. Gets the best association (the one with the longest remaining life) for a given key. The OP Endpoint with which the association is established. The security requirements that the returned association must meet. The requested association, or null if no unexpired s exist for the given key. In the event that multiple associations exist for the given , it is important for the implementation for this method to use the to pick the best (highest grade or longest living as the host's policy may dictate) association that fits the security requirements. Associations that are returned that do not meet the security requirements will be ignored and a new association created. Gets the association for a given key and handle. The OP Endpoint with which the association is established. The handle of the specific association that must be recalled. The requested association, or null if no unexpired s exist for the given key and handle. Removes a specified handle that may exist in the store. The OP Endpoint with which the association is established. The handle of the specific association that must be deleted. Deprecated. The return value is insignificant. Previously: True if the association existed in this store previous to this call. No exception should be thrown if the association does not exist in the store before this call. The underlying key store. Initializes a new instance of the class. The key store. Saves an for later recall. The OP Endpoint with which the association is established. The association to store. Gets the best association (the one with the longest remaining life) for a given key. The OP Endpoint with which the association is established. The security requirements that the returned association must meet. The requested association, or null if no unexpired s exist for the given key. Gets the association for a given key and handle. The OP Endpoint with which the association is established. The handle of the specific association that must be recalled. The requested association, or null if no unexpired s exist for the given key and handle. Removes a specified handle that may exist in the store. The OP Endpoint with which the association is established. The handle of the specific association that must be deleted. True if the association existed in this store previous to this call. Constants used in implementing support for the UI extension. Gets the window.open javascript snippet to use to open a popup window compliant with the UI extension. The relying party. The authentication request to place in the window. The name to assign to the popup window. A string starting with 'window.open' and forming just that one method call. Code Contract for the class. Saves an for later recall. The Uri (for relying parties) or Smart/Dumb (for providers). The association to store. TODO: what should implementations do on association handle conflict? Gets the best association (the one with the longest remaining life) for a given key. The Uri (for relying parties) or Smart/Dumb (for Providers). The security requirements that the returned association must meet. The requested association, or null if no unexpired s exist for the given key. In the event that multiple associations exist for the given , it is important for the implementation for this method to use the to pick the best (highest grade or longest living as the host's policy may dictate) association that fits the security requirements. Associations that are returned that do not meet the security requirements will be ignored and a new association created. Gets the association for a given key and handle. The Uri (for relying parties) or Smart/Dumb (for Providers). The handle of the specific association that must be recalled. The requested association, or null if no unexpired s exist for the given key and handle. Removes a specified handle that may exist in the store. The Uri (for relying parties) or Smart/Dumb (for Providers). The handle of the specific association that must be deleted. True if the association existed in this store previous to this call. No exception should be thrown if the association does not exist in the store before this call. A dictionary of handle/Association pairs. Each method is locked, even if it is only one line, so that they are thread safe against each other, particularly the ones that enumerate over the list, since they can break if the collection is changed by another thread during enumeration. The lookup table where keys are the association handles and values are the associations themselves. Initializes a new instance of the class. Stores an in the collection. The association to add to the collection. Returns the with the given handle. Null if not found. The handle to the required association. The desired association, or null if none with the given handle could be found. Removes the with the given handle. The handle to the required association. Whether an with the given handle was in the collection for removal. Removes all expired associations from the collection. Gets the s ordered in order of descending issue date (most recently issued comes first). An empty sequence if no valid associations exist. This property is used by relying parties that are initiating authentication requests. It does not apply to Providers, which always need a specific association by handle. Manages the establishment, storage and retrieval of associations at the relying party. The storage to use for saving and retrieving associations. May be null. Backing field for the property. Backing field for the property. Initializes a new instance of the class. The channel the relying party is using. The association store. May be null for dumb mode relying parties. The security settings. Gets an association between this Relying Party and a given Provider if it already exists in the association store. The provider to create an association with. The association if one exists and has useful life remaining. Otherwise null. Gets an existing association with the specified Provider, or attempts to create a new association of one does not already exist. The provider to get an association for. The existing or new association; null if none existed and one could not be created. Creates a new association with a given Provider. The provider to create an association with. The newly created association, or null if no association can be created with the given Provider given the current security settings. A new association is created and returned even if one already exists in the association store. Any new association is automatically added to the . Creates a new association with a given Provider. The provider to create an association with. The associate request. May be null, which will always result in a null return value.. The number of times to try the associate request again if the Provider suggests it. The newly created association, or null if no association can be created with the given Provider given the current security settings. Gets or sets the channel to use for establishing associations. The channel. Gets or sets the security settings to apply in choosing association types to support. Gets a value indicating whether this instance has an association store. true if the relying party can act in 'smart' mode; false if the relying party must always act in 'dumb' mode. Gets the storage to use for saving and retrieving associations. May be null. Preferences regarding creation and use of an association between a relying party and provider for authentication. Indicates that an association should be created for use in authentication if one has not already been established between the relying party and the selected provider. Even with this value, if an association attempt fails or the relying party has no application store to recall associations, the authentication may proceed without an association. Indicates that an association should be used for authentication only if it happens to already exist. Indicates that an authentication attempt should NOT use an OpenID association between the relying party and the provider, even if an association was previously created. Facilitates customization and creation and an authentication request that a Relying Party is preparing to send. The name of the internal callback parameter to use to store the user-supplied identifier. The relying party that created this request object. How an association may or should be created or used in the formulation of the authentication request. The extensions that have been added to this authentication request. Arguments to add to the return_to part of the query string, so that these values come back to the consumer when the user agent returns. A value indicating whether the return_to callback arguments must be signed. This field defaults to false, but is set to true as soon as the first callback argument is added that indicates it must be signed. At which point, all arguments are signed even if individual ones did not need to be. Initializes a new instance of the class. The endpoint that describes the OpenID Identifier and Provider that will complete the authentication. The realm, or root URL, of the host web site. The base return_to URL that the Provider should return the user to to complete authentication. This should not include callback parameters as these should be added using the method. The relying party that created this instance. Makes a dictionary of key/value pairs available when the authentication is completed. The arguments to add to the request's return_to URI. Note that these values are NOT protected against eavesdropping in transit. No privacy-sensitive data should be stored using this method. The values stored here can be retrieved using , which will only return the value if it hasn't been tampered with in transit. Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed. The parameter name. The value of the argument. Note that these values are NOT protected against eavesdropping in transit. No privacy-sensitive data should be stored using this method. The value stored here can be retrieved using , which will only return the value if it hasn't been tampered with in transit. Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against tampering in transit. No security-sensitive data should be stored using this method. The value stored here can be retrieved using . Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed without requiring a return_to signature to protect against tampering of the callback argument. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against eavesdropping or tampering in transit. No security-sensitive data should be stored using this method. The value stored here can be retrieved using . Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Adds an OpenID extension to the request directed at the OpenID provider. The initialized extension to add to the request. Redirects the user agent to the provider for authentication. This method requires an ASP.NET HttpContext. Performs identifier discovery, creates associations and generates authentication requests on-demand for as long as new ones can be generated based on the results of Identifier discovery. The user supplied identifier. The relying party. The realm. The return_to base URL. if set to true, associations that do not exist between this Relying Party and the asserting Providers are created before the authentication request is created. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. Creates an instance of FOR TESTING PURPOSES ONLY. The discovery result. The realm. The return to. The relying party. The instantiated . Creates the request message to send to the Provider, based on the properties in this instance. The message to send to the Provider. Performs deferred request generation for the method. The user supplied identifier. The relying party. The realm. The return_to base URL. The discovered service endpoints on the Claimed Identifier. if set to true, associations that do not exist between this Relying Party and the asserting Providers are created before the authentication request is created. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. All data validation and cleansing steps must have ALREADY taken place before calling this method. Returns a filtered and sorted list of the available OP endpoints for a discovered Identifier. The endpoints. The relying party. A filtered and sorted list of endpoints; may be empty if the input was empty or the filter removed all endpoints. Creates the request message to send to the Provider, based on the properties in this instance. The message to send to the Provider. Gets the association to use for this authentication request. The association to use; null to use 'dumb mode'. Gets or sets the mode the Provider should use during authentication. Gets the HTTP response the relying party should send to the user agent to redirect it to the OpenID Provider to start the OpenID authentication process. Gets the URL that the user agent will return to after authentication completes or fails at the Provider. Gets the URL that identifies this consumer web application that the Provider will display to the end user. Gets the Claimed Identifier that the User Supplied Identifier resolved to. Null if the user provided an OP Identifier (directed identity). Null is returned if the user is using the directed identity feature of OpenID 2.0 to make it nearly impossible for a relying party site to improperly store the reserved OpenID URL used for directed identity as a user's own Identifier. However, to test for the Directed Identity feature, please test the property rather than testing this property for a null value. Gets a value indicating whether the authenticating user has chosen to let the Provider determine and send the ClaimedIdentifier after authentication. Gets or sets a value indicating whether this request only carries extensions and is not a request to verify that the user controls some identifier. true if this request is merely a carrier of extensions and is not about an OpenID identifier; otherwise, false. Gets information about the OpenId Provider, as advertised by the OpenId discovery documents found at the location. Gets the discovery result leading to the formulation of this request. The discovery result. Gets or sets how an association may or should be created or used in the formulation of the authentication request. Gets the extensions that have been added to the request. Gets the list of extensions for this request. An authentication request comparer that judges equality solely on the OP endpoint hostname. The singleton instance of this comparer. Prevents a default instance of the class from being created. Determines whether the specified objects are equal. The first object to compare. The second object to compare. true if the specified objects are equal; otherwise, false. Returns a hash code for the specified object. The for which a hash code is to be returned. A hash code for the specified object. The type of is a reference type and is null. Gets the singleton instance of this comparer. Wraps a negative assertion response in an instance for public consumption by the host web site. An interface to expose useful properties and functionality for handling authentication responses that are returned from Immediate authentication requests that require a subsequent request to be made in non-immediate mode. Gets the to pass to in a subsequent authentication attempt. The negative assertion message that was received by the RP that was used to create this instance. Initializes a new instance of the class. The negative assertion response received by the Relying Party. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. This may return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. This MAY return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Gets the to pass to in a subsequent authentication attempt. Wraps an extension-only response from the OP in an instance for public consumption by the host web site. Backin field for the property. Information about the OP endpoint that issued this assertion. Initializes a new instance of the class. The response message. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode null is always returned since the callback arguments could not be signed to protect against tampering. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode an empty dictionary is always returned since the callback arguments could not be signed to protect against tampering. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode an empty dictionary is always returned since the callback arguments could not be signed to protect against tampering. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Gets a value indicating whether trusted callback arguments are available. We use this internally to avoid logging a warning during a standard snapshot creation. Gets the positive extension-only message the Relying Party received that this instance wraps. Wraps a positive assertion response in an instance for public consumption by the host web site. Initializes a new instance of the class. The positive assertion response that was just received by the Relying Party. The relying party. Verifies that the positive assertion data matches the results of discovery on the Claimed Identifier. The relying party. Thrown when the Provider is asserting that a user controls an Identifier when discovery on that Identifier contradicts what the Provider says. This would be an indication of either a misconfigured Provider or an attempt by someone to spoof another user's identity with a rogue Provider. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets the OpenID service endpoint reconstructed from the assertion message. This information is straight from the Provider, and therefore must not be trusted until verified as matching the discovery information for the claimed identifier to avoid a Provider asserting an Identifier for which it has no authority. Gets the positive assertion response message. Wraps a failed authentication response in an instance for public consumption by the host web site. Initializes a new instance of the class. The exception that resulted in the failed authentication. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. This MAY return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. This may return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Code contract class for the type. Initializes a new instance of the class. Gets the to pass to in a subsequent authentication attempt. A delegate that decides whether a given OpenID Provider endpoint may be considered for authenticating a user. The endpoint for consideration. True if the endpoint should be considered. False to remove it from the pool of acceptable providers. Provides the programmatic facilities to act as an OpenID relying party. The name of the key to use in the HttpApplication cache to store the instance of to use. Backing store for the property. The discovery services to use for identifiers. Backing field for the property. The lock to obtain when initializing the member. A dictionary of extension response types and the javascript member name to map them to on the user agent. Backing field for the property. Backing store for the property. Backing field for the property. Initializes a new instance of the class. Initializes a new instance of the class. The application store. If null, the relying party will always operate in "stateless/dumb mode". Initializes a new instance of the class. The association store. If null, the relying party will always operate in "stateless/dumb mode". The nonce store to use. If null, the relying party will always operate in "stateless/dumb mode". Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. An authentication request object to customize the request and generate an object to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Requires an HttpContext.Current context. Thrown if no OpenID endpoint could be found. Thrown if HttpContext.Current == null. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Requires an HttpContext.Current context. Thrown if no OpenID endpoint could be found. Thrown if HttpContext.Current == null. Generates the authentication requests that can satisfy the requirements of some OpenID Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. Any individual generated request can satisfy the authentication. The generated requests are sorted in preferred order. Each request is generated as it is enumerated to. Associations are created only as is called. No exception is thrown if no OpenID endpoints were discovered. An empty enumerable is returned instead. Generates the authentication requests that can satisfy the requirements of some OpenID Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. Any individual generated request can satisfy the authentication. The generated requests are sorted in preferred order. Each request is generated as it is enumerated to. Associations are created only as is called. No exception is thrown if no OpenID endpoints were discovered. An empty enumerable is returned instead. Requires an HttpContext.Current context. Thrown if HttpContext.Current == null. Generates the authentication requests that can satisfy the requirements of some OpenID Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. Any individual generated request can satisfy the authentication. The generated requests are sorted in preferred order. Each request is generated as it is enumerated to. Associations are created only as is called. No exception is thrown if no OpenID endpoints were discovered. An empty enumerable is returned instead. Requires an HttpContext.Current context. Thrown if HttpContext.Current == null. Gets an authentication response from a Provider. The processed authentication response if there is any; null otherwise. Requires an HttpContext.Current context. Gets an authentication response from a Provider. The HTTP request that may be carrying an authentication response from the Provider. The processed authentication response if there is any; null otherwise. Processes the response received in a popup window or iframe to an AJAX-directed OpenID authentication. The HTTP response to send to this HTTP request. Requires an HttpContext.Current context. Processes the response received in a popup window or iframe to an AJAX-directed OpenID authentication. The incoming HTTP request that is expected to carry an OpenID authentication response. The HTTP response to send to this HTTP request. Allows an OpenID extension to read data out of an unverified positive authentication assertion and send it down to the client browser so that Javascript running on the page can perform some preprocessing on the extension data. The extension response type that will read data from the assertion. The property name on the openid_identifier input box object that will be used to store the extension data. For example: sreg This method should be called before . Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Determines whether some parameter name belongs to OpenID or this library as a protocol or internal parameter name. Name of the parameter. true if the named parameter is a library- or protocol-specific parameter; otherwise, false. Creates a relying party that does not verify incoming messages against nonce or association stores. The instantiated . Useful for previewing messages while allowing them to be fully processed and verified later. Processes the response received in a popup window or iframe to an AJAX-directed OpenID authentication. The incoming HTTP request that is expected to carry an OpenID authentication response. The callback fired after the response status has been determined but before the Javascript response is formulated. The HTTP response to send to this HTTP request. Performs discovery on the specified identifier. The identifier to discover services for. A non-null sequence of services discovered for the identifier. Checks whether a given OP Endpoint is permitted by the host relying party. The OP endpoint. true if the OP Endpoint is allowed; false otherwise. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Invokes a method on a parent frame or window and closes the calling popup window if applicable. The method to call on the parent window, including parameters. (i.e. "callback('arg1', 2)"). No escaping is done by this method. The entire HTTP response to send to the popup window or iframe to perform the invocation. Called by derived classes when behaviors are added or removed. The collection being modified. The instance containing the event data. Gets an XRDS sorting routine that uses the XRDS Service/@Priority attribute to determine order. Endpoints lacking any priority value are sorted to the end of the list. Gets the standard state storage mechanism that uses ASP.NET's HttpApplication state dictionary to store associations and nonces. Gets or sets the channel to use for sending/receiving messages. Gets the security settings used by this Relying Party. Gets the security settings. Gets or sets the optional Provider Endpoint filter to use. Provides a way to optionally filter the providers that may be used in authenticating a user. If provided, the delegate should return true to accept an endpoint, and false to reject it. If null, all identity providers will be accepted. This is the default. Gets or sets the ordering routine that will determine which XRDS Service element to try first Default is . This may never be null. To reset to default behavior this property can be set to the value of . Gets the extension factories. Gets a list of custom behaviors to apply to OpenID actions. Adding behaviors can impact the security settings of this instance in ways that subsequently removing the behaviors will not reverse. Gets the list of services that can perform discovery on identifiers given to this relying party. Gets the web request handler to use for discovery and the part of authentication where direct messages are sent to an untrusted remote party. Gets a value indicating whether this Relying Party can sign its return_to parameter in outgoing authentication requests. Gets the web request handler to use for discovery and the part of authentication where direct messages are sent to an untrusted remote party. Gets the association manager. Gets the instance used to process authentication responses without verifying the assertion or consuming nonces. A serializable snapshot of a verified authentication message. The callback arguments that came with the authentication response. The untrusted callback arguments that came with the authentication response. Initializes a new instance of the class. The authentication response to copy from. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. This MAY return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. This may return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . A very simple IXrdsProviderEndpoint implementation for verifying that all positive assertions (particularly unsolicited ones) are received from OP endpoints that are deemed permissible by the host RP. Initializes a new instance of the class. The positive assertion. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Gets the detected version of OpenID implemented by the Provider. Gets the URL that the OpenID Provider receives authentication requests at. An in-memory store for Relying Parties, suitable for single server, single process ASP.NET web sites. The nonce store to use. The association store to use. Initializes a new instance of the class. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Thrown in the event of a conflict with an existing key in the same bucket and with the same handle. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. Stores a given nonce and timestamp. The context, or namespace, within which the must be unique. A series of random characters. The timestamp that together with the nonce string make it unique. The timestamp may also be used by the data store to clear out old nonces. True if the nonce+timestamp (combination) was not previously in the database. False if the nonce was stored previously with the same timestamp. The nonce must be stored for no less than the maximum time window a message may be processed within before being discarded as an expired message. If the binding element is applicable to your channel, this expiration window is retrieved or set using the property. Common OpenID Provider Identifiers. The Yahoo OP Identifier. The Google OP Identifier. The MyOpenID OP Identifier. The Verisign OP Identifier. The MyVidoop OP Identifier. Prevents a default instance of the class from being created. ================================================ FILE: packages/DotNetOpenAuth.OpenId.RelyingParty.4.3.0.13117/content/web.config.transform ================================================ ================================================ FILE: packages/DotNetOpenAuth.OpenId.RelyingParty.4.3.0.13117/lib/net35-full/DotNetOpenAuth.OpenId.RelyingParty.xml ================================================ DotNetOpenAuth.OpenId.RelyingParty The COM interface describing the DotNetOpenAuth functionality available to COM client OpenID relying parties. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. A comma-delimited list of simple registration fields to request as optional. A comma-delimited list of simple registration fields to request as required. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Gets the result of a user agent's visit to his OpenId provider in an authentication attempt. Null if no response is available. The incoming request URL . The form data that may have been included in the case of a POST request. The Provider's response to a previous authentication request, or null if no response is present. An Attribute Exchange and Simple Registration filter to make all incoming attribute requests look like Simple Registration requests, and to convert the response to the originally requested extension and format. Initializes a new instance of the class. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when an authentication request is about to be sent. The request. Implementations should be prepared to be called multiple times on the same outgoing message without malfunctioning. Called when an incoming positive assertion is received. The positive assertion. Implements the Identity, Credential, & Access Management (ICAM) OpenID 2.0 Profile for the General Services Administration (GSA). Relying parties that include this profile are always held to the terms required by the profile, but Providers are only affected by the special behaviors of the profile when the RP specifically indicates that they want to use this profile. Initializes a new instance of the class. Applies a well known set of security requirements. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when an authentication request is about to be sent. The request. Called when an incoming positive assertion is received. The positive assertion. The OpenID binding element responsible for reading/writing OpenID extensions at the Relying Party. The security settings that apply to this relying party, if it is a relying party. Initializes a new instance of the class. The extension factory. The security settings. The messaging channel for OpenID relying parties. Initializes a new instance of the class. The association store to use. The nonce store to use. The security settings to apply. Initializes a new instance of the class. The association store to use. The nonce store to use. An object that knows how to distinguish the various OpenID message types for deserialization purposes. The security settings to apply. A value indicating whether the channel is set up with no functional security binding elements. A value indicating whether the channel is set up with no functional security binding elements. A new instance that will not perform verification on incoming messages or apply any security to outgoing messages. A value of true allows the relying party to preview incoming messages without invalidating nonces or checking signatures. Setting this to true poses a great security risk and is only present to support the OpenIdAjaxTextBox which needs to preview messages, and will validate them later. Initializes the binding elements. The crypto key store. The nonce store to use. The security settings to apply. Must be an instance of either or ProviderSecuritySettings. A value indicating whether the channel is set up with no functional security binding elements. An array of binding elements which may be used to construct the channel. Message factory for OpenID Relying Parties. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Helps ensure compliance to some properties in the . The security settings that are active on the relying party. Initializes a new instance of the class. The security settings. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. The signing binding element for OpenID Relying Parties. The association store used by Relying Parties to look up the secrets needed for signing. Initializes a new instance of the class. The association store used to look up the secrets needed for signing. May be null for dumb Relying Parties. Gets a specific association referenced in a given message's association handle. The signed message whose association handle should be used to lookup the association to return. The referenced association; or null if such an association cannot be found. Gets the association to use to sign or verify a message. The message to sign or verify. The association to use to sign or verify the message. Verifies the signature by unrecognized handle. The message. The signed message. The protections applied. The applied protections. This binding element adds a nonce to a Relying Party's outgoing authentication request when working against an OpenID 1.0 Provider in order to protect against replay attacks or on all authentication requests to distinguish solicited from unsolicited assertions. This nonce goes beyond the OpenID 1.x spec, but adds to security. Since this library's Provider implementation also provides special nonce protection for 1.0 messages, this security feature overlaps with that one. This means that if an RP from this library were talking to an OP from this library, but the Identifier being authenticated advertised the OP as a 1.x OP, then both RP and OP might try to use a nonce for protecting the assertion. There's no problem with that--it will still all work out. And it would be a very rare combination of elements anyway. This binding element deactivates itself for OpenID 2.0 (or later) messages since they are automatically protected in the protocol by the Provider's openid.response_nonce parameter. The exception to this is when is set to true, which will not only add a request nonce to every outgoing authentication request but also require that it be present in positive assertions, effectively disabling unsolicited assertions. In the messaging stack, this binding element looks like an ordinary transform-type of binding element rather than a protection element, due to its required order in the channel stack and that it exists only on the RP side and only on some messages. The context within which return_to nonces must be unique -- they all go into the same bucket. The length of the generated nonce's random part. The nonce store that will allow us to recall which nonces we've seen before. The security settings at the RP. Backing field for the property. Initializes a new instance of the class. The nonce store to use. The security settings of the RP. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Determines whether a request nonce should be applied the request or should be expected in the response. The authentication request or the positive assertion response. true if the message exchanged with an OpenID 1.x provider or if unsolicited assertions should be rejected at the RP; otherwise false. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection offered (if any) by this binding element. Gets the maximum message age from the standard expiration binding element. A special DotNetOpenAuth-only nonce used by the RP when talking to 1.0 OPs in order to protect against replay attacks. The random bits generated for the nonce. Initializes a new instance of the class. The creation date of the nonce. The random bits that help make the nonce unique. Creates a new nonce. The newly instantiated instance. Deserializes a nonce from the return_to parameter. The base64-encoded value of the nonce. The instantiated and initialized nonce. Serializes the entire nonce for adding to the return_to URL. The base64-encoded string representing the nonce. Gets the creation date. Gets the random part of the nonce as a base64 encoded string. A set of methods designed to assist in improving interop across different OpenID implementations and their extensions. Adds an Attribute Exchange (AX) extension to the authentication request that asks for the same attributes as the Simple Registration (sreg) extension that is already applied. The authentication request. The attribute formats to use in the AX request. If discovery on the user-supplied identifier yields hints regarding which extensions and attribute formats the Provider supports, this method MAY ignore the argument and accomodate the Provider to minimize the size of the request. If the request does not carry an sreg extension, the method logs a warning but otherwise quietly returns doing nothing. Looks for Simple Registration and Attribute Exchange (all known formats) response extensions and returns them as a Simple Registration extension. The authentication response. if set to true unsigned extensions will be included in the search. The Simple Registration response if found, or a fabricated one based on the Attribute Exchange extension if found, or just an empty if there was no data. Never null. Gets the attribute value if available. The AX fetch response extension to look for the attribute value. The type URI of the attribute, using the axschema.org format of . The AX type URI formats to search. The first value of the attribute, if available. Tries to find the exact format of AX attribute Type URI supported by the Provider. The authentication request. The attribute formats the RP will try if this discovery fails. The AX format(s) to use based on the Provider's advertised AX support. The discovery service to support host-meta based discovery, such as Google Apps for Domains. The spec for this discovery mechanism can be found at: http://groups.google.com/group/google-federated-login-api/web/openid-discovery-for-hosted-domains and the XMLDSig spec referenced in that spec can be found at: http://wiki.oasis-open.org/xri/XrdOne/XmlDsigProfile Path to the well-known location of the host-meta document at a domain. The URI template for discovery host-meta on domains hosted by Google Apps for Domains. The pattern within a host-meta file to look for to obtain the URI to the XRDS document. A set of certificate thumbprints that have been verified. Initializes a new instance of the class. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. Gets the XRD elements that have a given CanonicalID. The XRDS document. The CanonicalID to match on. A sequence of XRD elements. Gets the described-by services in XRD elements. The XRDs to search. A sequence of services. Gets the services for an identifier that are described by an external XRDS document. The XRD elements to search for described-by services. The identifier under discovery. The request handler. The discovered services. Validates the XML digital signature on an XRDS document. The XRDS document whose signature should be validated. The identifier under discovery. The response. The host name on the certificate that should be used to verify the signature in the XRDS. Thrown if the XRDS document has an invalid or a missing signature. Verifies the cert chain. The certs. This must be in a method of its own because there is a LinkDemand on the method. By being in a method of its own, the caller of this method may catch a that is thrown if we're not running with full trust and execute an alternative plan. Thrown if the certificate chain is invalid or unverifiable. Gets the XRDS HTTP response for a given identifier. The identifier. The request handler. The location of the XRDS document to retrieve. A HTTP response carrying an XRDS document. Thrown if the XRDS document could not be obtained. Verifies that a certificate chain is trusted. The chain of certificates to verify. Gets the XRDS HTTP response for a given identifier. The identifier. The request handler. The host name on the certificate that should be used to verify the signature in the XRDS. A HTTP response carrying an XRDS document, or null if one could not be obtained. Thrown if the XRDS document could not be obtained. Gets the location of the XRDS document that describes a given identifier. The identifier under discovery. The request handler. The host name on the certificate that should be used to verify the signature in the XRDS. An absolute URI, or null if one could not be determined. Gets the host-meta for a given identifier. The identifier. The request handler. The host name on the certificate that should be used to verify the signature in the XRDS. The host-meta response, or null if no host-meta document could be obtained. Gets the URIs authorized to host host-meta documents on behalf of a given domain. The identifier. A sequence of URIs that MAY provide the host-meta for a given identifier. Gets the set of URI templates to use to contact host-meta hosting proxies for domain discovery. Gets or sets a value indicating whether to trust Google to host domains' host-meta documents. This property is just a convenient mechanism for checking or changing the set of trusted host-meta proxies in the property. A description of a web server that hosts host-meta documents. Initializes a new instance of the class. The proxy formatting string. The signing host formatting string. Gets the absolute proxy URI. The identifier being discovered. The an absolute URI. Gets the signing host URI. The identifier being discovered. A host name. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Gets the URL of the host-meta proxy. The absolute proxy URL, which may include {0} to be replaced with the host of the identifier to be discovered. Gets the formatting string to determine the expected host name on the certificate that is expected to be used to sign the XRDS document. Either a string literal, or a formatting string where these placeholders may exist: {0} the host on the identifier discovery was originally performed on; {1} the host on this proxy. The COM type used to provide details of an authentication result to a relying party COM client. The response read in by the Relying Party. Initializes a new instance of the class. The response. Gets an Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the provider endpoint that sent the assertion. Gets a value indicating whether the authentication attempt succeeded. Gets the Simple Registration response. Gets details regarding a failed authentication attempt, if available. A struct storing Simple Registration field values describing an authenticating user. The Simple Registration claims response message that this shim wraps. Initializes a new instance of the class. The Simple Registration response to wrap. Gets the nickname the user goes by. Gets the user's email address. Gets the full name of a user as a single string. Gets the raw birth date string given by the extension. A string in the format yyyy-MM-dd. Gets the gender of the user. Gets the zip code / postal code of the user. Gets the country of the user. Gets the primary/preferred language of the user. Gets the user's timezone. Implementation of , providing a subset of the functionality available to .NET clients. The OpenIdRelyingParty instance to use for requests. Initializes static members of the class. Initializes a new instance of the class. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. A comma-delimited list of simple registration fields to request as optional. A comma-delimited list of simple registration fields to request as required. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Gets the result of a user agent's visit to his OpenId provider in an authentication attempt. Null if no response is available. The incoming request URL. The form data that may have been included in the case of a POST request. The Provider's response to a previous authentication request, or null if no response is present. The successful Diffie-Hellman association response message. Association response messages are described in OpenID 2.0 section 8.2. This type covers section 8.2.3. A successful association response as it is received by the relying party. Called to create the Association based on a request previously given by the Relying Party. The prior request for an association. The created association. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Creates the association at relying party side after the association response has been received. The original association request that was already sent and responded to. The newly created association. The resulting association is not added to the association store and must be done by the caller. Utility methods for requesting associations from the relying party. Creates an association request message that is appropriate for a given Provider. The set of requirements the selected association type must comply to. The provider to create an association with. The message to send to the Provider to request an association. Null if no association could be created that meet the security requirements and the provider OpenID version. Creates an association request message that is appropriate for a given Provider. The set of requirements the selected association type must comply to. The provider to create an association with. Type of the association. Type of the session. The message to send to the Provider to request an association. Null if no association could be created that meet the security requirements and the provider OpenID version. Code contract for the interface. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Thrown if the message is invalid. Called to create the Association based on a request previously given by the Relying Party. The prior request for an association. The created association. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the version of the protocol or extension this message is prepared to implement. Gets the extra, non-standard Protocol parameters included in the message. A response to an unencrypted assocation request, as it is received by the relying party. Initializes a new instance of the class. The version. The request. Called to create the Association based on a request previously given by the Relying Party. The prior request for an association. The created association. Wraps a standard so that it behaves as an association store. Stores s for lookup by their handle, keeping associations separated by a given OP Endpoint. Expired associations should be periodically cleared out of an association store. This should be done frequently enough to avoid a memory leak, but sparingly enough to not be a performance drain. Because this balance can vary by host, it is the responsibility of the host to initiate this cleaning. Saves an for later recall. The OP Endpoint with which the association is established. The association to store. If the new association conflicts (in OP endpoint and association handle) with an existing association, (which should never happen by the way) implementations may overwrite the previously saved association. Gets the best association (the one with the longest remaining life) for a given key. The OP Endpoint with which the association is established. The security requirements that the returned association must meet. The requested association, or null if no unexpired s exist for the given key. In the event that multiple associations exist for the given , it is important for the implementation for this method to use the to pick the best (highest grade or longest living as the host's policy may dictate) association that fits the security requirements. Associations that are returned that do not meet the security requirements will be ignored and a new association created. Gets the association for a given key and handle. The OP Endpoint with which the association is established. The handle of the specific association that must be recalled. The requested association, or null if no unexpired s exist for the given key and handle. Removes a specified handle that may exist in the store. The OP Endpoint with which the association is established. The handle of the specific association that must be deleted. Deprecated. The return value is insignificant. Previously: True if the association existed in this store previous to this call. No exception should be thrown if the association does not exist in the store before this call. The underlying key store. Initializes a new instance of the class. The key store. Saves an for later recall. The OP Endpoint with which the association is established. The association to store. Gets the best association (the one with the longest remaining life) for a given key. The OP Endpoint with which the association is established. The security requirements that the returned association must meet. The requested association, or null if no unexpired s exist for the given key. Gets the association for a given key and handle. The OP Endpoint with which the association is established. The handle of the specific association that must be recalled. The requested association, or null if no unexpired s exist for the given key and handle. Removes a specified handle that may exist in the store. The OP Endpoint with which the association is established. The handle of the specific association that must be deleted. True if the association existed in this store previous to this call. Constants used in implementing support for the UI extension. Gets the window.open javascript snippet to use to open a popup window compliant with the UI extension. The relying party. The authentication request to place in the window. The name to assign to the popup window. A string starting with 'window.open' and forming just that one method call. Code Contract for the class. Saves an for later recall. The Uri (for relying parties) or Smart/Dumb (for providers). The association to store. TODO: what should implementations do on association handle conflict? Gets the best association (the one with the longest remaining life) for a given key. The Uri (for relying parties) or Smart/Dumb (for Providers). The security requirements that the returned association must meet. The requested association, or null if no unexpired s exist for the given key. In the event that multiple associations exist for the given , it is important for the implementation for this method to use the to pick the best (highest grade or longest living as the host's policy may dictate) association that fits the security requirements. Associations that are returned that do not meet the security requirements will be ignored and a new association created. Gets the association for a given key and handle. The Uri (for relying parties) or Smart/Dumb (for Providers). The handle of the specific association that must be recalled. The requested association, or null if no unexpired s exist for the given key and handle. Removes a specified handle that may exist in the store. The Uri (for relying parties) or Smart/Dumb (for Providers). The handle of the specific association that must be deleted. True if the association existed in this store previous to this call. No exception should be thrown if the association does not exist in the store before this call. A dictionary of handle/Association pairs. Each method is locked, even if it is only one line, so that they are thread safe against each other, particularly the ones that enumerate over the list, since they can break if the collection is changed by another thread during enumeration. The lookup table where keys are the association handles and values are the associations themselves. Initializes a new instance of the class. Stores an in the collection. The association to add to the collection. Returns the with the given handle. Null if not found. The handle to the required association. The desired association, or null if none with the given handle could be found. Removes the with the given handle. The handle to the required association. Whether an with the given handle was in the collection for removal. Removes all expired associations from the collection. Gets the s ordered in order of descending issue date (most recently issued comes first). An empty sequence if no valid associations exist. This property is used by relying parties that are initiating authentication requests. It does not apply to Providers, which always need a specific association by handle. Manages the establishment, storage and retrieval of associations at the relying party. The storage to use for saving and retrieving associations. May be null. Backing field for the property. Backing field for the property. Initializes a new instance of the class. The channel the relying party is using. The association store. May be null for dumb mode relying parties. The security settings. Gets an association between this Relying Party and a given Provider if it already exists in the association store. The provider to create an association with. The association if one exists and has useful life remaining. Otherwise null. Gets an existing association with the specified Provider, or attempts to create a new association of one does not already exist. The provider to get an association for. The existing or new association; null if none existed and one could not be created. Creates a new association with a given Provider. The provider to create an association with. The newly created association, or null if no association can be created with the given Provider given the current security settings. A new association is created and returned even if one already exists in the association store. Any new association is automatically added to the . Creates a new association with a given Provider. The provider to create an association with. The associate request. May be null, which will always result in a null return value.. The number of times to try the associate request again if the Provider suggests it. The newly created association, or null if no association can be created with the given Provider given the current security settings. Gets or sets the channel to use for establishing associations. The channel. Gets or sets the security settings to apply in choosing association types to support. Gets a value indicating whether this instance has an association store. true if the relying party can act in 'smart' mode; false if the relying party must always act in 'dumb' mode. Gets the storage to use for saving and retrieving associations. May be null. Preferences regarding creation and use of an association between a relying party and provider for authentication. Indicates that an association should be created for use in authentication if one has not already been established between the relying party and the selected provider. Even with this value, if an association attempt fails or the relying party has no application store to recall associations, the authentication may proceed without an association. Indicates that an association should be used for authentication only if it happens to already exist. Indicates that an authentication attempt should NOT use an OpenID association between the relying party and the provider, even if an association was previously created. Facilitates customization and creation and an authentication request that a Relying Party is preparing to send. The name of the internal callback parameter to use to store the user-supplied identifier. The relying party that created this request object. How an association may or should be created or used in the formulation of the authentication request. The extensions that have been added to this authentication request. Arguments to add to the return_to part of the query string, so that these values come back to the consumer when the user agent returns. A value indicating whether the return_to callback arguments must be signed. This field defaults to false, but is set to true as soon as the first callback argument is added that indicates it must be signed. At which point, all arguments are signed even if individual ones did not need to be. Initializes a new instance of the class. The endpoint that describes the OpenID Identifier and Provider that will complete the authentication. The realm, or root URL, of the host web site. The base return_to URL that the Provider should return the user to to complete authentication. This should not include callback parameters as these should be added using the method. The relying party that created this instance. Makes a dictionary of key/value pairs available when the authentication is completed. The arguments to add to the request's return_to URI. Note that these values are NOT protected against eavesdropping in transit. No privacy-sensitive data should be stored using this method. The values stored here can be retrieved using , which will only return the value if it hasn't been tampered with in transit. Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed. The parameter name. The value of the argument. Note that these values are NOT protected against eavesdropping in transit. No privacy-sensitive data should be stored using this method. The value stored here can be retrieved using , which will only return the value if it hasn't been tampered with in transit. Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against tampering in transit. No security-sensitive data should be stored using this method. The value stored here can be retrieved using . Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed without requiring a return_to signature to protect against tampering of the callback argument. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against eavesdropping or tampering in transit. No security-sensitive data should be stored using this method. The value stored here can be retrieved using . Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Adds an OpenID extension to the request directed at the OpenID provider. The initialized extension to add to the request. Redirects the user agent to the provider for authentication. This method requires an ASP.NET HttpContext. Performs identifier discovery, creates associations and generates authentication requests on-demand for as long as new ones can be generated based on the results of Identifier discovery. The user supplied identifier. The relying party. The realm. The return_to base URL. if set to true, associations that do not exist between this Relying Party and the asserting Providers are created before the authentication request is created. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. Creates an instance of FOR TESTING PURPOSES ONLY. The discovery result. The realm. The return to. The relying party. The instantiated . Creates the request message to send to the Provider, based on the properties in this instance. The message to send to the Provider. Performs deferred request generation for the method. The user supplied identifier. The relying party. The realm. The return_to base URL. The discovered service endpoints on the Claimed Identifier. if set to true, associations that do not exist between this Relying Party and the asserting Providers are created before the authentication request is created. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. All data validation and cleansing steps must have ALREADY taken place before calling this method. Returns a filtered and sorted list of the available OP endpoints for a discovered Identifier. The endpoints. The relying party. A filtered and sorted list of endpoints; may be empty if the input was empty or the filter removed all endpoints. Creates the request message to send to the Provider, based on the properties in this instance. The message to send to the Provider. Gets the association to use for this authentication request. The association to use; null to use 'dumb mode'. Gets or sets the mode the Provider should use during authentication. Gets the HTTP response the relying party should send to the user agent to redirect it to the OpenID Provider to start the OpenID authentication process. Gets the URL that the user agent will return to after authentication completes or fails at the Provider. Gets the URL that identifies this consumer web application that the Provider will display to the end user. Gets the Claimed Identifier that the User Supplied Identifier resolved to. Null if the user provided an OP Identifier (directed identity). Null is returned if the user is using the directed identity feature of OpenID 2.0 to make it nearly impossible for a relying party site to improperly store the reserved OpenID URL used for directed identity as a user's own Identifier. However, to test for the Directed Identity feature, please test the property rather than testing this property for a null value. Gets a value indicating whether the authenticating user has chosen to let the Provider determine and send the ClaimedIdentifier after authentication. Gets or sets a value indicating whether this request only carries extensions and is not a request to verify that the user controls some identifier. true if this request is merely a carrier of extensions and is not about an OpenID identifier; otherwise, false. Gets information about the OpenId Provider, as advertised by the OpenId discovery documents found at the location. Gets the discovery result leading to the formulation of this request. The discovery result. Gets or sets how an association may or should be created or used in the formulation of the authentication request. Gets the extensions that have been added to the request. Gets the list of extensions for this request. An authentication request comparer that judges equality solely on the OP endpoint hostname. The singleton instance of this comparer. Prevents a default instance of the class from being created. Determines whether the specified objects are equal. The first object to compare. The second object to compare. true if the specified objects are equal; otherwise, false. Returns a hash code for the specified object. The for which a hash code is to be returned. A hash code for the specified object. The type of is a reference type and is null. Gets the singleton instance of this comparer. Wraps a negative assertion response in an instance for public consumption by the host web site. An interface to expose useful properties and functionality for handling authentication responses that are returned from Immediate authentication requests that require a subsequent request to be made in non-immediate mode. Gets the to pass to in a subsequent authentication attempt. The negative assertion message that was received by the RP that was used to create this instance. Initializes a new instance of the class. The negative assertion response received by the Relying Party. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. This may return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. This MAY return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Gets the to pass to in a subsequent authentication attempt. Wraps an extension-only response from the OP in an instance for public consumption by the host web site. Backin field for the property. Information about the OP endpoint that issued this assertion. Initializes a new instance of the class. The response message. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode null is always returned since the callback arguments could not be signed to protect against tampering. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode an empty dictionary is always returned since the callback arguments could not be signed to protect against tampering. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode an empty dictionary is always returned since the callback arguments could not be signed to protect against tampering. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Gets a value indicating whether trusted callback arguments are available. We use this internally to avoid logging a warning during a standard snapshot creation. Gets the positive extension-only message the Relying Party received that this instance wraps. Wraps a positive assertion response in an instance for public consumption by the host web site. Initializes a new instance of the class. The positive assertion response that was just received by the Relying Party. The relying party. Verifies that the positive assertion data matches the results of discovery on the Claimed Identifier. The relying party. Thrown when the Provider is asserting that a user controls an Identifier when discovery on that Identifier contradicts what the Provider says. This would be an indication of either a misconfigured Provider or an attempt by someone to spoof another user's identity with a rogue Provider. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets the OpenID service endpoint reconstructed from the assertion message. This information is straight from the Provider, and therefore must not be trusted until verified as matching the discovery information for the claimed identifier to avoid a Provider asserting an Identifier for which it has no authority. Gets the positive assertion response message. Wraps a failed authentication response in an instance for public consumption by the host web site. Initializes a new instance of the class. The exception that resulted in the failed authentication. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. This MAY return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. This may return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Code contract class for the type. Initializes a new instance of the class. Gets the to pass to in a subsequent authentication attempt. A delegate that decides whether a given OpenID Provider endpoint may be considered for authenticating a user. The endpoint for consideration. True if the endpoint should be considered. False to remove it from the pool of acceptable providers. Provides the programmatic facilities to act as an OpenID relying party. The name of the key to use in the HttpApplication cache to store the instance of to use. Backing store for the property. The discovery services to use for identifiers. Backing field for the property. The lock to obtain when initializing the member. A dictionary of extension response types and the javascript member name to map them to on the user agent. Backing field for the property. Backing store for the property. Backing field for the property. Initializes a new instance of the class. Initializes a new instance of the class. The application store. If null, the relying party will always operate in "stateless/dumb mode". Initializes a new instance of the class. The association store. If null, the relying party will always operate in "stateless/dumb mode". The nonce store to use. If null, the relying party will always operate in "stateless/dumb mode". Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. An authentication request object to customize the request and generate an object to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Requires an HttpContext.Current context. Thrown if no OpenID endpoint could be found. Thrown if HttpContext.Current == null. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Requires an HttpContext.Current context. Thrown if no OpenID endpoint could be found. Thrown if HttpContext.Current == null. Generates the authentication requests that can satisfy the requirements of some OpenID Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. Any individual generated request can satisfy the authentication. The generated requests are sorted in preferred order. Each request is generated as it is enumerated to. Associations are created only as is called. No exception is thrown if no OpenID endpoints were discovered. An empty enumerable is returned instead. Generates the authentication requests that can satisfy the requirements of some OpenID Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. Any individual generated request can satisfy the authentication. The generated requests are sorted in preferred order. Each request is generated as it is enumerated to. Associations are created only as is called. No exception is thrown if no OpenID endpoints were discovered. An empty enumerable is returned instead. Requires an HttpContext.Current context. Thrown if HttpContext.Current == null. Generates the authentication requests that can satisfy the requirements of some OpenID Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. Any individual generated request can satisfy the authentication. The generated requests are sorted in preferred order. Each request is generated as it is enumerated to. Associations are created only as is called. No exception is thrown if no OpenID endpoints were discovered. An empty enumerable is returned instead. Requires an HttpContext.Current context. Thrown if HttpContext.Current == null. Gets an authentication response from a Provider. The processed authentication response if there is any; null otherwise. Requires an HttpContext.Current context. Gets an authentication response from a Provider. The HTTP request that may be carrying an authentication response from the Provider. The processed authentication response if there is any; null otherwise. Processes the response received in a popup window or iframe to an AJAX-directed OpenID authentication. The HTTP response to send to this HTTP request. Requires an HttpContext.Current context. Processes the response received in a popup window or iframe to an AJAX-directed OpenID authentication. The incoming HTTP request that is expected to carry an OpenID authentication response. The HTTP response to send to this HTTP request. Allows an OpenID extension to read data out of an unverified positive authentication assertion and send it down to the client browser so that Javascript running on the page can perform some preprocessing on the extension data. The extension response type that will read data from the assertion. The property name on the openid_identifier input box object that will be used to store the extension data. For example: sreg This method should be called before . Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Determines whether some parameter name belongs to OpenID or this library as a protocol or internal parameter name. Name of the parameter. true if the named parameter is a library- or protocol-specific parameter; otherwise, false. Creates a relying party that does not verify incoming messages against nonce or association stores. The instantiated . Useful for previewing messages while allowing them to be fully processed and verified later. Processes the response received in a popup window or iframe to an AJAX-directed OpenID authentication. The incoming HTTP request that is expected to carry an OpenID authentication response. The callback fired after the response status has been determined but before the Javascript response is formulated. The HTTP response to send to this HTTP request. Performs discovery on the specified identifier. The identifier to discover services for. A non-null sequence of services discovered for the identifier. Checks whether a given OP Endpoint is permitted by the host relying party. The OP endpoint. true if the OP Endpoint is allowed; false otherwise. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Invokes a method on a parent frame or window and closes the calling popup window if applicable. The method to call on the parent window, including parameters. (i.e. "callback('arg1', 2)"). No escaping is done by this method. The entire HTTP response to send to the popup window or iframe to perform the invocation. Called by derived classes when behaviors are added or removed. The collection being modified. The instance containing the event data. Gets an XRDS sorting routine that uses the XRDS Service/@Priority attribute to determine order. Endpoints lacking any priority value are sorted to the end of the list. Gets the standard state storage mechanism that uses ASP.NET's HttpApplication state dictionary to store associations and nonces. Gets or sets the channel to use for sending/receiving messages. Gets the security settings used by this Relying Party. Gets the security settings. Gets or sets the optional Provider Endpoint filter to use. Provides a way to optionally filter the providers that may be used in authenticating a user. If provided, the delegate should return true to accept an endpoint, and false to reject it. If null, all identity providers will be accepted. This is the default. Gets or sets the ordering routine that will determine which XRDS Service element to try first Default is . This may never be null. To reset to default behavior this property can be set to the value of . Gets the extension factories. Gets a list of custom behaviors to apply to OpenID actions. Adding behaviors can impact the security settings of this instance in ways that subsequently removing the behaviors will not reverse. Gets the list of services that can perform discovery on identifiers given to this relying party. Gets the web request handler to use for discovery and the part of authentication where direct messages are sent to an untrusted remote party. Gets a value indicating whether this Relying Party can sign its return_to parameter in outgoing authentication requests. Gets the web request handler to use for discovery and the part of authentication where direct messages are sent to an untrusted remote party. Gets the association manager. Gets the instance used to process authentication responses without verifying the assertion or consuming nonces. A serializable snapshot of a verified authentication message. The callback arguments that came with the authentication response. The untrusted callback arguments that came with the authentication response. Initializes a new instance of the class. The authentication response to copy from. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. This MAY return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. This may return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . A very simple IXrdsProviderEndpoint implementation for verifying that all positive assertions (particularly unsolicited ones) are received from OP endpoints that are deemed permissible by the host RP. Initializes a new instance of the class. The positive assertion. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Gets the detected version of OpenID implemented by the Provider. Gets the URL that the OpenID Provider receives authentication requests at. An in-memory store for Relying Parties, suitable for single server, single process ASP.NET web sites. The nonce store to use. The association store to use. Initializes a new instance of the class. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Thrown in the event of a conflict with an existing key in the same bucket and with the same handle. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. Stores a given nonce and timestamp. The context, or namespace, within which the must be unique. A series of random characters. The timestamp that together with the nonce string make it unique. The timestamp may also be used by the data store to clear out old nonces. True if the nonce+timestamp (combination) was not previously in the database. False if the nonce was stored previously with the same timestamp. The nonce must be stored for no less than the maximum time window a message may be processed within before being discarded as an expired message. If the binding element is applicable to your channel, this expiration window is retrieved or set using the property. Common OpenID Provider Identifiers. The Yahoo OP Identifier. The Google OP Identifier. The MyOpenID OP Identifier. The Verisign OP Identifier. The MyVidoop OP Identifier. Prevents a default instance of the class from being created. ================================================ FILE: packages/DotNetOpenAuth.OpenId.RelyingParty.4.3.0.13117/lib/net40-full/DotNetOpenAuth.OpenId.RelyingParty.xml ================================================ DotNetOpenAuth.OpenId.RelyingParty The COM interface describing the DotNetOpenAuth functionality available to COM client OpenID relying parties. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. A comma-delimited list of simple registration fields to request as optional. A comma-delimited list of simple registration fields to request as required. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Gets the result of a user agent's visit to his OpenId provider in an authentication attempt. Null if no response is available. The incoming request URL . The form data that may have been included in the case of a POST request. The Provider's response to a previous authentication request, or null if no response is present. An Attribute Exchange and Simple Registration filter to make all incoming attribute requests look like Simple Registration requests, and to convert the response to the originally requested extension and format. Initializes a new instance of the class. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when an authentication request is about to be sent. The request. Implementations should be prepared to be called multiple times on the same outgoing message without malfunctioning. Called when an incoming positive assertion is received. The positive assertion. Implements the Identity, Credential, & Access Management (ICAM) OpenID 2.0 Profile for the General Services Administration (GSA). Relying parties that include this profile are always held to the terms required by the profile, but Providers are only affected by the special behaviors of the profile when the RP specifically indicates that they want to use this profile. Initializes a new instance of the class. Applies a well known set of security requirements. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when an authentication request is about to be sent. The request. Called when an incoming positive assertion is received. The positive assertion. The OpenID binding element responsible for reading/writing OpenID extensions at the Relying Party. The security settings that apply to this relying party, if it is a relying party. Initializes a new instance of the class. The extension factory. The security settings. The messaging channel for OpenID relying parties. Initializes a new instance of the class. The association store to use. The nonce store to use. The security settings to apply. Initializes a new instance of the class. The association store to use. The nonce store to use. An object that knows how to distinguish the various OpenID message types for deserialization purposes. The security settings to apply. A value indicating whether the channel is set up with no functional security binding elements. A value indicating whether the channel is set up with no functional security binding elements. A new instance that will not perform verification on incoming messages or apply any security to outgoing messages. A value of true allows the relying party to preview incoming messages without invalidating nonces or checking signatures. Setting this to true poses a great security risk and is only present to support the OpenIdAjaxTextBox which needs to preview messages, and will validate them later. Initializes the binding elements. The crypto key store. The nonce store to use. The security settings to apply. Must be an instance of either or ProviderSecuritySettings. A value indicating whether the channel is set up with no functional security binding elements. An array of binding elements which may be used to construct the channel. Message factory for OpenID Relying Parties. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Helps ensure compliance to some properties in the . The security settings that are active on the relying party. Initializes a new instance of the class. The security settings. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. The signing binding element for OpenID Relying Parties. The association store used by Relying Parties to look up the secrets needed for signing. Initializes a new instance of the class. The association store used to look up the secrets needed for signing. May be null for dumb Relying Parties. Gets a specific association referenced in a given message's association handle. The signed message whose association handle should be used to lookup the association to return. The referenced association; or null if such an association cannot be found. Gets the association to use to sign or verify a message. The message to sign or verify. The association to use to sign or verify the message. Verifies the signature by unrecognized handle. The message. The signed message. The protections applied. The applied protections. This binding element adds a nonce to a Relying Party's outgoing authentication request when working against an OpenID 1.0 Provider in order to protect against replay attacks or on all authentication requests to distinguish solicited from unsolicited assertions. This nonce goes beyond the OpenID 1.x spec, but adds to security. Since this library's Provider implementation also provides special nonce protection for 1.0 messages, this security feature overlaps with that one. This means that if an RP from this library were talking to an OP from this library, but the Identifier being authenticated advertised the OP as a 1.x OP, then both RP and OP might try to use a nonce for protecting the assertion. There's no problem with that--it will still all work out. And it would be a very rare combination of elements anyway. This binding element deactivates itself for OpenID 2.0 (or later) messages since they are automatically protected in the protocol by the Provider's openid.response_nonce parameter. The exception to this is when is set to true, which will not only add a request nonce to every outgoing authentication request but also require that it be present in positive assertions, effectively disabling unsolicited assertions. In the messaging stack, this binding element looks like an ordinary transform-type of binding element rather than a protection element, due to its required order in the channel stack and that it exists only on the RP side and only on some messages. The context within which return_to nonces must be unique -- they all go into the same bucket. The length of the generated nonce's random part. The nonce store that will allow us to recall which nonces we've seen before. The security settings at the RP. Backing field for the property. Initializes a new instance of the class. The nonce store to use. The security settings of the RP. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Determines whether a request nonce should be applied the request or should be expected in the response. The authentication request or the positive assertion response. true if the message exchanged with an OpenID 1.x provider or if unsolicited assertions should be rejected at the RP; otherwise false. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection offered (if any) by this binding element. Gets the maximum message age from the standard expiration binding element. A special DotNetOpenAuth-only nonce used by the RP when talking to 1.0 OPs in order to protect against replay attacks. The random bits generated for the nonce. Initializes a new instance of the class. The creation date of the nonce. The random bits that help make the nonce unique. Creates a new nonce. The newly instantiated instance. Deserializes a nonce from the return_to parameter. The base64-encoded value of the nonce. The instantiated and initialized nonce. Serializes the entire nonce for adding to the return_to URL. The base64-encoded string representing the nonce. Gets the creation date. Gets the random part of the nonce as a base64 encoded string. A set of methods designed to assist in improving interop across different OpenID implementations and their extensions. Adds an Attribute Exchange (AX) extension to the authentication request that asks for the same attributes as the Simple Registration (sreg) extension that is already applied. The authentication request. The attribute formats to use in the AX request. If discovery on the user-supplied identifier yields hints regarding which extensions and attribute formats the Provider supports, this method MAY ignore the argument and accomodate the Provider to minimize the size of the request. If the request does not carry an sreg extension, the method logs a warning but otherwise quietly returns doing nothing. Looks for Simple Registration and Attribute Exchange (all known formats) response extensions and returns them as a Simple Registration extension. The authentication response. if set to true unsigned extensions will be included in the search. The Simple Registration response if found, or a fabricated one based on the Attribute Exchange extension if found, or just an empty if there was no data. Never null. Gets the attribute value if available. The AX fetch response extension to look for the attribute value. The type URI of the attribute, using the axschema.org format of . The AX type URI formats to search. The first value of the attribute, if available. Tries to find the exact format of AX attribute Type URI supported by the Provider. The authentication request. The attribute formats the RP will try if this discovery fails. The AX format(s) to use based on the Provider's advertised AX support. The discovery service to support host-meta based discovery, such as Google Apps for Domains. The spec for this discovery mechanism can be found at: http://groups.google.com/group/google-federated-login-api/web/openid-discovery-for-hosted-domains and the XMLDSig spec referenced in that spec can be found at: http://wiki.oasis-open.org/xri/XrdOne/XmlDsigProfile Path to the well-known location of the host-meta document at a domain. The URI template for discovery host-meta on domains hosted by Google Apps for Domains. The pattern within a host-meta file to look for to obtain the URI to the XRDS document. A set of certificate thumbprints that have been verified. Initializes a new instance of the class. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. Gets the XRD elements that have a given CanonicalID. The XRDS document. The CanonicalID to match on. A sequence of XRD elements. Gets the described-by services in XRD elements. The XRDs to search. A sequence of services. Gets the services for an identifier that are described by an external XRDS document. The XRD elements to search for described-by services. The identifier under discovery. The request handler. The discovered services. Validates the XML digital signature on an XRDS document. The XRDS document whose signature should be validated. The identifier under discovery. The response. The host name on the certificate that should be used to verify the signature in the XRDS. Thrown if the XRDS document has an invalid or a missing signature. Verifies the cert chain. The certs. This must be in a method of its own because there is a LinkDemand on the method. By being in a method of its own, the caller of this method may catch a that is thrown if we're not running with full trust and execute an alternative plan. Thrown if the certificate chain is invalid or unverifiable. Gets the XRDS HTTP response for a given identifier. The identifier. The request handler. The location of the XRDS document to retrieve. A HTTP response carrying an XRDS document. Thrown if the XRDS document could not be obtained. Verifies that a certificate chain is trusted. The chain of certificates to verify. Gets the XRDS HTTP response for a given identifier. The identifier. The request handler. The host name on the certificate that should be used to verify the signature in the XRDS. A HTTP response carrying an XRDS document, or null if one could not be obtained. Thrown if the XRDS document could not be obtained. Gets the location of the XRDS document that describes a given identifier. The identifier under discovery. The request handler. The host name on the certificate that should be used to verify the signature in the XRDS. An absolute URI, or null if one could not be determined. Gets the host-meta for a given identifier. The identifier. The request handler. The host name on the certificate that should be used to verify the signature in the XRDS. The host-meta response, or null if no host-meta document could be obtained. Gets the URIs authorized to host host-meta documents on behalf of a given domain. The identifier. A sequence of URIs that MAY provide the host-meta for a given identifier. Gets the set of URI templates to use to contact host-meta hosting proxies for domain discovery. Gets or sets a value indicating whether to trust Google to host domains' host-meta documents. This property is just a convenient mechanism for checking or changing the set of trusted host-meta proxies in the property. A description of a web server that hosts host-meta documents. Initializes a new instance of the class. The proxy formatting string. The signing host formatting string. Gets the absolute proxy URI. The identifier being discovered. The an absolute URI. Gets the signing host URI. The identifier being discovered. A host name. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Gets the URL of the host-meta proxy. The absolute proxy URL, which may include {0} to be replaced with the host of the identifier to be discovered. Gets the formatting string to determine the expected host name on the certificate that is expected to be used to sign the XRDS document. Either a string literal, or a formatting string where these placeholders may exist: {0} the host on the identifier discovery was originally performed on; {1} the host on this proxy. The COM type used to provide details of an authentication result to a relying party COM client. The response read in by the Relying Party. Initializes a new instance of the class. The response. Gets an Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the provider endpoint that sent the assertion. Gets a value indicating whether the authentication attempt succeeded. Gets the Simple Registration response. Gets details regarding a failed authentication attempt, if available. A struct storing Simple Registration field values describing an authenticating user. The Simple Registration claims response message that this shim wraps. Initializes a new instance of the class. The Simple Registration response to wrap. Gets the nickname the user goes by. Gets the user's email address. Gets the full name of a user as a single string. Gets the raw birth date string given by the extension. A string in the format yyyy-MM-dd. Gets the gender of the user. Gets the zip code / postal code of the user. Gets the country of the user. Gets the primary/preferred language of the user. Gets the user's timezone. Implementation of , providing a subset of the functionality available to .NET clients. The OpenIdRelyingParty instance to use for requests. Initializes static members of the class. Initializes a new instance of the class. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. A comma-delimited list of simple registration fields to request as optional. A comma-delimited list of simple registration fields to request as required. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Gets the result of a user agent's visit to his OpenId provider in an authentication attempt. Null if no response is available. The incoming request URL. The form data that may have been included in the case of a POST request. The Provider's response to a previous authentication request, or null if no response is present. The successful Diffie-Hellman association response message. Association response messages are described in OpenID 2.0 section 8.2. This type covers section 8.2.3. A successful association response as it is received by the relying party. Called to create the Association based on a request previously given by the Relying Party. The prior request for an association. The created association. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Creates the association at relying party side after the association response has been received. The original association request that was already sent and responded to. The newly created association. The resulting association is not added to the association store and must be done by the caller. Utility methods for requesting associations from the relying party. Creates an association request message that is appropriate for a given Provider. The set of requirements the selected association type must comply to. The provider to create an association with. The message to send to the Provider to request an association. Null if no association could be created that meet the security requirements and the provider OpenID version. Creates an association request message that is appropriate for a given Provider. The set of requirements the selected association type must comply to. The provider to create an association with. Type of the association. Type of the session. The message to send to the Provider to request an association. Null if no association could be created that meet the security requirements and the provider OpenID version. Code contract for the interface. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Thrown if the message is invalid. Called to create the Association based on a request previously given by the Relying Party. The prior request for an association. The created association. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the version of the protocol or extension this message is prepared to implement. Gets the extra, non-standard Protocol parameters included in the message. A response to an unencrypted assocation request, as it is received by the relying party. Initializes a new instance of the class. The version. The request. Called to create the Association based on a request previously given by the Relying Party. The prior request for an association. The created association. Wraps a standard so that it behaves as an association store. Stores s for lookup by their handle, keeping associations separated by a given OP Endpoint. Expired associations should be periodically cleared out of an association store. This should be done frequently enough to avoid a memory leak, but sparingly enough to not be a performance drain. Because this balance can vary by host, it is the responsibility of the host to initiate this cleaning. Saves an for later recall. The OP Endpoint with which the association is established. The association to store. If the new association conflicts (in OP endpoint and association handle) with an existing association, (which should never happen by the way) implementations may overwrite the previously saved association. Gets the best association (the one with the longest remaining life) for a given key. The OP Endpoint with which the association is established. The security requirements that the returned association must meet. The requested association, or null if no unexpired s exist for the given key. In the event that multiple associations exist for the given , it is important for the implementation for this method to use the to pick the best (highest grade or longest living as the host's policy may dictate) association that fits the security requirements. Associations that are returned that do not meet the security requirements will be ignored and a new association created. Gets the association for a given key and handle. The OP Endpoint with which the association is established. The handle of the specific association that must be recalled. The requested association, or null if no unexpired s exist for the given key and handle. Removes a specified handle that may exist in the store. The OP Endpoint with which the association is established. The handle of the specific association that must be deleted. Deprecated. The return value is insignificant. Previously: True if the association existed in this store previous to this call. No exception should be thrown if the association does not exist in the store before this call. The underlying key store. Initializes a new instance of the class. The key store. Saves an for later recall. The OP Endpoint with which the association is established. The association to store. Gets the best association (the one with the longest remaining life) for a given key. The OP Endpoint with which the association is established. The security requirements that the returned association must meet. The requested association, or null if no unexpired s exist for the given key. Gets the association for a given key and handle. The OP Endpoint with which the association is established. The handle of the specific association that must be recalled. The requested association, or null if no unexpired s exist for the given key and handle. Removes a specified handle that may exist in the store. The OP Endpoint with which the association is established. The handle of the specific association that must be deleted. True if the association existed in this store previous to this call. Constants used in implementing support for the UI extension. Gets the window.open javascript snippet to use to open a popup window compliant with the UI extension. The relying party. The authentication request to place in the window. The name to assign to the popup window. A string starting with 'window.open' and forming just that one method call. Code Contract for the class. Saves an for later recall. The Uri (for relying parties) or Smart/Dumb (for providers). The association to store. TODO: what should implementations do on association handle conflict? Gets the best association (the one with the longest remaining life) for a given key. The Uri (for relying parties) or Smart/Dumb (for Providers). The security requirements that the returned association must meet. The requested association, or null if no unexpired s exist for the given key. In the event that multiple associations exist for the given , it is important for the implementation for this method to use the to pick the best (highest grade or longest living as the host's policy may dictate) association that fits the security requirements. Associations that are returned that do not meet the security requirements will be ignored and a new association created. Gets the association for a given key and handle. The Uri (for relying parties) or Smart/Dumb (for Providers). The handle of the specific association that must be recalled. The requested association, or null if no unexpired s exist for the given key and handle. Removes a specified handle that may exist in the store. The Uri (for relying parties) or Smart/Dumb (for Providers). The handle of the specific association that must be deleted. True if the association existed in this store previous to this call. No exception should be thrown if the association does not exist in the store before this call. A dictionary of handle/Association pairs. Each method is locked, even if it is only one line, so that they are thread safe against each other, particularly the ones that enumerate over the list, since they can break if the collection is changed by another thread during enumeration. The lookup table where keys are the association handles and values are the associations themselves. Initializes a new instance of the class. Stores an in the collection. The association to add to the collection. Returns the with the given handle. Null if not found. The handle to the required association. The desired association, or null if none with the given handle could be found. Removes the with the given handle. The handle to the required association. Whether an with the given handle was in the collection for removal. Removes all expired associations from the collection. Gets the s ordered in order of descending issue date (most recently issued comes first). An empty sequence if no valid associations exist. This property is used by relying parties that are initiating authentication requests. It does not apply to Providers, which always need a specific association by handle. Manages the establishment, storage and retrieval of associations at the relying party. The storage to use for saving and retrieving associations. May be null. Backing field for the property. Backing field for the property. Initializes a new instance of the class. The channel the relying party is using. The association store. May be null for dumb mode relying parties. The security settings. Gets an association between this Relying Party and a given Provider if it already exists in the association store. The provider to create an association with. The association if one exists and has useful life remaining. Otherwise null. Gets an existing association with the specified Provider, or attempts to create a new association of one does not already exist. The provider to get an association for. The existing or new association; null if none existed and one could not be created. Creates a new association with a given Provider. The provider to create an association with. The newly created association, or null if no association can be created with the given Provider given the current security settings. A new association is created and returned even if one already exists in the association store. Any new association is automatically added to the . Creates a new association with a given Provider. The provider to create an association with. The associate request. May be null, which will always result in a null return value.. The number of times to try the associate request again if the Provider suggests it. The newly created association, or null if no association can be created with the given Provider given the current security settings. Gets or sets the channel to use for establishing associations. The channel. Gets or sets the security settings to apply in choosing association types to support. Gets a value indicating whether this instance has an association store. true if the relying party can act in 'smart' mode; false if the relying party must always act in 'dumb' mode. Gets the storage to use for saving and retrieving associations. May be null. Preferences regarding creation and use of an association between a relying party and provider for authentication. Indicates that an association should be created for use in authentication if one has not already been established between the relying party and the selected provider. Even with this value, if an association attempt fails or the relying party has no application store to recall associations, the authentication may proceed without an association. Indicates that an association should be used for authentication only if it happens to already exist. Indicates that an authentication attempt should NOT use an OpenID association between the relying party and the provider, even if an association was previously created. Facilitates customization and creation and an authentication request that a Relying Party is preparing to send. The name of the internal callback parameter to use to store the user-supplied identifier. The relying party that created this request object. How an association may or should be created or used in the formulation of the authentication request. The extensions that have been added to this authentication request. Arguments to add to the return_to part of the query string, so that these values come back to the consumer when the user agent returns. A value indicating whether the return_to callback arguments must be signed. This field defaults to false, but is set to true as soon as the first callback argument is added that indicates it must be signed. At which point, all arguments are signed even if individual ones did not need to be. Initializes a new instance of the class. The endpoint that describes the OpenID Identifier and Provider that will complete the authentication. The realm, or root URL, of the host web site. The base return_to URL that the Provider should return the user to to complete authentication. This should not include callback parameters as these should be added using the method. The relying party that created this instance. Makes a dictionary of key/value pairs available when the authentication is completed. The arguments to add to the request's return_to URI. Note that these values are NOT protected against eavesdropping in transit. No privacy-sensitive data should be stored using this method. The values stored here can be retrieved using , which will only return the value if it hasn't been tampered with in transit. Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed. The parameter name. The value of the argument. Note that these values are NOT protected against eavesdropping in transit. No privacy-sensitive data should be stored using this method. The value stored here can be retrieved using , which will only return the value if it hasn't been tampered with in transit. Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against tampering in transit. No security-sensitive data should be stored using this method. The value stored here can be retrieved using . Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed without requiring a return_to signature to protect against tampering of the callback argument. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against eavesdropping or tampering in transit. No security-sensitive data should be stored using this method. The value stored here can be retrieved using . Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Adds an OpenID extension to the request directed at the OpenID provider. The initialized extension to add to the request. Redirects the user agent to the provider for authentication. This method requires an ASP.NET HttpContext. Performs identifier discovery, creates associations and generates authentication requests on-demand for as long as new ones can be generated based on the results of Identifier discovery. The user supplied identifier. The relying party. The realm. The return_to base URL. if set to true, associations that do not exist between this Relying Party and the asserting Providers are created before the authentication request is created. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. Creates an instance of FOR TESTING PURPOSES ONLY. The discovery result. The realm. The return to. The relying party. The instantiated . Creates the request message to send to the Provider, based on the properties in this instance. The message to send to the Provider. Performs deferred request generation for the method. The user supplied identifier. The relying party. The realm. The return_to base URL. The discovered service endpoints on the Claimed Identifier. if set to true, associations that do not exist between this Relying Party and the asserting Providers are created before the authentication request is created. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. All data validation and cleansing steps must have ALREADY taken place before calling this method. Returns a filtered and sorted list of the available OP endpoints for a discovered Identifier. The endpoints. The relying party. A filtered and sorted list of endpoints; may be empty if the input was empty or the filter removed all endpoints. Creates the request message to send to the Provider, based on the properties in this instance. The message to send to the Provider. Gets the association to use for this authentication request. The association to use; null to use 'dumb mode'. Gets or sets the mode the Provider should use during authentication. Gets the HTTP response the relying party should send to the user agent to redirect it to the OpenID Provider to start the OpenID authentication process. Gets the URL that the user agent will return to after authentication completes or fails at the Provider. Gets the URL that identifies this consumer web application that the Provider will display to the end user. Gets the Claimed Identifier that the User Supplied Identifier resolved to. Null if the user provided an OP Identifier (directed identity). Null is returned if the user is using the directed identity feature of OpenID 2.0 to make it nearly impossible for a relying party site to improperly store the reserved OpenID URL used for directed identity as a user's own Identifier. However, to test for the Directed Identity feature, please test the property rather than testing this property for a null value. Gets a value indicating whether the authenticating user has chosen to let the Provider determine and send the ClaimedIdentifier after authentication. Gets or sets a value indicating whether this request only carries extensions and is not a request to verify that the user controls some identifier. true if this request is merely a carrier of extensions and is not about an OpenID identifier; otherwise, false. Gets information about the OpenId Provider, as advertised by the OpenId discovery documents found at the location. Gets the discovery result leading to the formulation of this request. The discovery result. Gets or sets how an association may or should be created or used in the formulation of the authentication request. Gets the extensions that have been added to the request. Gets the list of extensions for this request. An authentication request comparer that judges equality solely on the OP endpoint hostname. The singleton instance of this comparer. Prevents a default instance of the class from being created. Determines whether the specified objects are equal. The first object to compare. The second object to compare. true if the specified objects are equal; otherwise, false. Returns a hash code for the specified object. The for which a hash code is to be returned. A hash code for the specified object. The type of is a reference type and is null. Gets the singleton instance of this comparer. Wraps a negative assertion response in an instance for public consumption by the host web site. An interface to expose useful properties and functionality for handling authentication responses that are returned from Immediate authentication requests that require a subsequent request to be made in non-immediate mode. Gets the to pass to in a subsequent authentication attempt. The negative assertion message that was received by the RP that was used to create this instance. Initializes a new instance of the class. The negative assertion response received by the Relying Party. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. This may return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. This MAY return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Gets the to pass to in a subsequent authentication attempt. Wraps an extension-only response from the OP in an instance for public consumption by the host web site. Backin field for the property. Information about the OP endpoint that issued this assertion. Initializes a new instance of the class. The response message. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode null is always returned since the callback arguments could not be signed to protect against tampering. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode an empty dictionary is always returned since the callback arguments could not be signed to protect against tampering. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode an empty dictionary is always returned since the callback arguments could not be signed to protect against tampering. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Gets a value indicating whether trusted callback arguments are available. We use this internally to avoid logging a warning during a standard snapshot creation. Gets the positive extension-only message the Relying Party received that this instance wraps. Wraps a positive assertion response in an instance for public consumption by the host web site. Initializes a new instance of the class. The positive assertion response that was just received by the Relying Party. The relying party. Verifies that the positive assertion data matches the results of discovery on the Claimed Identifier. The relying party. Thrown when the Provider is asserting that a user controls an Identifier when discovery on that Identifier contradicts what the Provider says. This would be an indication of either a misconfigured Provider or an attempt by someone to spoof another user's identity with a rogue Provider. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets the OpenID service endpoint reconstructed from the assertion message. This information is straight from the Provider, and therefore must not be trusted until verified as matching the discovery information for the claimed identifier to avoid a Provider asserting an Identifier for which it has no authority. Gets the positive assertion response message. Wraps a failed authentication response in an instance for public consumption by the host web site. Initializes a new instance of the class. The exception that resulted in the failed authentication. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. This MAY return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. This may return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Code contract class for the type. Initializes a new instance of the class. Gets the to pass to in a subsequent authentication attempt. A delegate that decides whether a given OpenID Provider endpoint may be considered for authenticating a user. The endpoint for consideration. True if the endpoint should be considered. False to remove it from the pool of acceptable providers. Provides the programmatic facilities to act as an OpenID relying party. The name of the key to use in the HttpApplication cache to store the instance of to use. Backing store for the property. The discovery services to use for identifiers. Backing field for the property. The lock to obtain when initializing the member. A dictionary of extension response types and the javascript member name to map them to on the user agent. Backing field for the property. Backing store for the property. Backing field for the property. Initializes a new instance of the class. Initializes a new instance of the class. The application store. If null, the relying party will always operate in "stateless/dumb mode". Initializes a new instance of the class. The association store. If null, the relying party will always operate in "stateless/dumb mode". The nonce store to use. If null, the relying party will always operate in "stateless/dumb mode". Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. An authentication request object to customize the request and generate an object to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Requires an HttpContext.Current context. Thrown if no OpenID endpoint could be found. Thrown if HttpContext.Current == null. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Requires an HttpContext.Current context. Thrown if no OpenID endpoint could be found. Thrown if HttpContext.Current == null. Generates the authentication requests that can satisfy the requirements of some OpenID Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. Any individual generated request can satisfy the authentication. The generated requests are sorted in preferred order. Each request is generated as it is enumerated to. Associations are created only as is called. No exception is thrown if no OpenID endpoints were discovered. An empty enumerable is returned instead. Generates the authentication requests that can satisfy the requirements of some OpenID Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. Any individual generated request can satisfy the authentication. The generated requests are sorted in preferred order. Each request is generated as it is enumerated to. Associations are created only as is called. No exception is thrown if no OpenID endpoints were discovered. An empty enumerable is returned instead. Requires an HttpContext.Current context. Thrown if HttpContext.Current == null. Generates the authentication requests that can satisfy the requirements of some OpenID Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. Any individual generated request can satisfy the authentication. The generated requests are sorted in preferred order. Each request is generated as it is enumerated to. Associations are created only as is called. No exception is thrown if no OpenID endpoints were discovered. An empty enumerable is returned instead. Requires an HttpContext.Current context. Thrown if HttpContext.Current == null. Gets an authentication response from a Provider. The processed authentication response if there is any; null otherwise. Requires an HttpContext.Current context. Gets an authentication response from a Provider. The HTTP request that may be carrying an authentication response from the Provider. The processed authentication response if there is any; null otherwise. Processes the response received in a popup window or iframe to an AJAX-directed OpenID authentication. The HTTP response to send to this HTTP request. Requires an HttpContext.Current context. Processes the response received in a popup window or iframe to an AJAX-directed OpenID authentication. The incoming HTTP request that is expected to carry an OpenID authentication response. The HTTP response to send to this HTTP request. Allows an OpenID extension to read data out of an unverified positive authentication assertion and send it down to the client browser so that Javascript running on the page can perform some preprocessing on the extension data. The extension response type that will read data from the assertion. The property name on the openid_identifier input box object that will be used to store the extension data. For example: sreg This method should be called before . Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Determines whether some parameter name belongs to OpenID or this library as a protocol or internal parameter name. Name of the parameter. true if the named parameter is a library- or protocol-specific parameter; otherwise, false. Creates a relying party that does not verify incoming messages against nonce or association stores. The instantiated . Useful for previewing messages while allowing them to be fully processed and verified later. Processes the response received in a popup window or iframe to an AJAX-directed OpenID authentication. The incoming HTTP request that is expected to carry an OpenID authentication response. The callback fired after the response status has been determined but before the Javascript response is formulated. The HTTP response to send to this HTTP request. Performs discovery on the specified identifier. The identifier to discover services for. A non-null sequence of services discovered for the identifier. Checks whether a given OP Endpoint is permitted by the host relying party. The OP endpoint. true if the OP Endpoint is allowed; false otherwise. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Invokes a method on a parent frame or window and closes the calling popup window if applicable. The method to call on the parent window, including parameters. (i.e. "callback('arg1', 2)"). No escaping is done by this method. The entire HTTP response to send to the popup window or iframe to perform the invocation. Called by derived classes when behaviors are added or removed. The collection being modified. The instance containing the event data. Gets an XRDS sorting routine that uses the XRDS Service/@Priority attribute to determine order. Endpoints lacking any priority value are sorted to the end of the list. Gets the standard state storage mechanism that uses ASP.NET's HttpApplication state dictionary to store associations and nonces. Gets or sets the channel to use for sending/receiving messages. Gets the security settings used by this Relying Party. Gets the security settings. Gets or sets the optional Provider Endpoint filter to use. Provides a way to optionally filter the providers that may be used in authenticating a user. If provided, the delegate should return true to accept an endpoint, and false to reject it. If null, all identity providers will be accepted. This is the default. Gets or sets the ordering routine that will determine which XRDS Service element to try first Default is . This may never be null. To reset to default behavior this property can be set to the value of . Gets the extension factories. Gets a list of custom behaviors to apply to OpenID actions. Adding behaviors can impact the security settings of this instance in ways that subsequently removing the behaviors will not reverse. Gets the list of services that can perform discovery on identifiers given to this relying party. Gets the web request handler to use for discovery and the part of authentication where direct messages are sent to an untrusted remote party. Gets a value indicating whether this Relying Party can sign its return_to parameter in outgoing authentication requests. Gets the web request handler to use for discovery and the part of authentication where direct messages are sent to an untrusted remote party. Gets the association manager. Gets the instance used to process authentication responses without verifying the assertion or consuming nonces. A serializable snapshot of a verified authentication message. The callback arguments that came with the authentication response. The untrusted callback arguments that came with the authentication response. Initializes a new instance of the class. The authentication response to copy from. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. This MAY return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. This may return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . A very simple IXrdsProviderEndpoint implementation for verifying that all positive assertions (particularly unsolicited ones) are received from OP endpoints that are deemed permissible by the host RP. Initializes a new instance of the class. The positive assertion. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Gets the detected version of OpenID implemented by the Provider. Gets the URL that the OpenID Provider receives authentication requests at. An in-memory store for Relying Parties, suitable for single server, single process ASP.NET web sites. The nonce store to use. The association store to use. Initializes a new instance of the class. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Thrown in the event of a conflict with an existing key in the same bucket and with the same handle. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. Stores a given nonce and timestamp. The context, or namespace, within which the must be unique. A series of random characters. The timestamp that together with the nonce string make it unique. The timestamp may also be used by the data store to clear out old nonces. True if the nonce+timestamp (combination) was not previously in the database. False if the nonce was stored previously with the same timestamp. The nonce must be stored for no less than the maximum time window a message may be processed within before being discarded as an expired message. If the binding element is applicable to your channel, this expiration window is retrieved or set using the property. Common OpenID Provider Identifiers. The Yahoo OP Identifier. The Google OP Identifier. The MyOpenID OP Identifier. The Verisign OP Identifier. The MyVidoop OP Identifier. Prevents a default instance of the class from being created. ================================================ FILE: packages/DotNetOpenAuth.OpenId.RelyingParty.4.3.0.13117/lib/net45-full/DotNetOpenAuth.OpenId.RelyingParty.xml ================================================ DotNetOpenAuth.OpenId.RelyingParty The COM interface describing the DotNetOpenAuth functionality available to COM client OpenID relying parties. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. A comma-delimited list of simple registration fields to request as optional. A comma-delimited list of simple registration fields to request as required. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Gets the result of a user agent's visit to his OpenId provider in an authentication attempt. Null if no response is available. The incoming request URL . The form data that may have been included in the case of a POST request. The Provider's response to a previous authentication request, or null if no response is present. An Attribute Exchange and Simple Registration filter to make all incoming attribute requests look like Simple Registration requests, and to convert the response to the originally requested extension and format. Initializes a new instance of the class. Applies a well known set of security requirements to a default set of security settings. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when an authentication request is about to be sent. The request. Implementations should be prepared to be called multiple times on the same outgoing message without malfunctioning. Called when an incoming positive assertion is received. The positive assertion. Implements the Identity, Credential, & Access Management (ICAM) OpenID 2.0 Profile for the General Services Administration (GSA). Relying parties that include this profile are always held to the terms required by the profile, but Providers are only affected by the special behaviors of the profile when the RP specifically indicates that they want to use this profile. Initializes a new instance of the class. Applies a well known set of security requirements. The security settings to enhance with the requirements of this profile. Care should be taken to never decrease security when applying a profile. Profiles should only enhance security requirements to avoid being incompatible with each other. Called when an authentication request is about to be sent. The request. Called when an incoming positive assertion is received. The positive assertion. The OpenID binding element responsible for reading/writing OpenID extensions at the Relying Party. The security settings that apply to this relying party, if it is a relying party. Initializes a new instance of the class. The extension factory. The security settings. The messaging channel for OpenID relying parties. Initializes a new instance of the class. The association store to use. The nonce store to use. The security settings to apply. Initializes a new instance of the class. The association store to use. The nonce store to use. An object that knows how to distinguish the various OpenID message types for deserialization purposes. The security settings to apply. A value indicating whether the channel is set up with no functional security binding elements. A value indicating whether the channel is set up with no functional security binding elements. A new instance that will not perform verification on incoming messages or apply any security to outgoing messages. A value of true allows the relying party to preview incoming messages without invalidating nonces or checking signatures. Setting this to true poses a great security risk and is only present to support the OpenIdAjaxTextBox which needs to preview messages, and will validate them later. Initializes the binding elements. The crypto key store. The nonce store to use. The security settings to apply. Must be an instance of either or ProviderSecuritySettings. A value indicating whether the channel is set up with no functional security binding elements. An array of binding elements which may be used to construct the channel. Message factory for OpenID Relying Parties. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The intended or actual recipient of the request message. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Analyzes an incoming request message payload to discover what kind of message is embedded in it and returns the type, or null if no match is found. The message that was sent as a request that resulted in the response. The name/value pairs that make up the message payload. A newly instantiated -derived object that this message can deserialize to. Null if the request isn't recognized as a valid protocol message. Helps ensure compliance to some properties in the . The security settings that are active on the relying party. Initializes a new instance of the class. The security settings. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection commonly offered (if any) by this binding element. This value is used to assist in sorting binding elements in the channel stack. The signing binding element for OpenID Relying Parties. The association store used by Relying Parties to look up the secrets needed for signing. Initializes a new instance of the class. The association store used to look up the secrets needed for signing. May be null for dumb Relying Parties. Gets a specific association referenced in a given message's association handle. The signed message whose association handle should be used to lookup the association to return. The referenced association; or null if such an association cannot be found. Gets the association to use to sign or verify a message. The message to sign or verify. The association to use to sign or verify the message. Verifies the signature by unrecognized handle. The message. The signed message. The protections applied. The applied protections. This binding element adds a nonce to a Relying Party's outgoing authentication request when working against an OpenID 1.0 Provider in order to protect against replay attacks or on all authentication requests to distinguish solicited from unsolicited assertions. This nonce goes beyond the OpenID 1.x spec, but adds to security. Since this library's Provider implementation also provides special nonce protection for 1.0 messages, this security feature overlaps with that one. This means that if an RP from this library were talking to an OP from this library, but the Identifier being authenticated advertised the OP as a 1.x OP, then both RP and OP might try to use a nonce for protecting the assertion. There's no problem with that--it will still all work out. And it would be a very rare combination of elements anyway. This binding element deactivates itself for OpenID 2.0 (or later) messages since they are automatically protected in the protocol by the Provider's openid.response_nonce parameter. The exception to this is when is set to true, which will not only add a request nonce to every outgoing authentication request but also require that it be present in positive assertions, effectively disabling unsolicited assertions. In the messaging stack, this binding element looks like an ordinary transform-type of binding element rather than a protection element, due to its required order in the channel stack and that it exists only on the RP side and only on some messages. The context within which return_to nonces must be unique -- they all go into the same bucket. The length of the generated nonce's random part. The nonce store that will allow us to recall which nonces we've seen before. The security settings at the RP. Backing field for the property. Initializes a new instance of the class. The nonce store to use. The security settings of the RP. Prepares a message for sending based on the rules of this channel binding element. The message to prepare for sending. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Implementations that provide message protection must honor the properties where applicable. Performs any transformation on an incoming message that may be necessary and/or validates an incoming message based on the rules of this channel binding element. The incoming message to process. The protections (if any) that this binding element applied to the message. Null if this binding element did not even apply to this binding element. Thrown when the binding element rules indicate that this message is invalid and should NOT be processed. Implementations that provide message protection must honor the properties where applicable. Determines whether a request nonce should be applied the request or should be expected in the response. The authentication request or the positive assertion response. true if the message exchanged with an OpenID 1.x provider or if unsolicited assertions should be rejected at the RP; otherwise false. Gets or sets the channel that this binding element belongs to. This property is set by the channel when it is first constructed. Gets the protection offered (if any) by this binding element. Gets the maximum message age from the standard expiration binding element. A special DotNetOpenAuth-only nonce used by the RP when talking to 1.0 OPs in order to protect against replay attacks. The random bits generated for the nonce. Initializes a new instance of the class. The creation date of the nonce. The random bits that help make the nonce unique. Creates a new nonce. The newly instantiated instance. Deserializes a nonce from the return_to parameter. The base64-encoded value of the nonce. The instantiated and initialized nonce. Serializes the entire nonce for adding to the return_to URL. The base64-encoded string representing the nonce. Gets the creation date. Gets the random part of the nonce as a base64 encoded string. A set of methods designed to assist in improving interop across different OpenID implementations and their extensions. Adds an Attribute Exchange (AX) extension to the authentication request that asks for the same attributes as the Simple Registration (sreg) extension that is already applied. The authentication request. The attribute formats to use in the AX request. If discovery on the user-supplied identifier yields hints regarding which extensions and attribute formats the Provider supports, this method MAY ignore the argument and accomodate the Provider to minimize the size of the request. If the request does not carry an sreg extension, the method logs a warning but otherwise quietly returns doing nothing. Looks for Simple Registration and Attribute Exchange (all known formats) response extensions and returns them as a Simple Registration extension. The authentication response. if set to true unsigned extensions will be included in the search. The Simple Registration response if found, or a fabricated one based on the Attribute Exchange extension if found, or just an empty if there was no data. Never null. Gets the attribute value if available. The AX fetch response extension to look for the attribute value. The type URI of the attribute, using the axschema.org format of . The AX type URI formats to search. The first value of the attribute, if available. Tries to find the exact format of AX attribute Type URI supported by the Provider. The authentication request. The attribute formats the RP will try if this discovery fails. The AX format(s) to use based on the Provider's advertised AX support. The discovery service to support host-meta based discovery, such as Google Apps for Domains. The spec for this discovery mechanism can be found at: http://groups.google.com/group/google-federated-login-api/web/openid-discovery-for-hosted-domains and the XMLDSig spec referenced in that spec can be found at: http://wiki.oasis-open.org/xri/XrdOne/XmlDsigProfile Path to the well-known location of the host-meta document at a domain. The URI template for discovery host-meta on domains hosted by Google Apps for Domains. The pattern within a host-meta file to look for to obtain the URI to the XRDS document. A set of certificate thumbprints that have been verified. Initializes a new instance of the class. Performs discovery on the specified identifier. The identifier to perform discovery on. The means to place outgoing HTTP requests. if set to true, no further discovery services will be called for this identifier. A sequence of service endpoints yielded by discovery. Must not be null, but may be empty. Gets the XRD elements that have a given CanonicalID. The XRDS document. The CanonicalID to match on. A sequence of XRD elements. Gets the described-by services in XRD elements. The XRDs to search. A sequence of services. Gets the services for an identifier that are described by an external XRDS document. The XRD elements to search for described-by services. The identifier under discovery. The request handler. The discovered services. Validates the XML digital signature on an XRDS document. The XRDS document whose signature should be validated. The identifier under discovery. The response. The host name on the certificate that should be used to verify the signature in the XRDS. Thrown if the XRDS document has an invalid or a missing signature. Verifies the cert chain. The certs. This must be in a method of its own because there is a LinkDemand on the method. By being in a method of its own, the caller of this method may catch a that is thrown if we're not running with full trust and execute an alternative plan. Thrown if the certificate chain is invalid or unverifiable. Gets the XRDS HTTP response for a given identifier. The identifier. The request handler. The location of the XRDS document to retrieve. A HTTP response carrying an XRDS document. Thrown if the XRDS document could not be obtained. Verifies that a certificate chain is trusted. The chain of certificates to verify. Gets the XRDS HTTP response for a given identifier. The identifier. The request handler. The host name on the certificate that should be used to verify the signature in the XRDS. A HTTP response carrying an XRDS document, or null if one could not be obtained. Thrown if the XRDS document could not be obtained. Gets the location of the XRDS document that describes a given identifier. The identifier under discovery. The request handler. The host name on the certificate that should be used to verify the signature in the XRDS. An absolute URI, or null if one could not be determined. Gets the host-meta for a given identifier. The identifier. The request handler. The host name on the certificate that should be used to verify the signature in the XRDS. The host-meta response, or null if no host-meta document could be obtained. Gets the URIs authorized to host host-meta documents on behalf of a given domain. The identifier. A sequence of URIs that MAY provide the host-meta for a given identifier. Gets the set of URI templates to use to contact host-meta hosting proxies for domain discovery. Gets or sets a value indicating whether to trust Google to host domains' host-meta documents. This property is just a convenient mechanism for checking or changing the set of trusted host-meta proxies in the property. A description of a web server that hosts host-meta documents. Initializes a new instance of the class. The proxy formatting string. The signing host formatting string. Gets the absolute proxy URI. The identifier being discovered. The an absolute URI. Gets the signing host URI. The identifier being discovered. A host name. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Gets the URL of the host-meta proxy. The absolute proxy URL, which may include {0} to be replaced with the host of the identifier to be discovered. Gets the formatting string to determine the expected host name on the certificate that is expected to be used to sign the XRDS document. Either a string literal, or a formatting string where these placeholders may exist: {0} the host on the identifier discovery was originally performed on; {1} the host on this proxy. The COM type used to provide details of an authentication result to a relying party COM client. The response read in by the Relying Party. Initializes a new instance of the class. The response. Gets an Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the provider endpoint that sent the assertion. Gets a value indicating whether the authentication attempt succeeded. Gets the Simple Registration response. Gets details regarding a failed authentication attempt, if available. A struct storing Simple Registration field values describing an authenticating user. The Simple Registration claims response message that this shim wraps. Initializes a new instance of the class. The Simple Registration response to wrap. Gets the nickname the user goes by. Gets the user's email address. Gets the full name of a user as a single string. Gets the raw birth date string given by the extension. A string in the format yyyy-MM-dd. Gets the gender of the user. Gets the zip code / postal code of the user. Gets the country of the user. Gets the primary/preferred language of the user. Gets the user's timezone. Implementation of , providing a subset of the functionality available to .NET clients. The OpenIdRelyingParty instance to use for requests. Initializes static members of the class. Initializes a new instance of the class. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. A comma-delimited list of simple registration fields to request as optional. A comma-delimited list of simple registration fields to request as required. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Gets the result of a user agent's visit to his OpenId provider in an authentication attempt. Null if no response is available. The incoming request URL. The form data that may have been included in the case of a POST request. The Provider's response to a previous authentication request, or null if no response is present. The successful Diffie-Hellman association response message. Association response messages are described in OpenID 2.0 section 8.2. This type covers section 8.2.3. A successful association response as it is received by the relying party. Called to create the Association based on a request previously given by the Relying Party. The prior request for an association. The created association. Initializes a new instance of the class. The OpenID version of the response message. The originating request. Creates the association at relying party side after the association response has been received. The original association request that was already sent and responded to. The newly created association. The resulting association is not added to the association store and must be done by the caller. Utility methods for requesting associations from the relying party. Creates an association request message that is appropriate for a given Provider. The set of requirements the selected association type must comply to. The provider to create an association with. The message to send to the Provider to request an association. Null if no association could be created that meet the security requirements and the provider OpenID version. Creates an association request message that is appropriate for a given Provider. The set of requirements the selected association type must comply to. The provider to create an association with. Type of the association. Type of the session. The message to send to the Provider to request an association. Null if no association could be created that meet the security requirements and the provider OpenID version. Code contract for the interface. Checks the message state for conformity to the protocol specification and throws an exception if the message is invalid. Thrown if the message is invalid. Called to create the Association based on a request previously given by the Relying Party. The prior request for an association. The created association. Gets the level of protection this message requires. Gets a value indicating whether this is a direct or indirect message. Gets the version of the protocol or extension this message is prepared to implement. Gets the extra, non-standard Protocol parameters included in the message. A response to an unencrypted assocation request, as it is received by the relying party. Initializes a new instance of the class. The version. The request. Called to create the Association based on a request previously given by the Relying Party. The prior request for an association. The created association. Wraps a standard so that it behaves as an association store. Stores s for lookup by their handle, keeping associations separated by a given OP Endpoint. Expired associations should be periodically cleared out of an association store. This should be done frequently enough to avoid a memory leak, but sparingly enough to not be a performance drain. Because this balance can vary by host, it is the responsibility of the host to initiate this cleaning. Saves an for later recall. The OP Endpoint with which the association is established. The association to store. If the new association conflicts (in OP endpoint and association handle) with an existing association, (which should never happen by the way) implementations may overwrite the previously saved association. Gets the best association (the one with the longest remaining life) for a given key. The OP Endpoint with which the association is established. The security requirements that the returned association must meet. The requested association, or null if no unexpired s exist for the given key. In the event that multiple associations exist for the given , it is important for the implementation for this method to use the to pick the best (highest grade or longest living as the host's policy may dictate) association that fits the security requirements. Associations that are returned that do not meet the security requirements will be ignored and a new association created. Gets the association for a given key and handle. The OP Endpoint with which the association is established. The handle of the specific association that must be recalled. The requested association, or null if no unexpired s exist for the given key and handle. Removes a specified handle that may exist in the store. The OP Endpoint with which the association is established. The handle of the specific association that must be deleted. Deprecated. The return value is insignificant. Previously: True if the association existed in this store previous to this call. No exception should be thrown if the association does not exist in the store before this call. The underlying key store. Initializes a new instance of the class. The key store. Saves an for later recall. The OP Endpoint with which the association is established. The association to store. Gets the best association (the one with the longest remaining life) for a given key. The OP Endpoint with which the association is established. The security requirements that the returned association must meet. The requested association, or null if no unexpired s exist for the given key. Gets the association for a given key and handle. The OP Endpoint with which the association is established. The handle of the specific association that must be recalled. The requested association, or null if no unexpired s exist for the given key and handle. Removes a specified handle that may exist in the store. The OP Endpoint with which the association is established. The handle of the specific association that must be deleted. True if the association existed in this store previous to this call. Constants used in implementing support for the UI extension. Gets the window.open javascript snippet to use to open a popup window compliant with the UI extension. The relying party. The authentication request to place in the window. The name to assign to the popup window. A string starting with 'window.open' and forming just that one method call. Code Contract for the class. Saves an for later recall. The Uri (for relying parties) or Smart/Dumb (for providers). The association to store. TODO: what should implementations do on association handle conflict? Gets the best association (the one with the longest remaining life) for a given key. The Uri (for relying parties) or Smart/Dumb (for Providers). The security requirements that the returned association must meet. The requested association, or null if no unexpired s exist for the given key. In the event that multiple associations exist for the given , it is important for the implementation for this method to use the to pick the best (highest grade or longest living as the host's policy may dictate) association that fits the security requirements. Associations that are returned that do not meet the security requirements will be ignored and a new association created. Gets the association for a given key and handle. The Uri (for relying parties) or Smart/Dumb (for Providers). The handle of the specific association that must be recalled. The requested association, or null if no unexpired s exist for the given key and handle. Removes a specified handle that may exist in the store. The Uri (for relying parties) or Smart/Dumb (for Providers). The handle of the specific association that must be deleted. True if the association existed in this store previous to this call. No exception should be thrown if the association does not exist in the store before this call. A dictionary of handle/Association pairs. Each method is locked, even if it is only one line, so that they are thread safe against each other, particularly the ones that enumerate over the list, since they can break if the collection is changed by another thread during enumeration. The lookup table where keys are the association handles and values are the associations themselves. Initializes a new instance of the class. Stores an in the collection. The association to add to the collection. Returns the with the given handle. Null if not found. The handle to the required association. The desired association, or null if none with the given handle could be found. Removes the with the given handle. The handle to the required association. Whether an with the given handle was in the collection for removal. Removes all expired associations from the collection. Gets the s ordered in order of descending issue date (most recently issued comes first). An empty sequence if no valid associations exist. This property is used by relying parties that are initiating authentication requests. It does not apply to Providers, which always need a specific association by handle. Manages the establishment, storage and retrieval of associations at the relying party. The storage to use for saving and retrieving associations. May be null. Backing field for the property. Backing field for the property. Initializes a new instance of the class. The channel the relying party is using. The association store. May be null for dumb mode relying parties. The security settings. Gets an association between this Relying Party and a given Provider if it already exists in the association store. The provider to create an association with. The association if one exists and has useful life remaining. Otherwise null. Gets an existing association with the specified Provider, or attempts to create a new association of one does not already exist. The provider to get an association for. The existing or new association; null if none existed and one could not be created. Creates a new association with a given Provider. The provider to create an association with. The newly created association, or null if no association can be created with the given Provider given the current security settings. A new association is created and returned even if one already exists in the association store. Any new association is automatically added to the . Creates a new association with a given Provider. The provider to create an association with. The associate request. May be null, which will always result in a null return value.. The number of times to try the associate request again if the Provider suggests it. The newly created association, or null if no association can be created with the given Provider given the current security settings. Gets or sets the channel to use for establishing associations. The channel. Gets or sets the security settings to apply in choosing association types to support. Gets a value indicating whether this instance has an association store. true if the relying party can act in 'smart' mode; false if the relying party must always act in 'dumb' mode. Gets the storage to use for saving and retrieving associations. May be null. Preferences regarding creation and use of an association between a relying party and provider for authentication. Indicates that an association should be created for use in authentication if one has not already been established between the relying party and the selected provider. Even with this value, if an association attempt fails or the relying party has no application store to recall associations, the authentication may proceed without an association. Indicates that an association should be used for authentication only if it happens to already exist. Indicates that an authentication attempt should NOT use an OpenID association between the relying party and the provider, even if an association was previously created. Facilitates customization and creation and an authentication request that a Relying Party is preparing to send. The name of the internal callback parameter to use to store the user-supplied identifier. The relying party that created this request object. How an association may or should be created or used in the formulation of the authentication request. The extensions that have been added to this authentication request. Arguments to add to the return_to part of the query string, so that these values come back to the consumer when the user agent returns. A value indicating whether the return_to callback arguments must be signed. This field defaults to false, but is set to true as soon as the first callback argument is added that indicates it must be signed. At which point, all arguments are signed even if individual ones did not need to be. Initializes a new instance of the class. The endpoint that describes the OpenID Identifier and Provider that will complete the authentication. The realm, or root URL, of the host web site. The base return_to URL that the Provider should return the user to to complete authentication. This should not include callback parameters as these should be added using the method. The relying party that created this instance. Makes a dictionary of key/value pairs available when the authentication is completed. The arguments to add to the request's return_to URI. Note that these values are NOT protected against eavesdropping in transit. No privacy-sensitive data should be stored using this method. The values stored here can be retrieved using , which will only return the value if it hasn't been tampered with in transit. Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed. The parameter name. The value of the argument. Note that these values are NOT protected against eavesdropping in transit. No privacy-sensitive data should be stored using this method. The value stored here can be retrieved using , which will only return the value if it hasn't been tampered with in transit. Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against tampering in transit. No security-sensitive data should be stored using this method. The value stored here can be retrieved using . Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Makes a key/value pair available when the authentication is completed without requiring a return_to signature to protect against tampering of the callback argument. The parameter name. The value of the argument. Must not be null. Note that these values are NOT protected against eavesdropping or tampering in transit. No security-sensitive data should be stored using this method. The value stored here can be retrieved using . Since the data set here is sent in the querystring of the request and some servers place limits on the size of a request URL, this data should be kept relatively small to ensure successful authentication. About 1.5KB is about all that should be stored. Adds an OpenID extension to the request directed at the OpenID provider. The initialized extension to add to the request. Redirects the user agent to the provider for authentication. This method requires an ASP.NET HttpContext. Performs identifier discovery, creates associations and generates authentication requests on-demand for as long as new ones can be generated based on the results of Identifier discovery. The user supplied identifier. The relying party. The realm. The return_to base URL. if set to true, associations that do not exist between this Relying Party and the asserting Providers are created before the authentication request is created. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. Creates an instance of FOR TESTING PURPOSES ONLY. The discovery result. The realm. The return to. The relying party. The instantiated . Creates the request message to send to the Provider, based on the properties in this instance. The message to send to the Provider. Performs deferred request generation for the method. The user supplied identifier. The relying party. The realm. The return_to base URL. The discovered service endpoints on the Claimed Identifier. if set to true, associations that do not exist between this Relying Party and the asserting Providers are created before the authentication request is created. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. All data validation and cleansing steps must have ALREADY taken place before calling this method. Returns a filtered and sorted list of the available OP endpoints for a discovered Identifier. The endpoints. The relying party. A filtered and sorted list of endpoints; may be empty if the input was empty or the filter removed all endpoints. Creates the request message to send to the Provider, based on the properties in this instance. The message to send to the Provider. Gets the association to use for this authentication request. The association to use; null to use 'dumb mode'. Gets or sets the mode the Provider should use during authentication. Gets the HTTP response the relying party should send to the user agent to redirect it to the OpenID Provider to start the OpenID authentication process. Gets the URL that the user agent will return to after authentication completes or fails at the Provider. Gets the URL that identifies this consumer web application that the Provider will display to the end user. Gets the Claimed Identifier that the User Supplied Identifier resolved to. Null if the user provided an OP Identifier (directed identity). Null is returned if the user is using the directed identity feature of OpenID 2.0 to make it nearly impossible for a relying party site to improperly store the reserved OpenID URL used for directed identity as a user's own Identifier. However, to test for the Directed Identity feature, please test the property rather than testing this property for a null value. Gets a value indicating whether the authenticating user has chosen to let the Provider determine and send the ClaimedIdentifier after authentication. Gets or sets a value indicating whether this request only carries extensions and is not a request to verify that the user controls some identifier. true if this request is merely a carrier of extensions and is not about an OpenID identifier; otherwise, false. Gets information about the OpenId Provider, as advertised by the OpenId discovery documents found at the location. Gets the discovery result leading to the formulation of this request. The discovery result. Gets or sets how an association may or should be created or used in the formulation of the authentication request. Gets the extensions that have been added to the request. Gets the list of extensions for this request. An authentication request comparer that judges equality solely on the OP endpoint hostname. The singleton instance of this comparer. Prevents a default instance of the class from being created. Determines whether the specified objects are equal. The first object to compare. The second object to compare. true if the specified objects are equal; otherwise, false. Returns a hash code for the specified object. The for which a hash code is to be returned. A hash code for the specified object. The type of is a reference type and is null. Gets the singleton instance of this comparer. Wraps a negative assertion response in an instance for public consumption by the host web site. An interface to expose useful properties and functionality for handling authentication responses that are returned from Immediate authentication requests that require a subsequent request to be made in non-immediate mode. Gets the to pass to in a subsequent authentication attempt. The negative assertion message that was received by the RP that was used to create this instance. Initializes a new instance of the class. The negative assertion response received by the Relying Party. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. This may return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. This MAY return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Gets the to pass to in a subsequent authentication attempt. Wraps an extension-only response from the OP in an instance for public consumption by the host web site. Backin field for the property. Information about the OP endpoint that issued this assertion. Initializes a new instance of the class. The response message. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode null is always returned since the callback arguments could not be signed to protect against tampering. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode an empty dictionary is always returned since the callback arguments could not be signed to protect against tampering. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available if they are complete and untampered with since the original request message (as proven by a signature). If the relying party is operating in stateless mode an empty dictionary is always returned since the callback arguments could not be signed to protect against tampering. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Gets a value indicating whether trusted callback arguments are available. We use this internally to avoid logging a warning during a standard snapshot creation. Gets the positive extension-only message the Relying Party received that this instance wraps. Wraps a positive assertion response in an instance for public consumption by the host web site. Initializes a new instance of the class. The positive assertion response that was just received by the Relying Party. The relying party. Verifies that the positive assertion data matches the results of discovery on the Claimed Identifier. The relying party. Thrown when the Provider is asserting that a user controls an Identifier when discovery on that Identifier contradicts what the Provider says. This would be an indication of either a misconfigured Provider or an attempt by someone to spoof another user's identity with a rogue Provider. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets the OpenID service endpoint reconstructed from the assertion message. This information is straight from the Provider, and therefore must not be trusted until verified as matching the discovery information for the claimed identifier to avoid a Provider asserting an Identifier for which it has no authority. Gets the positive assertion response message. Wraps a failed authentication response in an instance for public consumption by the host web site. Initializes a new instance of the class. The exception that resulted in the failed authentication. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. This MAY return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. This may return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . Code contract class for the type. Initializes a new instance of the class. Gets the to pass to in a subsequent authentication attempt. A delegate that decides whether a given OpenID Provider endpoint may be considered for authenticating a user. The endpoint for consideration. True if the endpoint should be considered. False to remove it from the pool of acceptable providers. Provides the programmatic facilities to act as an OpenID relying party. The name of the key to use in the HttpApplication cache to store the instance of to use. Backing store for the property. The discovery services to use for identifiers. Backing field for the property. The lock to obtain when initializing the member. A dictionary of extension response types and the javascript member name to map them to on the user agent. Backing field for the property. Backing store for the property. Backing field for the property. Initializes a new instance of the class. Initializes a new instance of the class. The application store. If null, the relying party will always operate in "stateless/dumb mode". Initializes a new instance of the class. The association store. If null, the relying party will always operate in "stateless/dumb mode". The nonce store to use. If null, the relying party will always operate in "stateless/dumb mode". Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. An authentication request object to customize the request and generate an object to send to the user agent to initiate the authentication. Thrown if no OpenID endpoint could be found. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Requires an HttpContext.Current context. Thrown if no OpenID endpoint could be found. Thrown if HttpContext.Current == null. Creates an authentication request to verify that a user controls some given Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. An authentication request object that describes the HTTP response to send to the user agent to initiate the authentication. Requires an HttpContext.Current context. Thrown if no OpenID endpoint could be found. Thrown if HttpContext.Current == null. Generates the authentication requests that can satisfy the requirements of some OpenID Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. The URL of the login page, or the page prepared to receive authentication responses from the OpenID Provider. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. Any individual generated request can satisfy the authentication. The generated requests are sorted in preferred order. Each request is generated as it is enumerated to. Associations are created only as is called. No exception is thrown if no OpenID endpoints were discovered. An empty enumerable is returned instead. Generates the authentication requests that can satisfy the requirements of some OpenID Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. The shorest URL that describes this relying party web site's address. For example, if your login page is found at https://www.example.com/login.aspx, your realm would typically be https://www.example.com/. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. Any individual generated request can satisfy the authentication. The generated requests are sorted in preferred order. Each request is generated as it is enumerated to. Associations are created only as is called. No exception is thrown if no OpenID endpoints were discovered. An empty enumerable is returned instead. Requires an HttpContext.Current context. Thrown if HttpContext.Current == null. Generates the authentication requests that can satisfy the requirements of some OpenID Identifier. The Identifier supplied by the user. This may be a URL, an XRI or i-name. A sequence of authentication requests, any of which constitutes a valid identity assertion on the Claimed Identifier. Never null, but may be empty. Any individual generated request can satisfy the authentication. The generated requests are sorted in preferred order. Each request is generated as it is enumerated to. Associations are created only as is called. No exception is thrown if no OpenID endpoints were discovered. An empty enumerable is returned instead. Requires an HttpContext.Current context. Thrown if HttpContext.Current == null. Gets an authentication response from a Provider. The processed authentication response if there is any; null otherwise. Requires an HttpContext.Current context. Gets an authentication response from a Provider. The HTTP request that may be carrying an authentication response from the Provider. The processed authentication response if there is any; null otherwise. Processes the response received in a popup window or iframe to an AJAX-directed OpenID authentication. The HTTP response to send to this HTTP request. Requires an HttpContext.Current context. Processes the response received in a popup window or iframe to an AJAX-directed OpenID authentication. The incoming HTTP request that is expected to carry an OpenID authentication response. The HTTP response to send to this HTTP request. Allows an OpenID extension to read data out of an unverified positive authentication assertion and send it down to the client browser so that Javascript running on the page can perform some preprocessing on the extension data. The extension response type that will read data from the assertion. The property name on the openid_identifier input box object that will be used to store the extension data. For example: sreg This method should be called before . Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Determines whether some parameter name belongs to OpenID or this library as a protocol or internal parameter name. Name of the parameter. true if the named parameter is a library- or protocol-specific parameter; otherwise, false. Creates a relying party that does not verify incoming messages against nonce or association stores. The instantiated . Useful for previewing messages while allowing them to be fully processed and verified later. Processes the response received in a popup window or iframe to an AJAX-directed OpenID authentication. The incoming HTTP request that is expected to carry an OpenID authentication response. The callback fired after the response status has been determined but before the Javascript response is formulated. The HTTP response to send to this HTTP request. Performs discovery on the specified identifier. The identifier to discover services for. A non-null sequence of services discovered for the identifier. Checks whether a given OP Endpoint is permitted by the host relying party. The OP endpoint. true if the OP Endpoint is allowed; false otherwise. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Invokes a method on a parent frame or window and closes the calling popup window if applicable. The method to call on the parent window, including parameters. (i.e. "callback('arg1', 2)"). No escaping is done by this method. The entire HTTP response to send to the popup window or iframe to perform the invocation. Called by derived classes when behaviors are added or removed. The collection being modified. The instance containing the event data. Gets an XRDS sorting routine that uses the XRDS Service/@Priority attribute to determine order. Endpoints lacking any priority value are sorted to the end of the list. Gets the standard state storage mechanism that uses ASP.NET's HttpApplication state dictionary to store associations and nonces. Gets or sets the channel to use for sending/receiving messages. Gets the security settings used by this Relying Party. Gets the security settings. Gets or sets the optional Provider Endpoint filter to use. Provides a way to optionally filter the providers that may be used in authenticating a user. If provided, the delegate should return true to accept an endpoint, and false to reject it. If null, all identity providers will be accepted. This is the default. Gets or sets the ordering routine that will determine which XRDS Service element to try first Default is . This may never be null. To reset to default behavior this property can be set to the value of . Gets the extension factories. Gets a list of custom behaviors to apply to OpenID actions. Adding behaviors can impact the security settings of this instance in ways that subsequently removing the behaviors will not reverse. Gets the list of services that can perform discovery on identifiers given to this relying party. Gets the web request handler to use for discovery and the part of authentication where direct messages are sent to an untrusted remote party. Gets a value indicating whether this Relying Party can sign its return_to parameter in outgoing authentication requests. Gets the web request handler to use for discovery and the part of authentication where direct messages are sent to an untrusted remote party. Gets the association manager. Gets the instance used to process authentication responses without verifying the assertion or consuming nonces. A serializable snapshot of a verified authentication message. The callback arguments that came with the authentication response. The untrusted callback arguments that came with the authentication response. Initializes a new instance of the class. The authentication response to copy from. Tries to get an OpenID extension that may be present in the response. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned only if the Provider signed them. Relying parties that do not care if the values were modified in transit should use the method in order to allow the Provider to not sign the extension. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response, without requiring it to be signed by the Provider. The type of extension to look for in the response message. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Tries to get an OpenID extension that may be present in the response. Type of the extension to look for in the response. The extension, if it is found. Null otherwise. Extensions are returned whether they are signed or not. Use the method to retrieve extension responses only if they are signed by the Provider to protect against tampering. Unsigned extensions are completely unreliable and should be used only to prefill user forms since the user or any other third party may have tampered with the data carried by the extension. Signed extensions are only reliable if the relying party trusts the OpenID Provider that signed them. Signing does not mean the relying party can trust the values -- it only means that the values have not been tampered with since the Provider sent the message. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. This MAY return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets all the callback arguments that were previously added using or as a natural part of the return_to URL. A name-value dictionary. Never null. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. This may return any argument on the querystring that came with the authentication response, which may include parameters not explicitly added using . Note that these values are NOT protected against tampering in transit. Gets a callback argument's value that was previously added using . The name of the parameter whose value is sought. The value of the argument, or null if the named parameter could not be found. Callback parameters are only available even if the RP is in stateless mode, or the callback parameters are otherwise unverifiable as untampered with. Therefore, use this method only when the callback argument is not to be used to make a security-sensitive decision. Gets the Identifier that the end user claims to own. For use with user database storage and lookup. May be null for some failed authentications (i.e. failed directed identity authentications). This is the secure identifier that should be used for database storage and lookup. It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects user identities against spoofing and other attacks. For user-friendly identifiers to display, use the property. Gets a user-friendly OpenID Identifier for display purposes ONLY. This should be put through before sending to a browser to secure against javascript injection attacks. This property retains some aspects of the user-supplied identifier that get lost in the . For example, XRIs used as user-supplied identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD). For display purposes, such as text on a web page that says "You're logged in as ...", this property serves to provide the =Arnott string, or whatever else is the most friendly string close to what the user originally typed in. If the user-supplied identifier is a URI, this property will be the URI after all redirects, and with the protocol and fragment trimmed off. If the user-supplied identifier is an XRI, this property will be the original XRI. If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com), this property will be the Claimed Identifier, with the protocol stripped if it is a URI. It is very important that this property never be used for database storage or lookup to avoid identity spoofing and other security risks. For database storage and lookup please use the property. Gets the detailed success or failure status of the authentication attempt. Gets information about the OpenId Provider, as advertised by the OpenID discovery documents found at the location. The Provider endpoint that issued the positive assertion; or null if information about the Provider is unavailable. Gets the details regarding a failed authentication attempt, if available. This will be set if and only if is . A very simple IXrdsProviderEndpoint implementation for verifying that all positive assertions (particularly unsolicited ones) are received from OP endpoints that are deemed permissible by the host RP. Initializes a new instance of the class. The positive assertion. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Checks whether the OpenId Identifier claims support for a given extension. The extension whose support is being queried. True if support for the extension is advertised. False otherwise. Note that a true or false return value is no guarantee of a Provider's support for or lack of support for an extension. The return value is determined by how the authenticating user filled out his/her XRDS document only. The only way to be sure of support for a given extension is to include the extension in the request and see if a response comes back for that extension. Gets the detected version of OpenID implemented by the Provider. Gets the URL that the OpenID Provider receives authentication requests at. An in-memory store for Relying Parties, suitable for single server, single process ASP.NET web sites. The nonce store to use. The association store to use. Initializes a new instance of the class. Gets the key in a given bucket and handle. The bucket name. Case sensitive. The key handle. Case sensitive. The cryptographic key, or null if no matching key was found. Gets a sequence of existing keys within a given bucket. The bucket name. Case sensitive. A sequence of handles and keys, ordered by descending . Stores a cryptographic key. The name of the bucket to store the key in. Case sensitive. The handle to the key, unique within the bucket. Case sensitive. The key to store. Thrown in the event of a conflict with an existing key in the same bucket and with the same handle. Removes the key. The bucket name. Case sensitive. The key handle. Case sensitive. Stores a given nonce and timestamp. The context, or namespace, within which the must be unique. A series of random characters. The timestamp that together with the nonce string make it unique. The timestamp may also be used by the data store to clear out old nonces. True if the nonce+timestamp (combination) was not previously in the database. False if the nonce was stored previously with the same timestamp. The nonce must be stored for no less than the maximum time window a message may be processed within before being discarded as an expired message. If the binding element is applicable to your channel, this expiration window is retrieved or set using the property. Common OpenID Provider Identifiers. The Yahoo OP Identifier. The Google OP Identifier. The MyOpenID OP Identifier. The Verisign OP Identifier. The MyVidoop OP Identifier. Prevents a default instance of the class from being created. ================================================ FILE: packages/EnterpriseLibrary.Caching.5.0.505.0/lib/NET35/Microsoft.Practices.EnterpriseLibrary.Caching.xml ================================================ Microsoft.Practices.EnterpriseLibrary.Caching Represents a cache scavenger that runs on a background thread. The will make its best effort to avoid scheduling a new scavenge request when it is safe to assume that it's not necessary. Since elements are scavenged each time, there should be at least one scavenge request every elements the cache over the threshold. Each time a scheduled scavenge task is processed the counter used to avoid superfluous scavenges is reset to zero, so the next scavenge request will result in a new scheduled scavenge task. Represents a cache scavenger. Starts the scavenging process. Initialize a new instance of the with a and a . The expiration task to use. The scavenger task to use. The instrumentation provider to use. Queues a message that the expiration timeout has expired. Ignored. Starts the scavenging process. Base class for backing stores. Contains implementations of common policies and utilities usable by all backing stores.

This interface defines the contract that must be implemented by all backing stores. Implementors of this method are responsible for interacting with their underlying persistence mechanisms to store and retrieve CacheItems. All methods below must guarantee Weak Exception Safety. This means that operations must complete entirely, or they must completely clean up from the failure and leave the cache in a consistent state. The mandatory cleanup process will remove all traces of the item that caused the failure, causing that item to be expunged from the cache entirely.

Due to the way the Caching class is implemented, implementations of this class will always be called in a thread-safe way. There is no need to make derived classes thread-safe.

This method is responsible for adding a CacheItem to the BackingStore. This operation must be successful even if an item with the same key already exists. This method must also meet the Weak Exception Safety guarantee and remove the item from the backing store if any part of the Add fails.

CacheItem to be added

Other exceptions can be thrown, depending on what individual Backing Store implementations throw during Add

Removes an item with the given key from the backing store Key to remove. Must not be null.

Other exceptions can be thrown, depending on what individual Backing Store implementations throw during Remove

Updates the last accessed time for a cache item. Key to update Time at which item updated

Other exceptions can be thrown, depending on what individual Backing Store implementations throw during UpdateLastAccessedTime

Flushes all CacheItems from backing store. This method must meet the Weak Exception Safety guarantee.

Other exceptions can be thrown, depending on what individual Backing Store implementations throw during Flush

Loads all CacheItems from backing store. Hashtable filled with all existing CacheItems.

Other exceptions can be thrown, depending on what individual Backing Store implementations throw during Load

Number of objects stored in the backing store Inherited constructor Finalizer for BaseBackingStore Dispose method for all backing stores. This implementation is sufficient for any class that does not need any finalizer behavior Disposing method as used in the Dispose pattern True if called during Dispose. False if called from finalizer Removes an item with the given key from the backing store Key to remove. Must not be null.

Other exceptions can be thrown, depending on what individual Backing Store implementations throw during Remove

Removes an item with the given storage key from the backing store. Unique storage key for the cache item to be removed

Other exceptions can be thrown, depending on what individual Backing Store implementations throw during Remove

Updates the last accessed time for a cache item. Key to update Time at which item updated

Other exceptions can be thrown, depending on what individual Backing Store implementations throw during UpdateLastAccessedTime

Updates the last accessed time for a cache item referenced by this unique storage key Unique storage key for cache item Time at which item updated Flushes all CacheItems from backing store. This method must meet the Strong Exception Safety guarantee.

Other exceptions can be thrown, depending on what individual Backing Store implementations throw during Flush

This method is responsible for adding a CacheItem to the BackingStore. This operation must be successful even if an item with the same key already exists. This method must also meet the exception safety guarantee and make sure that all traces of the new or old item are gone if the add fails in any way.

CacheItem to be added

Other exceptions can be thrown, depending on what individual Backing Store implementations throw during Add

Loads all CacheItems from underlying persistence mechanism. Hashtable containing all existing CacheItems. Exceptions thrown depend on the implementation of the underlying database. Removed existing item stored in persistence store with same key as new item Unique key for cache item Adds new item to persistence store Unique key for cache item Item to be added to cache. May not be null. Responsible for loading items from underlying persistence store. This method should do no filtering to remove expired items. Hash table of all items loaded from persistence store Number of objects stored in the backing store Implementation of IBackingStore that stores its CacheItems into IsolatedStorage. This class assumes a tree-structured storage schema. Each named instance of an Isolated Storage area creates a separate, top-level directory in Isolated Storage. This is to allow a user to segregate different areas in Isolated Storage to allow multiple applications to use their own logically separate areas. Inside each of these areas, each CacheItem is stored in its own subdirectory, with separate files in those subdirectories representing the different pieces of a CacheItem. The item was split like this to allow for several optimizations. The first optimization is that now, the essence of a CacheItem can be restored independently of the underlying value. It is the deserialization of the value object that could conceivably be very time consuming, so by splitting it off into its own file, that deserialization process could be delayed until the value is actually needed. The second optimization is that we are now able to update the last accessed time for a CacheItem without bringing the entire CacheItem into memory, make the update, and then reserialize it. A that stores objects in Isolated Storage, identified by . Identifier for this Isolated Storage area. May not be null. Demanded to ensure caller has permission to access Isolated Storage. Initialize Isolated Storage for this CacheItem by creating the directory where it will be stored. This constructor should only be used for testing, and never called from production code. Identifier for this Isolated Storage area. May not be null. The to use to encrypt data in storage. This value can be . Demanded to ensure caller has permission to access Isolated Storage. Removes all items from this Isolated Storage area. Removes the named item from Isolated Storage. Identifier for CacheItem to remove. Updates the last accessed time for the specified CacheItem stored in Isolated Storage Identifer for CacheItem to remove. New timestamp for CacheItem. Releases the unmanaged resources used by the and optionally releases the managed resources. to release both managed and unmanaged resources; to release only unmanaged resources. Loads data from persistence store A Hashtable containing the cache items. Remove existing item stored in persistence store with same key as new item Item being removed from cache. Adds new item to persistence store Unique key for storage item Item to be added to cache. May not be null. Returns the number of CacheItems in the Isolated Storage segment identified by the name passed in at construction Represents a CacheItem as stored in Isolated Storage. This class is responsible for storing and restoring the item from the underlying file system store. Instance constructor. Ensures that the storage location in Isolated Storage is prepared for reading and writing. This class stores each individual field of the CacheItem into its own file inside the directory specified by itemDirectoryRoot. Isolated Storage area to use. May not be null. Complete path in Isolated Storage where the cache item should be stored. May not be null. Encryption provider Stores specified CacheItem into IsolatedStorage at location specified in constructor The to store. Loads a CacheItem from IsolatedStorage from the location specified in the constructor CacheItem loaded from IsolatedStorage Updates the last accessed time for the CacheItem stored at this location in Isolated Storage New timestamp Defines the mechanism to store and read individual fields from IsolatedStorage. This class maintains no state with respect to the data read from IsolatedStorage, so it may be reused to reread or rewrite the same field repeatedly. Instance constructor IsolatedStorage area to use. May not be null. Name of the file in which the field value is stored. May not be null. Complete path to directory where file specified in fieldName is to be found. May not be null. Encryption provider Writes value to specified location in IsolatedStorage Object to write into Isolated Storage True if item written is to be encrypted Overwrites given field in Isolated Storage. Item will not be encrypted Object to write into Isolated Storage Reads value from specified location in IsolatedStorage True if field is stored as encrypted Value read from IsolatedStorage. This value may be null if the value stored is null. Responsible for writing value to IsolatedStorage using given IsolatedStorageFileStream reference. Subclasses may override this method to provide different implementations of writing to Isolated Storage. Value to write. May be null. Stream to which value should be written. May not be null. True if item is to be encrypted Responsible for reading value from IsolatedStorage using given IsolatedStorageFileStream reference. Subclasses may override this method to provide different implementations of reading from IsolatedStorage. Stream from which value should be written. May not be null. True if item is stored encrypted Value read from Isolated Storage. May be null if value stored is null Not intended for direct use. Provides symmetric encryption and decryption services to Isolated and Database backing stores. Allows this block to use Security.Cryptography without having a direct reference to that assembly. Encrypt backing store data. Clear bytes. Encrypted bytes. Decrypt backing store data. Encrypted bytes. Decrypted bytes. This class is used when no backing store is needed to support the caching storage policy. Its job is to provide an implementation of a backing store that does nothing, merely enabling the cache to provide a strictly in-memory cache. Not used Not used Not used Not used Not used Not used Not used Not used Always returns an empty hash table. Empty hash table Empty dispose implementation Always returns 0 The real worker of the block. The Cache class is the traffic cop that prevents resource contention among the different threads in the system. It also will act as the remoting gateway when that feature is added to the cache. Represents cache operations. Removes a . The key of the item to remove. One of the values. Gets the current cache state. Returns the number of items contained in the cache. Initialzie a new instance of a class with a backing store, and scavenging policy. The cache backing store. The instrumentation provider. Determines if a particular key is contained in the cache. The key to locate. if the key is contained in the cache; otherwise, . Add a new keyed object to the cache. The key of the object. The object to add. Add a new keyed object to the cache. The key of the object. The object to add. One of the values. An object. An array of objects. Remove an item from the cache by key. The key of the item to remove. Remove an item from the cache by key. The key of the item to remove. One of the values. Removes an item from the cache. The key to remove. One of the values. This seemingly redundant method is here to be called through the ICacheOperations interface. I put this in place to break any dependency from any other class onto the Cache class Get the object from the cache for the key. The key whose value to get. The value associated with the specified key. Flush the cache. There may still be thread safety issues in this class with respect to cacheItemExpirations and scavenging, but I really doubt that either of those will be happening while a Flush is in progress. It seems that the most likely scenario for a flush to be called is at the very start of a program, or when absolutely nothing else is going on. Calling flush in the middle of an application would seem to be an "interesting" thing to do in normal circumstances. Dispose of the backing store before garbage collection. Dispose of the backing store before garbage collection. Dispose of the backing store before garbage collection. if disposing; otherwise, . Gets the count of objects. The count of objects. Gets the current cache. The current cache. Cache scavenging policy based on capacity. Initialize a new instance of the class with the name of the cache manager and the proxy to the configuration data. The proxy to the latest configuration data. Determines if scavenging is needed. The current number of objects in the cache. if scavenging is needed; otherwise, . Gets the maximum items to allow before scavenging. The maximum items to allow before scavenging. Static factory class used to get instances of a specified CacheManager Returns the default CacheManager instance. The same instance should be returned each time this method is called. The name of the instance to treat as the default CacheManager is defined in the configuration file. Guaranteed to return an intialized CacheManager if no exception thrown Default cache manager instance. Unable to create default CacheManager Returns the named ICacheManager instance. Guaranteed to return an initialized ICacheManager if no exception thrown. Name defined in configuration for the cache manager to instantiate The requested CacheManager instance. cacheManagerName is null cacheManagerName is empty Could not find instance specified in cacheManagerName Error processing configuration information defined in application configuration file. This class contains all data important to define an item stored in the cache. It holds both the key and value specified by the user, as well as housekeeping information used internally by this block. It is public, rather than internal, to allow block extenders access to it inside their own implementations of IBackingStore. Constructs a fully formed CacheItem. Key identifying this CacheItem Value to be stored. May be null. Scavenging priority of CacheItem. See for values. Object supplied by caller that will be invoked upon expiration of the CacheItem. May be null. Param array of ICacheItemExpiration objects. May provide 0 or more of these. Constructs a fully formed CacheItem. This constructor is to be used when restoring an existing CacheItem from the backing store. As such, it does not generate its own Guid for this instance, but allows the GUID to be passed in, as read from the backing store. Time this CacheItem last accessed by user. Key provided by the user for this cache item. May not be null. Value to be stored. May be null. Scavenging priority of CacheItem. See for values. Object supplied by caller that will be invoked upon expiration of the CacheItem. May be null. Param array of ICacheItemExpiration objects. May provide 0 or more of these. Replaces the internals of the current cache item with the given new values. This is strictly used in the Cache class when adding a new item into the cache. By replacing the item's contents, rather than replacing the item itself, it allows us to keep a single reference in the cache, simplifying locking. Value to be stored. May be null. Scavenging priority of CacheItem. See for values. Object supplied by caller that will be invoked upon expiration of the CacheItem. May be null. Param array of ICacheItemExpiration objects. May provide 0 or more of these. Returns array of objects for this instance. An array of objects. Evaluates all cacheItemExpirations associated with this cache item to determine if it should be considered expired. Evaluation stops as soon as any expiration returns true. True if item should be considered expired, according to policies defined in this item's cacheItemExpirations. Intended to be used internally only. This method is called whenever a CacheItem is touched through the action of a user. It prevents this CacheItem from being expired or scavenged during an in-progress expiration or scavenging process. It has no effect on subsequent expiration or scavenging processes. Intended to be used internally only. This method is called whenever a CacheItem is touched through the action of a user. It prevents this CacheItem from being expired or scavenged during an in-progress expiration or scavenging process. It has no effect on subsequent expiration or scavenging processes. Makes the cache item eligible for scavenging. Makes the cache item not eligible for scavenging. Sets the last accessed time for the cache item. The last accessed time. Returns the assigned to this CacheItem Returns the last accessed time. Gets the last accessed time. The set is present for testing purposes only. Should not be called by application code Intended to be used internally only. The value should be true when an item is eligible to be expired. Intended to be used internally only. The value should be true when an item is eligible for scavenging. Returns the cached value of this CacheItem Returns the key associated with this CacheItem Intended to be used internally only. Returns object used to refresh expired CacheItems. Specifies the item priority levels. Should never be seen in nature. Low priority for scavenging. Normal priority for scavenging. High priority for scavenging. Non-removable priority for scavenging. The reason that the cache item was removed. The item has expired. The item was manually removed from the cache. The item was removed by the scavenger because it had a lower priority that any other item in the cache. Reserved. Do not use. This class represents the interface to caching as shown to the user. All caching operations are performed through this class. This interface defines the contract that must be implemented by all cache managers. Adds new CacheItem to cache. If another item already exists with the same key, that item is removed before the new item is added. If any failure occurs during this process, the cache will not contain the item being added. Items added with this method will be not expire, and will have a Normal priority. Identifier for this CacheItem Value to be stored in cache. May be null. Provided key is null Provided key is an empty string The CacheManager can be configured to use different storage mechanisms in which to store the CacheItems. Each of these storage mechanisms can throw exceptions particular to their own implementations. Adds new CacheItem to cache. If another item already exists with the same key, that item is removed before the new item is added. If any failure occurs during this process, the cache will not contain the item being added. Identifier for this CacheItem Value to be stored in cache. May be null. Specifies the new item's scavenging priority. See for more information. Object provided to allow the cache to refresh a cache item that has been expired. May be null. Param array specifying the expiration policies to be applied to this item. May be null or omitted. Provided key is null Provided key is an empty string The CacheManager can be configured to use different storage mechanisms in which to store the CacheItems. Each of these storage mechanisms can throw exceptions particular to their own implementations. Returns true if key refers to item current stored in cache Key of item to check for True if item referenced by key is in the cache Removes all items from the cache. If an error occurs during the removal, the cache is left unchanged. The CacheManager can be configured to use different storage mechanisms in which to store the CacheItems. Each of these storage mechanisms can throw exceptions particular to their own implementations. Returns the value associated with the given key. Key of item to return from cache. Value stored in cache Provided key is null Provided key is an empty string The CacheManager can be configured to use different storage mechanisms in which to store the CacheItems. Each of these storage mechanisms can throw exceptions particular to their own implementations. Removes the given item from the cache. If no item exists with that key, this method does nothing. Key of item to remove from cache. Provided key is null Provided key is an empty string The CacheManager can be configured to use different storage mechanisms in which to store the CacheItems. Each of these storage mechanisms can throw exceptions particular to their own implementations. Returns the number of items currently in the cache. Returns the item identified by the provided key Key to retrieve from cache Provided key is null Provided key is an empty string The CacheManager can be configured to use different storage mechanisms in which to store the cache items. Each of these storage mechanisms can throw exceptions particular to their own implementations. Returns true if key refers to item current stored in cache Key of item to check for True if item referenced by key is in the cache Adds new CacheItem to cache. If another item already exists with the same key, that item is removed before the new item is added. If any failure occurs during this process, the cache will not contain the item being added. Items added with this method will be not expire, and will have a Normal priority. Identifier for this CacheItem Value to be stored in cache. May be null. Provided key is null Provided key is an empty string The CacheManager can be configured to use different storage mechanisms in which to store the CacheItems. Each of these storage mechanisms can throw exceptions particular to their own implementations. Adds new CacheItem to cache. If another item already exists with the same key, that item is removed before the new item is added. If any failure occurs during this process, the cache will not contain the item being added. Identifier for this CacheItem Value to be stored in cache. May be null. Specifies the new item's scavenging priority. See for more information. Object provided to allow the cache to refresh a cache item that has been expired. May be null. Param array specifying the expiration policies to be applied to this item. May be null or omitted. Provided key is null Provided key is an empty string The CacheManager can be configured to use different storage mechanisms in which to store the CacheItems. Each of these storage mechanisms can throw exceptions particular to their own implementations. Removes the given item from the cache. If no item exists with that key, this method does nothing. Key of item to remove from cache. Provided key is null Provided key is an empty string The CacheManager can be configured to use different storage mechanisms in which to store the CacheItems. Each of these storage mechanisms can throw exceptions particular to their own implementations. Returns the value associated with the given key. Key of item to return from cache. Value stored in cache Provided key is null Provided key is an empty string The CacheManager can be configured to use different storage mechanisms in which to store the CacheItems. Each of these storage mechanisms can throw exceptions particular to their own implementations. Removes all items from the cache. If an error occurs during the removal, the cache is left unchanged. The CacheManager can be configured to use different storage mechanisms in which to store the CacheItems. Each of these storage mechanisms can throw exceptions particular to their own implementations. Not intended for public use. Only public due to requirements of IDisposable. If you call this method, your cache will be unusable. Returns the number of items currently in the cache. Returns the item identified by the provided key Key to retrieve from cache Provided key is null Provided key is an empty string The CacheManager can be configured to use different storage mechanisms in which to store the cache items. Each of these storage mechanisms can throw exceptions particular to their own implementations. Factory for s. This class is responsible for creating all the internal classes needed to implement a CacheManager. Initializes a new instance of the class with the default configuration source. Initializes a new instance of the class with the given configuration source. The configuration source that contains information on how to build the instances Configuration data defining CacheManagerData. Defines the information needed to properly configure a CacheManager instance. Base class for configuration data defining CacheManagerDataBase. Defines the information needed to properly configure a ICacheManager instance. Initialize a new instance of the class. Initialize a new instance of the class. The type of . Initialize a new instance of the class. The name of the . The type of . Get the set of object needed to register the CacheManager represented by this config element. The sequence of objects. Gets the creation expression used to produce a during . This must be overridden by a subclass, but is not marked as abstract due to configuration serialization needs. A that creates a Initialize a new instance of the class. Initialize a new instance of the class. The name of the . Frequency in seconds of expiration polling cycle Maximum number of items in cache before an add causes scavenging to take place Number of items to remove from cache when scavenging CacheStorageData object from configuration describing how data is stored in the cache. Get the set of object needed to register the CacheManager represented by this config element. The sequence of objects. Frequency in seconds of expiration polling cycle Maximum number of items in cache before an add causes scavenging to take place Number of items to remove from cache when scavenging CacheStorageData object from configuration describing how data is stored in the cache. Overall configuration settings for Caching Configuration key for cache manager settings. Return the objects needed to reconfigure the container after a configuration source has changed. If there are no reregistrations, return an empty sequence. The containing the configuration information. The sequence of objects. Defines the default manager instance to use when no other manager is specified Gets the collection of defined objects. The collection of defined objects. Gets the collection of defined objects. The collection of defined objects. Gets the collection of defined objects. The collection of defined objects. Configuration data defining CacheStorageData. This configuration section defines the name and type of the IBackingStore used by a CacheManager Initializes a new instance of the class. Initialize a new instance of the class with a name and the type of . The type of . Initialize a new instance of the class with a name and the type of . The name of the configured . The type of . Initialize a new instance of the class with a name, the type of , and a reference to a named instance of an . The name of the configured . The type of . The name of the referenced . Gets the name of the referenced . Configuration object for Custom Providers. Initializes with default values. Initializes with name and provider type. Initializes with name and provider type. Sets the attribute value for a key. The attribute name. The attribute value. Modifies the object to remove all values that should not be saved. A object at the current level containing a merged view of the properties. A parent object or if this is the top level. One of the values. Resets the internal state of the object, including the locks and the properties collection. The parent element. Indicates whether this configuration element has been modified since it was last saved or loaded when implemented in a derived class. if the element has been modified; otherwise, . Called when an unknown attribute is encountered while deserializing the object. The name of the unrecognized attribute. The value of the unrecognized attribute. if the processing of the element should continue; otherwise, . Invokes the inherited behavior. Invokes the inherited behavior. Invokes the inherited behavior. Invokes the inherited behavior. Invokes the inherited behavior. Overridden in order to apply . Gets or sets custom configuration attributes. Gets a of the properties that are defined for this configuration element when implemented in a derived class. A of the properties that are defined for this configuration element when implemented in a derived class. Gets the helper. Configuration object for Custom Providers. Initializes with default values. Initializes with name and provider type. Initializes with name and provider type. Sets the attribute value for a key. The attribute name. The attribute value. Modifies the object to remove all values that should not be saved. A object at the current level containing a merged view of the properties. A parent object or if this is the top level. One of the values. Resets the internal state of the object, including the locks and the properties collection. The parent element. Indicates whether this configuration element has been modified since it was last saved or loaded when implemented in a derived class. if the element has been modified; otherwise, . Called when an unknown attribute is encountered while deserializing the object. The name of the unrecognized attribute. The value of the unrecognized attribute. if the processing of the element should continue; otherwise, . Invokes the inherited behavior. Invokes the inherited behavior. Invokes the inherited behavior. Invokes the inherited behavior. Invokes the inherited behavior. Get the set of object needed to register the CacheManager represented by this config element. The sequence of objects. Overridden in order to apply . Gets or sets custom configuration attributes. Gets a of the properties that are defined for this configuration element when implemented in a derived class. A of the properties that are defined for this configuration element when implemented in a derived class. Gets the helper. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to Add Caching Settings. Looks up a localized string similar to Persists the cached data in memory, and optionally interacts with a persistent backing store.. Looks up a localized string similar to Cache Manager. Looks up a localized string similar to The name of the Cache Manager.. Looks up a localized string similar to Name. Looks up a localized string similar to The fully qualified type name of the Cache Manager.. Looks up a localized string similar to Type Name. Looks up a localized string similar to The name of the Backing Store to use for this Cache Manager.. Looks up a localized string similar to Backing Store. Looks up a localized string similar to Persists the cached data in memory, and optionally interacts with a persistent backing store.. Looks up a localized string similar to Cache Manager. Looks up a localized string similar to Time in seconds between each cycle that removes expired cached items.. Looks up a localized string similar to Expiration Polling Frequency (seconds). Looks up a localized string similar to Maximum number of items in the cache before adding another causes scavenging to occur.. Looks up a localized string similar to Max. Elements In Cache Before Scavenging. Looks up a localized string similar to Number of items to remove from the cache during each scavenging cycle.. Looks up a localized string similar to Number to Remove when Scavenging. Looks up a localized string similar to Persists the cached items to a store such as a database or Isolated Storage.. Looks up a localized string similar to Backing Stores. Looks up a localized string similar to The Cache Managers configured for the Caching Application Block. Looks up a localized string similar to Cache Managers. Looks up a localized string similar to The default Cache Manager to use when code does not specify a named Cache Manager.. Looks up a localized string similar to Default Cache Manager. Looks up a localized string similar to Configuration settings for the Caching Application Block. Looks up a localized string similar to Caching Settings. Looks up a localized string similar to Provide encryption of the data persisted in a backing store, but not in memory.. Looks up a localized string similar to Encryption Providers. Looks up a localized string similar to The name of the referenced Backing Store for this Cache Manager.. Looks up a localized string similar to Cache Storage. Looks up a localized string similar to The name of the backing store.. Looks up a localized string similar to Name. Looks up a localized string similar to The name of the Encryption Provider to use for this Backing Store.. Looks up a localized string similar to Encryption Provider. Looks up a localized string similar to The fully qualified type name of the Backing Store.. Looks up a localized string similar to Type Name. Looks up a localized string similar to Custom Cache Manager (using type picker). Looks up a localized string similar to Custom implementation that persists the cached data in memory, and optionally interacts with a persistent backing store.. Looks up a localized string similar to Custom Cache Manager. Looks up a localized string similar to The name of the Custom Cache Manager.. Looks up a localized string similar to Name. Looks up a localized string similar to The fully qualified type name of the Custom Cache Manager.. Looks up a localized string similar to Type Name. Looks up a localized string similar to Custom Cache Store (using type picker). Looks up a localized string similar to A Backing Store implemented as a custom class that persists the cached data, and is added to Enterprise Library.. Looks up a localized string similar to Custom Cache Storage. Looks up a localized string similar to The name of the Custom Backing Store.. Looks up a localized string similar to Name. Looks up a localized string similar to The name of the Encryption Provider for this Backing Store.. Looks up a localized string similar to Encryption Provider. Looks up a localized string similar to The fully qualified type name of the Custom Backing Store.. Looks up a localized string similar to Type Name. Looks up a localized string similar to Stores the cached data in a persistent Isolated Storage store on the local machine.. Looks up a localized string similar to Isolated Storage Cache Store. Looks up a localized string similar to The name of the Isolated Storage Cache Store. Looks up a localized string similar to Name. Looks up a localized string similar to The section or partition of the Isolated Storage area for the cached data. This allows different users to cache data on the same machine safely, and prevents different users accessing the same cached data.. Looks up a localized string similar to Partition Name. Looks up a localized string similar to The name of the Encryption Provider to use for this Isolated Storage Cache Store.. Looks up a localized string similar to Encryption Provider. Looks up a localized string similar to The fully qualified type name of the Isolated Storage Cache Store.. Looks up a localized string similar to Type Name. Looks up a localized string similar to Encrypts the data in the backing store (but not in memory) using a Cryptography Provider defined in the Cryptography Application Block.. Looks up a localized string similar to Encryption Provider. Looks up a localized string similar to The name of the Encryption Provider.. Looks up a localized string similar to Name. Looks up a localized string similar to The fully qualified type name of the Encryption Provider.. Looks up a localized string similar to Type Name. Base class for fluent interface builders that extend the interface. Allows access to the underlying configuration classes that are used for the instance being configured. Returns the instance that corresponds to the being configured. Returns the instance that is currently being build up. Creates an instance of passing the current 's fluent interface builder. The current 's fluent interface builder.
This interface must implement .
Adds a to the as well as adds a reference to the instance currently being configured. The that should be added to configuration. Base class for fluent interface builders that extend the interface. Returns the instance that corresponds to the being configured. Returns the instance that is currently being build up. Allows access to the underlying configuration classes that are used for the instance being configured. Returns the instance that corresponds to the being configured. Returns the instance that is currently being build up. Base class for fluent interface builders that extend the caching configuration fluent interface. Root fluent interface for building up caching configuration.
Allows access to the underlying being configured. Returns the instance that is currently being build up. Creates an instance of passing the caching configuration's fluent interface builder. The current caching configuration's fluent interface builder.
This interface must implement .
Base class for fluent interface builders that extend the caching configuration fluent interface. Returns the instance that is currently being build up. extensions to support creation of caching configuration settings. Main entry point to create a section. The builder interface to extend. A fluent interface to further configure the caching configuration section. Base class for fluent interface builders that extend the interface. Creates an instance of passing the current 's fluent interface builder. The current 's fluent interface builder.
This interface must implement .
Adds a to the as well as adds a reference to the instance currently being configured. The that should be added to configuration. Base class for fluent interface builders that extend the interface. Returns the instance that corresponds to the being configured. Returns the instance that is currently being build up. Fluent interface used to add an encryption provider to the instance being configured. Specifies the instance being configured should use the by the name of . The name od the that should be used. A fluent interface that can be used to further configure caching settings. Fluent interface used to configure a instance. Specifies the current as the default cache manager instance. Fluent interface that can be used to further configure this . Specifies cache items should be stored using a previously configured of name . The name of the backing store that should be used to store cache items. Fluent interface that can be used to further configure caching configuration. Specifies cache items should not be persisted, but kept in memory using a . Fluent interface that can be used to further configure caching configuration. Returns a fluent interface to further configure this instance. Fluent interface used to further configure a instance. Specifies the time interval, in seconds, that should be waited to see whether cache items should be expired.
The default interval is 60 seconds.
The time interval, in seconds, that should be waited to see whether cache items should be expired. Fluent interface that can be used to further configure this .
Specifies the maximum numer of cache items after which scavenging will be performed.
The default maximum number of cache items is 1000.
The maximum numer of cache items after which scavenging will be performed. Fluent interface that can be used to further configure this .
Specifies the number of cache items that should be removed when scavenging cache items.
The default number of cache items that should be removed is 10.
The number of cache items that should be removed when scavenging cache items. Fluent interface that can be used to further configure this .
Fluent interface used to configure a custom cache manager. Specifies the current custom cache manager as the default cache manager instance. Fluent interface that can be used to further configure this custom cache manager. Fluent interface used to configure a custom instance. Returns a fluent interface that can be used to set up encryption for the current custom instance. Fluent interface used to configure a instance. Specifies the which partition should be used for the instance being configured. The name of the partition that should be used. A fluent interface that can be used to further configure the current instance. Returns a fluent interface that can be used to set up encryption for the current instance. extension that allows a custom to be configured. Specifies that current 's items should be stored using a custom implementation of . The implementation type of that should be used. Fluent interface extension point. The name of the instance. Fluent interface to further configure the custom implementation. Specifies that current 's items should be stored using a custom implementation of . Fluent interface extension point. The name of the instance. The implementation type of that should be used. Fluent interface to further configure the custom implementation. Specifies that current 's items should be stored using a custom implementation of . The implementation type of that should be used. Fluent interface extension point. The name of the instance. Attributes that should be passed to when creating an instance. Fluent interface to further configure the custom implementation. Specifies that current 's items should be stored using a custom implementation of . Fluent interface extension point. The name of the instance. The implementation type of that should be used. Attributes that should be passed to when creating an instance. Fluent interface to further configure the custom implementation. extension that allows an to be configured. Specifies that current 's items should be stored using a instance. The name of the instance Fluent interface extension point. extensions to support configuring intances. Adds a new to the caching configuration. Fluent interface extension point. The name of the . Fluent interface that can be used to further configure the created . extensions to support configuring custom instances. Adds a custom cache mananger of type to the caching configuration. The concrete type of the custom cache manager. Fluent interface extension point. The name of the cache manager that should be added to configuration. Fluent interface that can be used to further configure the created . Adds a custom cache mananger of type to the caching configuration. Fluent interface extension point. The name of the cache manager that should be added to configuration. Fluent interface that can be used to further configure the created . The concrete type of the custom cache manager. This type must implement . Adds a custom cache mananger of type to the caching configuration.
Specifying additional conifguration attributes.
The concrete type of the custom cache manager. Fluent interface extension point. The name of the cache manager that should be added to configuration. Attributes that should be passed to when creating an instance. Fluent interface that can be used to further configure the created .
Adds a custom cache mananger of type to the caching configuration.
Specifying additional conifguration attributes.
Fluent interface extension point. The name of the cache manager that should be added to configuration. The concrete type of the custom cache manager. This type must implement . Attributes that should be passed to when creating an instance. Fluent interface that can be used to further configure the created .
Configuration data defining IsolatedStorageCacheStorageData. This configuration section adds the name of the Isolated Storage area to use to store data. Initializes a new instance of the class. Initialize a new instance of the class. The name of the . Storage Encryption data defined in configuration Name of the Isolated Storage area to use. Name of the Isolated Storage area to use. This type supports the Enterprise Library Manageability Extensions infrastructure and is not intended to be used directly from your code. Represents the behavior required to provide Group Policy updates for the Caching Application Block, and it also manages the creation of the ADM template categories and policies required to edit Group Policy Objects for the block. This class performs the actual Group Policy update for the configuration section and the instances contained by it. Processing for and instances is delegated to objects registered to the configuration object data types. The Group Policy directives for the Caching Application Block differ from other block's directives in that policies are only generated for cache managers, and these policies contain the parts used to override the settings for the CacheStorageData instance identified by the CacheManagerData.CacheStorage property and the StorageEncryptionProviderData instance identified by the CacheStorageData.StorageEncryption property, if any. Manageability providers registered for CacheStorageData and StorageEncryptionProviderData subclasses must not generate policies, and the parts they generate must include the corresponding key name, as they will be included in the cache managers' policies. The purpose for this policy structure is to make the experience of editing a Group Policy Object's policies for the Caching Application Block similar to that of the Enterprise Library Configuration Console. The name of the backing stores property. The name of the expiration poll frequency property. The name of the maximum number of items in cache before scavenging property. The name of the number of items to remove when scavenging property. The name of the cache managers property. The name of the default cache manager property. The name of the encryption providers property. This method supports the Enterprise Library Manageability Extensions infrastructure and is not intended to be used directly from your code. Initializes a new instance of the class with a given set of manageability providers to use when dealing with the configuration for cache storage and encryption providers. The mapping from configuration element type to . This method supports the Enterprise Library Manageability Extensions infrastructure and is not intended to be used directly from your code. Adds the ADM instructions that describe the policies that can be used to override the configuration information for the Caching Application Block. ADM templates for caching are different from the other blocks' templates to match the configuration console's user experience. Instead of having separate categories with policies for cache managers, backing stores and encryption providers, the policy for a cache manager includes the parts for its backing store and eventual encryption provider. Overrides the 's configuration elements' properties with the Group Policy values from the registry, if any. The configuration section that must be managed. if Group Policy overrides must be applied; otherwise, . The which holds the Group Policy overrides for the configuration section at the machine level, or if there is no such registry key. The which holds the Group Policy overrides for the configuration section at the user level, or if there is no such registry key. Overrides the 's properties with the Group Policy values from the registry. The configuration section that must be managed. The which holds the Group Policy overrides. Gets the name of the category that represents the whole configuration section. Gets the name of the managed configuration section. Provides a default implementation for that processes policy overrides, performing appropriate logging of policy processing errors. Initialize a new instance of the class. Adds the ADM instructions that describe the policies that can be used to override the properties of a specific instance of the configuration element type managed by the receiver. The to which the Adm instructions are to be appended. The configuration object instance. The configuration source from where to get additional configuration information, if necessary. The key for the element's policies. The default implementation for this method creates a policy, using to create the policy name and invoking to add the policy parts. Subclasses managing objects that must not create a policy must override this method to just add the parts. Adds the ADM parts that represent the properties of a specific instance of the configuration element type managed by the receiver. The to which the Adm instructions are to be appended. The configuration object instance. The configuration source from where to get additional configuration information, if necessary. The key for the element's policies. Subclasses managing objects that must not create a policy will likely need to include the elements' keys when creating the parts. Overrides the 's properties with the Group Policy values from the registry. The configuration object for instances that must be managed. The which holds the Group Policy overrides for the configuration element. Subclasses implementing this method must retrieve all the override values from the registry before making modifications to the so any error retrieving the override values will cancel policy processing. Gets the template for the name of the policy associated to the object. Elements that override to avoid creating a policy must still override this property. Provides a default implementation for that processes policy overrides, performing appropriate logging of policy processing errors. Initialize a new instance of the class. Provides a default implementation for that processes policy overrides, performing appropriate logging of policy processing errors. The name of the attributes property. The name of the provider type property. Initialize a new instance of the class. Adds the ADM instructions that describe the policies that can be used to override the properties of a specific instance of the configuration element type managed by the receiver. The to which the Adm instructions are to be appended. The configuration object instance. The configuration source from where to get additional configuration information, if necessary. The key for the element's policies. The default implementation for this method creates a policy, using to create the policy name and invoking to add the policy parts. Subclasses managing objects that must not create a policy must override this method to just add the parts. Adds the ADM parts that represent the properties of a specific instance of the configuration element type managed by the receiver. The to which the Adm instructions are to be appended. The configuration object instance. The configuration source from where to get additional configuration information, if necessary. The key for the element's policies. Subclasses that manage custom provider's configuration objects with additional properties may override this method to add the corresponding parts. Provides a default implementation for that processes policy overrides, performing appropriate logging of policy processing errors. The name of the partition name property. Initialize a new instance of the clas. Adds the ADM instructions that describe the policies that can be used to override the properties of a specific instance of the configuration element type managed by the receiver. The to which the Adm instructions are to be appended. The configuration object instance. The configuration source from where to get additional configuration information, if necessary. The key for the element's policies. The default implementation for this method creates a policy, using to create the policy name and invoking to add the policy parts. Subclasses managing objects that must not create a policy must override this method to just add the parts. Adds the ADM parts that represent the properties of a specific instance of the configuration element type managed by the receiver. The to which the Adm instructions are to be appended. The configuration object instance. The configuration source from where to get additional configuration information, if necessary. The key for the element's policies. Subclasses managing objects that must not create a policy will likely need to include the elements' keys when creating the parts. Overrides the 's properties with the Group Policy values from the registry. The configuration object for instances that must be managed. The which holds the Group Policy overrides for the configuration element. Subclasses implementing this method must retrieve all the override values from the registry before making modifications to the so any error retrieving the override values will cancel policy processing. Gets the template for the name of the policy associated to the object. Elements that override to avoid creating a policy must still override this property. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to Backing store settings. Looks up a localized string similar to Expiration poll frequency (secs.). Looks up a localized string similar to Maximum elements in cache before scavenging. Looks up a localized string similar to Number to remove when scavenging. Looks up a localized string similar to Specify settings for cache manager '{0}'. Looks up a localized string similar to Cache managers. Looks up a localized string similar to Default cache manager. Looks up a localized string similar to Specify settings for Caching Application Block. Looks up a localized string similar to Caching. Looks up a localized string similar to Attributes. Looks up a localized string similar to Type. Looks up a localized string similar to Partition name. Looks up a localized string similar to In memory store - no settings. Looks up a localized string similar to Encryption provider settings. Base class for configuration data defined for all types of StorageEncryptionProviders Initialize a new instance of the class. Initialize a new instance of the class with a name and the type of the . The type of . Initialize a new instance of the class with a name and the type of the . The name of the . The type of . Gets the creation expression used to produce a during . This must be overridden by a subclass, but is not marked as abstract due to configuration serialization needs. A Expression that creates a A that registers the policies necessary to create instances described in the standard configuration file. Represents an expiration poll timer. Start the polling process. The method to callback when a cycle has completed. Stop the polling process. This class tests if a data item was expired using a absolute time schema. Allows end users to implement their own cache item expiration schema. Specifies if item has expired or not. Returns true if the item has expired, otherwise false. Called to tell the expiration that the CacheItem to which this expiration belongs has been touched by the user Called to give the instance the opportunity to initialize itself from information contained in the CacheItem. CacheItem that owns this expiration object Create an instance of the class with a time value as input and convert it to UTC. The time to be checked for expiration Creates an instance based on a time interval starting from now. Time interval Specifies if item has expired or not. bool isExpired = ICacheItemExpiration.HasExpired(); "True", if the data item has expired or "false", if the data item has not expired Called to notify this object that the CacheItem owning this expiration was just touched by a user action Called to give this object an opportunity to initialize itself from data inside a CacheItem CacheItem provided to read initialization information from. Will never be null. Gets the absolute expiration time. The absolute expiration time. Represents the extended format for the cache. Extended format syntax :

Minute - 0-59
Hour - 0-23
Day of month - 1-31
Month - 1-12
Day of week - 0-6 (Sunday is 0)
Wildcards - * means run every
Examples:
* * * * * - expires every minute
5 * * * * - expire 5th minute of every hour
* 21 * * * - expire every minute of the 21st hour of every day
31 15 * * * - expire 3:31 PM every day
7 4 * * 6 - expire Saturday 4:07 AM
15 21 4 7 * - expire 9:15 PM on 4 July
Therefore 6 6 6 6 1 means: • have we crossed/entered the 6th minute AND • have we crossed/entered the 6th hour AND • have we crossed/entered the 6th day AND • have we crossed/entered the 6th month AND • have we crossed/entered A MONDAY? Therefore these cases should exhibit these behaviors: getTime = DateTime.Parse( "02/20/2003 04:06:55 AM" ); nowTime = DateTime.Parse( "06/07/2003 07:07:00 AM" ); isExpired = ExtendedFormatHelper.IsExtendedExpired( "6 6 6 6 1", getTime, nowTime ); TRUE, ALL CROSSED/ENTERED getTime = DateTime.Parse( "02/20/2003 04:06:55 AM" ); nowTime = DateTime.Parse( "06/07/2003 07:07:00 AM" ); isExpired = ExtendedFormatHelper.IsExtendedExpired( "6 6 6 6 5", getTime, nowTime ); TRUE getTime = DateTime.Parse( "02/20/2003 04:06:55 AM" ); nowTime = DateTime.Parse( "06/06/2003 06:06:00 AM" ); isExpired = ExtendedFormatHelper.IsExtendedExpired( "6 6 6 6 *", getTime, nowTime ); TRUE getTime = DateTime.Parse( "06/05/2003 04:06:55 AM" ); nowTime = DateTime.Parse( "06/06/2003 06:06:00 AM" ); isExpired = ExtendedFormatHelper.IsExtendedExpired( "6 6 6 6 5", getTime, nowTime ); TRUE getTime = DateTime.Parse( "06/05/2003 04:06:55 AM" ); nowTime = DateTime.Parse( "06/06/2005 05:06:00 AM" ); isExpired = ExtendedFormatHelper.IsExtendedExpired( "6 6 6 6 1", getTime, nowTime ); TRUE getTime = DateTime.Parse( "06/05/2003 04:06:55 AM" ); nowTime = DateTime.Parse( "06/06/2003 05:06:00 AM" ); isExpired = ExtendedFormatHelper.IsExtendedExpired( "6 6 6 6 1", getTime, nowTime ); FALSE: we did not cross 6th hour, nor did we cross Monday getTime = DateTime.Parse( "06/05/2003 04:06:55 AM" ); nowTime = DateTime.Parse( "06/06/2003 06:06:00 AM" ); isExpired = ExtendedFormatHelper.IsExtendedExpired( "6 6 6 6 5", getTime, nowTime ); TRUE, we cross/enter Friday getTime = DateTime.Parse( "06/05/2003 04:06:55 AM" ); nowTime = DateTime.Parse( "06/06/2003 06:06:00 AM" ); isExpired = ExtendedFormatHelper.IsExtendedExpired( "6 6 6 6 1", getTime, nowTime ); FALSE: we don’t cross Monday but all other conditions satisfied
Validates the format. The format to validate. Initializes a new instnace of the class with a format. The extended format time. Gets the minutes to expire. The minutes to expire. This returns a copy of the integer array of minutes to expire. Gets the hours to expire. The hours to expire. This returns a copy of the integer array of hours to expire. Gets the days to expire. The days to expire. This returns a copy of the integer array of days to expire. Gets the months of the year to expire. The months of the year to expire. This returns a copy of the integer array of months to expire. Gets the days of the week to expire. The days of the week to expire. This returns a copy of the integer array of the days of the week to expire. Determines if the time has expired. The time to compare. The current time. if the time is expired; otherwise, . Gets the exteneded format. The extended format. Determines if should expire every minute. if should expire every minute; otherwise, . Determines if item should expire every day. if should expire every day; otherwise, . Determines if should expire every hour. if should expire every hour; otherwise, . Determines if should expire every month. if should expire every month; otherwise, . Determines if should expire every day of the week. if should expire every day of the week; otherwise, . This provider tests if a item was expired using a extended format. Convert the input format to the extented time format. This contains the expiration information Specifies if item has expired or not. Returns true if the data is expired otherwise false Notifies that the item was recently used. Not used Not used Gets the extended time format. The extended time format. This class tracks a file cache dependency. Constructor with one argument. Indicates the name of the file Specifies if the item has expired or not. Returns true if the item has expired, otherwise false. Notifies that the item was recently used. Not used Not used Gets the name of the dependent file. The name of the dependent file. Gets the last modifed time of the file. The last modifed time of the file This class reflects an expiration policy of never being expired. Always returns false False always Not used Not used Not used This provider tests if a item was expired using a time slice schema. Create an instance of this class with the timespan for expiration. Expiration time span For internal use only. This constructor is for testing purposes only. Never, ever call it in a real program Specifies if item has expired or not. Returns true if the item has expired otherwise false. Notifies that the item was recently used. Used to set the initial value of TimeLastUsed. This method is invoked during the reinstantiation of an instance from a persistent store. CacheItem to which this expiration belongs. Check whether the sliding time has expired. Current time The last time when the item has been used The span of sliding expiration True if the item was expired, otherwise false Returns sliding time window that must be exceeded for expiration to occur Returns time that this object was last touched Represents a task to perform expiration on cached items. Initialize an instance of the class with an object. An object. An instrumentation provider. Perform the cacheItemExpirations. Mark each as expired. The set of objects to expire. The number of items marked. Sweep and remove the s. The set of objects to remove. Prepare to sweep the s. This interface defines the contract that must be implemented to create an object that can be used to refresh an expired item from the cache. The implementing class must be serializable. Care must be taken when implementing this interface not to create an object that maintains too much state about its environment, as all portions of its environment will be serialized as well, creating possibly a huge object graph. Called when an item expires from the cache. This method can be used to notify an application that the expiration occured, cause the item to be refetched and refreshed from its original location, or perform any other application-specific action. Key of item removed from cache. Will never be null. Value from cache item that was just expired Reason the item was removed from the cache. See This method should catch and handle any exceptions thrown during its operation. No exceptions should leak out of it. Let the system know that the InstallUtil.exe tool will be run against this assembly Represents the installer for the instrumentation events. Not intended for direct use. Required designer variable. Clean up any resources being used. true if managed resources should be disposed; otherwise, false. Required method for Designer support - do not modify the contents of this method with the code editor. The instrumentation gateway when no instances of the objects from the block are involved. The event log source name. Initializes a new instance of the class, specifying whether logging to the event log is allowed. true if writing to the event log is allowed, false otherwise. Logs the occurrence of a configuration error for the Enterprise Library Caching Application Block through the available instrumentation mechanisms. Name of the instance in which the configuration error was detected. The exception raised for the configuration error. This interface defines the instrumentation events that can be raised from a . Fires the CacheUpdated event - reported when items added or removed from the cache. The number of entries updated. The total number of entries in cache. Fires the CacheAccessed event - reported when an item is retrieved from the cache, or if an item was requested but not found. The key which was used to access the cache. true if accessing the cache was successful Fires the CacheExpired event - reported when items are expired from the cache. The number of items that are expired. Fires the CacheScavenged event - reported when the cache is scavenged. The number of items scavenged from cache. Fires the CacheCallbackFailed event - reported when an exception occurs during a cache callback. The key that was used accessing the when this failure occurred. The exception causing the failure. Fires the CacheFailed event - reported when an exception is thrown during a cache operation. The message that describes the failure. The message that represents the exception causing the failure. Implementation of that generates performance counter updates in response to instrumentation activities. The name of the caching counters. The name of the event log source. The total cache expires counter name. The total cache hits counter name. The total cache misses counter name. The total cache scavenged items counter name. The total updated entries counter name. Initializes a new instance of the class. The name of the instance this instrumentation listener is created for. true if performance counters should be updated. true if event log entries should be written. The application instance name. Initializes a new instance of the class. The name of the instance this instrumentation listener is created for. true if performance counters should be updated. true if event log entries should be written. The that is used to creates unique name for each instance. Fires the CacheUpdated event - reported when items added or removed from the cache. The number of entries updated. The total number of entries in cache. Fires the CacheAccessed event - reported when an item is retrieved from the cache, or if an item was requested but not found. The key which was used to access the cache. true if accessing the cache was successful Fires the CacheExpired event - reported when items are expired from the cache. The number of items that are expired. Fires the CacheScavenged event - reported when the cache is scavenged. The number of items scavenged from cache. Fires the CacheCallbackFailed event - reported when an exception occurs during a cache callback. The key that was used accessing the when this failure occurred. The exception causing the failure. Fires the CacheFailed event - reported when an exception is thrown during a cache operation. The message that describes the failure. The message that represents the exception causing the failure. Creates the performance counters to instrument the caching events for the specified instance names. The instance names for the performance counters. Sorts the cache items in data for scavenging > Initialize a new instance of the class with a list of unsorted cache items. A set of unsorted cache items. Compares two objects and returns a value indicating whether one is less than, equal to or greater than the other in priority by date. First to compare. Second to compare. Value Condition Less than zero is less than Zero equals Greater than zero is greater than Purpose of this class is to encapsulate the behavior of how ICacheItemRefreshActions are invoked in the background. Invokes the refresh action on a thread pool thread Cache item being removed. Must never be null. The reason the item was removed. The instrumentation provider. Represents the task to start scavenging items in a . Initialize a new instance of the with a name, the and the . The number of items that should be removed from the cache when scavenging. The to perform. An instrumentation provider. Performs the scavenging. Utility class for serializing and deserializing objects to and from byte streams Converts an object into an array of bytes. Object must be serializable. Object to serialize. May be null. Serialized object, or null if input was null. Converts a byte array into an object. Object to deserialize. May be null. Deserialized object, or null if input was null. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to Internal ProducerConsumerQueue thread failed.. Looks up a localized string similar to Enterprise Library Caching Application Block. Looks up a localized string similar to Total # of Cache Access Attempts is the number of reads from the cache.. Looks up a localized string similar to Cache Accessed Expired Items Ratio Base is the total number of items expired from the cache.. Looks up a localized string similar to Cache Accessed Expired Items Ratio is the ratio between expired items accessed by the user and total items expired from the cache.. Looks up a localized string similar to Cache Accessed Scavenged Items Ratio Base is the total number of items scavenged from the cache.. Looks up a localized string similar to Cache Accessed Scavenged Items Ratio is the ratio between scavenged items accessed by the user and total items scavenged from the cache.. Looks up a localized string similar to Cache Expiries/sec is the rate at which items were expired from the cache.. Looks up a localized string similar to Cache Hit Ratio is the ratio between hits and reads from the cache.. Looks up a localized string similar to Cache Hits/sec is the rate at which requests for existing items were received by the cache.. Looks up a localized string similar to Cache Misses/sec is the rate at which requests for non existing items were received by the cache.. Looks up a localized string similar to Add called without setting BackgroundScheduler.. Looks up a localized string similar to Cache Scavenged Items/sec is the rate at which items were scavenged from the cache.. Looks up a localized string similar to Total Cache Entries is the total number of entries in the cache.. Looks up a localized string similar to Updated Entries/sec is the rate at which items were updated in the cache. An update can be either an "add" or a "remove".. Looks up a localized string similar to Parameter name cannot be null or an empty string.. Looks up a localized string similar to The error occurred executing the removal callback for key "{1}" in the the "{0}" instance.. Looks up a localized string similar to The error occurred retrieving the configuration for instance "{0}".. Looks up a localized string similar to The error occurred using the "{0}" instance.. Looks up a localized string similar to Backing Stores with non-default constructors should override GetRegistrations().. Looks up a localized string similar to The format length is invalid.. Looks up a localized string similar to The file does not exist.. Looks up a localized string similar to Must be implemented by subclasses.. Looks up a localized string similar to The file name cannot be null.. Looks up a localized string similar to Time format cannot be null.. Looks up a localized string similar to Parameter must implement type '{0}'.. Looks up a localized string similar to Absolute time cannot be less than current time.. Looks up a localized string similar to Day of Week in Extended Format out of range.. Looks up a localized string similar to Hour in Extended Format out of range.. Looks up a localized string similar to Minutes in Extended Format out of range.. Looks up a localized string similar to Month of Year in Extended Format out of range.. Looks up a localized string similar to Sliding time should be greater than or equal to 1s.. Looks up a localized string similar to The storage are name for the Isolated Storage Backing Store can not be null or an empty string.. Looks up a localized string similar to The Custom Backing Store '{0}' with Type '{1}' must derive from IBackingStore.. Looks up a localized string similar to The Custom Cache Manager '{0}' with Type '{1}' must derive from ICacheManager.. Looks up a localized string similar to Failure while removing item from cache in background.. Looks up a localized string similar to Failure while starting application-specified refresh action.. Looks up a localized string similar to Expiration poll frequency time must be at least 1 millisecond.. Looks up a localized string similar to Cannot stop polling before it is started.. Looks up a localized string similar to Total Cache Expiries is the total number of items expired from the cache.. Looks up a localized string similar to Total Cache Hits is the total number of requests for existing items received by the cache.. Looks up a localized string similar to Total Cache Misses is the total number for non existing items received by the cache.. Looks up a localized string similar to Total Cache Scavenged Items is the total number of items scavenged from the cache.. Looks up a localized string similar to Total Updated Entries is the total number of items updated in the cache. An update can be either an "add" or a "remove"..
================================================ FILE: packages/EnterpriseLibrary.Caching.5.0.505.0/lib/SL40/Microsoft.Practices.EnterpriseLibrary.Caching.Silverlight.xml ================================================ Microsoft.Practices.EnterpriseLibrary.Caching.Silverlight This class is primarily a testing hook. Testing code that calls is fraught with pain and often results in weird test failures. To avoid this, all the code in the caching block that needs the current calls instead. Tests can use to change the definition of "now" for testing purposes. Don't change the time provider in production code. That way lies madness. Change the current time provider. Method to call to return the current time. Resets the time provider to the default. Returns the current date time as given by the current time provider func. Base class for configuration objects describing instances of caches. Returns the entries for this configuration object. A set of registry entries. The name used to serialize the configuration section. Return the objects needed to configure the container. The containing the configuration information. The sequence of objects. Return the objects needed to reconfigure the container after a configuration source has changed. The containing the configuration information. The sequence of objects. Gets the collection of caches. Gets or sets the default cache name. Base class for fluent interface builders that extend the caching configuration fluent interface. Root fluent interface for building up caching configuration. Allows access to the underlying being configured. Returns the instance that is currently being build up. Creates an instance of passing the caching configuration's fluent interface builder. The current caching configuration's fluent interface builder.
This interface must implement .
Returns the instance that is currently being build up. extensions to support creation of caching configuration settings. Main entry point to configure a section. The builder interface to extend. A fluent interface to further configure the caching configuration section. extensions to support configuring instances. Adds a to the caching configuration settings. Fluent interface extension point. The name of the that should be configured. Fluent interface to further configure the created . Fluent interface used to configure a instance. Specifies this should be the caching blocks' default instance. Returns a fluent interface to further configure the current instance. Fluent interface used to further configure a instance. Specifies the thresholds for when the scavenging logic should start/stop removing items from this instance. The percentage of quota before scavenging of entries needs to take place. The percentage of quota after scavenging has taken place. Specifies the frequency of expiration polling cycle that should be used by this to check for items that expired. The frequency of expiration polling cycle. Specifies the maximum size in kilobytes that can be used by this to store items. The maximum size in kilobytes for the cache. Specifies the serializer used for serializing and deserializing the cache entries. The type used for serializing and deserializing the cache entries. extensions to support configuring instances. Adds a to the caching configuration settings. Fluent interface extension point. The name of the that should be configured. Fluent interface to further configure the created . Fluent interface used to configure a instance. Specifies this should be the caching blocks' default instance. Returns a fluent interface to further configure the current instance. Fluent interface used to further configure a instance. Specifies the thresholds for when the scavenging logic should start/stop removing items from this instance. The maximum number of items in cache before an add causes scavenging to take place. The number of items left in the cache after scavenging has taken place. Specifies the frequency of expiration polling cycle that should be used by this to check for items that expired. The frequency of expiration polling cycle. Configuration object for an . Initializes a new instance of the class. Returns the entries for this configuration object. A set of registry entries. Gets or sets the maximum number of items in cache before an add causes scavenging to take place. Gets or sets the number of items left in the cache after scavenging has taken place. Gets or sets the frequency of expiration polling cycle. Configuration object for an . Initializes a new instance of the class. Returns the entries for this configuration object. A set of registry entries. Gets or sets the maximum size in kilobytes for the cache. Gets or sets the percentage of quota before scavenging of entries needs to take place. Gets or sets the percentage of quota after scavenging has taken place. Gets or sets the frequency of expiration polling cycle. Gets or sets name of the type used for serializing and deserializing the cache entries. Gets or sets the type used for serializing and deserializing the cache entries. Represents the type that implements an in-memory cache. The class is a concrete implementation of the abstract class. Note: The class is somewhat similar to the System.Runtime.Caching.MemoryCache class available in the .NET Framework in the Desktop. The class has many properties and methods for accessing the cache that will be familiar to you if you have used the Desktop's MemoryCache class. The MemoryCache class does not allow null as a value in the cache. Any attempt to add or change a cache entry with a value of null will fail. The type does not implement cache regions. Therefore, when you call methods that implement base methods that contain a parameter for regions, do not pass a value for the parameter. The methods that use the region parameter all supply a default value. For example, the method overload has a regionName parameter whose default value is . Base class for caches that keep items in memory. The type of the cache entry specific for the concrete implementations. Represents an object cache and provides the base methods and properties for accessing the object cache. Gets a value that indicates that a cache entry has no absolute expiration. Indicates that a cache entry has no sliding expiration time. When overridden in a derived class, tries to insert a cache entry into the cache as a instance, and adds details about how the entry should be evicted. The item to add. An object that contains eviction details for the cache entry. true if insertion succeeded, or false if there is an already an entry in the cache that has the same key as item. When overridden in a derived class, inserts a cache entry into the cache without overwriting any existing cache entry. A unique identifier for the cache entry. The object to insert. The absolute expiration. Optional. A named region in the cache to which the cache entry can be added, if regions are implemented. Defaults to . true if insertion succeeded, or false if there is an already an entry in the cache that has the same key as item. When overridden in a derived class, inserts a cache entry into the cache, specifying information about how the entry will be evicted. A unique identifier for the cache entry. The object to insert. An object that contains eviction details for the cache entry. Optional. A named region in the cache to which the cache entry can be added, if regions are implemented. Defaults to . true if insertion succeeded, or false if there is an already an entry in the cache that has the same key as item. When overridden in a derived class, inserts the specified CacheItem object into the cache, specifying information about how the entry will be evicted. The value to add. An object that contains eviction details for the cache entry. If a cache entry with the same key exists, the specified cache entry; otherwise, . When overridden in a derived class, inserts a cache entry into the cache, by using a key, an object for the cache entry, an absolute expiration value, and an optional region to add the cache into. A unique identifier for the cache entry. The object to insert. The absolute expiration. Optional. A named region in the cache to which the cache entry can be added, if regions are implemented. Defaults to . If a cache entry with the same key exists, the specified cache entry's value; otherwise, . When overridden in a derived class, inserts a cache entry into the cache, specifying a key and a value for the cache entry, and information about how the entry will be evicted. A unique identifier for the cache entry. The object to insert. An object that contains eviction details for the cache entry. Optional. A named region in the cache to which the cache entry can be added, if regions are implemented. Defaults to . If a cache entry with the same key exists, the specified cache entry's value; otherwise, . When overridden in a derived class, checks whether the cache entry already exists in the cache. A unique identifier for the cache entry. Optional. A named region in the cache to which the cache entry can be added, if regions are implemented. Defaults to . true if the cache contains a cache entry with the same key value as key; otherwise, false. When overridden in a derived class, gets the specified cache entry from the cache as an object. A unique identifier for the cache entry. Optional. A named region in the cache to which the cache entry was added, if regions are implemented. Defaults to . The cache entry that is identified by key. When overridden in a derived class, gets the specified cache entry from the cache as a instance. A unique identifier for the cache entry. Optional. A named region in the cache to which the cache entry was added, if regions are implemented. Defaults to . The cache item. When overridden in a derived class, gets the total number of cache entries in the cache. Optional. A named region in the cache for which the cache entry count should be computed, if regions are implemented. Defaults to . The number of cache entries in the cache. If regionName is not Nothing, the count indicates the number of entries that are in the specified cache region. When overridden in a derived class, creates an enumerator that can be used to iterate through a collection of cache entries. The enumerator object that provides access to the cache entries in the cache. When overridden in a derived class, gets a set of cache entries that correspond to the specified keys. A collection of unique identifiers for the cache entries to get. Optional. A named region in the cache to which the cache entry or entries were added, if regions are implemented. The default value for the optional parameter is . A dictionary of key/value pairs that represent cache entries. Gets a set of cache entries that correspond to the specified keys. Optional. A named region in the cache to which the cache entry or entries were added, if regions are implemented. The default value for the optional parameter is . A collection of unique identifiers for the cache entries to get. A dictionary of key/value pairs that represent cache entries. When overridden in a derived class, removes the cache entry from the cache. A unique identifier for the cache entry. Optional. A named region in the cache to which the cache entry was added, if regions are implemented. Defaults to . An object that represents the value of the removed cache entry that was specified by the key, or if the specified entry was not found. When overridden in a derived class, inserts the cache entry into the cache as a CacheItem instance, specifying information about how the entry will be evicted. The cache item to add. An object that contains eviction details for the cache entry. This object provides more options for eviction than a simple absolute expiration. When overridden in a derived class, inserts a cache entry into the cache, specifying time-based expiration details. A unique identifier for the cache entry. The object to insert. The fixed date and time at which the cache entry will expire. Optional. A named region in the cache to which the cache entry can be added, if regions are implemented. Defaults to . When overridden in a derived class, inserts a cache entry into the cache. A unique identifier for the cache entry. The object to insert. An object that contains eviction details for the cache entry. Optional. A named region in the cache to which the cache entry can be added, if regions are implemented. Defaults to . When overridden in a derived class, gets a description of the features that a cache implementation provides. Gets the name of the ObjectCache instance. Gets or sets the default indexer for the ObjectCache class. Initializes a new instance of the class. The name of the cache. The scavenging strategy. The scavenging scheduler. The expiration scheduler. Releases resources. Releases resources. Releases resources. Inserts the specified CacheItem object into the cache, specifying information about how the entry will be evicted. The value to add. An object that contains eviction details for the cache entry. If a cache entry with the same key exists, the specified cache entry; otherwise, . Inserts a cache entry into the cache, by using a key, an object for the cache entry, an absolute expiration value, and an optional region to add the cache into. A unique identifier for the cache entry. The object to insert. The absolute expiration. Optional. A named region in the cache to which the cache entry can be added, if regions are implemented. Defaults to . If a cache entry with the same key exists, the specified cache entry's value; otherwise, . Inserts a cache entry into the cache, specifying a key and a value for the cache entry, and information about how the entry will be evicted. A unique identifier for the cache entry. The object to insert. An object that contains eviction details for the cache entry. Optional. A named region in the cache to which the cache entry can be added, if regions are implemented. Defaults to . If a cache entry with the same key exists, the specified cache entry's value; otherwise, . Checks whether the cache entry already exists in the cache. A unique identifier for the cache entry. Optional. A named region in the cache to which the cache entry can be added, if regions are implemented. Defaults to . true if the cache contains a cache entry with the same key value as key; otherwise, false. Gets the specified cache entry from the cache as an object. A unique identifier for the cache entry. Optional. A named region in the cache to which the cache entry was added, if regions are implemented. Defaults to . The cache entry that is identified by key. Gets the specified cache entry from the cache as a instance. A unique identifier for the cache entry. Optional. A named region in the cache to which the cache entry was added, if regions are implemented. Defaults to . The cache item. Gets the total number of cache entries in the cache. Optional. A named region in the cache for which the cache entry count should be computed, if regions are implemented. Defaults to . The number of cache entries in the cache. If regionName is not Nothing, the count indicates the number of entries that are in the specified cache region. Creates an enumerator that can be used to iterate through a collection of cache entries. The enumerator object that provides access to the cache entries in the cache. Gets a set of cache entries that correspond to the specified keys. A collection of unique identifiers for the cache entries to get. Optional. A named region in the cache to which the cache entry or entries were added, if regions are implemented. The default value for the optional parameter is . A dictionary of key/value pairs that represent cache entries. Removes the cache entry from the cache. A unique identifier for the cache entry. Optional. A named region in the cache to which the cache entry was added, if regions are implemented. Defaults to . An object that represents the value of the removed cache entry that was specified by the key, or if the specified entry was not found. Inserts the cache entry into the cache as a CacheItem instance, specifying information about how the entry will be evicted. The cache item to add. An object that contains eviction details for the cache entry. This object provides more options for eviction than a simple absolute expiration. Inserts a cache entry into the cache, specifying time-based expiration details. A unique identifier for the cache entry. The object to insert. The fixed date and time at which the cache entry will expire. Optional. A named region in the cache to which the cache entry can be added, if regions are implemented. Defaults to . Inserts a cache entry into the cache. A unique identifier for the cache entry. The object to insert. An object that contains eviction details for the cache entry. Optional. A named region in the cache to which the cache entry can be added, if regions are implemented. Defaults to . Ensures that no region has been specified. Name of the region. Adds an entry to the dictionary in the cache object. The entry to add. Invoked when an entry is being removed from the cache. The entry that is being removed. The reason for the removal. Updates an entry in the cache. The entry to update. The reason for the update. Invoked when an entry was removed from the cache. The entry that was removed. The reason for the removal. Actual implementation for adding or getting a cache item. A unique identifier for the cache entry. The object to insert. An object that contains eviction details for the cache entry. If a cache entry with the same key exists, the specified cache entry's value; otherwise, . Actual implementation for getting a cache item. A unique identifier for the cache entry. The cache entry that is identified by key. Updates the last access time on an entry. The entry. Checks whether the entry identified by a key is stored in memory. A unique identifier for the cache entry. true if the cache contains a cache entry with the same key value as key; otherwise, false. Gets the total number of cache entries in the cache. The number of cache entries in the cache. If regionName is not Nothing, the count indicates the number of entries that are in the specified cache region. Creates an enumerator that can be used to iterate through a collection of cache entries. The enumerator object that provides access to the cache entries in the cache. Gets a set of cache entries that correspond to the specified keys. A collection of unique identifiers for the cache entries to get. A dictionary of key/value pairs that represent cache entries. Removes a cache entry from the cache. A unique identifier for the cache entry to remove. The reason for the removal. Inserts a cache entry into the cache. A unique identifier for the cache entry. The object to insert. An object that contains eviction details for the cache entry. Creates a cache entry. A unique identifier for the cache entry. The object for the cache entry. An object that contains eviction details for the cache entry. A new cache entry of type . Adds the new entry to the cache. A unique identifier for the cache entry. The object to insert. An object that contains eviction details for the cache entry. Schedules a scavenging operation if needed. Schedules a scavenging operation. Performs an expiration sweep. Performs a scavenging sweep. Gets the name of the cache instance. Gets or sets the default indexer for the ObjectCache class. Initializes a new instance of the class. The name to use to look up configuration information. Maximum number of items in cache before an add causes scavenging to take place. Number of items left in the cache after scavenging has taken place. Frequency of expiration polling cycle. Initializes a new instance of the class. The name to use to look up configuration information. Maximum number of items in cache before an add causes scavenging to take place. Number of items left in the cache after scavenging has taken place. The scavenging scheduler. The expiration scheduler. Creates a cache entry. A unique identifier for the cache entry. The object for the cache entry. An object that contains eviction details for the cache entry. A new cache entry of type . Gets a description of the features that a cache implementation provides. A for in-memory caches. Represents an individual cache entry in the cache. Initializes a new instance of the class. A unique identifier for a CacheItem entry. Initializes a new instance of the class. A unique identifier for a CacheItem entry. The data for a CacheItem entry. Initializes a new instance of the class. A unique identifier for a CacheItem entry. The data for a CacheItem entry. The name of a region in the cache that will contain the CacheItem entry. Gets or sets a unique identifier for a CacheItem instance. Gets or sets the data for a CacheItem instance. Gets or sets the name of a region in the cache that contains a CacheItem entry. Initializes a new instance of the class. The key. The value. The policy. Updates the last access time for the entry to the current time. Gets the policy for the entry. Gets or sets the last access time for the entry. Gets the priority for the entry. Extension methods for . Determines whether an entry is expired. The policy for the entry. The last accessed time for the entry. true if the entry is expired; otherwise, false. Validates the specified policy. The policy. when is invalid. This interface encapsulates the logic used to determine when a scavenging is performed and which items are removed. Determines whether scavenging is needed for . The entries. if scavenging is needed, otherwise . Determines whether additional scavenging is needed for . The entries. if additional scavenging is needed, otherwise . Determines the entries that should be scavenged from . The entries to scavenge. A set of the entries that should be scavenged. An implementation of that bases decisions on the number of items in the cache. Initializes a new instance of the class. Maximum number of items in cache before an add causes scavenging to take place. Number of items left in the cache after scavenging has taken place. Determines whether scavenging is needed for . The entries. if scavenging is needed, otherwise . Determines whether additional scavenging is needed for . The entries. if additional scavenging is needed, otherwise . Determines the entries that should be scavenged from . The entries to scavenge. A set of the entries that should be scavenged. Manages the storage and retrieval of cache entries in isolated storage. Manages the storage and retrieval of cache entries. Stores a new entry. The entry to add. Removes an entry from storage. The entry to remove. Updates the last access time for the entry in storage. The entry to update. Retrieves all the entries currently stored by the store. Gets a value indicating whether this instance is writable. Gets the quota allowed for the store. Gets an estimate of the physical size used by the store. Initializes a new instance of the class. The name of the store. The maximum size in bytes. An entry serializer. Stores a new entry. The entry to add. The on the added entry is updated to match the physical storage. Removes an entry from storage. The entry to remove. Updates the last access time for the entry in storage. The entry to update. Retrieves all the entries currently stored by the store. Deletes the store with the given name. The store name. Releases resources. Releases resources. Releases resources. Gets a value indicating whether this instance is writable. An instance is not writable if another instance of the same application is already using the isolated storage with the same name. Gets the quota allowed for the store. Gets an estimate of the physical size used by the store. Manages serialization of entries. Serializes as an array of bytes. The entry to serialize. An array of bytes. Deserializes an entry from an array of bytes. An array of bytes representing an entry. The represented entry. Generates an representing an update to the last access time in an entry. The entry. The update to the serialized bytes. Represents an update to an entry saved to isolated storage. Initializes a new instance of the type. The bytes to update. The offset for the update. The bytes to update. The offset for the update. Provides information about the isolated storage. Gets the available free space. Represents an error caused by invalid data. Initializes a new instance of the class. Initializes a new instance of the class. A message describing the error. Initializes a new instance of the class. A message describing the error. The exception that is the cause of the current exception, or if no inner exception is specified. Provides information about the isolated storage. Gets the available free space. Scavenging strategy for isolated storage, based on quota usage. Initializes a new instance of the class. The cache entry store. The isolated storage information provider. The percentage of quota used before scavenging. The percentage of quota used after scavenging. Determines whether scavenging is needed for . The entries. if scavenging is needed, otherwise . Determines whether additional scavenging is needed for . The entries. if additional scavenging is needed, otherwise . Determines the entries that should be scavenged from . The entries to scavenge. A set of the entries that should be scavenged. Gets the maximum quantity of items allowed before scavenging when the cache is in-memory only. The entries count. The maximum quantity of items. Specifies the reason why a cache entry was removed or an entry is about to be removed. A cache entry was removed by using the or method. A cache entry was removed because it expired. Expiration can be based on an absolute time or on a sliding expiration time. A cache entry was removed to free memory in the cache. This occurs when a cache instance approaches cache-specific memory limits, or when a process or cache instance approaches computer-wide memory limits. Represents a set of eviction and expiration details for a specific cache entry. Initializes a new instance of the class. Gets or sets a value that indicates whether a cache entry should be evicted after a specified duration. The period of time that must pass before a cache entry is evicted. The default value is System.Runtime.Caching.ObjectCache.InfiniteAbsoluteExpiration, meaning that the entry does not expire. Gets or sets a priority setting that is used to determine whether to evict a cache entry. One of the enumeration values that indicates the priority for eviction. The default priority value is System.Runtime.Caching.CacheItemPriority.Default, which means no priority. Gets or sets a value that indicates whether a cache entry should be evicted if it has not been accessed in a given span of time. A span of time within which a cache entry must be accessed before the cache entry is evicted from the cache. The default is System.Runtime.Caching.ObjectCache.NoSlidingExpiration, meaning that the item should not be expired based on a time span. Gets or sets a reference to a delegate that is called after an entry is removed from the cache. A reference to a delegate that is called by a cache implementation. Gets or sets a reference to a delegate that is called before a cache entry is removed from the cache. A reference to a delegate that is called by a cache implementation. Specifies a priority setting that is used to decide whether to evict a cache entry. Indicates that there is no priority for removing the cache entry. Indicates that a cache entry should never be removed from the cache. Defines a reference to a method that is called after a cache entry is removed from the cache. The information about the cache entry that was removed from the cache. Provides information about a cache entry that was removed from the cache. Initializes a new instance of the class. The instance from which cacheItem was removed. One of the enumeration values that indicate why was removed. An instance of the cached entry that was removed. is . is . Gets an instance of a cache entry that was removed from the cache. An instance of the class that was removed from the cache. Gets a value that indicates why a cache entry was removed. One of the enumeration values that indicates why the entry was removed. Gets a reference to the source instance that originally contained the removed cache entry. A reference to the cache that originally contained the removed cache entry. Defines a reference to a method that is invoked when a cache entry is about to be removed from the cache. The information about the entry that is about to be removed from the cache. Information about a cache entry to be removed is contained in a object. A object is passed to the delegate. The method that implements the delegate can pass an updated cache entry value back to the cache implementation. The updated cache entry replaces the cache item that is about to be removed. Provides information about a cache entry that will be removed from the cache. The arguments in the class contain details about an entry that the cache implementation is about to remove. The arguments include a key to the cache entry, a reference to the instance that the entry will be removed from, a reason for the removal, and the region name in the cache that contains the entry. The constructor of the class uses these arguments to create a new instance of the class. A object is passed to a handler, which notifies the cache about the entry to remove. Notes to Implementers. A callback handler must notify the cache implementation whether to insert a replacement entry into the cache in place of the cache entry that is about to be removed. If you want to exchange cache entries, you must assign a value other than null to the property. Cache implementations will interpret a null value for the property as a notice that the current cache entry should be removed but not replaced. Initializes a new instance of the class. The instance from which cacheItem was removed. One of the enumeration values that indicate why the item was removed. The key of the cache entry that will be removed. The name of the region in the cache to remove the cache entry from. This parameter is optional. If cache regions are not defined, must be . is . is . Gets the unique identifier for a cache entry that is about to be removed. The unique identifier for the cache entry. Gets a value that indicates why a cache entry was removed. One of the enumeration values that indicates why the entry was removed. Gets a reference to the source instance that originally contained the removed cache entry. A reference to the cache that originally contained the removed cache entry. Gets the name of a region in the cache that contains a cache entry. The name of a region in the cache. If regions are not used, this value is . Gets or sets the value of entry that is used to update the cache object. The cache entry to update in the cache object. The default is . Gets or sets the cache eviction or expiration policy of the entry that is updated. The cache eviction or expiration policy of the cache item that was updated. The default is . Represents a set of features that a cache implementation provides. A cache implementation does not provide any of the features that are described in the DefaultCacheCapabilities enumeration. A cache implementation runs at least partially in memory. A cache implementation runs out-of-process. A cache implementation supports the ability to create change monitors that monitor entries. A cache implementation supports the ability to automatically remove cache entries at a specific date and time. A cache implementation supports the ability to automatically remove cache entries that have not been accessed in a specified time span. A cache implementation can raise a notification that an entry is about to be removed from the cache. This setting also indicates that a cache implementation supports the ability to automatically replace the entry that is being removed with a new cache entry. A cache implementation can raise a notification that an entry has been removed from the cache. A cache implementation supports the ability to partition its storage into cache regions, and supports the ability to insert cache entries into those regions and to retrieve cache entries from those regions. Cache that persists entries in isolated storage and loads the entries on initialization. If a second instance of an application using this cache is started, the cache on the second instance will only load the items in isolated storage but will not save them. Initializes a new instance of the class. The name for the cache. The maximum size in kilobytes. The percentage of quota used before scavenging. The percentage of quota used after scavenging. The expiration polling interval. Initializes a new instance of the class. The name for the cache. The maximum size in kilobytes. The percentage of quota used before scavenging. The percentage of quota used after scavenging. The expiration polling interval. An entry serializer. Initializes a new instance of the class. The name for the cache. The isolated storage entries store. The percentage of quota used before scavenging. The percentage of quota used after scavenging. The expiration polling interval. Deletes the data persisted by the cache with the specified name. The name of the cache that is to be removed. Creates a cache entry. A unique identifier for the cache entry. The object for the cache entry. An object that contains eviction details for the cache entry. A new cache entry of type . Inserts a cache entry into the cache. A unique identifier for the cache entry. The object to insert. An object that contains eviction details for the cache entry. Invoked when an entry was removed from the cache. The entry that was removed. The reason for the removal. Updates the last access time on an entry. The entry. Releases the store. Gets a description of the features that the cache provides. See remarks section for more info on and . The implementation partially supports and ; the callbacks are invoked as long as the cache object instance that added the cache entry with the callbacks is the same one that is running when the cache entry expires. If the cache instance is different (i.e. the application was closed and reopened, so the cache entries are rehydrated from disk), then the callbacks will not be invoked, as they are not (de)serialized. The amount of isolated storage space being used to store the cache entries. Gets a value indicating if this instance of the cache is using the isolated storage to persist the cache entries. There might be occasions where the cache is working just in memory, so any changes to the cache will not be reflected in future instances of the same cache. A cache entry for the . Initializes a new instance of the class. The key. The value. The policy. Gets or sets the storage id for the entry. Gets or sets the last access time for the entry. Manages the serialization and deserialization of entries. Initializes a new instance of the class. Initializes a new instance of the class. The encoding to use when serializing text. Generates an representing an update to the last access time in an entry. The entry. The update to the serialized bytes. Serializes as an array of bytes. The entry to serialize. An array of bytes. Deserializes an entry from an array of bytes. An array of bytes representing an entry. The represented entry. Serializes the object. The value. An array of bytes representing . Deserializes the object. The bytes representing the object. The represented object. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to Invalid operation on entry that is not persisted.. Looks up a localized string similar to Only one callback can be specified. Either RemovedCallback or UpdateCallback must be null.. Looks up a localized string similar to AbsoluteExpiration must be DateTimeOffset.MaxValue or SlidingExpiration must be TimeSpan.Zero.. Looks up a localized string similar to The percentOfQuotaUsedBeforeScavenging threshold value ({0:F2}) cannot be lower than the percentOfQuotaUsedAfterScavenging threshold value ({1:F2}).. Looks up a localized string similar to The number of items left in the cache after scavenging must be greater than zero.. Looks up a localized string similar to The number of items left in the cache after scavenging must be less than or equal to the number of items allowed before scavenging.. Looks up a localized string similar to The number of items allowed in the cache before scavenging happens must be greater than zero.. Looks up a localized string similar to This cache object does not support regions.. Looks up a localized string similar to The serialized value is invalid: serialized value length is different than the logical size.. Looks up a localized string similar to The serialized value is invalid: too short.. Looks up a localized string similar to SerializerType value must be a type that implements IIsolatedStorageCacheEntrySerializer and has a default constructor.. This interface represents an object that can perform some sort of operation. The operation will be run at some point in the future. Set the action that will be run when work is scheduled. The that will be invoked when the action is scheduled. Requests that the object perform its work at some point in the future. A scheduler that will queue scavenging requests onto a background thread in the thread pool. Only one scavenging request will be queued at a time. Set the action that will be run when work is scheduled. The that will be invoked when the action is scheduled. Requests that the object perform its work at some point in the future. Releases resources. Utility class for serializing and deserializing objects to and from byte streams Converts an object into an array of bytes. Object must be serializable. Object to serialize. May be null. Serialized object, or null if input was null. Converts a byte array into an object. Object to deserialize. May be null. Deserialized object, or null if input was null.
================================================ FILE: packages/EnterpriseLibrary.Common.5.0.505.0/lib/NET35/Microsoft.Practices.EnterpriseLibrary.Common.xml ================================================ Microsoft.Practices.EnterpriseLibrary.Common Provides the friendly name of the application domain as the prefix in formatting a particular instance of a performance counter. Provides a pluggable way to format the name given to a particular instance of a performance counter. Each instance of a performance counter in Enterprise Library is given a name of the format "Name prefix - counter name" Creates the formatted instance name for a performance counter, providing the prefix for the instance. Performance counter name, as defined during installation of the counter Formatted instance name in form of "prefix - nameSuffix" Creates an instance of the Creates an instance of the with an Application Instance Name Creates the formatted instance name for a performance counter, providing the Application Domain friendly name for the prefix for the instance. Performance counter name, as defined during installation of the counter Formatted instance name in form of "appDomainFriendlyName - nameSuffix" Provides a virtual PerformanceCounter interface that allows an application to maintain both individually named counter instances and a single counter total instance. Initializes a single performance counter instance named "Total" Performance counter category name, as defined during installation Performance counter name, as defined during installation Initializes multiple instances of performance counters to be managed by this object. Performance counter category name, as defined during installation Performance counter name, as defined during installation Param array of instance names to be managed Initializes this object with performance counters created externally. It is the responsibility of the external counter factory to create an instance for the "Total" counter. Param array of already initialized s to be managed by this instance. Clears the raw count associated with all managed performance counters Increments each performance counter managed by this instance. Increments by the given each performance counter managed by this instance. Amount by which to increment each counter Gets the current value of the given performance counter instance. Instance name of counter for which to get value. Value of the given performance counter. Sets the value of the given performance counter instance. Instance name of counter for which to set the value. Value to which the given instance should be set. Initializes a performance counter, giving it the specified . Instance name to be given to the instantiated . Initialized . Increments the associated performance counters by one. The instance to be incremented. Gets the list of performance counter instances managed by this object. This method supports the Enterprise Library infrastructure and is not intended to be used directly from your code. Binds an event source to an event handler. Initializes this object with the source and listener objects to be bound together. Object owning the event that will be bound to Object owning the method that will be added as a handler for specified event. Adds specified as an event handler for the . Event on source object to which will be added. Method to be added as event handler for . Base class for attributes used to identify instrumentation producers or consumers. Initializes this instance with the instrumentation subject name. Subject name being produced or consumed Gets the subject name Defines methods that are consuming instrumentation events. Initializes this instance with the instrumentation subject name being consumed. Subject name of the event being consumed. Defines a class that will listen for instrumentation events broadcast by other classes and report them to system services. This attribute is placed on the class that is to be listened to, in order to define the class that will listen to it. Initializes attribute with given . Initializes attribute with given . Instrumentation listener type to instantiate. Initializes attribute with given . Use when you need to specify an explicit binder class. Instrumentation listener type to instantiate. Instrumentation binder listener type to instantiate. Gets type of class to instantiate to listen for events. Gets type of class to use to bind an instance of the attributed class to an instance of the listener class Defines events that are producing instrumentation events. Initializes this object with the instrumentation subject name being produced. Subect name of event being produced. Defines those classes and structs that have some sort of resources that need to be installed. Defines a . Used by the reflection-based installers to prepare a performance counter for installation. Initializes this object with all data needed to install a . Performance counter name. Name of Help resource string. This is not the help text itself, but is the resource name used to look up the internationalized help text at install-time. Performance Counter type. Used to determine if the counter being installed has a base counter associated with it. True if counter being installed has a base counter associated with it. Gets the type. Get the name of Help resource string. This is not the help text itself, but is the resource name used to look up the internationalized help text at install-time. Gets the name. Gets and sets the base type. This is an optional property used when the counter being defined requires a base counter to operate, such as for averages. Gets and sets the base help resource name. This is not the help text itself, but is the resource name used to look up the internationalized help text at install-time. This is an optional property used when the counter being defined requires a base counter to operate, such as for averages. Gets and sets the base name. This is an optional property used when the counter being defined requires a base counter to operate, such as for averages. Provides a pluggable way to format the name given to a particular instance of a performance counter. This class does no formatting, returning the provided name suffix as the counter name. Returns the given as the created name. Performance counter name, as defined during installation of the counter Formatted instance name in form of "nameSuffix" A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to Cannot create design source for rootSource other than DesignConfigurationSource.. Looks up a localized string similar to The type '{0}' defined in the '{1}' configuration source is invalid. Looks up a localized string similar to The exception that occured was: {0}. Looks up a localized string similar to An error occurred in application {0} in the {1}.. Looks up a localized string similar to The type '{0}' does not derive from IDictionary.. Looks up a localized string similar to The type '{0}' does not derive from IList.. Looks up a localized string similar to The [Assembler] attribute is not set in the configuration object type {0}.. Looks up a localized string similar to The assembler configured for type {0} has type {2} which is not compatible with type {1}.. Looks up a localized string similar to The base ConfigurationSourceElement configuration type can not be used as a concrete configuration element.. Looks up a localized string similar to Cannot add new paramters after Finish() or Dispose().. Looks up a localized string similar to The AssemblyQualifiedTypeNameConverter can only convert values of type '{0}'.. Looks up a localized string similar to Builder has already added policies.. Looks up a localized string similar to The section {0} could not be saved because the file does not exist.. Looks up a localized string similar to The configuration file {0} could not be found.. Looks up a localized string similar to The configuration object for type '{0}' with name '{1}' has type '{2}' which is does not implement ICustomProviderData.. Looks up a localized string similar to The concrete type for polymorphic object named '{1}' in hierarchy {2} is not defined in configuration object {0}.. Looks up a localized string similar to The configuration section '{0}' specifies Source '{1}', which is not declared in the configuration sources section.. Looks up a localized string similar to A configuration source named '{0}' was not found in the {1} section.. Looks up a localized string similar to The configuration source section is not found in the application configuration file.. Looks up a localized string similar to The required "ContainerPolicyCreatorAttribute" is not present in the supplied type "{0}".. Looks up a localized string similar to The [CustomFactory] attribute was not found on type {0} while processing request for id '{1}'.. Looks up a localized string similar to Type '{0}' specified as a custom provider does not have the required public constructor with a single NameValueCollection parameter.. Looks up a localized string similar to There was an error raising an event in . Looks up a localized string similar to The method with signature {0} is not a valid factory method to build type {1}.. Looks up a localized string similar to Cannot merge the configuration element. The local elements type '{0}' is incompatible with the parent elements type '{1}'.. Looks up a localized string similar to The type '{0}' cannot be resolved. Please verify the spelling is correct or that the full type name is provided.. Looks up a localized string similar to The supplied configuration object has type '{0}', which is not a descendant of 'NameTypeConfigurationElement' as required.. Looks up a localized string similar to The required zero argument constructor is not available for the supplied type "{0}".. Looks up a localized string similar to The required interface "IContainerPolicyCreator" is not implemented by the supplied type "{0}".. Looks up a localized string similar to The configuration could not be found for name '{0}' in factory {1}.. Looks up a localized string similar to The type {0} does not contain the ConfigurationElementTypeAttribute.. Looks up a localized string similar to No policy specifying the configuration source for the container has been set. The EnterpriseLibraryCoreExtension is probably missing.. Looks up a localized string similar to No public constructor with {1} arguments was found for type "{0}".. Looks up a localized string similar to The type {0} does not have a public method annotated as an injection target as required by the use of injection.. Looks up a localized string similar to The type {0} does not have a static method with a TargetConstructorAttribuite suitable to create an object of type {1}.. Looks up a localized string similar to The type attribute does not exist on the element {0}.. Looks up a localized string similar to The parameter '{0}' for injection target '{1}' in type '{2}' is missing the injection interpretation attribute.. Looks up a localized string similar to The performance counter '{0}' in category '{1}' is redefined in type {2} with a different configuration.. Looks up a localized string similar to Attempt to continue working with a PolicyBuilder after the policies have been added to a policy list for type '{1}' with key '{0}'.. Looks up a localized string similar to The specified policies cannot be added: a property policy mapping is still taking place.. Looks up a localized string similar to The supplied expression is not a valid property access expression: '{0}'.. Looks up a localized string similar to e {2}.. Looks up a localized string similar to Unable to find the redirected section {0} in the specified configuration source {1}.. Looks up a localized string similar to Service type of {0} is not compatible with supplied expression type of {1}. Looks up a localized string similar to Lambda expression must construct a new instance of a type.. Looks up a localized string similar to The type {0} does not contain the ConfigurationDataRetrievalAttribute required to resolve named references.. Looks up a localized string similar to Method must be overriden by subclass.. Looks up a localized string similar to Could not retrieve parameter value. The property {0} does not exist for type {1}.. Looks up a localized string similar to The value can not be null or string or empty.. Looks up a localized string similar to A creation expression must be a constructor call, but the supplied expression was '{0}'.. Looks up a localized string similar to The system configuration source is not defined in the configuration file.. Looks up a localized string similar to The configuration object for default provider named '{0}' for type '{1}' was not found in the supplied list.. Looks up a localized string similar to The type {0} from configuration could not be created.. Looks up a localized string similar to Type does not provide a constructor taking a single parameter type of NameValueCollection. Looks up a localized string similar to Type must be derived from '{0}'.. Looks up a localized string similar to Type must implement interface '{0}'.. Looks up a localized string similar to Type {0} is not an implementation of ICustomFactory for CustomFactoryAttribute.. Looks up a localized string similar to Type {0} is not an implementation of IConfigurationNameMapper for ConfigurationNameMapperAttribute.. Looks up a localized string similar to Type {0} is not an implementation of IConfigurationDataRetriever for ConfigurationDataRetrievalAttribute.. Looks up a localized string similar to Default policy creation failed: The properties in the supplied configuration object of type {0} cannot be matched to any constructor on type {1}.. Looks up a localized string similar to The expected type '{0}' was not provided.. Looks up a localized string similar to An call to an unknown method named '{0}' in the Resolve class was found in the supplied argument expression: '{1}'. Cannot create policies for this expression.. Looks up a localized string similar to Unrecognized Container marker method.. Looks up a localized string similar to Unrecognized DependencyParameter type: {0}. Looks up a localized string similar to The initialization expression for property {0} is not supported: only simple bindings are supported.. Looks up a localized string similar to File Configuration Source. Looks up a localized string similar to System Configuration Source. Base class for configuration information stored about a call handler. Represents a that has a name and type. Represents a named where the name is the key to a collection. This class is used in conjunction with a . Represents the abstraction of an object with a name. Gets the name. Name of the property that holds the name of . Initialize a new instance of a class. Intialize a new instance of a class with a name. The name of the element. This method supports the Enterprise Library infrastructure and is not intended to be used directly from your code. Updates the configuration properties of the receiver with the information in the current element in the . The reader over the configuration file. Gets or sets the name of the element. The name of the element. Represents the abstraction of an object with a name and a type. Gets the type. Name of the property that holds the type of . Intialzie an instance of the class. Initialize an instance of the class The name of the element. The that this element is the configuration for. Gets or sets the the element is the configuration for. The the element is the configuration for. Gets or sets the fully qualified name of the the element is the configuration for. the fully qualified name of the the element is the configuration for. Creates a new instance of . Creates a new instance of . Name of handler entry. Type of handler to create. Creates a new instance of . Name of handler entry. Type of handler to create. The order of the handler. Get the set of objects needed to register the call handler represented by this config element and its associated objects. A suffix for the names in the generated type registration objects. The set of objects. Gets or sets the Order in which the call handler will be executed Clones a . This will perform a clone of a by evaluating each element in the . If these properties are themselves they will be cloned as well. As items do not expose the ability to add and remove, any configuration collections must implement to be cloned. If they do not implement this, they will be skipped during cloning. The enterprise library collections implement this interface and the cloner will properly handle the cloning of and with an internal wrapper that implements for these collections. Clones a The to clone. A new, cloned . Implements common behavior for classes that add extended functionality to implementations.
This class can create subordinate sources based on the configuration and propagates change events From these sources to the main source.
Creates a new instance of passing the implementation That contains the configuration. The implementation that should be extended. Checks whether a call to should be extended.
If the call should be extended performs the extended behavior and returns the modified intance.
If the call should not be extended returns .
The name of the section that was retrieved from configuration. The section that was retrieved from configuration. The resulting instance.
When overridden in a derived class, checks whether a call to should be extended.
If the call should be extended performs the extended behavior and returns the modified intance.
If the call should not be extended returns .
The name of the section that was retrieved from configuration. The section that was retrieved from configuration. The instance passed as .
Checks whether a call to should be extended.
If the call should be extended performs the extended behavior.
The name of the section that should be stored in configuration. The section that should be stored in configuration. if the call to was handled by the extension.
When overridden in a derived class, checks whether a call to should be extended.
If the call should be extended performs the extended behavior.
The name of the section that should be stored in configuration. The section that should be stored in configuration.
Checks whether a call to should be extended.
If the call should be extended performs the extended behavior.
The name of the section that should be removed from configuration. if the call to was handled by the extension.
When overridden in a derived class, checks whether a call to should be extended.
If the call should be extended performs the extended behavior.
The name of the section that should be removed from configuration.
Performs intialization logic for this . Performs re-intialization logic for this . Perform required refresh actions as needed when source changes. Sequence of changed sections Raises the event. The names of the sections that are changed. Raises the event. The name of the section that was changed. Adds a subordinate to the . This will not be refreshed or disposed. The name under which the will be added. The that will be added. Returns a subordinate with the specified name.
Throws if the source was not found.
The name of the source that should be returned. The instance.
Ensures events are raised for Changes in a subordinate section. The name of the subordinate configuration source that contains the section. The name of the section events should be propagated for. Stops raising events for Changes in a subordinate section. The name of the section events are propagated for. Releases resources managed by this instance. Indicate that a mapped section from one of the subordinate 's was changed. Indicate a subordinate 's was changed. Implements compositional merge behavior to implementations.
Creates a new instance of . The instance that should be extended. Performs intialization logic for this . Performs re-intialization logic for this . Checks whether the result of a call to should be deferred to a subordinate source.
If the call should be deferred, returns the intance from the approriate source.
If the call should not be deferred returns .
The name of the section that was retrieved from configuration. The section that was retrieved from configuration. The resulting instance. Thrown if a section does not exist in a registered source.
Checks whether a call to should be deferred to a subordinate source.
If the call should be deferred, adds the to the appropriate source and returns .
If the call should not be deferred returns .
The name of the section that should be added to configuration. The section that should be added to configuration. if the section was added in a subordinate source, otherwise .
Checks whether a call to should be deferred to a subordinate source.
If the call should be deferred, removes the section from the appropriate source and returns .
If the call should not be deferred returns .
The name of the section that should be removed from configuration. if the section was removed from a subordinate source, otherwise .
Entry point that is used for programatically building up a configution source. Defines a configuration source builder. Interface that is used to build fluent interfaces and hides methods declared by from IntelliSense. Redeclaration that hides the method from IntelliSense. Redeclaration that hides the method from IntelliSense. Redeclaration that hides the method from IntelliSense. Redeclaration that hides the method from IntelliSense. Adds a to the builder. Name of section to add. Configuration section to add. Determines if a section name is contained in the builder. True if contained in the builder, false otherwise. Returns a configuration section with the given name, if present in the builder. Name of section to return. A valid configuration section or null. Returns a configuration section of type , if present in the builder. Section name to retrieve type to return. Updates a configuration source replacing any existing sections with those built up with the builder. Adds a to the builder. Name of section to add. Configuration section to add. Determines if a section name is contained in the builder. True if contained in the builder, false otherwise. Returns a configuration section with the given name, if present in the builder. Name of section to return. A valid configuration section or null. Returns a configuration section of type , if present in the builder. Section name to retrieve type to return. Updates a configuration source replacing any existing sections with those built up with the builder. Entry point that is used for programatically building up a configution source. Base class that manages the logic for tracking configuration source changes and reconfiguring the container, and raising all the appropriate events. Implement this interface to create an object that can read a set of objects representing the current Enterprise Library configuration and configure a dependency injection container with that information. Consume the set of objects and configure the associated container. Configuration source to read registrations from. that knows how to read the and return all relevant type registrations. A interface describing objects that raise events when a container's type registrations need to updated due to a configuration source change. The event raised when a container must be reconfigured. Deregister for change notification on the configuration source. Consume the set of objects and configure the associated container. Configuration source to read registrations from. that knows how to read the and return all relevant type registrations. When overridden in a derived class, this method should perform the actual registration with the container. Configuration source to read registrations from. that knows how to read the and return all relevant type registrations. When overridden in a derived class, this method should reconfigure the container with the provided . The new type registrations to apply to the container. When overridden in a derived class, this method should return an implementation of that wraps the actual container. The that objects can use to re-resolve dependencies after the container has been reconfigured. Raise the event in response to a configuration source change. Source of the event - the configuraton source. Event arguments. The event raised when this container must be reconfigured. The implementation that should be registered with the container. This object will be used to signal interested objects that the container has completed reconfiguration. This class is the event arguments received when a container is being reconfigured due to a configuration source change. This class is a collecting argument: new type registrations should be added via the AddTypeRegistrations method. Initializes a new instance of the class. The that changed, causing the need to reconfigure the container. Sequence of changed section names in . Called by event receivers to collect the set of type registrations that must be used to update the container. The new set of type registrations. The updated configuration source. The section names that have changed. A that can be configured through a . Create a that contains all the default registration providers, ignoring any configuration section. The that will return all registrations. Create a that contains all the default registration providers, honoring any configuration overrides of locators. The configuration source to use when creating s The responsible for raising container reconfiguration events. The that will return all registrations. public for unittesting purposes. An object that can be injected into various entlib objects that supplies events that indicate when the current configuration source has changed. This provides some isolation from the actual configuration source. Used to get an object that lets you register a change handler for a particular configuration section. Type of the configuration section to register against. The object that implements the SectionChanged event. Utility function to raise the event. Configuration source that changed. object that has been configured with the contents of . Sequence of the section names in that have changed. Event raised when the underlying configuration source has changed any section. A helper interface used as the return type of the GetSection method. The event raised when the section of type TSection is changed. The primary implementation of . Used to get an object that lets you register a change handler for a particular configuration section. Type of the configuration section to register against. The object that implements the SectionChanged event. Used to raise the event, supplying the appropriate event args. The that changed. which has been configured with the contents of the . Section names in the that have changed, as reported by the configuration source. Used to raise the event, and the associated section changed events. This overload is primarily provided for test convenience. The that changed. which has been configured with the contents of the . Section names in the that have changed, as reported by the configuration source. An implementation of that does nothing. Saves null checking everywhere. The event raised when the configuration source changes. With this implementation the event is never raised. This class implements the Visitor pattern over the hierarchy of types. This makes it easier for container authors to figure out which type of they're dealing with and centralize processing without manually having to switch on the runtime type. Main entry point. When this method is called, this class will figure out the current runtime type of the passed and then call the corresponding strongly-typed visit method based on that runtime type. The object to process. The method called when a object is visited. By default, this method throws an exception. Override it to provide your specific processing. The to process. The method called when a object is visited. By default, this method throws an exception. Override it to provide your specific processing. The to process. The method called when a object is visited. By default, this method throws an exception. Override it to provide your specific processing. The to process. The method called when a object is visited and we haven't been able to otherwise identify the runtime type as a , , or . By default, this method throws an exception. Override it to provide your specific processing or do further type checking if you have extended the type hierarchy. The to process. A configuration element that allows you to configure arbitrary call handlers that don't otherwise have configuration support. This interface must be implemented by configuration objects for custom providers that rely on a to perform the dynamic properties management. This interface is generic so that the helper can be strongly-typed. The configuration object type. It must match the type implementing the interface. Represents the configuration settings for a custom provider. Gets the name for the represented provider. Gets the attributes for the represented provider. This method supports the Enterprise Library infrastructure and is not intended to be used directly from your code. Returns the value for the specified property using the inherited implementation. The property to get the value from. The value for the property. This method supports the Enterprise Library infrastructure and is not intended to be used directly from your code. Returns the modification status using the inherited implementation. true if the configuration element has been modified, false otherwise. This method supports the Enterprise Library infrastructure and is not intended to be used directly from your code. Resets the internal state of the configuration object using the inherited implementation. The parent node of the configuration element. This method supports the Enterprise Library infrastructure and is not intended to be used directly from your code. Sets the value for the specified property using the inherited implementation. The property to set the value to. The new value for the property. This method supports the Enterprise Library infrastructure and is not intended to be used directly from your code. Modifies the ConfigurationElement object to remove all values that should not be saved using the inherited implementation. A object at the current level containing a merged view of the properties. The parent ConfigurationElement object, or a null reference (Nothing in Visual Basic) if this is the top level. A object that determines which property values to include. Gets the helper that manages the configuration information. Constructs a new instance. Constructs a new instance. Name of handler instance. Type of handler to configure. Constructs a new instance. Name of handler instance. Name of the handler type to configure. Constructs a new instance. Name of handler instance. Name of the handler type to configure. Order of the handler type to configure. Sets the attribute value for a key. The attribute name. The attribute value. Modifies the object to remove all values that should not be saved. A object at the current level containing a merged view of the properties. A parent object or if this is the top level. One of the values. Resets the internal state of the object, including the locks and the properties collection. The parent element. Indicates whether this configuration element has been modified since it was last saved or loaded when implemented in a derived class. if the element has been modified; otherwise, . Called when an unknown attribute is encountered while deserializing the object. The name of the unrecognized attribute. The value of the unrecognized attribute. if the processing of the element should continue; otherwise, . Invokes the inherited behavior. Gets the given property value. the requested property's value Invokes the inherited behavior. Sets the given property. New value for the property. Invokes the inherited behavior. Source configuration element Parent configuration element ConfigurationSaveMode Invokes the inherited behavior. Parent element Invokes the inherited behavior. True if element has been modified, false if not. Get the set of objects needed to register the call handler represented by this config element and its associated objects. A suffix for the names in the generated type registration objects. The set of objects. Overridden in order to apply . Gets or sets custom configuration attributes. Collection of attributes. Gets a of the properties that are defined for this configuration element when implemented in a derived class. A of the properties that are defined for this configuration element when implemented in a derived class. Gets the helper. Represents a collection of objects. The type of object this collection contains. The type used for Custom configuration elements in this collection. Represents a collection of objects. The type of object this collection contains. The type used for Custom configuration elements in this collection. Represents the base class from which all implementations of polymorphic configuration collections must derive. The type contained in the collection. Represents a collection of objects. A newable object that inherits from . Interface that allows a to be merged. Resets the elements in the to the s passed as . The new contents of this . Creates a new for the specifies . The type of that should be created. Performs the specified action on each element of the collection. The action to perform. Gets the configuration element at the specified index location. The index location of the to return. The at the specified index. Add an instance of to the collection. An instance of . Gets the named instance of from the collection. The name of the instance to retrieve. The instance of with the specified key; otherwise, . Determines if the name exists in the collection. The name to search. if the name is contained in the collection; otherwise, . Remove the named element from the collection. The name of the element to remove. Clear the collection. Returns an enumerator that iterates through the collection. An enumerator that iterates through the collection. Creates a new instance of a object. A new . Gets the element key for a specified configuration element when overridden in a derived class. The to return the key for. An that acts as the key for the specified . Resets the internal state of the object, including the locks and the properties collections. The parent node of the configuration element. Called when an unknown element is encountered while deserializing the object. The name of the element. The used to deserialize the element. if the element was handled; otherwise, . When overriden in a class, get the configuration object for each object in the collection. The that is deserializing the element. Creates a new . A new . Creates a new named . The name of the element to create. A new . Reverses the effect of merging configuration information from different levels of the configuration hierarchy. A object at the current level containing a merged view of the properties. The parent object of the current element, or a reference (Nothing in Visual Basic) if this is the top level. One of the values. Get the configuration object for each object in the collection. The that is deserializing the element. Get the configuration object for each object in the collection. The that is deserializing the element. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to Add Application Settings. Looks up a localized string similar to Add Configuration Settings. Looks up a localized string similar to Add Instrumentation Settings. Looks up a localized string similar to Application Settings . Looks up a localized string similar to Application Settings. Looks up a localized string similar to The position of the handler within the policy handler chain, starting from 1. The default value is zero, which means that there is no explicit order specified for the handler in relation to other handlers in the same handler chain.. Looks up a localized string similar to Order. Looks up a localized string similar to General. Looks up a localized string similar to Localization. Looks up a localized string similar to (name). Looks up a localized string similar to A manageability provider for a configuration element.. Looks up a localized string similar to Configuration Element Manageability Provider. Looks up a localized string similar to The name of the Configuration Element Manageability Provider.. Looks up a localized string similar to Name. Looks up a localized string similar to The type that is managed by the manageability provider.. Looks up a localized string similar to Target Type. Looks up a localized string similar to The fully qualified type name of the Configuration Element Manageability Provider.. Looks up a localized string similar to Type. Looks up a localized string similar to A manageability provider for a configuration section.. Looks up a localized string similar to Configuration Section Manageability Provider. Looks up a localized string similar to A collection of Manageability Providers that the receiver might require to provide manageability to configuration elements.. Looks up a localized string similar to Manageability Providers. Looks up a localized string similar to The name of the Manageability Provider.. Looks up a localized string similar to Name. Looks up a localized string similar to The fully qualified type name of the Manageability Provider.. Looks up a localized string similar to Type. Looks up a localized string similar to The element that represents a configuration source .. Looks up a localized string similar to An element that contains configurtain information.. Looks up a localized string similar to The name of the Configuration Source Element.. Looks up a localized string similar to Name. Looks up a localized string similar to The fully qualified type name of the Configuration Source Element.. Looks up a localized string similar to Type. Looks up a localized string similar to Configuration settings that determine the sources of configuration information for an application.. Looks up a localized string similar to Configuration Sources. Looks up a localized string similar to The name of the Configuration Source containing the section that this Redirected Section will override.. Looks up a localized string similar to Parent Source. Looks up a localized string similar to The list of Redirected Sections for this application configuration.. Looks up a localized string similar to Redirected Sections. Looks up a localized string similar to The name of the default Configuration Source.. Looks up a localized string similar to Selected Source. Looks up a localized string similar to The collection of defined configuration sources.. Looks up a localized string similar to Sources. Looks up a localized string similar to A custom implementation of a Call Handler that is added to Enterprise Library.. Looks up a localized string similar to Custom Call Handler. Looks up a localized string similar to The fully qualified type name of the Custom Call Handler.. Looks up a localized string similar to Type. Looks up a localized string similar to A Configuration Source that reads configuration information from a disk file. The file must contain XML data in the standard .NET configuration format.. Looks up a localized string similar to File-based Configuration Source. Looks up a localized string similar to The full path and name of the configuration file.. Looks up a localized string similar to File Path. Looks up a localized string similar to Configuration files (*.config)|*.config|All Files (*.*)|*.*. Looks up a localized string similar to The name of the File-based Configuration Source.. Looks up a localized string similar to Name. Looks up a localized string similar to The fully qualified type name of the File-based Configuration Source.. Looks up a localized string similar to Type. Looks up a localized string similar to The unique name for the Application Instance to be used by the Instrumentation providers.. Looks up a localized string similar to Application Instance Name. Looks up a localized string similar to Configuration settings for Instrumentation for the entire application.. Looks up a localized string similar to Instrumentation Settings. Looks up a localized string similar to Specifies if logging to Windows Event Log will take place when instrumented events occur within Enterprise Library.. Looks up a localized string similar to Event Logging Enabled. Looks up a localized string similar to Specifies if the Enterprise Library Performance Counters will be exposed and updated when instrumented events occur within Enterprise Library.. Looks up a localized string similar to Performance Counters Enabled. Looks up a localized string similar to Settings. Looks up a localized string similar to Settings. Looks up a localized string similar to A custom application settings, such as file paths or XML Web service URLs.. Looks up a localized string similar to Setting. Looks up a localized string similar to Key. Looks up a localized string similar to Key. Looks up a localized string similar to Value. Looks up a localized string similar to Value. Looks up a localized string similar to The name of the application. This used to determine the Registry path for the configuration information. This value is required.. Looks up a localized string similar to Application Name. Looks up a localized string similar to The collection of registered types necessary to provide manageability by the configuration source.. Looks up a localized string similar to Configuration Manageability Providers. Looks up a localized string similar to A configuration source that integrates with Group Policy to apply domain-wide or local machine policy overrides to provide centralized configuration management capabilities.. Looks up a localized string similar to Manageable Configuration Source. Looks up a localized string similar to Specifies if the configuration source will take account of domain-wide or local machine policy overrides configured in the Registry through Group Policy settings.. Looks up a localized string similar to Group Policy Enabled. Looks up a localized string similar to The full path and name of the configuration file.. Looks up a localized string similar to File Path. Looks up a localized string similar to The name of the Manageable Configuration Source.. Looks up a localized string similar to Name. Looks up a localized string similar to The fully qualified type name of the Manageable Configuration Source.. Looks up a localized string similar to Type. Looks up a localized string similar to A configuration element in a collection that is keyed by the name.. Looks up a localized string similar to Named Configuration Element. Looks up a localized string similar to The name used to identify this item.. Looks up a localized string similar to Name. Looks up a localized string similar to A collection of Named Configuration elements.. Looks up a localized string similar to Named Element Collection. Looks up a localized string similar to A collection of Name Type Configuration elements.. Looks up a localized string similar to Name Type Configuration Element Collection. Looks up a localized string similar to A configuration element in a collection that contains both a type and a name.. Looks up a localized string similar to Name Type Configuration Element. Looks up a localized string similar to The name of the Name Type Configuration Element.. Looks up a localized string similar to Name. Looks up a localized string similar to The fully qualified type name of the Name Type Configuration Element.. Looks up a localized string similar to Type Name. Looks up a localized string similar to A base class from which all implementations of polymorphic configuration collections derive.. Looks up a localized string similar to Polymorphic Configuration Element Collection. Looks up a localized string similar to A redirected section for the application configuration. Each section of the configuration can be loaded from a different configuration source if required. Each Redirected Section configured in this list will override the same entire section in the default Configuration Source.. Looks up a localized string similar to Redirected Section. Looks up a localized string similar to The name of the Redirected Section.. Looks up a localized string similar to Name. Looks up a localized string similar to The name of the Configuration Source that will handle the redirected section. Must be one of the Configuration Sources defined for the application.. Looks up a localized string similar to Configuration Source. Looks up a localized string similar to Represents a configuration section that can be serialized and deserialized to XML.. Looks up a localized string similar to Serializable Configuration Section. Looks up a localized string similar to A configuration source that reads configuration data from the default configuration file. Typically this is App.config or Web.config, depending on the application type.. Looks up a localized string similar to System Configuration Source. Looks up a localized string similar to The name of the System Configuration Source.. Looks up a localized string similar to Name. Looks up a localized string similar to The fully qualified type name of the System Configuration Source.. Looks up a localized string similar to Type. Looks up a localized string similar to A collection of Type Registration Provider elements.. Looks up a localized string similar to Type Registration Provider Element Collection. Looks up a localized string similar to A provider for registering types.. Looks up a localized string similar to Type Registration Provider Element. Looks up a localized string similar to The name of the Type Registration Provider Element.. Looks up a localized string similar to Name. Looks up a localized string similar to The name of the type that implements the Type Registration Provider Element.. Looks up a localized string similar to Provider Type Name. Looks up a localized string similar to The name of the configuration section within the configuration file.. Looks up a localized string similar to Section Name. Looks up a localized string similar to The section of the configuration that specifies the Type Registration Providers for the application.. Looks up a localized string similar to Type Registration Providers Configuration Section. Looks up a localized string similar to A collection of Type Registration providers.. Looks up a localized string similar to Type Registration Providers. Attribute class used to decorate the design time view model with a Add Application Block command.
Add Application Block commands are added to the configuration tools main menu, underneath the 'Blocks' menu item.
Attribute used to decorate a designtime View Model element with an executable command. E.g. a context menu item that allows the user to perform an action in the elements context. Initializes a new instance of the class, specifying the Command Model Type. The Command Model Type should derive from the CommandModel class in the Configuration.Design assembly.
As this attribute can be applied to the configuration directly and we dont want to force a dependency on the Configuration.Design assembly
You can specify the Command Model Type in a loosy coupled fashion.
The fully qualified name of the Command Model Type.
Initializes a new instance of the class, specifying the Command Model Type. The Command Model Type should derive from the CommandModel class in the Configuration.Design assmbly.
As this attribute can be applied to the configuration directly and we dont want to force a dependency on the Configuration.Design assembly
You can specify the Command Model Type in a loosy coupled fashion.
The Command Model Type.
Gets or sets the name of the resource, used to return a localized title that will be shown for this command in the UI (User Interface). Gets or sets the type of the resource, used to return a localized title that will be shown for this command in the UI (User Interface). Gets the title that will be shown for this command in the UI (User Interface). Gets or sets the options for this command. Gets or sets the options for this command. Gets or Sets the Command Model Type Name for this command.
The Command Model Type will be used at runtime to display and execute the command.
Command Model Types should derive from the CommandModel class in the Configuration.Design assembly.
Gets the Command Model Type for this command.
The Command Model Type will be used at runtime to display and execute the command.
Command Model Types should derive from the CommandModel class in the Configuration.Design assembly.
Defines the keyboard gesture for this command. command.KeyGesture = "Ctrl+1"; When implemented in a derived class, gets a unique identifier for this . An that is a unique identifier for the attribute. 2 Initializes a new instance of the class. The name of the configuration section that belongs to the application block that will be added. The type of the configuration section that belongs to the application block that will be added. Gets the name of the configuration section that belongs to the application block that will be added. Gets the type of the configuration section that belongs to the application block that will be added. Attribute used to overwrite the Add Command for providers that depend on the availability of another block (Sattelite Providers). Initializes a new instance of the specifying the block dependency by its configuration section name.
The name of the configuran section, used to identify the block dependency.
Initializes a new instance of the specifying the block dependency by its configuration section name and will assign the value of a default provider to the added element.
The name of the configuran section, used to identify the block dependency. The configuration type of the element that declares the default proviiders name. The property that will be used to determine the name of the default provider. The property on the created element that will be assigned the name of the default provider.
Gets the section name of the block dependency. If a configuration element exists that specifies a default property, gets the configuration type of the declaring element. If a configuration element exists that specifies a default property, gets the property that contains the name of the default value. If the provider has a property that should be assigned the name of the default provider, gets the name of the property. Container class for types and identifiers used to decorate the appSettings configuration schema with designtime information. Name of appSettings section. Container class for View Model Types used to decorate the appSettings configuration schema with designtime information. Type Name of the Section View Model used to display application settings. This class supports the Enterprise Library infrastructure and is not intended to be used directly from your code. This class supports the Enterprise Library infrastructure and is not intended to be used directly from your code. This class supports the Enterprise Library infrastructure and is not intended to be used directly from your code. This class supports the Enterprise Library infrastructure and is not intended to be used directly from your code. This property supports the Enterprise Library infrastructure and is not intended to be used directly from your code. This property supports the Enterprise Library infrastructure and is not intended to be used directly from your code. Indicates the base class or interface that must be assignable from the type specified in the property that this attribute decorates. Initializes a new instance of the class with the specified object. The to filter selections. Initializes a new instance of the class with the specified base object and configuration . The base to filter. The configuration object . Initializes a new instance of the class with the specified object and . The to filter selections. One of the values. Initializes a new instance of the class with the specified base object and configuration . One of the values. The base to filter. The configuration object . Gets the includes for the type selector. The includes for the type selector. Gets the to filter selections. The to filter selections. Gets the configuration object . The configuration object . Attribute class used to associate a class with an implementation. Creates a new instance of the class. The type of that should be associated with the target class. Gets the type of that should be associated with the target class. The type of that should be associated with the target class. Specifies a default value for a configuration property. Initializes a new instance of the class. The default value is a string representation which will be converted using . The string representation of the default value. Gets the string reprentation of the default value. The string reprentation of the default value. This class supports the Enterprise Library infrastructure and is not intended to be used directly from your code. This class supports the Enterprise Library infrastructure and is not intended to be used directly from your code. This field supports the Enterprise Library infrastructure and is not intended to be used directly from your code. This field supports the Enterprise Library infrastructure and is not intended to be used directly from your code. This class supports the Enterprise Library infrastructure and is not intended to be used directly from your code. This field supports the Enterprise Library infrastructure and is not intended to be used directly from your code. This field supports the Enterprise Library infrastructure and is not intended to be used directly from your code. configuration source to support design-time configuration of Represents a configuration source that retrieves configuration information from an arbitrary file. This configuration source uses a object to deserialize configuration, so the configuration file must be a valid .NET Framework configuration file. Represents the implementation details for file-based configuration sources. This implementation deals with setting up the watcher over the configuration files to detect changes and update the configuration representation. It also manages the change notification features provided by the file based configuration sources. This interface supports the Enterprise Library infrastructure and is not intended to be used directly from your code. Augmented version of the interface intended to be used by unit tests. Represents a source for getting configuration information. Retrieves the specified . The name of the section to be retrieved. The specified , or (Nothing in Visual Basic) if a section by that name is not found. Adds a to the configuration source and saves the configuration source. If a configuration section with the specified name already exists it will be replaced. The name by which the should be added. The configuration section to add. Removes a from the configuration source. The name of the section to remove. Adds a handler to be called when changes to the section named are detected. The name of the section to watch for. The handler for the change event to add. Removes a handler to be called when changes to section sectionName are detected. The name of the watched section. The handler for the change event to remove. Event raised when any section in this configuration source changes. This method supports the Enterprise Library infrastructure and is not intended to be used directly from your code. This method supports the Enterprise Library infrastructure and is not intended to be used directly from your code. This method supports the Enterprise Library infrastructure and is not intended to be used directly from your code. This method supports the Enterprise Library infrastructure and is not intended to be used directly from your code. This method supports the Enterprise Library infrastructure and is not intended to be used directly from your code. ConfigSource value for sections that existed in configuration but were later removed. Initializes a new instance of the class. The path for the main configuration file. trueif runtime changes should be refreshed, false otherwise. The poll interval in milliseconds. Retrieves the specified from the configuration file, and starts watching for its changes if not watching already. The section name. The section, or if it doesn't exist. Adds a handler to be called when changes to section sectionName are detected. The name of the section to watch for. The handler. Remove a handler to be called when changes to section sectionName are detected. The name of the section to watch for. The handler. Adds a to the configuration and saves the configuration source. If a configuration section with the specified name already exists it will be replaced. If a configuration section was retrieved from an instance of , a will be thrown. The name by which the should be added. The configuration section to add. The configuration section was retrieved from an instance of or and cannot be added to the current source. When implemented in a derived class, adds a to the configuration and saves the configuration source. If a configuration section with the specified name already exists it should be replaced. The name by which the should be added. The configuration section to add. Removes a from the configuration and saves the configuration source. The name of the section to remove. When implemented in a derived class, removes a from the configuration and saves the configuration source. The name of the section to remove. This method supports the Enterprise Library infrastructure and is not intended to be used directly from your code. The name of the updated configuration source. Only needs to deal with concurrency to get the current sections and to update the watchers. Rationale: - Sections' are only added or updated. - For this notification, all sections in the configuration file must be updated, and sections in external files must be refreshed only if the config source changed. - why not check after the original set of sections is retrieved? -- Sections might have been added to the listener set after the original set is retrieved, but... -- If they were added after the original set was retrieved, then they are up to date. --- For this to happen, they couldn't have been read before the o.s., otherwise they would be a listener for them. --- So, the retrieved information must be fresh (checked this with a test). -- What about other changes? --- Erased sections: only tested in the configuration file watching thread, because the meta configuration is kept in the configuration file. ---- Even if the external file an external is deleted because of the deletion, and this change is processed before the configuration file change, the refresh for the external section will refresh all the sections for the file and notify a change, without need for checking the change. The change would later be picked up by the configuration file watcher which will notify again. This shouldn't be a problem. --- External sections with changed sources. If they existed before, they must have been in the configuration file and there was an entry in the bookeeping data structures. - Concurrent updates for sections values should be handled by the system.config fx Releases the resources used by the change watchers. Releases the resources used by the change watchers. Retrieves the specified from the configuration file. The section name. The section, or if it doesn't exist. Raises the event. The argument for the raised event. Refreshes the configuration sections from the main configuration file and determines which sections have suffered notifications and should be notified to registered handlers. A dictionary with the configuration sections residing in the main configuration file that must be refreshed. A dictionary with the configuration sections residing in external files that must be refreshed. A new collection with the names of the sections that suffered changes and should be notified. A new dictionary with the names and file names of the sections that have changed their location. Refreshes the configuration sections from an external configuration file. A collection with the names of the sections that suffered changes and should be refreshed. Validates the parameters required to save a configuration section. Event raised when any section in this configuration source has changed. Gets the path of the configuration file for the configuration source. Initializes a new instance of the class. The configuration file path. The path can be absolute or relative. Initializes a new instance of the class that will refresh changes according to the value of the parameter. The configuration file path. The path can be absolute or relative. if changes to the configuration file should be notified. Initializes a new instance of the that will refresh changes according to the value of the parameter, polling every milliseconds. The configuration file path. The path can be absolute or relative. if changes to the configuration file should be notified. The poll interval in milliseconds. Adds a to the configuration and saves the configuration source. If a configuration section with the specified name already exists it will be replaced. The name by which the should be added. The configuration section to add. Removes a from the configuration and saves the configuration source. The name of the section to remove. Adds a to the configuration and saves the configuration source using encryption. If a configuration section with the specified name already exists it will be replaced.
If a configuration section was retrieved from an instance of , a will be thrown.
The name by which the should be added. The configuration section to add. The name of the protection provider to use when encrypting the section. The configuration section was retrieved from an instance of or and cannot be added to the current source.
This method supports the Enterprise Library infrastructure and is not intended to be used directly from your code. Adds or replaces under name in the configuration and saves the configuration file. The name for the section. The configuration section to add or replace. This method supports the Enterprise Library infrastructure and is not intended to be used directly from your code. Adds or replaces under name in the configuration file and saves the configuration file using encryption. The name for the section. The configuration section to add or replace. The name of the protection provider to use when encrypting the section. Retrieves the specified from the configuration file. The section name. The section, or if it doesn't exist. Refreshes the configuration sections from the main configuration file and determines which sections have suffered notifications and should be notified to registered handlers. A dictionary with the configuration sections residing in the main configuration file that must be refreshed. A dictionary with the configuration sections residing in external files that must be refreshed. A new collection with the names of the sections that suffered changes and should be notified. A new dictionary with the names and file names of the sections that have changed their location. Refreshes the configuration sections from an external configuration file. A collection with the names of the sections that suffered changes and should be refreshed. Supports Enterprise Library design-time by providing ability to retrieve, add, and remove sections. Retrieves a local section from the configuration source. The configuration section or null if it does not contain the section. Adds a local section to the configuration source. Removes a local section from the configuration source. Initializes a new instance of based on file path. Retrieves a local section from the configuration source. The configuration section or null if it does not contain the section. Adds a local section to the configuration source. Removes a local section from the configuration source. Creates a new instance of based on and . The source that was used to open the main conifguration file. An absolute of relative path to the file to which the source should be created. A new instance of . Gets the path of the configuration file for the configuration source. Attribute class used to associate a class with an implementation. Creates a new instance of the class. The type of that should be associated with the target class. Gets the type of that should be associated with the target class. The type of that should be associated with the target class. Attribute class that allows to specify a property that should be used as the Element View Model's name.
Initializes a new instance of the class. The reflection name of the property that will be used as the Element View Model's name. Gets the reflection name of the property that will be used as the Element View Model's name. Gets the Display Format that will be used to display the name property.
The Display Format should be a Format-string with 1 argument:
The token '{0}' will be replaced with the Name Properties value.
This attribute supports the Enterprise Library infrastructure and is not intended to be used directly from your code. Attribute class that can be oved to offer a properties add-commands to the containing Element View Model.
This can be usefull for properties that contain a collection of providers, of which the Element Collection View Model is not shown in the UI (User Interface).
Attribute that instructs the designtime to make the textbox for a property readonly.
This property can is used together with an , in which the created text box is readonly, though the property can be edited by the editor.
Creates a new instance of . if the textbox created for this property should be readonly, otherwise . Returns if the textbox created for this property should be readonly, otherwise . Registers a class as a metadata body class for another class. When applying metadata attributes to classes, the target class might not always allow itself to be anotated.
This attribute can be used to nominate another class to contain the metadata attributes.
The metadata type should follow the same structure as the target type and its members cab be decorated with the metadata attributes.
Creates a new instance of . The type for which this class should contain metadata attributes. Gets the type for which this class should contain metadata attributes. The type for which this class should contain metadata attributes. Attribute class that is used to add a custom add command for a Element View Model.
The Type Picking Command displays a type picker prior to adding the target element and can use its result to initialize the added element.
Initializes a new instance of the class. Initializes a new instance of the class. The clr-name of the property to which the selected type should be assigned. This property is expected to be of type . Gets the clr-name of the property to which the selected type should be assigned. The clr-name of the property to which the selected type should be assigned. Specifies whether a command replaces a default command. Specifies that the command should be used to replace the default add command. Specifies that the command should be used to replace the default delete command. Specifies that the command should not be used to replace any default command. Specifies the placement of a command. This can be either a top level menu, e.g.: or or a context menu, e.g.: , . Specifies placement of the command in the top level file menu. Specifies placement of the command in the top level blocks menu. Specifies placement of the command in the top level wizards menu. Specifies placement of the command in the contextual add menu for an configuration element. Specifies placement of the command in the custom commands menu for an configuration element. Specifies placement of the command in the delete commands menu for an configuration element. Determines if the corresponding property is read-only at designtime. This attribute is used to mark properties that should be presented as read-only, but underlying code may change the value on. Initializes a new instance of the class. if the property should be read-only at designtime. Determines if the property is read-only by design-time. Returns if the property is read-only at design-time and otherwise. Attribute class used to indicate whether a property can be overwritten per environment.
The default behavior is that any property can be overwritten.
Initializes a new instance of the class. to specify the property can be overwritten per environment. Otherwise . if the property can be overwritten per environment. Otherwise . Specifies a custom property type for the overrides property.
Specifies a that should be used to serialize the overriden value to the delta configuration file.
This can be used to overwrite a property that doesnt implement .
Specifies additional metadata for the FilteredFileNameEditor editor. Initialize a new instance of the class with the containing the resources and the resource key. The containing the resources. The resource key. Gets the filter for the dialog. The filter for the dialog. Gets or sets whether the Open File Dialog should only allow existing files to be selected. if the Open File Dialog is used to open existing files. Otherwise . Represents a localized . Initialize a new instance of the class with the containing the resources and the resource name. The resources string name. The containing the resource strings. Gets the localized string based on the key. The key to the string resources. The localized string. Gets the type that contains the resources. The type that contains the resources. Returns a localized for the General category. Class that contains common type names and metadata used by the designtime. Class that contains common command types used by the designtime. Type name of the AddSatelliteProviderCommand class, declared in the Configuration.DesignTime Assembly. Type name of the AddApplicationBlockCommand class, declared in the Configuration.DesignTime Assembly. Type name of the TypePickingCollectionElementAddCommand class, declared in the Configuration.DesignTime Assembly. Type name of the ExportAdmTemplateCommand class, declared in the Configuration.DesignTime Assembly. Type name of the HiddenCommand class, declared in the Configuration.DesignTime Assembly. Type name of the AddInstrumentationBlockCommand class, declared in the Configuration.DesignTime Assembly. Type name of the WizardCommand class, declared in the Configuration.DesignTime Assembly. Class that contains common editor types used by the designtime. Type name of the DatePickerEditor class, declared in the Configuration.DesignTime Assembly. Type name of the ElementCollectionEditor, declared class in the Configuration.DesignTime Assembly. Type name of the UITypeEditor class, declared in the System.Drawing Assembly. Type name of the TypeSelectionEditor, declared class in the Configuration.DesignTime Assembly. Type name of the FilteredFileNameEditor, declared class in the Configuration.DesignTime Assembly. Type name of the FrameworkElement, declared class in the PresentationFramework Assembly. Type name of the MultilineTextEditor class, declared in the Configuration.DesignTime Assembly. Type name of the PopupTextEditor class, declared in the Configuration.DesignTime Assembly. Type name of the FlagsEditor class, declared in the Configuration.DesignTime Assembly. Type name of the RegexTypeEditor class, declared in the System.Design Assembly. Type name of the ConnectionStringEditor class, declared in the System.Design Assembly. Type name of the TemplateEditor class, declared in the Configuration.DesignTime Assembly. Type name of the IEnvironmentalOverridesEditor interface, declared in the Configuration.DesignTime Assembly. Class that contains common view model types used by the designtime. Type name of the TypeNameProperty class, declared in the Configuration.DesignTime Assembly. Type name of the ConfigurationProperty class, declared in the Configuration.DesignTime Assembly. Type name of the SectionViewModel class, declared in the Configuration.DesignTime Assembly. Type name of the InstrumentationViewModel class, declared in the Configuration.DesignTime Assembly. Type name of the ManageableConfigurationSourceViewModel class, declared in the Configuration.DesignTime Assembly. Type name of the CollectionEditorContainedElementProperty class, declared in the Configuration.DesignTime Assembly. Type name of the CollectionEditorContainedElementReferenceProperty class, declared in the Configuration.DesignTime Assembly. Type name of the RedirectedSectionSourceProperty class, declared in the Configuration.DesignTime Assembly. Class that contains common converter types used by the designtime runtime. Type name of the RedirectedSectionNameConverter class, declared in the Configuration.DesignTime Assembly. Class that contains common metadata classes used by the designtime.
This class supports the Enterprise Library infrastructure and is not intended to be used directly from your code.
This class supports the Enterprise Library infrastructure and is not intended to be used directly from your code. This property supports the Enterprise Library infrastructure and is not intended to be used directly from your code. Class that contains common validation types used by the designtime. Type name of the FileWritableValidator class, declared in the Configuration.DesignTime Assembly. Type name of the FilePathValidator class, declared in the Configuration.DesignTime Assembly. Type name of the FilePathExistsValidator class, declared in the Configuration.DesignTime Assembly. Type name of the RequiredFieldValidator class, declared in the Configuration.DesignTime Assembly. Type name of the TypeValidator class, declared in the Configuration.DesignTime Assembly. Type name of the SelectedSourceValidator class, declared in the Configuration.DesignTime Assembly. Type name of the NameValueCollectionValidator class, declared in the Configuration.DesignTime Assembly. Type names for well known Enterprise Library elements. Type name for the LoggingSettings section. Type name for the DatabaseSettings section. Type name for the ExceptionHandlingSettings section. Attribute class used to indicate that the property is a reference to provider.
Reference properties will show an editable dropdown that allows the referred element to be selected.
Initializes a new instance of the class. The configuration type name of the provider that used as a reference. Initializes a new instance of the class. The name of a configuration type that contains the references. The configuration type name of the provider that used as a reference. Initializes a new instance of the class. The configuration type of the provider that used as a reference. Initializes a new instance of the class. The configuration type that contains the references. The configuration type of the provider that used as a reference. Gets the configuration type that contains the references. Gets or sets a boolean indicating whether only providers can be used that are contained in the current Element View Model. if only providers can be used that are contained in the current Element View Model. Otherwise . Gets the configuration type of the provider that used as a reference. A customized version of that can load the string from assembly resources instead of just a hard-wired string. Create a new instance of where the type and name of the resource is set via properties. Initializes a new instance of the class. Type used to locate the assembly containing the resources. Name of the entry in the resource table. A type contained in the assembly we want to get our display name from. Name of the string resource containing our display name. Gets the description for a property, event, or public void method that takes no arguments stored in this attribute. The display name. A customized version of that can load the string from assembly resources instead of just a hard-wired string. Create a new instance of where the type and name of the resource is set via properties. Initializes a new instance of the class. Type used to locate the assembly containing the resources. Name of the entry in the resource table. A type contained in the assembly we want to get our display name from. Name of the string resource containing our display name. Gets the display name for a property, event, or public void method that takes no arguments stored in this attribute. The display name. Indicates that this assembly handles the . Initializes a new instance of the class. Name of the section handled by this assembly. Indicates this section should be cleared during save, but there is no direct handler for it. Provides attributes for the filter of types. No filter are applied to types. Inclue abstract types in the filter. Inclue interfaces in the filter. Inclue base types in the filter. Inclue non public types in the filter. Include all types in the filter. Defines the type of attribute to apply this configuration property or field. This attribute is applied to create validators for use in the configuration design-time. Creates an instance of ValidationAttribute with the validator type specified by . Creates an instance of the ValidationAttribute with the validator type specified by Creates a validator objects. This is expected to return a Validator type from the Microsoft.Practices.EnterpriseLibrary.Configuration.Design namespace. Retrieves the validator . When implemented in a derived class, gets a unique identifier for this . An that is a unique identifier for the attribute. 2 Indicates an element level validator. Creates an instance of ElementValidationAttribute with the validator type specified by . Creates an instance of the ElementValidationAttribute with the validator type specified by Creates a validator objects. This is expected to return a Validator type from the Microsoft.Practices.EnterpriseLibrary.Configuration.Design namespace. Retrieves the validator . When implemented in a derived class, gets a unique identifier for this . An that is a unique identifier for the attribute. 2 Attribute class used to specify a specific View Model derivement or visual representation to be used on the target element. The View Model Type should derive from the ElementViewModel or Property class in the Configuration.Design assembly.
As this attribute can be applied to the configuration directly and we dont want to force a dependency on the Configuration.Design assembly
You can specify the View Model Type in a loosy coupled fashion, passing a qualified name of the type.
Initializes a new instance of the class. The type of the View Model that should be used for the annotated element. Initializes a new instance of the class. The type name of the View Model that should be used for the annotated element. Gets the View Model Type that should be used to bind the annotated element to its view. Marks the annotated class as a configuration wizard that can be found by the configuration design time tools. Initializes a new instance of the with the default wizard command model type specified. Initializes a new instance of the with the command model type specified as a string. Initializes a new instance of the with the command model type specified by . The type of the wizard to instantiate must derive from WizardModel or will result on an error at runtime. The name of the type of the wizard to instantiate. Type converter used to work around enums with enums wrongly marked as "flags". Initializes a new instance of the class. Indicates where the standard values are exclusive. Fluent interface that allows to add instances. Adds a instance to configuration source builder.
The name of the instance.
Fluent interface used to configure a instance. Specifies the type of the instance that should be used to retrieve type registrations. The type of the instance that should be used to retrieve type registrations. Fluent interface that allows to add more type registration providers. Specifies the type of the instance that should be used to retrieve type registrations. The type of the instance that should be used to retrieve type registrations. Fluent interface that allows to add more type registration providers. Specifies the name of the configuration section that implements .
The name of the configuration section that implements . Fluent interface that allows to add more type registration providers.
extensions to support creation of type registration provider settings. Main entry point to configure a section. The builder interface to extend. A fluent interface that allows to add instances. Main entry point to configure a section with no default type registrations. The builder interface to extend. A fluent interface that allows to add instances. Exception class for exceptions that occur when reading configuration metadata from a . Initializes a new instance of the class. Initializes a new instance of the class. A message that describes why this exception was thrown. Initializes a new instance of the class. A message that describes why this exception was thrown. The inner exception that caused this exception to be thrown. Initializes a new instance of the class. A message that describes why this exception was thrown. The inner exception that caused this exception to be thrown. The path to the configuration file that caused this exception to be thrown. The line number within the configuration file at which this exception was thrown. Initializes a new instance of the class. The object that holds the information to be serialized. The contextual information about the source or destination. Implements hierarchical merge behavior to implementations.
Creates a new instance of . The instance that should be extended. Creates a new instance of . The instance that should be extended. An instance the should be merged with. Performs intialization logic for this . Performs re-intialization logic for this . Checks whether the result of a call to should be merged.
If the call should be merged, performs the merge behavior and returns the resulting intance.
If the call should not be merged returns .
The name of the section that was retrieved from configuration. The section that was retrieved from configuration. The resulting instance.
Interface used to implement custom clone behavior for a . Creates a deep clone of the current instance. A deep clone of the current instance. Factory for creating s. Creates a based on a ConfigurationElementCollection type. Configuration element for a redirected section.
The property is used to identify the redireced section, based on its section name.
Gets the name of the which contains the configuration section. The name of the which contains the configuration section. Event argument passed when a configuration section signals that it has changed. Type of the configuration section class that changed. Create an instance of the class that wraps the given section. Configuration section that changed. that's been configured with the contents of the . The configuration section that changed. Container that can be used to resolve newly configured objects. Contains settings to determine which to configure the with. Represents a configuration section that can be serialized and deserialized to XML. Returns the XML schema for the configuration section. A string with the XML schema, or (Nothing in Visual Basic) if there is no schema. Updates the configuration section with the values from an . The that reads the configuration source located at the element that describes the configuration section. Writes the configuration section values as an XML element to an . The that writes to the configuration source. The section name under which this configuration section is expected to be found. The Type Registration Provider name for the Caching Application Block The Type Registration Provider name for the Cryptography Application Block The Type Registration Provider name for the Exception Handling Application Block The Type Registration Provider name for Instrumentation Configuration The Type Registration Provider name for the Logging Application Block The Type Registration Provider name for the Policy Injection Application Block The Type Registration Provider name for the Security Application Block The Type Registration Provider name for the Data Access Application Block The Type Registration Provider name for the Validation Application Block Gets the collection of configured in this section. Represents a configuration converter that converts a string to based on a fully qualified name. Returns the assembly qualified name for the passed in Type. The container representing this System.ComponentModel.TypeDescriptor. Culture info for assembly Value to convert. Type to convert to. Assembly Qualified Name as a string Returns a type based on the assembly qualified name passed in as data. The container representing this System.ComponentModel.TypeDescriptor. Culture info for assembly. Data to convert. Type of the data A set of string constants listing the names of the configuration sections used by the standard set of Entlib blocks. Crypto block section name Data Access Application Block custom settings Exception Handling Application Block section name Caching Application Block section name Security Application Block section name Logging Application Block section name Instrumentation section name Policy injection section name Validation section name Not actually a section name, this is the type name used to get the TypeRegistrationProviderLocatorStrategy used to retrieve information for the Data Access Application Block. Not actually a section name, this is the type name used to get the TypeRegistrationProviderLocatorStrategy used to retrieve information for the Validation Application Block. Represents a configuration converter that converts a byte array to and from a string representation by using base64 encoding. Returns whether this converter can convert an object of the given type to the type of this converter. An object. A that represents the type you want to convert from. if this converter can perform the conversion; otherwise, . Converts the given value to the type of this converter. An object. A object. An that represents the converted value. An that represents the converted value. Returns whether this converter can convert the object to the specified type. An object. A that represents the type you want to convert to.. true if the converter can convert to the specified type, false otherwise. Converts the given value object to the specified type, using the arguments. An object. A object. The to convert. The to convert the value parameter to. The converted value. Watcher for configuration sections in configuration files. This implementation uses a to watch for changes in the configuration files. Reacts to changes on the medium on which a set of configuration sections are serialized. Initializes a new instance of the class. The identification of the medium. true if changes should be notified, false otherwise. The callback for changes notification. Starts watching for changes on the serialization medium. Stops watching for changes on the serialization medium. Gets or sets the identification of the medium where the watched set of configuration sections is stored. Gets or sets the collection of watched sections. Gets the watcher over the serialization medium. Initializes a new instance of the class. The path for the configuration file to watch. The identification of the configuration source. true if changes should be notified, false otherwise. The poll interval in milliseconds. The callback for changes notification. Gets the full file name associated to the configuration source. The path for the main configuration file. The configuration source to watch. The path to the configuration file to watch. It will be the same as if is empty, or the full path for considered as a file name relative to the main configuration file. Gets the watcher over the serialization medium. Event arguments describing which sections have changed in a configuration source. Initializes a new instance of the class. Configuration source that changed. Sequence of the section names in that have changed. Initializes a new instance of the class. Configuration source that changed. object that has been configured with the contents of . Sequence of the section names in that have changed. The configuration source that has changed. The container that has been configured with the new configuration. If this event is received directly from a this property will be null. Otherwise it will reference a valid container that has been configured with the contents of the updated configuration source. The set of section names that have changed. Represents the configuration settings that describe an . Initializes a new instance of the class with default values. Initializes a new instance of the class with a name and an type. The instance name. The type for the represented . Returns a new configured with the receiver's settings. A new configuration source. Returns a new configured based on this configuration element. Returns a new or null if this source does not have design-time support. Contains factory methods to create configuration sources. Creates a new configuration sources based on the configuration information from the application's default configuration file. The name for the desired configuration source. The new configuration source instance described in the configuration file. when no configuration information is found for name . when is null or empty. Creates a new configuration sources based on the default configuration information from the application's default configuration file. The new configuration source instance described as the default in the configuration file, or a new instance of if the is no configuration sources configuration. when there is a configuration section but it does not define a default configurtion source, or when the configuration for the defined default configuration source is not found. Configuration section for the configuration sources. This configuration must reside in the application's default configuration file. This field supports the Enterprise Library infrastructure and is not intended to be used directly from your code. Returns the from the application's default configuration file. The section from the configuration file, or (Nothing in Visual Basic) if the section is not present in the configuration file. Gets or sets the name for the default configuration source. Gets or sets the name for the parent configuration source. Gets the collection of defined configuration sources. Gets the collection of redirected sections. Event handler called after a configuration has changed. The source of the event. A that contains the event data. Initialize a new instance of the class with the section name The section name of the changes. Gets the section name where the changes occurred. The section name where the changes occurred. Indicates the configuration object type that is used for the attributed object. Initialize a new instance of the class. Initialize a new instance of the class with the configuration object type. The of the configuration object. Initialize a new instance of the class with the configuration object type. The name of the configuration object. Gets the of the configuration object. The of the configuration object. Gets name of the configuration object. Initialize a new instance of the class with the configuration file and the section name. The configuration file where the change occured. The section name of the changes. Gets the configuration file of the data that changed. The configuration file of the data that changed. A implementation that looks up a provider by looking for the named configuration section in the given . If found, tries to cast the config section to . This class encapsulates the logic used to find the type registration providers in the current application. This interface represents an object that can return configuration information used to configure a container to resolve Entlib objects. Return the objects needed to configure the container. The containing the configuration information. The sequence of objects. Return the objects needed to reconfigure the container after a configuration source has changed. If there are no reregistrations, return an empty sequence. The containing the configuration information. The sequence of objects. Create a new instance without a name. Create a new instance. Return the objects needed to configure the container. The sequence of objects. Return the objects needed to reconfigure the container after a configuration source has changed. If there are no reregistrations, return an empty sequence. The containing the configuration information. The sequence of objects. Creates a new that will return all the configuration for entlib blocks. The locator. Creates a new that will return all the configuration for entlib blocks. Configuration source containing any customizations to the locator list. Event source notifying of container reconfiguration events. The locator. Every locator has a name associated with it so that it can be added and removed from composites. This property returns that name. Construct an instance of that will look for the given . Section name in configuration to look for. Construct an instance of that will look for the given . It also registers for the event, and will request updated type registrations from the section at that time. Section name in configuration to look for. Event source to signal when reconfiguration is needed. Return the objects needed to configure the container. The sequence of objects. Return the objects needed to reconfigure the container after a configuration source has changed. If there are no reregistrations, return an empty sequence. The containing the configuration information. The sequence of objects. A static marker class to denote types constructed by the container when registering a . Indicates a type to be resolved from a container. The type to resolve from the container. The type resolved Indicates a type to be resolved by name from a container. The type to resolve from the container. The name to use when resolving the type. The type resolved. Indicates a type to be resolved by name from a container, if the name is not null. The type to resolve from the container. The name to use when resolving the type. The type resolved. Indicates an enumberable set to be resolved from a container using the names supplied in . The type to resolve from the container. The set of names to use when resolving from the container. Class that can be used as a base class for instance factories. This class is used to create instances of types compatible with described by a configuration source. Type of instance to create Create an instance of that resolves objects using the supplied . to use to resolve objects. Create an instance of . A container will be constructed under the hood and be initialized with the information in . Configuration information. Create an instance of that resolves objects through the Entlib default container. Returns a new instance of based on the default instance configuration. A new instance of . Returns an new instance of based on the configuration for . The name of the required instance. A new instance of . Releases resources currently held by this object. A parameter representing a set of named items to be resolved by the container. Represents a strategy to retrieve a value to inject. These strategies can either represent values known at container configuration time or values that need to be resolved during object construction. Initializes a new instance of the class with a . The representing the value to inject. Gets the representing the value to inject. Concrete strategies interpret the expression to provide relevant registration data. Gets the of the value to inject. The set of names to resolve in the container. Enumeration type Represents a construction parameter resolved through the container. Initializes the construction parameter from the . This method call expression expected to be respresented through the static marker class. Given a class Example defined as: public class Example { public Example(Argument arg); } A and for this configuration might appear as follows: new TypeRegistration<Example>(() => new Example(Container.Resolved<Argument>("SomeName")); During construction of the Example class, Argument will be resolved and injected by the container. The marker interface is used to represent this requirement to a container configurator and is translated to a . The method expression representing the type to resolve and named value. The name to use when resolving the type represented by the method call expression. Represents a property injected in a . Gets the name of the injected property. Gets the describing the value injected through the property. Builds expression used in for custom and standard Enterprise Library objects. Builds a expected for custom Enterprise Library objects based on the supplied type's object and provide attributes. The must supply an accessible constructor that takes a single parameter of type . The object type to build the expression around. Attributes to pass to the constructor of A that defines the construction of in a . Is thrown if the does not provide a proper constructor. Builds a expected for custom Enterprise Library objects based on the supplied type's object and provide attributes. The must supply an accessible constructor that takes a single parameter of type . The object type to build the expression around. Attributes to pass to the constructor of A that defines the construction of in a . Is thrown if the does not provide a proper constructor. A implementation that loads a type by name, and returns an instance of that type as the provider. This is primarily used to support the Data Access Application Block's configuration provider, which has to pull stuff from several spots. Also, we load by name rather than using a type object directly to avoid a compile time dependency from Common on the Data assembly. Construct a that will use the type named in as the provider. type to construct as a provider. This type must have a single argument constructor that takes an parameter. Construct a that will use the type named in as the provider. type to construct as a provider. This type must have a single argument constructor that takes an parameter. The event source containing events raised when the configuration source is changed. Return the objects needed to configure the container. The sequence of objects. Return the objects needed to reconfigure the container after a configuration source has changed. If there are no reregistrations, return an empty sequence. The containing the configuration information. The sequence of objects. Represents a container registration entry as a and additional metadata. Initialize a new instance of the class with a as the model for injection. The representing the injection. Initialize a new instance of the class with a as the model for injection. The representing the injection. The service type to register the implementation against. Returns the default name for a type that will be returned if no name is otherwise specified. Type that was registered. Default name that will be used. Returns the default name for a type that will be returned if no name is otherwise specified. Type that was registered. Default name that will be used. Gets the for the registration entry. Returns the expression body representing the creation constructor call. Gets the for which the provides an implementation. Gets the name under which the entry should be registered to the container. Is this registration for a type that is part of a public API? If true, configurators should not transform the name in any way. If false, this is an internal implementation class that users will not be resolving directly, and as such the name can be manipulated safely without interfering with the public API. Some containers have restrictions on the allowed names (for example, many require names to be globally unique). Some object names need to be left alone (for example, Database or Exception policies) becuase that is what the user will use to get those objects. Other names (like for instrumentation providers) are internal and can be freely changed by the configurator as needed to fit into the container. Gets representing the injection. Gets if the registration is to be considered the default for the service type, otherwise. The required lifetime for this service implementation. Gets the instances describing values injected through the constructor. Gets the instances describing values injected to properties. Represents a container registration entry as a and additional metadata for constructing a specific type. The service type registered with the container Initializes the TypeRegistration with a for T. that providing the construction model for T. A set of values indicating what the lifetime of service implementations in the container should be. This implementation should be stored by the container and it should return the same object for each request. A new instance should be returned for each request. A that provides a composite over a collection of individual s. Create the composite with the list of locators to use. The locators. Create the composite with the list of locators to use. The locators. Return the objects needed to configure the container. The sequence of objects. Return the objects needed to reconfigure the container after a configuration source has changed. If there are no reregistrations, return an empty sequence. The containing the configuration information. The sequence of objects. The specific configurator for entries. Initializer for the configurator. The to configure. Consume the set of objects and configure the associated container. Configuration source to read registrations from. that knows how to read the and return all relevant type registrations. When overridden in a derived class, this method should reconfigure the container with the provided . The new type registrations to apply to the container. When overridden in a derived class, this method should return an implementation of that wraps the actual container. The that objects can use to re-resolve dependencies after the container has been reconfigured. Registers the entry with the container. The type registration entry to add to the container. Represents an injected parameter value that can be determined at the time of container configuration. Initializes a value parameter with the specified expression to be evaluated when providing the value parameter. The expression representing the value to provide to the parameter. The parameter value to inject. Generic helper class for custom provider configuration objects. The helper class encapsulates the logic to manage an unknown set of properties in s. This logic cannot be inherited by the configuration objects because these objects must inherit from the base configuration object type for the hierarchy of providers the configuration object represents. The type of the custom provider configuration object. Collection of managed properties Initializes a new instance of the class for a configuration object. Concrete implementation of . true if the managed element has been modified. Concrete implementation of . The name of the unrecognized attribute. The value of the unrecognized attribute. true when an unknown attribute is encountered while deserializing. Concrete implementation of . The parent node of the configuration element. Sets the value to the specified attribute and updates the properties collection. The key of the attribute to set. The value to set for the attribute. Concrete implementation of . A object at the current level containing a merged view of the properties. The parent object, or a reference if this is the top level. A object that determines which property values to include. Returns whether the property name is known in advance, i.e. it is not a dynamic property. The property name. true if the property is known in advance, false otherwise. Gets the collection of custom attributes. Gets a of the properties that are defined for this configuration element when implemented in a derived class. A of the properties that are defined for this configuration element when implemented in a derived class. Represents a configuration source that is backed by a dictionary of named objects. This field supports the Enterprise Library infrastructure and is not intended to be used directly from your code. This field supports the Enterprise Library infrastructure and is not intended to be used directly from your code. Initializes a new instance of the class. Retrieves the specified . The name of the section to be retrieved. The specified , or (Nothing in Visual Basic) if a section by that name is not found. Adds a to the configuration source. If a configuration section with the specified name already exists it will be replaced. The name by which the should be added. The configuration section to add. Removes a from the configuration source. The name of the section to remove. Determines if a section name exists in the source. The section name to find. true if the section exists; otherwise, false. Adds a handler to be called when changes to the section named are detected. The name of the section to watch for. The handler for the change event to add. Removes a handler to be called when changes to section sectionName are detected. The name of the watched section. The handler for the change event to remove. Raises the event. Event arguments Raised when anything in the source changes. does not report any configuration change events. Represents the configuration settings that describe a . Initializes a new instance of the class with a default name and an empty path. Initializes a new instance of the class with a name and an path. The instance name. The file path. Returns a new configured with the receiver's settings. A new configuration source. Returns a new configured based on this configuration element. Returns a new or null if this source does not have design-time support. Gets or sets the file path. This is a required field. Represents a genereic enumerator for the NamedElementCollection. Represents a category on an ADM template file. Initialize a new instance of the class. The categor name. Gest the list of sub categories. Gets the name. Gets the list of policies in a category. Represents a CHECKBOX part on an ADM template. Represents a part in an ADM template. The part start template. The part end template. The part value name. The part key name. Initializes a new instance of the class. The name for the part. The registry key for part, or if no key name is required for the part. The name for the registry value for the part. Writes the part the . The to write. Writes the text representing the part to the . The to where the text for the part should be written to. Gets the registry key for the part, or if no key name is required for the part. Gets the name for the part. Gets the name for the registry value for the part. Gest the template representing the type of the part. Writes the text representing the part to the . The to where the text for the part should be written to. Gets the indication of whether the checkbox should be checked by default. Gets the indication of whether a value for the checked state should be added. Gets the indication of whether a value for the unchecked state should be added. Gest the template representing the type of the part. Represents a COMBOBOX part on an ADM template. Represents an EDITTEXT part on an ADM template. Initializes a new instance of the class. The name for the part. The registry key for part, or if no key name is required for the part. The name for the registry value for the part. The default value for the part, or if no default value is available. The maximum length for the part's value. The indication of whether values for the part are required. Writes the text representing the part to the . The to where the text for the part should be written to. Gets the default value for the part, or if no default value is available. Gets the maximum length for the part's value. Gets the indication of whether values for the part are required. Gest the template representing the type of the part. Writes the text representing the part to the . The to where the text for the part should be written to. Gets the list of suggested values for the part. Gest the template representing the type of the part. Represents the contents of an ADM template file. Initializes a new empty instance of the class. Add a category to the content The category to add. Writes the contents represented by the receiver to . The to where the contents should be written. Gets the categories. The categories. Represents the process of building the contents of an ADM file. During the building process categories and policies are started and ended: several levels of nested categories can be started, but only one level of policies are allowed. When a category or policy is started, it becomes the current until it is ended. Parts are added to the current policy; parts are not started and stopped. String representing the name of the registry value that represents the availability of a configuration element. The value names for policies are set to this name. String representing the value for a value in a drop down list. Initialize a new instance of the class. Initializes a new instance of the class. The content that will be built. Adds a checkbox part to the current policy, with values for "on" and "off" states. The name for the new part. The value name for the new part. Whether the new part should be checked by default. when there is no current policy. Adds a checkbox part to the current policy. The name for the new part. The value name for the new part. Whether the new part should be checked by default. Whether a value should be set for the checked state. Whether a value should be set for the unchecked state. when there is no current policy. Adds a checkbox part to the current policy. The name for the new part. The registry key for the part, to override its policy's key. The value name for the new part. Whether the new part should be checked by default. Whether a value should be set for the checked state. Whether a value should be set for the unchecked state. when there is no current policy. Adds a combo box part to the current policy. The name for the new part. The value name for the new part. The default value for the new part, or if there is no such default value. The max length for the new part's values Whether values for the new part are mandatory. The suggested values for the new part. when there is no current policy. Adds a combo box part to the current policy. The name for the new part. The registry key for the part, to override its policy's key. The value name for the new part. The default value for the new part, or if there is no such default value. The max length for the new part's values Whether values for the new part are mandatory. The suggested values for the new part. when there is no current policy. Adds a new drop down list part to the current policy. The name for the new part. The value name for the new part. The list of items to include in the new part. The default value for the new part, or if there is no such default value. when there is no current policy. Adds a new drop down list part to the current policy. The name for the new part. The registry key for the part, to override its policy's key. The value name for the new part. The list of items to include in the new part. The default value for the new part, or if there is no such default value. when there is no current policy. Adds a new drop down list part to the current policy with items representing an enumeration's values. The enumeration type. The name for the new part. The value name for the new part. The default value for the new part. when there is no current policy. Adds a new drop down list part to the current policy with items representing an enumeration's values. The enumeration type. The name for the new part. The registry key for the part, to override its policy's key. The value name for the new part. The default value for the new part. when there is no current policy. Adds a new drop down list part to the current policy with items representing the elements in a configuration elements collection. The base class for the configuration elements in the collection. The name for the new part. The value name for the new part. The collection of configuration elements. The name for the default element, or if there is no such default name. Whether an additional entry to represent that no element is selected should be added. when there is no current policy. FxCop message CA1004 is supressed because it seems like the rule does not detect the existing 'elements' method parameter that uses the generic parameter T. Adds a new drop down list part to the current policy with items representing the elements in a configuration elements collection. The base class for the configuration elements in the collection. The name for the new part. The registry key for the part, to override its policy's key. The value name for the new part. The collection of configuration elements. The name for the default element, or if there is no such default name. Whether an additional entry to represent that no element is selected should be added. when there is no current policy. FxCop message CA1004 is supressed because it seems like the rule does not detect the existing 'elements' method parameter that uses the generic parameter T. Adds a new edit text part to the current policy. The name for the new part. The value name for the new part. The default value for the new part, or if there is no such default value. The max length for the new part's values Whether values for the new part are mandatory. when there is no current policy. Adds a new edit text part to the current policy. The name for the new part. The registry key for the part, to override its policy's key. The value name for the new part. The default value for the new part, or if there is no such default value. The max length for the new part's values Whether values for the new part are mandatory. when there is no current policy. Adds a new numeric part to the current policy. The name for the new part. The value name for the new part. The default value for the new part, or if there is no such default value. when there is no current policy. Adds a new numeric part to the current policy. The name for the new part. The registry key for the part, to override its policy's key. The value name for the new part. The default value for the new part, or if there is no such default value. when there is no current policy. Adds a new numeric part to the current policy. The name for the new part. The registry key for the part, to override its policy's key. The value name for the new part. The default value for the new part, or if there is no such default value. The minimum value, or if there is no minimum value. The maximum value, or if there is no maximum value. when there is no current policy. Add a part to the builder. The to add. Adds a new text part to the current policy. The name for the new part. when there is no current policy. Ends the current category. If the current category has a parent category, the parent category is made the current category. when there is no current category. when there is an unfinished policy being built. Ends the current policy. when there is no current policy. Gets the content for the builder. A object. Starts a new category in the built content and makes it the current category. The name for the new category The category is created as a child of the current category, or as a top level category if there is no such current category. when there is an unfinished policy being built. Starts a new policy on the current category. The name for the new policy. The registry key for the new policy. when there is no current category. when there is an unfinished policy being built. Represents an item in a drop down list. Initializes a new instance of the class. The item name. The item value. Gets the name of the item. Gets the value of the item. Represents a DROPDOWNLIST part on an ADM template. The drop down list template. The item list start template. The list item template. The default list item template. The end list template. Initialize a new instance of the class. The part name. The key name. The value name. The items. The default value. Writes the text representing the part to the . The to where the text for the part should be written to. Gets the default value for the part. Gets the list of name/value pairs for the part. Gest the template representing the type of the part. Encapsulates the process to generate the ADM template contents to represent the configuration information contained in a , delegating to registered instances the generation of the specific contents for each section. Generates the ADM template contents that represent the configuration information in The configuration source holding the configuration sections. The ApplicationName to be used when generating the ADM policy keys. The mapping from section names to the The generated content. instances that generate the ADM contents. Both MACHINE and USER policies are generated. Represents a NUMERIC part in an ADM template. Writes the text representing the part to the . The to where the text for the part should be written to. Gets the default value for the part, or if no default value is available. Gets the maximum value for the part, or if no maximum value is available. Gets the minimum value for the part, or if no minimum value is available. Gest the template representing the type of the part. Represents a policy in an ADM template. Gets the registry key for the policy. Gets the parts for the policy. Gets the name for the policy. Gets the registry value name for the policy, or if no value name is required for the policy. Represents a TEXT part in an ADM template. Initialize a new instance of the class. The name of the part. Gest the template representing the type of the part. Represents a coordinator for configuration change notifications. Add a section handler for a section. The name of the section. The handler to add. Notify updated configuration sections. The name of the sections to notify. Remove a section change handler. The section to remove the handler. The handler to remove. Manages the configuration file watchers for a collection of configuration sections. The main configuration file source. Initialize a new instance of the class. The main configuration file. true to refresh configuration; otherwise, false. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Determines if the configuration source is being watched. The configuration source. true if the source is being watched; otherwise, false. Raises the event. The sender of the event. The event arguments. Removes a watcher for the configuration source. The source to remove the watcher. Sets a watcher for a configuration source. The configuration source to watch. Gets a collection of watch configuration sources. A collection of watch configuration sources. Event to notify when configuration changes. Represents the behavior required to provide Group Policy updates for a . Subclasses define the implementation necessary to provide manageability for a specific type of configuration element. Element providers are usually necessary when dealing with collections of , as the concrete type of the elements in the collections is only known at runtime, and it is possible that the elements are defined in 'extension' assemblies. Element providers are registered with the configuration element types they provide manageability to using the attribute, which is bound to assemblies. Element providers are also responsible for generating the ADM instructions that describe the policies that can be used to override the values in the configuration elements. Usually the ADM instructions generated by element providers consist of a single policy with parts that map to the specific configuration element instance of the type the provider manages. This is not mandatory, however, and the ADM instructions generated by element providers must be consistent with the ADM structure determined by the section provider that interacts with them. ADM instructions must be generated for each element instance in a given context, using the elements' names to build each instruction key. The name of the value used to hold policy enablement status. Initializes a new instance of the class. Adds the ADM instructions that describe the policies that can be used to override the properties of a specific instance of the configuration element type managed by the receiver. The to which the Adm instructions are to be appended. The configuration object instance. The configuration source from where to get additional configuration information, if necessary. The key path for which the generated instructions' keys must be subKeys of. ADM instructions are generated on a per-instance basis. Overrides the 's properties with the Group Policy values from the registry, if any. The configuration object for instances that must be managed. if Group Policy overrides must be applied; otherwise, . The which holds the Group Policy overrides for the configuration element at the machine level, or if there is no such registry key. The which holds the Group Policy overrides for the configuration element at the user level, or if there is no such registry key. if the policy settings do not disable the configuration element, otherwise . when the type of is not the type. Logs an error detected while overriding a configuration object with policy values. The exception representing the error. Specifies which must be used to provide manageability for instances a given subclass. Manageability providers for configuration elements are registered both to the configuration element type and the manageability provider for the configuration section where the configuration element resides. The attribute is bound to assemblies. Initializes a new instance of the class. The type. The type. The type. Gets the registered type. Gets the type for which the registered type provides manageability. Gets the registered to manage the section where the instances managed by the registered type reside. Provides a default implementation for that processes policy overrides, performing appropriate logging of policy processing errors. The managed configuration element type. Must inherit from . Default to ReadOnly Adds the ADM instructions that describe the policies that can be used to override the properties of a specific instance of the configuration element type managed by the receiver. The to which the Adm instructions are to be appended. The configuration object instance. The configuration source from where to get additional configuration information, if necessary. The key path for which the generated instructions' keys must be subKeys of. Class provides a default implementation for this method that calls the strongly-typed method. Adds the ADM instructions that describe the policies that can be used to override the properties of a specific instance of the configuration element type managed by the receiver. The to which the Adm instructions are to be appended. The configuration object instance. The configuration source from where to get additional configuration information, if necessary. The key for the element's policies. The default implementation for this method creates a policy, using to create the policy name and invoking to add the policy parts. Subclasses managing objects that must not create a policy must override this method to just add the parts. Adds the ADM parts that represent the properties of a specific instance of the configuration element type managed by the receiver. The to which the Adm instructions are to be appended. The configuration object instance. The configuration source from where to get additional configuration information, if necessary. The key for the element's policies. Subclasses managing objects that must not create a policy will likely need to include the elements' keys when creating the parts. Adds a new drop down list part to the current policy with items representing an enumeration's values. The enumeration type. The content builder. The registry key for the part, to override its policy's key. The default value for the new part. when there is no current policy. Overrides the 's properties with the Group Policy values from the registry, if any. The configuration object for instances that must be managed. if Group Policy overrides must be applied; otherwise, . The which holds the Group Policy overrides for the configuration element at the machine level, or if there is no such registry key. The which holds the Group Policy overrides for the configuration element at the user level, or if there is no such registry key. if the policy settings do not disable the configuration element, otherwise . when the type of is not the type . Provides a default implementation that performs appropriate logging of errors when processing policy overrides. ConfigurationElementManageabilityProvider.OverrideWithGroupPolicies Overrides the 's properties with the Group Policy values from the registry. The configuration object for instances that must be managed. The which holds the Group Policy overrides for the configuration element. Subclasses implementing this method must retrieve all the override values from the registry before making modifications to the so any error retrieving the override values will cancel policy processing. Gets the template for the name of the policy associated to the object. Elements that override to avoid creating a policy must still override this property. Represents a configuration accessor for system configuration (.NET configuration). Defines an accessor for configuration. Get a configuration section based on name. The name of the configuration section. The for the name. Remove a configuration section. The name of the section to remove. Gets the section names for the requested configuration. A collection of configuration names. Initialize a new instance of the with the configuration to access. The configuration to access. Gets the section names for the requested configuration. A collection of configuration names. Get a configuration section based on name. The name of the configuration section. The for the name. Remove a configuration section. The name of the section to remove. Represents the behavior required to provide Group Policy updates for a . Subclasses define the implementation necessary to provide manageability for a specific type of configuration section. Section providers delegate the manageability support for internal configuration elements to registered instances of when collections of heterogeneous elements are involved and the concrete type of the configuration elements is unknown in advance. Section providers are registered with the configuration section name they provide manageability to using the attribute, which is bound to assemblies. Section providers are also responsible for generating the ADM instructions that describe the policies that can be used to override the values for all the configuration settings in the section. Usually the ADM instructions generated for a section consist of a policy for block-wide settings and one policy for each configuration element in a collection; however some sections might require a different structure. Manageability providers for elements in a section must be consistent with the ADM structure defined by the section's manageability provider. The name of the value used to hold policy enablement status. Initializes a new instance of the class with a given set of manageability providers for the elements in the section's collections. The mapping from configuration element type to . Adds the ADM instructions that describe the policies that can be used to override the configuration information represented by a configuration section. The to which the Adm instructions are to be appended. The configuration section instance. The configuration source from where to get additional configuration information, if necessary. The key path for which the generated instructions' keys must be sub keys of. Adds the ADM instructions that describe the policies that can be used to override the configuration information for the element using the supplied element manageability provider. The base type for the configuration element. The to which the Adm instructions are to be appended. The configuration element. The used to append the ADM instructions for the element. The configuration source from where to get additional configuration information, if necessary. The key path for which the generated instructions' keys must be sub keys of. Adds the ADM instructions that describe the policies that can be used to override the configuration information for the elements in a collection of configuration elements, using the registered element manageability providers for each element. A new category and one policy for each element in the collection are generated; the element manageability providers are responsible for generating the policies. Elements for which no manageability provider is registered are ignored. The base type for the configuration elements collection. The to which the Adm instructions are to be appended. The collection of configuration elements. The configuration source from where to get additional configuration information, if necessary. The key path for which the generated instructions' keys must be sub keys of. The name for the category where the generated policies will be created. FxCop message CA1004 is supressed because it seems like the rule does not detect the existing 'elements' method parameter that uses the generic parameter T. Returns the registry key that represents a policy. The key for the policy on the machine tree. The key for the policy on the user tree. The if it is not and it represents a policy; otherwise the if it is not and it represents a policy, otherwise . IRegistryKey.IsPolicyKey Returns the instance registered for type . The configuration element type of the instance needing management. The manageability provider registered to manage the type, or if no provider is registered for the type. Utility method that loads sub keys at the machine and user level. The name of the required sub key. The parent key at the machine level, or if there is no registry key. The parent key at the user level, or if there is no registry key. When this method returns, contains a reference to the sub key of named , or if either machineKey is or it does not have a sub key with the requested name. When this method returns, contains a reference to the sub key of named , or if either userKey is or it does not have a sub key with the requested name. Logs an error detected while overriding a configuration object with policy values. The exception representing the error. Overrides the 's and its internal configuration elements' properties with the Group Policy values from the registry, if any. The configuration section that must be managed. if Group Policy overrides must be applied; otherwise, . The which holds the Group Policy overrides for the configuration section at the machine level, or if there is no such registry key. The which holds the Group Policy overrides for the configuration section at the user level, or if there is no such registry key. if the policy settings do not disable the configuration section, otherwise . Overrides the properties for the configuration element. The base type for the configuration elements collection. The configuration element. The used to override the element's properties. if Group Policy overrides must be applied; otherwise, . The which holds the Group Policy overrides for the configuration section at the machine level, or if there is no such registry key. The which holds the Group Policy overrides for the configuration section at the user level, or if there is no such registry key. if the policy settings do not disable the configuration element, otherwise . This method assumes a specific layout for the policy values: there is a registry key representing the collection of elements, and a sub key with the policy values for each element. An element's sub key may also contains a value stating whether the policy for an element is disabled; in that case the element is removed from the collection. Such a layout for the policy values can be constructed manually, or method can be invoked during the construction of the ADM template to generate it. Overrides the properties for the configuration elements in the given collection. The base type for the configuration elements collection. The collection of configuration elements. The name of the sub key where the policy values for the elements in the collection reside. if Group Policy overrides must be applied; otherwise, . The which holds the Group Policy overrides for the configuration section at the machine level, or if there is no such registry key. The which holds the Group Policy overrides for the configuration section at the user level, or if there is no such registry key. This method assumes a specific layout for the policy values: there is a registry key representing the collection of elements, and a sub key with the policy values for each element. An element's sub key may also contains a value stating whether the policy for an element is disabled; in that case the element is removed from the collection. Such a layout for the policy values can be constructed manually, or method can be invoked during the construction of the ADM template to generate it. FxCop message CA1004 is supressed because it seems like the rule does not detect the existing 'elements' method parameter that uses the generic parameter T. Utility method that closes registry keys. The registry keys to close. Gets the mapping from configuration element type to The mapping from configuration element type to Specifies which must be used to provide manageability for a configuration section. Manageability providers for configuration sections are registered to configuration section name. The attribute is bound to assemblies. Initializes a new instance of the class. The name of the section that needs manageability. The type. Gets the name of the for which the registered type provides manageability. Gets the registered type. Provides a default base implementation for that processes policy override processing, performing appropriate logging of policy processing errors, from policy override processing for configuration objects contained by the section. Initializes a new instance of the class with a given set of manageability providers for the elements in the section's collections. The mapping from configuration element type to . Adds the ADM instructions that describe the policies that can be used to override the configuration information represented by a configuration section. The to which the Adm instructions are to be appended. The configuration section instance. The configuration source from where to get additional configuration information, if necessary. The key path for which the generated instructions' keys must be sub keys of. Adds the ADM instructions that describe the policies that can be used to override the configuration information represented by a configuration section. The to which the Adm instructions are to be appended. The configuration section instance. The configuration source from where to get additional configuration information, if necessary. The root key for the section's policies. Overrides the 's and its internal configuration elements' properties with the Group Policy values from the registry, if any. The configuration section that must be managed. if Group Policy overrides must be applied; otherwise, . The which holds the Group Policy overrides for the configuration section at the machine level, or if there is no such registry key. The which holds the Group Policy overrides for the configuration section at the user level, or if there is no such registry key. if the policy settings do not disable the configuration section, otherwise . when the type of is not the type . Overrides the 's properties with the Group Policy values from the registry. The configuration section that must be managed. The which holds the Group Policy overrides. Subclasses implementing this method must retrieve all the override values from the registry before making modifications to the so any error retrieving the override values will cancel policy processing. Overrides the 's configuration elements' properties with the Group Policy values from the registry, if any. The configuration section that must be managed. if Group Policy overrides must be applied; otherwise, . The which holds the Group Policy overrides for the configuration section at the machine level, or if there is no such registry key. The which holds the Group Policy overrides for the configuration section at the user level, or if there is no such registry key. Errors detected while processing policy overrides for the configuration elements in the section must be logged but processing for other objects must not be interrupted. Gets the name of the category that represents the whole configuration section. Gets the name of the managed configuration section. Represents the configuration settings that describe an . Initializes a new instance of the class with default values. Initializes a new instance of the class. The name of the configuration element. The type. The type that is managed by the provider type. Gets or sets the type that is managed by the provider type. Represents the configuration settings that describe an . Initializes a new instance of the class with default values. Initializes a new instance of the class. The name for the configuration section that is managed by the provider type. The type. Gets the collection of that represent the instances that the instance represented by the receiver might require to provide manageability to configuration elements. Represents the configuration settings that describe a . Represents the minimum application name length allowed. Represents the maximumapplication name length allowed. Initializes a new instance of the class with default values. Initializes a new instance of the class. The instance name. The path to the configuration file. The name that identifies the application consuming the configuration information. Initializes a new instance of the class. The instance name. The path to the configuration file. The name that identifies the application consuming the configuration information. if Group Policy overrides must be appliedby the represented configuration source; otherwise, . Returns a new configured with the receiver's settings. A new configuration source. Gets a value indicating whether an unknown attribute is encountered during deserialization. Returns a new configured based on this configuration element. Returns a new or null if this source does not have design-time support. Gets or sets the file path. Gets or sets the application. This is a required field. Gets or sets the value for GP enablement. Gets the collection of registered types necessary to provide manageability by the represented configuration source. Base class for implementations that provide manageability support for custom provider's configuration. The custon provider's configuration element type. The basic configuration for a custom provider includes the provider type and a collection of attributes. Name for the value holding the policy overrides for the custom provider's attributes. Name for the value holding the policy overrides for the custom provider's type. Initializes a new instance of the class with a policy name template. The template to use when generating the policy associated to a custom provider configuration instance. Adds the ADM parts that represent the properties of a specific instance of the configuration element type managed by the receiver. The to which the Adm instructions are to be appended. The configuration object instance. The configuration source from where to get additional configuration information, if necessary. The key for the element's policies. Subclasses that manage custom provider's configuration objects with additional properties may override this method to add the corresponding parts. Returns a string with the encoded key/value pairs that represent the collection. The collection of attributes. The encoded representation of the attributes collection. Overrides the 's properties with the Group Policy values from the registry. The configuration object for instances that must be managed. The which holds the Group Policy overrides for the configuration element. Subclasses that manage custom provider's configuration objects with additional properties may override this method to override these properties. Gets the template for the name of the policy associated to the object. Represents a Group Policy notification registration to watch Group Policy notifications. Initialize a new instance of the object. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Gets the machine policy event. An for the machine policy. Gets the user policy event. An for the user policy. Represents a builder for Group Policy notification registration. Creates the registration. A object. The policy watcher can be started and stopped many times. To deal with this, when a watcher thread is started it is given an 'exit' event that will be signaled when the thread needs to be stopped. Once the thread is started it own the exit event, and will release it when it terminates. More than one watching thread may be active at the same time, having different exit events, if the old watching thread doesn't get processing time before the new thread is started; when the old thread gets to run it will consume the signaled exit event and finish. Defines a watcher for Group Policy. Starts watching Group Policy. Stops watching Group Policy. The event to update the policy. Initialize a new instance of the class. Initialize a new instance of the class with a registration builder. The builder used to create the registration for Group Policy. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Allows an to attempt to free resources and perform other cleanup operations before the is reclaimed by garbage collection. \ Starts watching Group Policy. Stops watching Group Policy. The event to update the policy. The delegate used to update the Group Policy based on machine. The machine where Group Policy is updated. Defines a helper for manageability configuration. Updates configuration management from the given configuration. The accessor for the configuration. Updates configuration management from the given configuration in the given section. The accessor for the configuration. The section to update. Represents a key for manageability configuration implementation. Gets or sets the application name. The application name. Gets or sets weather to enable Group Policies. true to enable Group Policies; otherwise false. Gets or sets the configuration file name. The configuration file name. Initialize a new instance of the struct. The configuration file name. The application name. true to enable Group Policy; otherwise, false. A comparer for an . Determines whether the specified objects are equal. true if the specified objects are equal; otherwise, false. The second object of type T to compare. The first object of type T to compare. Returns a hash code for the specified object. A hash code for the specified object. The for which a hash code is to be returned. The type of obj is a reference type and obj is null. Installer for the WMI objects defined in the assembly. This member supports the Enterprise Library infrastructure and is not intended to be used directly from your code. Provides the installer for the Core library, installing WMI Events and event log sources defined for this library. Initializes the installer. This member supports the Enterprise Library infrastructure and is not intended to be used directly from your code. Required designer variable. Clean up any resources being used. true if managed resources should be disposed; otherwise, false. Required method for Designer support - do not modify the contents of this method with the code editor. Represents a instrumentation configuration section provider. The name of the property to determine if event logging is enabled. The name of the property to determine if performance counters is enabled. Initialize a new instance of the class. The sub providers. Adds the ADM instructions that describe the policies that can be used to override the configuration information represented by a configuration section. The to which the Adm instructions are to be appended. The configuration section instance. The configuration source from where to get additional configuration information, if necessary. The root key for the section's policies. Overrides the 's configuration elements' properties with the Group Policy values from the registry, if any. The configuration section that must be managed. if Group Policy overrides must be applied; otherwise, . The which holds the Group Policy overrides for the configuration section at the machine level, or if there is no such registry key. The which holds the Group Policy overrides for the configuration section at the user level, or if there is no such registry key. Overrides the 's properties with the Group Policy values from the registry. The configuration section that must be managed. The which holds the Group Policy overrides. Gets the name of the category that represents the whole configuration section. Gets the name of the managed configuration section. Provides access to the registry. This interface allows for unit testing without requiring access to the machine's registry. Gets registry key HKCU. Gets registry key HKLM. Provides access to a registry key sub keys and values. This interface allows for unit testing without requiring access to the machine's registry. Closes the registry key. Gets the Boolean value represented by the value for requested name in the registry key. An integer value of 1 is considered true, any other value is considered false. The name of the value to get. The Boolean value for the requested name in the registry key. when there is no value for the given name, or the value exists but it is not an integer representing a boolean. Gets the enum value for the given name. The name of the value to get. The enum value of type represented by the value for the requested name in the registry key. when there is no value for the given name, or the value exists but it is not an string, or it is a string value but it is not a valid value name for enum type . The enum type. FxCop message CA1004 is supressed because the T parameter is used to drive the type of the method return value, so it is not possible to provide a method parameter that enables generic parameter inference. Gets the integer value for the given name. The name of the value to get. The integer value for the requested name in the registry key. when there is no value for the given name, or the value exists but it is not an integer. Gets the string value for the given name. The name of the value to get. The string value for the requested name in the registry key. when there is no value for the given name, or the value exists but it is not a string. Gets the value for the given name. The name of the value to get. The instance of represented by the value for the requested name in the registry key. when there is no value for the given name, or the value exists but it is not an string, or it is a string value but it is not a valid type name. Gets the names for the values. The value names. Gets the sub key for the given key name. The name fo the key to get. The sub key with the requested name if it exists; otherwise . Gets the indication of whether the registry key represents a policy. Gets the full name of the registry key. Represents the logic to encode key/value pairs into a string of semicolon separated entries. Initializes a new instance of the class. Adds a key/value pair to the encoded string being built. The key of the pair. The value of the pair. Gets the encoded key/value pairs string built. Returns a string representing a single encoded key/value pair. The key of the pair. The value of the pair. The encoded key/value pair. Returns a string representing a single encoded key/value pair with semicolons escaped if appropriate. The key of the pair. The value of the pair. if semicolons should be escaped; otherwise . The encoded key/value pair. Helper class to extract a key/value pair collection from an encoded string of semicolon separated key/value pairs. Extracts the key/value pairs encoded in , adding them to . The string where the key/value pairs are encoded. The dictionary where the extracted key/value pairs should be added. Provides logging services to the Enterprise Library Manageability Extensions. Logs an error detected while overriding a configuration object with policy values. The exception representing the error. Logs an error. The exception representing the error. The title that describes the error. Represents a manageability configuration helper. Initialize a new instance of a class. The manageability propvodiers. true to read Group Policies; otherwise, false. The application name. Initialize a new instance of the class. The manageability providers. true to read Group Policies; otherwise, false. A registry accessor. The application name. Builds the section key name. The application name. The section name. The section key name. Updates configuration management from the given configuration. The accessor for the configuration. Updates configuration management from the given configuration in the given section. The accessor for the configuration. The section to update. Gets the manageability providers. The manageability providers. Represents a configuration source that retrieves configuration information from an arbitrary file, overrides the configuration information with values from the registry's Group Policy keys. This configuration source uses a object to deserialize configuration, so the configuration file must be a valid .NET Framework configuration file. Multiple instances of can be created with a given configuration; however instances with the same configuration will share the same configuration objects. Initializes a new instance of the class. The configuration file path. The path can be absolute or relative. The that will provide manageability for each configuration section. if Group Policy overrides must be applied; otherwise, . The name of the running application. This name is used to look for policy overrides. Initialize a new instance of the class with the implementation. A to use. Adds a to the configuration and saves the configuration source. This operation is not implemented. Adds a handler to be called when changes to section sectionName are detected. This call should always be followed by a . Failure to remove change handlers will result in .NET resource leaks. The name of the section to watch for. The handler. Retrieves the specified . The name of the section to be retrieved. The specified , or if a section by that name is not found. Removes a from the configuration and saves the configuration source. This operation is not implemented. Remove a handler to be called when changes to section sectionName are detected. This class should always follow a call to . Failure to call these methods in pairs will result in .NET resource leaks. The name of the section to watch for. The handler. Public for testing purposes. Gets the implementation for configuration source. Event raised when any section in this configuration source has changed. Represents a manageable configuration source (like Group Policy). Initialize a new instance of the class. The path to the configuration file. true to refresh configuration; otherwise, false. The providers used for managment. true to read Group Policy; otherwise, false. The name of the application. Initialize a new instance o the class. The configuration file path. The to use. The to use. The to use. The to use. Adds a change handler for a section. The section to add the handler. The handler to add. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Get the configuration section. The section name to get. A for the section name. Removes a change handler from a section. The section to remove the handler. The handler to remove. Gets the manageability helper for the source. The manageability helper for the source. Manages the singleton instance for a given file name, application name and Group Policy enablement combination. Initialzie a new instance of the class. Initialize a new instace of the class. true to support refreshing; otherwise, false. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Gets a for a configuration. The path to a configuration file. The list of managment providers. true to read Group Policies; otherwise, false. The name of the application. A object. Attempt to parse a string into the given Enum type, returning whether conversion was successful. Enum type to convert to. String to convert. Converted result if successful. true if conversion was successful, false if it failed. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to Expected an instance of InstrumentationConfigurationSection.. Looks up a localized string similar to Expected and instance of '{0}' but got an instance of '{1}' instead.. Looks up a localized string similar to Attributes. Looks up a localized string similar to Type. Looks up a localized string similar to A started category is required to perform the operation.. Looks up a localized string similar to A started policy is required to perform the operation.. Looks up a localized string similar to A policy construction is in process.. Looks up a localized string similar to The built content is requested but there are outstanding categories being built.. Looks up a localized string similar to The default value is above the max value for part '{0}' on policy '{1}': {2} versus {3}.. Looks up a localized string similar to The default value is below the min value for part '{0}' on policy '{1}': {2} versus {3}.. Looks up a localized string similar to The default value for part '{0}' on policy '{1}' is longer than the max length {2}.. Looks up a localized string similar to Registry key path contains invalid characters or is missing parts: '{0}'. Looks up a localized string similar to The default value is invalid: '{0}'. Looks up a localized string similar to The max len of {2} is invalid on part '{0}' for policy '{1}'. The allowed values are 0-1024.. Looks up a localized string similar to String '{0}' is not a valid name on an ADM template.. Looks up a localized string similar to The suggestion is invalid: '{0}'. Looks up a localized string similar to Min value is larger than max value for part '{0}' on policy '{1}': {2} versus {3}.. Looks up a localized string similar to The numeric constraint '{2}' for part '{0}' on policy '{1}' is outside the allowed range. The valued values are 0-999999999. . Looks up a localized string similar to Path segment over 255 chars in length for registry key: '{0}'. Looks up a localized string similar to Registry value name over 255 chars in length: '{0}'. Looks up a localized string similar to The application name cannot be longer than 255 characters.. Looks up a localized string similar to The parameter is an empty string. Looks up a localized string similar to Group policy processing could not be locked prior to reading the registry. Looks up a localized string similar to The configuration file {0} could not be found.. Looks up a localized string similar to Exception caught from callback for change on section '{0}' calling method '{1}'. Looks up a localized string similar to An error was detected while a configuration element's properties were being overriden with policy values.. Looks up a localized string similar to There is no value with name '{1}' on key '{0}'.. Looks up a localized string similar to The value for '{1}' on key '{0}' is not a valid value name for enum type '{2}': '{3}'. Looks up a localized string similar to The value for '{1}' on key '{0}' is not a valid assembly qualified type name: '{2}'. Looks up a localized string similar to The value for '{1}' on key '{0}' is not of the correct type: Expected {2} but got {3} instead.. Looks up a localized string similar to The value can not be null or string or empty.. Looks up a localized string similar to Unexpected error while processing section '{0}'. Looks up a localized string similar to The expected type '{0}' was not provided.. Looks up a localized string similar to Group policy notification thread. Looks up a localized string similar to Instrumentation. Looks up a localized string similar to Event logging enabled. Looks up a localized string similar to Performance counters enabled. Looks up a localized string similar to Specify settings for the instrumentation section. Looks up a localized string similar to Manageable Configuration Source. Looks up a localized string similar to Updates to configuration through the ManageableConfigurationSource are not supported. Use the FileConfigurationSource instead.. Looks up a localized string similar to None. Represents an error that occurs while accessing the registry. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The message that describes the error. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The message that describes the error. The inner exception reference. Initializes a new instance of the class with serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. Provides access to a registry key sub keys and values. The name of the policy value. Closes the registry key. Gets an actual value from the registry. The name of the value to get. The value from the registry, or if there is no such value. Gets the sub key for the given key name. The name fo the key to get. The sub key with the requested name if it exists; otherwise . Gets the Boolean value represented by the value for requested name in the registry key. An integer value of 1 is considered true, any other value is considered false. The name of the value to get. The Boolean value for the requested name in the registry key. when there is no value for the given name, or the value exists but it is not an integer representing a Boolean. Gets the enum value for the given name. The name of the value to get. The enum value of type represented by the value for the requested name in the registry key. when there is no value for the given name, or the value exists but it is not an string, or it is a string value but it is not a valid value name for enum type . The enum type. Gets the integer value for the given name. The name of the value to get. The integer value for the requested name in the registry key. when there is no value for the given name, or the value exists but it is not an integer. Gets the string value for the given name. The name of the value to get. The string value for the requested name in the registry key. when there is no value for the given name, or the value exists but it is not a string. Gets the value for the given name. The name of the value to get. The instance of represented by the value for the requested name in the registry key. when there is no value for the given name, or the value exists but it is not an string, or it is a string value but it is not a valid type name. Gets the names for the values. The value names. Gets the sub key for the given key name. The name fo the key to get. The sub key with the requested name if it exists; otherwise . when is . when is not a valid name. Gets the indication of whether the registry key represents a policy. Gets the full name of the registry key. Builder for manageability configuration providers. Create a manageability configuration provider. The provdier data. A object. Create a manageability configuration provider. The provdier data. A object. Represents a null configuration source that always returns null for a section. Returns null for the section. The section name to retrieve. Always . Null implementation of that ignores the request. The name by which the should be added. The configuration section to add. Null implementation of that ignores the request. The name of the section to remove. Adds a handler to be called when changes to section sectionName are detected. The name of the section to watch for. The handler. Remove a handler to be called when changes to section sectionName are detected. The name of the section to watch for. The handler. Event raised when configuration source contents have changed. This class never raises this event. Represents an that watches a file. Represents an that watches a file. Provides a way to watch for changes to configuration in storage. When implemented by a subclass, starts the object watching for configuration changes When implemented by a subclass, stops the object from watching for configuration changes Event raised when the underlying persistence mechanism for configuration notices that the persistent representation of configuration information has changed. When implemented by a subclass, returns the section name that is being watched. Sets the default poll delay. The new default poll. Reset the default to 15000 millisecond. Sets the poll delay in milliseconds. The poll delay in milliseconds. Initialize a new class Allows an to attempt to free resources and perform other cleanup operations before the is reclaimed by garbage collection. Starts watching the configuration file. Stops watching the configuration file. Releases the unmanaged resources used by the and optionally releases the managed resources. Releases the unmanaged resources used by the and optionally releases the managed resources. to release both managed and unmanaged resources; to release only unmanaged resources. Raises the event. Returns the of the last change of the information watched The of the last modificaiton, or DateTime.MinValue if the information can't be retrieved Builds the change event data, in a suitable way for the specific watcher implementation The change event information Returns the source name to use when logging events The event source name Event raised when the underlying persistence mechanism for configuration notices that the persistent representation of configuration information has changed. Gets the name of the configuration section being watched. The name of the configuration section being watched. Initialize a new class with the path to the configuration file and the name of the section The full path to the configuration file. The name of the configuration section to watch. Allows an to attempt to free resources and perform other cleanup operations before the is reclaimed by garbage collection. Returns the of the last change of the information watched The information is retrieved using the watched file modification timestamp The of the last modificaiton, or DateTime.MinValue if the information can't be retrieved Builds the change event data, including the full path of the watched file The change event information Returns the source name to use when logging events The event source name Gets the name of the configuration section being watched. The name of the configuration section being watched. Represents an that retrieves the configuration information from the application's default configuration file using the API. The is a wrapper over the static configuration access API provided by and watches for changes in the configuration files to refresh the configuration when a change is detected. Initializes a new instance of the class. Initializes a new instance of the class that will refresh changes according to the value of the parameter. if changes to the configuration file should be notified. Initializes a new instance of the class that will refresh changes according to the value of the parameter, polling every milliseconds. if changes to the configuration file should be notified. The poll interval in milliseconds. Adds a to the configuration and saves the configuration source. If a configuration section with the specified name already exists it will be replaced. The name by which the should be added. The configuration section to add. Removes a from the configuration and saves the configuration source. The name of the section to remove. This method supports the Enterprise Library infrastructure and is not intended to be used directly from your code. Adds or replaces under name in the configuration and saves the configuration file. The name for the section. The configuration section to add or replace. Retrieves the specified from the configuration file. The section name. The section, or if it doesn't exist. Refreshes the configuration sections from the main configuration file and determines which sections have suffered notifications and should be notified to registered handlers. A dictionary with the configuration sections residing in the main configuration file that must be refreshed. A dictionary with the configuration sections residing in external files that must be refreshed. A new collection with the names of the sections that suffered changes and should be notified. A new dictionary with the names and file names of the sections that have changed their location. Refreshes the configuration sections from an external configuration file. A collection with the names of the sections that suffered changes and should be refreshed. Represents the configuration settings that describe an . Initializes a new instance of the class with default values. Initializes a new instance of the class with a name and an type. The instance name. Returns a new . A new configuration source. Contains settings specific to the registration of a . The section name used to retrieve the if available. The name of the type that implements . Contains a collection of . Creates a new instance of . Base class for Enterprise Library Blocks' container extensions. Ensure that this container has been configured to resolve Enterprise Library objects. Main for Enterprise Library. This extension configures its container to resolve all Enterprise Library objects. It's a convienence method to save having to manually create a object and configure it yourself. Initializes a new instance of the class with the default . Initializes a new instance of the class with the the specified . The to use when retrieving configuration information. Configures the Unity container to be able to resolve Enterprise Library objects. Entry point for the container infrastructure for Enterprise Library. Read the current Enterprise Library configuration in the given and supply the corresponding type information to the . object used to consume the configuration information. Configuration information. Read the current Enterprise Library configuration in the given and supply the corresponding type information to the . used to identify what information to pull from the configuration file. object used to consume the configuration information. Configuration information. Create a new instance of that has been configured with the information in the default The object. Create a new instance of that has been configured with the information in the given . containing Enterprise Library configuration information. The object. Get or set the current container used to resolve Entlib objects (for use by the various static factories). Provides Reader/Writer lock logic to allow reconfiguring of the container. Initial the container with this extension's functionality. When overridden in a derived class, this method will modify the given by adding strategies, policies, and so forth. to install it's functions into the container. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. Called during the chain of responsibility for a build operation. The PostBuildUp method is called when the chain has finished the PreBuildUp phase and executes in reverse order from the PreBuildUp calls. Context of the build operation. Container extension that allows for supplying additional, transient policies while building up an object through a container. Initializes the container with this extension's functionality. This extension does not permfom any initialization. Run an existing object through the container and perform injection on it. of object to perform injection on. Instance to build up. Name to use when looking up the typemappings and other configurations. Providers for transient policies to use. The resulting object. By default, this will be object supplied in the parameter, but container extensions may add things like automatic proxy creation which would cause this to return a different object (but still type compatible with t). Extension methods on that provides some convenience wrappers. Add a new extension to the given , only if the extension hasn't already been added to the container. The container to add the extension to. The extension object. Add a new extension to the given , only if the extension hasn't already been added to the container. Type of extension to add. Container to add the extension to. Base class for the reflection-based installers. These reflection-based installers search through assemblies looking for the appropriate kinds of installable resources and arrange for them to be registered with the appropriate installer Fills the given installer with other, more specific kinds of installers that have been filled with the appropriate kinds of installable resources Outer installer to be filled with nested installers for specific resources Initializes object by giving it access to an array of all available types and a specification of the more specific resource type that will be installed. Array of available types through which installer should look Attribute specifying the more specific resource type to search for Helper method to determine if the given type is attributed with the necessary attributes to be installed for a given installer Type in question More specific attribute used to match resource being installed True if the attributes on the given matches Helper method to determine if the attributes for a given type match the attributes used to specify a specific kind of installable resource. The type should be attributed with and the attribute passed to this method call. Type in question More specific attribute used to match resource being installed true if the type specifies intallable resources. Creates one or more installers after iterating over the . The number of iterators returned depends on the specific needs of the particular installable type. Collection of installers created through iterating over included types Gets or sets a list of all instrumentented types found in a given assembly. Types are instrumented if they are attributed with and another attribute specifying another, more specific resource type. Configuration object for Instrumentation. This section defines the instrumentation behavior for the entire application Section name Initializes enabled state of the three forms of instrumentation True if performance counter instrumentation is to be enabled True if event logging instrumentation is to be enabled Initializes enabled state of the three forms of instrumentation and the instance name True if performance counter instrumentation is to be enabled True if event logging instrumentation is to be enabled Value of the InstanceName Initializes object to default settings of all instrumentation types disabled and an empty InstanceName Retrieve the from the given configuratio source. If the source is null, or does not contain an instrumentation section, then return a default section with instrumentation turned off. Configuration source containing section (or not). The configuration section. Gets a value indicating whether an unknown attribute is encountered during deserialization. Gets and sets the value of PerformanceCountersEnabled Gets and sets the value of EventLoggingEnabled Gets and sets value of ApplicationInstanceName Provides instrumentation specific configuration extensions to Configure Instrumentation for Enterprise Library. Extends the Defines instrumentation configuration options. Enable logging Enable performance counters for instrumentation Set application instance for instrumentation. Factory for s. Individual instances are cached to prevent the same instance from being created multiple times. Creates an initialized with individual instances. Instances are named according to passed to this method. Performance counter category name, as defined during installation. Performance counter name, as defined during installation. Param array of instance names for which individual counters should be created. The new counter instance. This method supports the Enterprise Library infrastructure and is not intended to be used directly from your code. Defines an event source to be installed by the reflection based installer system. Each field in this attribute is a placeholder for the same field as defined in the . Initializes this object with the event log name and source to be installed. Event log name to which the source should be added. Event log source to be added. Gets the event log name. Gets the event source name. Gets and sets the category count. Gets the category resource file name. Gets and sets the message resource file name. Gets and sets the parameter resource file name Formats an event log entry to the defined format. Formats an event log entry for logging to event log. Creates a formatted message, suitable for logging to the event log. Creates a formatted message, suitable for logging to the event log. Message to be formatted, with format tags embedded. Extra strings to be matched up with the format tags provided in . Formatted message, suitable for logging to the event log. Creates a formatted message, suitable for logging to the event log. Message to be formatted, with format tags embedded. Exception containing message text to be added to event log message produced by this method Extra strings to be matched up with the format tags provided in . Formatted message, suitable for logging to the event log. Initializes this object with the name of the specific block using this class. Initializes this object with the name of the specific block using this class. Name of block using this functionality. Initializes this object with the given application and block names. Name of the application. Name of the block using this functionality. Creates a formatted message, suitable for logging to the event log. Creates a formatted message, suitable for logging to the event log. Message to be formatted, with format tags embedded. Extra strings to be matched up with the format tags provided in . Formatted message, suitable for logging to the event log. Creates a formatted message, suitable for logging to the event log. Message to be formatted, with format tags embedded. Exception containing message text to be added to event log message produced by this method Extra strings to be matched up with the format tags provided in . Formatted message, suitable for logging to the event log. Add event log source definitions for classes that have been attributed with HasInstallableResourceAttribute and EventLogDefinition attributes to EventLogInstallers. One installer is created for each unique event log source that is found. Initializes this object with a list of s that may potentially be attributed appropriately. Array of types to inspect check for event log sources needing installation Creates instances for each separate event log source needing installation. Collection of s that represent types defining event log sources to be installed. Collection of installers containing event log sources to be installed. Listens for events raised by block classes and reports them to appropriate instrumentation services (EventLog, or PeformanceCounters). Base constructor for . Base constructor for . True if performance counter reporting is enabled True if event logging is enabled Creates unique name for each instance. Base constructor for . Unique name for this instance True if performance counter reporting is enabled True if event logging is enabled Creates unique name for each instance. Base constructor for . Unique names for th instances to be managed by this listener. True if performance counter reporting is enabled True if event logging is enabled Creates unique name for each instance. Gets the event source name as defined in the class metadata. The event source name. Initializes the performance counter instances managed by this listener. Instance names for performance counters. Creates a unique name for a specific performance counter instance. Instance name for a specific performance counter. The created instance name. Gets and sets the EventLoggingEnabled property Gets and sets the PerformanceCountersEnabled property Add event log source definitions for classes that have been attributed with HasInstallableResourceAttribute and EventLogDefinition attributes to EventLogInstallers. One installer is created for each unique performance counter category that is found. Initializes this object with a list of s that may potentially be attributed appropriately. Array of types to inspect check for performance counter definitions needing installation Creates instances for each separate performance counter definition needing installation. Collection of s that represent types defining performance counter definitions to be installed. Collection of installers containing performance counter definitions to be installed. Gets the category help for a performance counter. The performance counter attribute. The assembly where the help is defined. The help for the performance counter. Gets the counter help for a performance counter. The resource name. The assembly where the help is defined. The help for the performance counter. Constructs an instance name for a following embedded formatting rules. Initializes this object with information needed to construct a \ instance name. Initializes this object with information needed to construct a \ instance name. Counter name prefix. Counter name suffix. Initializes this object with information needed to construct a \ instance name. Initializes this object with information needed to construct a \ instance name. Counter name prefix. Counter name suffix. Max prefix length. Max suffix length. Returns properly formatted counter name as a string. Formatted counter name. Defines information needed to install a . Initializes this attribute with information needed to install this performance counter category. Initializes this attribute with information needed to install this performance counter category. Performance counter category name Counter category help resource name. This is not the help text itself, but is the resource name used to look up the internationalized help text at install-time. Initializes this attribute with information needed to install this performance counter category. Performance counter category name Counter category help resource name. This is not the help text itself, but is the resource name used to look up the internationalized help text at install-time. Performance counter category type. Gets the category type. Gets the category name. Gets the category help resource name. This is not the help text itself, but is the resource name used to look up the internationalized help text at install-time. Generic installer wrapper around installer builder. Used to find and install given type of installable resource. Specific type of installer builder to instantiate Installs the instrumentation resources An used to save information needed to perform a commit, rollback, or uninstall operation. Uninstalls the instrumentation resources An that contains the state of the computer after the installation was complete. A formatter object that allows replacement tokens in a string. The supported tokens are: {appdomain}Includes the current appdomain's friendly name. {assembly}Includes the assembly name. {namespace}Includes the target class's namespace. {type}Includes the name of the type containing the target method. {method}Includes the name of the target method. This class provides an engine to process a string that contains replacement tokens of the form "{token}" and replace them with calculated value later. Create a new . Create a new . List of tokens to replace. Create a new . List of tokens to replace. Add a new set of replacement tokens. Tokens to add to the list. Add new tokens to the set of replacements. Tokens to add to the list. Format the given template, replacing any tokens present. The string to format, containing the replacement tokens. The formatted string, with tokens replaced. Creates a that replaces tokens using the information in the given method invocation. object containing information about the current method call. A single replacement token used by the . A token consists of two things: The actual text of the token (including the {}) A delegate to retrieve the value to replace the token. Create a new . The string marking where the token should be replaced. Delegate to return the value that replaces the token. Replace this token in the given stringbuilder. holding the template to perform the token replacement on. The token string. The token string. The text to replace this token with. Replacement text. Delegate type giving a function that returns the replacement text for a token. The replacement text. Helper class to load resources strings. Load a resource string. The base name of the resource. The resource name. The string from the resource. Load a resource string. The base name of the resource. The resource name. The assembly to load the resource from. The string from the resource. Resolves strings by returning a constant value. Resolves string objects. Returns a string represented by the receiver. The string object. Initializes a new instance of with a constant value. Resolves strings by invoking a delegate and returning the resulting value. Initializes a new instance of with a delegate. The delegate to invoke when resolving a string. Some utility extensions on to suppliment those available from Linq. Execute for each element of . Type of items in . Sequence of items to act on. Action to invoke for each item. Given a sequence, combine it with another sequence, passing the corresponding elements of each sequence to the action to create a new single value from the two sequence elements. "Zip" here refers to a zipper, not the compression algorithm. The resulting sequence will have the same number of elements as the shorter of sequence1 and sequence2. Type of the elments in the first sequence. Type of the elements in the second sequence. Type of the resulting sequence elements. The first sequence to combine. The second sequence to combine. Func used to calculate the resulting values. The result sequence. Take two sequences and return a new sequence of objects. Type of objects in sequence1. Type of objects in sequence2. First sequence. Second sequence. The sequence of objects. Take two sequences and return a with the first sequence holding the keys and the corresponding elements of the second sequence containing the values. Type of keys in the dictionary. Type of values in the dictionary. Sequence of dictionary keys. Sequence of dictionary values. The constructed dictionary. Resolves strings by retrieving them from assembly resources, falling back to a specified value. If both the resource type and the resource name are available, a resource lookup will be performed; otherwise, the default value will be returned. Initializes a new instance of for a resource type, a resource name and a fallback value. The type that identifies the resources file. The name of the resource. The fallback value, to use when any of the resource identifiers is not available. Initializes a new instance of for a resource type name, a resource name and a fallback value. The name of the type that identifies the resources file. The name of the resource. The fallback value, to use when any of the resource identifiers is not available. Extension methods on for convenience. If the object implements then call it. The service locator to dispose, if possible. Extensios to Locates the generic parent of the type Type to begin search from. Open generic type to seek The found parent that is a closed generic of the or null A helper class that provides the code needed to wrap an existing asynchronous operation and return a different implementation of . Start an asyncronous operation that wraps a lower-level async operation. Type that implements IAsyncResult that will be returned from this method. The user's callback method to be called when the async operation completes. A delegate that invokes the underlying async operation that we're wrapping. A delegate that takes the inner async result and returns the wrapping instance of . The . ================================================ FILE: packages/EnterpriseLibrary.Common.5.0.505.0/lib/SL40/Microsoft.Practices.EnterpriseLibrary.Common.Silverlight.xml ================================================ Microsoft.Practices.EnterpriseLibrary.Common.Silverlight Represents a configuration converter that converts a string to based on a fully qualified name. Returns the assembly qualified name for the passed in Type. The container representing this System.ComponentModel.TypeDescriptor. Culture info for assembly Value to convert. Type to convert to. Assembly Qualified Name as a string Returns a type based on the assembly qualified name passed in as data. The container representing this System.ComponentModel.TypeDescriptor. Culture info for assembly. Data to convert. Type of the data A set of string constants listing the names of the configuration sections used by the standard set of Entlib blocks. Crypto block section name Data Access Application Block custom settings Exception Handling Application Block section name Caching Application Block section name Security Application Block section name Logging Application Block section name Instrumentation section name Policy injection section name Validation section name Not actually a section name, this is the type name used to get the TypeRegistrationProviderLocatorStrategy used to retrieve information for the Data Access Application Block. Not actually a section name, this is the type name used to get the TypeRegistrationProviderLocatorStrategy used to retrieve information for the Validation Application Block. Defines a dictionary that can be used to populate a . Indicates errors when retrieving configuration. Initializes a new instance of the class. Initializes a new instance of the class with a message. A message describing the error. Initializes a new instance of the class with a message and an inner exception. A message describing the error. The exception that is the cause of the current exception, or if no inner exception is specified. A base class for configuration sections. Entry point that is used for programmatically building up a configuration source. Defines a configuration source builder. Interface that is used to build fluent interfaces and hides methods declared by from IntelliSense. Redeclaration that hides the method from IntelliSense. Redeclaration that hides the method from IntelliSense. Redeclaration that hides the method from IntelliSense. Redeclaration that hides the method from IntelliSense. Adds a to the builder. Name of section to add. Configuration section to add. Determines if a section name is contained in the builder. True if contained in the builder, false otherwise. Returns a configuration section with the given name, if present in the builder. Name of section to return. A valid configuration section or null. Returns a configuration section of type , if present in the builder. Section name to retrieve type to return. Updates a configuration source replacing any existing sections with those built up with the builder. Adds a to the builder. Name of section to add. Configuration section to add. Determines if a section name is contained in the builder. True if contained in the builder, false otherwise. Returns a configuration section with the given name, if present in the builder. Name of section to return. A valid configuration section or null. Returns a configuration section of type , if present in the builder. Section name to retrieve type to return. Updates a configuration source replacing any existing sections with those built up with the builder. Contains factory methods to create configuration sources. Creates a default configuration source. The default configuration source. A implementation that looks up a provider by looking for the named configuration section in the given . If found, tries to cast the config section to . This class encapsulates the logic used to find the type registration providers in the current application. This interface represents an object that can return configuration information used to configure a container to resolve Entlib objects. Return the objects needed to configure the container. The containing the configuration information. The sequence of objects. Return the objects needed to reconfigure the container after a configuration source has changed. If there are no reregistrations, return an empty sequence. The containing the configuration information. The sequence of objects. Create a new instance without a name. Create a new instance. Return the objects needed to configure the container. The sequence of objects. Return the objects needed to reconfigure the container after a configuration source has changed. If there are no reregistrations, return an empty sequence. The containing the configuration information. The sequence of objects. Creates a new that will return all the configuration for entlib blocks. Configuration source containing any customizations to the locator list. The locator. Every locator has a name associated with it so that it can be added and removed from composites. This property returns that name. Construct an instance of that will look for the given . Section name in configuration to look for. Construct an instance of that will look for the given . It also registers for the event, and will request updated type registrations from the section at that time. Section name in configuration to look for. Event source to signal when reconfiguration is needed. Return the objects needed to configure the container. The sequence of objects. Return the objects needed to reconfigure the container after a configuration source has changed. If there are no reregistrations, return an empty sequence. The containing the configuration information. The sequence of objects. A that can be configured through a . Create a that contains all the default registration providers, honoring any configuration overrides of locators. The that will return all registrations. Create a that contains all the default registration providers, honoring any configuration overrides of locators. The configuration source to use when creating s The responsible for raising container reconfiguration events. The that will return all registrations. public for unittesting purposes. Represents an injected parameter value that can be determined at the time of container configuration. Represents a strategy to retrieve a value to inject. These strategies can either represent values known at container configuration time or values that need to be resolved during object construction. Initializes a new instance of the class with a . The representing the value to inject. Gets the representing the value to inject. Concrete strategies interpret the expression to provide relevant registration data. Gets the of the value to inject. Initializes a value parameter with the specified expression to be evaluated when providing the value parameter. The expression representing the value to provide to the parameter. The parameter value to inject. A static marker class to denote types constructed by the container when registering a . Indicates a type to be resolved from a container. The type to resolve from the container. The type resolved Indicates a type to be resolved by name from a container. The type to resolve from the container. The name to use when resolving the type. The type resolved. Indicates a type to be resolved by name from a container, if the name is not null. The type to resolve from the container. The name to use when resolving the type. The type resolved. Indicates an enumerable set to be resolved from a container using the names supplied in . The type to resolve from the container. The set of names to use when resolving from the container. This class is the event arguments received when a container is being reconfigured due to a configuration source change. This class is a collecting argument: new type registrations should be added via the AddTypeRegistrations method. Initializes a new instance of the class. The that changed, causing the need to reconfigure the container. Sequence of changed section names in . Called by event receivers to collect the set of type registrations that must be used to update the container. The new set of type registrations. The updated configuration source. The section names that have changed. A parameter representing a set of named items to be resolved by the container. The set of names to resolve in the container. Enumeration type Represents a construction parameter resolved through the container. Initializes the construction parameter from the . This method call expression expected to be represented through the static marker class. Given a class Example defined as: public class Example { public Example(Argument arg); } A and for this configuration might appear as follows: new TypeRegistration<Example>(() => new Example(Container.Resolved<Argument>("SomeName")); During construction of the Example class, Argument will be resolved and injected by the container. The marker interface is used to represent this requirement to a container configurator and is translated to a . The method expression representing the type to resolve and named value. The name to use when resolving the type represented by the method call expression. Implement this interface to create an object that can read a set of objects representing the current Enterprise Library configuration and configure a dependency injection container with that information. Consume the set of objects and configure the associated container. Configuration source to read registrations from. that knows how to read the and return all relevant type registrations. A interface describing objects that raise events when a container's type registrations need to updated due to a configuration source change. The event raised when a container must be reconfigured. Represents a property injected in a . Gets the name of the injected property. Gets the describing the value injected through the property. An implementation of that does nothing. Saves null checking everywhere. The event raised when the configuration source changes. With this implementation the event is never raised. This class implements the Visitor pattern over the hierarchy of types. This makes it easier for container authors to figure out which type of they're dealing with and centralize processing without manually having to switch on the runtime type. Main entry point. When this method is called, this class will figure out the current runtime type of the passed and then call the corresponding strongly-typed visit method based on that runtime type. The object to process. The method called when a object is visited. By default, this method throws an exception. Override it to provide your specific processing. The to process. The method called when a object is visited. By default, this method throws an exception. Override it to provide your specific processing. The to process. The method called when a object is visited. By default, this method throws an exception. Override it to provide your specific processing. The to process. The method called when a object is visited and we haven't been able to otherwise identify the runtime type as a , , or . By default, this method throws an exception. Override it to provide your specific processing or do further type checking if you have extended the type hierarchy. The to process. A implementation that loads a type by name, and returns an instance of that type as the provider. This is primarily used to support the Data Access Application Block's configuration provider, which has to pull stuff from several spots. Also, we load by name rather than using a type object directly to avoid a compile time dependency from Common on the Data assembly. Construct a that will use the type named in as the provider. type to construct as a provider. This type must have a single argument constructor that takes an parameter. Construct a that will use the type named in as the provider. type to construct as a provider. This type must have a single argument constructor that takes an parameter. The event source containing events raised when the configuration source is changed. Return the objects needed to configure the container. The sequence of objects. Return the objects needed to reconfigure the container after a configuration source has changed. If there are no reregistrations, return an empty sequence. The containing the configuration information. The sequence of objects. Represents a container registration entry as a and additional metadata. Initialize a new instance of the class with a as the model for injection. The representing the injection. Initialize a new instance of the class with a as the model for injection. The representing the injection. The service type to register the implementation against. Returns the default name for a type that will be returned if no name is otherwise specified. Type that was registered. Default name that will be used. Returns the default name for a type that will be returned if no name is otherwise specified. Type that was registered. Default name that will be used. Gets the for the registration entry. Returns the expression body representing the creation constructor call. Gets the for which the provides an implementation. Gets the name under which the entry should be registered to the container. Is this registration for a type that is part of a public API? If true, configurators should not transform the name in any way. If false, this is an internal implementation class that users will not be resolving directly, and as such the name can be manipulated safely without interfering with the public API. Some containers have restrictions on the allowed names (for example, many require names to be globally unique). Some object names need to be left alone (for example, Database or Exception policies) because that is what the user will use to get those objects. Other names (like for instrumentation providers) are internal and can be freely changed by the configurator as needed to fit into the container. Gets representing the injection. Gets if the registration is to be considered the default for the service type, otherwise. The required lifetime for this service implementation. Gets the instances describing values injected through the constructor. Gets the instances describing values injected to properties. Represents a container registration entry as a and additional metadata for constructing a specific type. The service type registered with the container Initializes the TypeRegistration with a for T. that providing the construction model for T. A set of values indicating what the lifetime of service implementations in the container should be. This implementation should be stored by the container and it should return the same object for each request. A new instance should be returned for each request. A that provides a composite over a collection of individual s. Create the composite with the list of locators to use. The locators. Create the composite with the list of locators to use. The locators. Return the objects needed to configure the container. The sequence of objects. Return the objects needed to reconfigure the container after a configuration source has changed. If there are no reregistrations, return an empty sequence. The containing the configuration information. The sequence of objects. The specific configurator for entries. Initializer for the configurator. The to configure. Consume the set of objects and configure the associated container. Configuration source to read registrations from. that knows how to read the and return all relevant type registrations. Consume the set of objects and configure the associated container. Configuration source to read registrations from. that knows how to read the and return all relevant type registrations. This method performs the registration of the with the container. Configuration source to read registrations from. Registers the entry with the container. The type registration entry to add to the container. This class belongs to the Enterprise Library infrastructure and is not intended to be used directly from your code. This class belongs to the Enterprise Library infrastructure and is not intended to be used directly from your code. Base class for configuration information stored about a call handler. Represents a named element where the name is the key to a collection. This class is used in conjunction with a . Represents the abstraction of an object with a name. Gets the name. Gets or sets the name of the element. The name of the element. Get the set of objects needed to register the call handler represented by this config element and its associated objects. A suffix for the names in the generated type registration objects. The set of objects. Gets or sets the Order in which the call handler will be executed Represents a strongly typed list of objects that can be accessed by index. Provides methods to search, sort, and manipulate lists. The type of elements in the list. Determines the index of a specific item in the . The index of if found in the list; otherwise, -1. The object to locate in the . Inserts an item to the at the specified index. The zero-based index at which should be inserted.The object to insert into the . is not a valid index in the .The is read-only. Removes the item at the specified index. The zero-based index of the item to remove. is not a valid index in the .The is read-only. Adds an item to the . The object to add to the .The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. true if is found in the ; otherwise, false. The object to locate in the . Copies the elements of the to an , starting at a particular index. The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.The zero-based index in at which copying begins. is null. is less than 0. is multidimensional.-or-The number of elements in the source is greater than the available space from to the end of the destination .-or-Type cannot be cast automatically to the type of the destination . Removes the first occurrence of a specific object from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The object to remove from the .The is read-only. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Determines if the item can be inserted into the collection. The item to check. if the item can be inserted. Gets or sets the element at the specified index. The element at the specified index. The zero-based index of the element to get or set. is not a valid index in the .The property is set and the is read-only. Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Represents a configuration converter that converts most strings to . Returns the string representation of the passed in DateTime. The container representing this System.ComponentModel.TypeDescriptor. Culture info for assembly Value to convert. Type to convert to. The DateTime as string with the following format : yyyy'-'MM'-'dd'T'HH':'mm':'ss. Returns a DateTime based on the string passed in as data. The container representing this System.ComponentModel.TypeDescriptor. Culture info for assembly. Data to convert. The DateTime value. Represents a configuration source that is backed by a dictionary of named objects. A that uses an as its backing store. Represents a source for getting configuration information. Retrieves the specified . The name of the section to be retrieved. The specified , or (Nothing in Visual Basic) if a section by that name is not found. Adds a to the configuration source and saves the configuration source. If a configuration section with the specified name already exists it will be replaced. The name by which the should be added. The configuration section to add. Removes a from the configuration source. The name of the section to remove. This field supports the Enterprise Library infrastructure and is not intended to be used directly from your code. Initializes a new instance of the class. Retrieves the specified . The name of the section to be retrieved. The specified , or (Nothing in Visual Basic) if a section by that name is not found. Adds a to the configuration source. If a configuration section with the specified name already exists it will be replaced. The name by which the should be added. The configuration section to add. Removes a from the configuration source. The name of the section to remove. Determines if a section name exists in the source. The section name to find. true if the section exists; otherwise, false. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. if the method is being called from the method. if it is being called from within the object finalizer. Releases resources for the instance before garbage collection. Creates a new instance of from a dictionary expressed in the XAML file located at . The source URI. A with all the keys that are s. This method does not copy keys from the property if the target dictionary is a . Creates a new instance of from a dictionary. The source dictionary. A with all the keys that are s. This method does not copy keys from the property if the target dictionary is a . Creates a new instance of from a dictionary expressed in the XAML file located at the default location. The default location is a file named 'Configuration.xaml' in the XAP file for application. This method does not copy keys from the property if the target dictionary is a . A . Entry point for the container infrastructure for Enterprise Library. Configure Enterprise Library by asynchronously downloading a configuration XAML from the given URI. URI to download the XAML from. Extra information given by the caller. This will be passed through in the eventargs of the event. Configure Enterprise Library by asynchronously downloading a configuration XAML from the given URI. URI to download the XAML from. Credentials to use for downloading the configuration XAML file. Extra information given by the caller. This will be passed through in the eventargs of the event. Read the current Enterprise Library configuration in the given and supply the corresponding type information to the . object used to consume the configuration information. Configuration information. Read the current Enterprise Library configuration in the given and supply the corresponding type information to the . used to identify what information to pull from the configuration file. object used to consume the configuration information. Configuration information. Create a new instance of that has been configured with the information in the default The object. Create a new instance of that has been configured with the information in the given . containing Enterprise Library configuration information. The object. Event fired on the completion of asynchronous configuration of Enterprise Library started by a call to . This event is fired on success or failure of the configuration. Once this event is fired, all Enterprise Library capabilities are ready to use. Get or set the current container used to resolve Entlib objects (for use by the various static factories). Event args class used to signal when Enterprise Library has completed an asynchronous configuration. Construct a new instance of that indicates that configuration was successful and Enterprise Library is now ready to use. State object used by caller to track asynchronous operations. Construct a new instance of that indicates that the asynchronous configuration failed, and includes the exception that reported the failure. Exception indicating what went wrong. State object used by caller to track asynchronous operations. Exception that occurred during the configuration. If configuration is successful this will be null. Did the configuration complete successfully? Yes if true, false if not. The state object passed to the original ConfigureAsync call. Fluent interface that allows to add instances. Adds a instance to configuration source builder.
The name of the instance.
Fluent interface used to configure a instance. Specifies the type of the instance that should be used to retrieve type registrations. The type of the instance that should be used to retrieve type registrations. Fluent interface that allows to add more type registration providers. Specifies the type of the instance that should be used to retrieve type registrations. The type of the instance that should be used to retrieve type registrations. Fluent interface that allows to add more type registration providers. Specifies the name of the configuration section that implements .
The name of the configuration section that implements . Fluent interface that allows to add more type registration providers.
extensions to support creation of type registration provider settings. Main entry point to configure a section. The builder interface to extend. A fluent interface that allows to add instances. Main entry point to configure a section with no default type registrations. The builder interface to extend. A fluent interface that allows to add instances. Represents the abstraction of an object with a name and a type. Gets the type. Contains settings specific to the registration of a . The section name used to retrieve the if available. The name of the type that implements . Contains a collection of . Represents a collection of objects with unique names. A type that implements . Gets the configuration element at the specified index location. The index location of the to return. The at the specified index. Gets the named instance of from the collection. The name of the instance to retrieve. The instance of with the specified key; otherwise, . Determines if the item can be inserted into the collection. The item to check. if the item has a name that is unique in the collection. Creates a new instance of . Contains settings to determine which to configure the with. The section name under which this configuration section is expected to be found. The Type Registration Provider name for the Caching Application Block The Type Registration Provider name for the Cryptography Application Block The Type Registration Provider name for the Exception Handling Application Block The Type Registration Provider name for Instrumentation Configuration The Type Registration Provider name for the Logging Application Block The Type Registration Provider name for the Policy Injection Application Block The Type Registration Provider name for the Security Application Block The Type Registration Provider name for the Data Access Application Block The Type Registration Provider name for the Validation Application Block Gets the collection of configured in this section. Base class for Enterprise Library Blocks' container extensions. Ensure that this container has been configured to resolve Enterprise Library objects. Main for Enterprise Library. This extension configures its container to resolve all Enterprise Library objects. It's a convenient method to save having to manually create a object and configure it yourself. Initializes a new instance of the class with the default . Initializes a new instance of the class with the specified . The to use when retrieving configuration information. Configures the Unity container to be able to resolve Enterprise Library objects. Container extension that allows for supplying additional, transient policies while building up an object through a container. Initializes the container with this extension's functionality. This extension does not perform any initialization. Run an existing object through the container and perform injection on it. of object to perform injection on. Instance to build up. Name to use when looking up the typemappings and other configurations. Providers for transient policies to use. The resulting object. By default, this will be object supplied in the parameter, but container extensions may add things like automatic proxy creation which would cause this to return a different object (but still type compatible with t). Extension methods on that provides some convenience wrappers. Add a new extension to the given , only if the extension hasn't already been added to the container. The container to add the extension to. The extension object. Add a new extension to the given , only if the extension hasn't already been added to the container. Type of extension to add. Container to add the extension to. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to Enterprise Library asynchronous configuration is already in progress. Only one asynchronous configuration can be done at a time.. Looks up a localized string similar to Cannot add duplicate item to the collection.. Looks up a localized string similar to Enterprise Library is in the process of downloading configuration information. It may not be used until this process is complete.. Looks up a localized string similar to The available space is not enough to store the specified content.. Looks up a localized string similar to The DateTimeTypeConverter can only convert DateTime values.. Looks up a localized string similar to The AssemblyQualifiedTypeNameConverter can only convert values of type '{0}'.. Looks up a localized string similar to The specified ID does not exist in the file system.. Looks up a localized string similar to The type '{0}' cannot be resolved. Please verify the spelling is correct or that the full type name is provided.. Looks up a localized string similar to The content to overwrite overflows the current allocated disk space. Use overwrite method to overwrite a portion of the content that is of fixed size, otherwise remove the content and re-add it.. Looks up a localized string similar to Service type of {0} is not compatible with supplied expression type of {1}. Looks up a localized string similar to Lambda expression must construct a new instance of a type.. Looks up a localized string similar to This property cannot be queried until at least one ReadAll() call is made.. Looks up a localized string similar to The value cannot be null or an empty string.. Looks up a localized string similar to Type must be derived from '{0}'.. Looks up a localized string similar to Type must implement interface '{0}'.. Looks up a localized string similar to Unrecognized Container marker method.. Looks up a localized string similar to Unrecognized DependencyParameter type: {0}. Looks up a localized string similar to The initialization expression for property {0} is not supported: only simple bindings are supported.. Looks up a localized string similar to The DateTime '{0}' cannot be parsed. Please verify the DateTime format is correct. Supported format are en-US and universal format (ex: "yyyy'-'MM'-'dd'T'HH':'mm':'ss"). The time part is optional.. Looks up a localized string similar to The storage was opened in read-only mode because it was being used by another instance at creation time.. Looks up a localized string similar to The configuration content has an invalid format. The content should be in XAML format and the root element must be an instance of IDictionary. Each entry in the dictionary should correspond to each configuration section.. Looks up a localized string similar to The configuration resource stream cannot be found at URI '{0}'.. Looks up a localized string similar to The storage cannot be smaller than {0}.. Looks up a localized string similar to The storage you are trying to open does not currently exist.. This class provides an engine to process a string that contains replacement tokens of the form "{token}" and replace them with calculated value later. Create a new . Create a new . List of tokens to replace. Create a new . List of tokens to replace. Add a new set of replacement tokens. Tokens to add to the list. Add new tokens to the set of replacements. Tokens to add to the list. Format the given template, replacing any tokens present. The string to format, containing the replacement tokens. The formatted string, with tokens replaced. A single replacement token used by the . A token consists of two things: The actual text of the token (including the {}) A delegate to retrieve the value to replace the token. Create a new . The string marking where the token should be replaced. Delegate to return the value that replaces the token. Replace this token in the given stringbuilder. holding the template to perform the token replacement on. The token string. The token string. The text to replace this token with. Replacement text. Delegate type giving a function that returns the replacement text for a token. The replacement text. Helper class to load resources strings. Load a resource string. The base name of the resource. The resource name. The string from the resource. Load a resource string. The base name of the resource. The resource name. The assembly to load the resource from. The string from the resource. Represents an exception allocating storage. Initializes a new instance of the class. Initializes a new instance of the class. A message describing the error. Initializes a new instance of the class. A message describing the error. The exception that is the cause of the current exception, or if no inner exception is specified. Resolves strings by returning a constant value. Resolves string objects. Returns a string represented by the receiver. The string object. Initializes a new instance of with a constant value. Resolves strings by invoking a delegate and returning the resulting value. Initializes a new instance of with a delegate. The delegate to invoke when resolving a string. Some utility extensions on to supplement those available from Linq. Execute for each element of . Type of items in . Sequence of items to act on. Action to invoke for each item. Given a sequence, combine it with another sequence, passing the corresponding elements of each sequence to the action to create a new single value from the two sequence elements. "Zip" here refers to a zipper, not the compression algorithm. The resulting sequence will have the same number of elements as the shorter of sequence1 and sequence2. Type of the elements in the first sequence. Type of the elements in the second sequence. Type of the resulting sequence elements. The first sequence to combine. The second sequence to combine. Func used to calculate the resulting values. The result sequence. Take two sequences and return a new sequence of objects. Type of objects in sequence1. Type of objects in sequence2. First sequence. Second sequence. The sequence of objects. Take two sequences and return a with the first sequence holding the keys and the corresponding elements of the second sequence containing the values. Type of keys in the dictionary. Type of values in the dictionary. Sequence of dictionary keys. Sequence of dictionary values. The constructed dictionary. This interface represents a task that will be run at recurring intervals. Set the delegate that will be run when the schedule determines it should run. Start the scheduler running. Stop the scheduler. Forces the scheduler to perform the action as soon as possible, and not necessarily in a synchronous manner. Scheduler that wraps a timer. Initializes a new instance of the class. The poll interval. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Set the delegate that will be run when the schedule determines it should run. Start the scheduler running. Stop the scheduler. Forces the scheduler to perform the action as soon as possible, and not necessarily in a synchronous manner. Resolves strings by retrieving them from assembly resources, falling back to a specified value. If both the resource type and the resource name are available, a resource lookup will be performed; otherwise, the default value will be returned. Initializes a new instance of for a resource type, a resource name and a fallback value. The type that identifies the resources file. The name of the resource. The fallback value, to use when any of the resource identifiers is not available. Initializes a new instance of for a resource type name, a resource name and a fallback value. The name of the type that identifies the resources file. The name of the resource. The fallback value, to use when any of the resource identifiers is not available. Extension methods on for convenience. If the object implements then call it. The service locator to dispose, if possible. Manages storage of entries to the application's Isolated Storage. Initializes a new instance of the class. The name. The maximum size in bytes. Initializes a new instance of the class. This constructor opens the storage if it's available, or throws if it's not already created. The name. Tries to open the storage that is currently on disk. If there is not a storage already created, will be returned. The name. The storage that was previously created, or if it does not exist on disk. Deletes storage for the supplied storage name. The storage name. Saves the specified content. The content. An id for the saved content. Overwrites a portion of the content. The block id. The content to overwrite. The offset within the current block data where the content will be updated. This method should be used to overwrite bytes when there is a guarantee that it will fit the previous content size. For performance reasons, this method does not check what was the previous content size. If the data being updated should result in an updated content length, then this method should not be used, as the data will be corrupt. In this case, the alternative is to invoke the method and then invoke to re-add it. Returns a dictionary with all the content saved in the storage. A dictionary with ids as keys and the saved content as values. Removes the entry identified by from the storage. The entry id. Changes the Maximum size that can be used by the storage. This method changes the max size, but does not trim entries if the new max size is smaller. The new maximum size. when the storage is in read-only mode. Releases resources. Releases resources. Releases resources. Gets a value indicating whether this instance is read only. true if this instance is read only; otherwise, false. Gets the maximum size. Gets the logical size used for storage. Gets an estimate of the physical size used for storage. Creates instances of types from a partial type name using the . Creates an instance of an object specified with an . A type compatible with the element to create. XName of the object to create. The new instance, or if the element cannot be created. ================================================ FILE: packages/EntityFramework.5.0.0/Content/App.config.transform ================================================  ================================================ FILE: packages/EntityFramework.5.0.0/Content/Web.config.transform ================================================  ================================================ FILE: packages/EntityFramework.5.0.0/lib/net40/EntityFramework.xml ================================================ EntityFramework Specifies the database column that a property is mapped to. Initializes a new instance of the class. Initializes a new instance of the class. The name of the column the property is mapped to. The name of the column the property is mapped to. The zero-based order of the column the property is mapped to. The database provider specific data type of the column the property is mapped to. Denotes that the class is a complex type. Complex types are non-scalar properties of entity types that enable scalar properties to be organized within entities. Complex types do not have keys and cannot be managed by the Entity Framework apart from the parent object. Specifies how the database generates values for a property. Initializes a new instance of the class. The pattern used to generate values for the property in the database. The pattern used to generate values for the property in the database. The pattern used to generate values for a property in the database. The database does not generate values. The database generates a value when a row is inserted. The database generates a value when a row is inserted or updated. Denotes a property used as a foreign key in a relationship. The annotation may be placed on the foreign key property and specify the associated navigation property name, or placed on a navigation property and specify the associated foreign key name. Initializes a new instance of the class. If placed on a foreign key property, the name of the associated navigation property. If placed on a navigation property, the name of the associated foreign key(s). If a navigation property has multiple foreign keys, a comma separated list should be supplied. If placed on a foreign key property, the name of the associated navigation property. If placed on a navigation property, the name of the associated foreign key(s). Specifies the inverse of a navigation property that represents the other end of the same relationship. Initializes a new instance of the class. The navigation property representing the other end of the same relationship. The navigation property representing the other end of the same relationship. Specifies the maximum length of array/string data allowed in a property. Initializes a new instance of the class. The maximum allowable length of array/string data. Value must be greater than zero. Initializes a new instance of the class. The maximum allowable length supported by the database will be used. Determines whether a specified object is valid. (Overrides ) This method returns true if the is null. It is assumed the is used if the value may not be null. The object to validate. true if the value is null or less than or equal to the specified maximum length, otherwise false Length is zero or less than negative one. Applies formatting to a specified error message. (Overrides ) The name to include in the formatted string. A localized string to describe the maximum acceptable length. Checks that Length has a legal value. Throws InvalidOperationException if not. Gets the maximum allowable length of the array/string data. Specifies the minimum length of array/string data allowed in a property. Initializes a new instance of the class. The minimum allowable length of array/string data. Value must be greater than or equal to zero. Determines whether a specified object is valid. (Overrides ) This method returns true if the is null. It is assumed the is used if the value may not be null. The object to validate. true if the value is null or greater than or equal to the specified minimum length, otherwise false Length is less than zero. Applies formatting to a specified error message. (Overrides ) The name to include in the formatted string. A localized string to describe the minimum acceptable length. Checks that Length has a legal value. Throws InvalidOperationException if not. Gets the minimum allowable length of the array/string data. Denotes that a property or class should be excluded from database mapping. Specifies the database table that a class is mapped to. Initializes a new instance of the class. The name of the table the class is mapped to. The name of the table the class is mapped to. The schema of the table the class is mapped to. The base for all all Entity Data Model (EDM) types that represent a type from the EDM type system. Represents an item in an Entity Data Model (EDM) . The base for all all Entity Data Model (EDM) item types that with a Name property that represents a qualified (can be dotted) name. The base for all all Entity Data Model (EDM) item types that with a property. The base for all all Entity Data Model (EDM) types that support annotation using . EdmDataModelItem is the base for all types in the Entity Data Model (EDM) metadata construction and modification API. DataModelItem is the base for all types in the EDM metadata reflection, construction and modification API. Gets an value indicating which Entity Data Model (EDM) concept is represented by this item. IAnnotatedDataModelItem is implemented by model-specific base types for all types with an property. Gets or sets the currently assigned annotations. Gets or sets the currently assigned annotations. Returns all EdmItem children directly contained by this EdmItem. INamedDataModelItem is implemented by model-specific base types for all types with a property. Gets or sets the currently assigned name. Gets or sets the currently assigned name. Gets a value indicating whether this type is abstract. Gets the optional base type of this type. EdmStructuralMember is the base for all types that represent members of structural items in the Entity Data Model (EDM) metadata construction and modification API. Represents information about a database connection. Creates a new instance of DbConnectionInfo representing a connection that is specified in the application configuration file. The name of the connection string in the application configuration. Creates a new instance of DbConnectionInfo based on a connection string. The connection string to use for the connection. The name of the provider to use for the connection. Use 'System.Data.SqlClient' for SQL Server. Gets the connection information represented by this instance. Configuration to use if connection comes from the configuration file. Instances of this class are used to create DbConnection objects for SQL Server LocalDb based on a given database name or connection string. An instance of this class can be set on the class or in the app.config/web.config for the application to cause all DbContexts created with no connection information or just a database name to use SQL Server LocalDb by default. This class is immutable since multiple threads may access instances simultaneously when creating connections. Implementations of this interface are used to create DbConnection objects for a type of database server based on a given database name. An Instance is set on the class to cause all DbContexts created with no connection information or just a database name or connection string to use a certain type of database server by default. Two implementations of this interface are provided: is used to create connections to Microsoft SQL Server, including EXPRESS editions. is used to create connections to Microsoft SQL Server Compact Editions. Other implementations for other database servers can be added as needed. Note that implementations should be thread safe or immutable since they may be accessed by multiple threads at the same time. Creates a connection based on the given database name or connection string. The database name or connection string. An initialized DbConnection. Creates a new instance of the connection factory for the given version of LocalDb. For SQL Server 2012 LocalDb use "v11.0". The LocalDb version to use. Creates a new instance of the connection factory for the given version of LocalDb. For SQL Server 2012 LocalDb use "v11.0". The LocalDb version to use. The connection string to use for options to the database other than the 'Initial Catalog', 'Data Source', and 'AttachDbFilename'. The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the database name when CreateConnection is called. The 'Data Source' will be set based on the LocalDbVersion argument. Creates a connection for SQL Server LocalDb based on the given database name or connection string. If the given string contains an '=' character then it is treated as a full connection string, otherwise it is treated as a database name only. The database name or connection string. An initialized DbConnection. The connection string to use for options to the database other than the 'Initial Catalog', 'Data Source', and 'AttachDbFilename'. The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the database name when CreateConnection is called. The 'Data Source' will be set based on the LocalDbVersion argument. The default is 'Integrated Security=True; MultipleActiveResultSets=True;'. Encapsulates a cloned and store . Note that these objects are disposable and should be used in a using block to ensure both the cloned context and the cloned connection are disposed. For mocking. Creates a clone of the given . The underlying of the context is also cloned and the given connection string is used for the connection string of the cloned connection. Finds the assemblies that were used for loading o-space types in the source context and loads those assemblies in the cloned context. Disposes both the underlying ObjectContext and its store connection. The cloned context. This is always the store connection of the underlying ObjectContext. Represents setting the database initializer for a specific context type Represents a parameter to be passed to a method Represents a series of parameters to pass to a method Adds a new parameter to the collection Used for unit testing Represents the configuration for a series of contexts Adds a new context to the collection Used for unit testing Represents the configuration for a specific context type Represents setting the default connection factory Represents all Entity Framework related configuration Handles creating databases either using the core provider or the Migrations pipeline. Creates a database using the core provider (i.e. ObjectContext.CreateDatabase) or by using Code First Migrations to create an empty database and the perform an automatic migration to the current model. Migrations is used if Code First is being used and the EF provider is for SQL Server or SQL Compact. The core is used for non-Code First models and for other providers even when using Code First. A DbContext instance represents a combination of the Unit Of Work and Repository patterns such that it can be used to query from a database and group together changes that will then be written back to the store as a unit. DbContext is conceptually similar to ObjectContext. DbContext is usually used with a derived type that contains properties for the root entities of the model. These sets are automatically initialized when the instance of the derived class is created. This behavior can be modified by applying the attribute to either the entire derived context class, or to individual properties on the class. The Entity Data Model backing the context can be specified in several ways. When using the Code First approach, the properties on the derived context are used to build a model by convention. The protected OnModelCreating method can be overridden to tweak this model. More control over the model used for the Model First approach can be obtained by creating a explicitly from a and passing this model to one of the DbContext constructors. When using the Database First or Model First approach the Entity Data Model can be created using the Entity Designer (or manually through creation of an EDMX file) and then this model can be specified using entity connection string or an object. The connection to the database (including the name of the database) can be specified in several ways. If the parameterless DbContext constructor is called from a derived context, then the name of the derived context is used to find a connection string in the app.config or web.config file. If no connection string is found, then the name is passed to the DefaultConnectionFactory registered on the class. The connection factory then uses the context name as the database name in a default connection string. (This default connection string points to .\SQLEXPRESS on the local machine unless a different DefaultConnectionFactory is registered.) Instead of using the derived context name, the connection/database name can also be specified explicitly by passing the name to one of the DbContext constructors that takes a string. The name can also be passed in the form "name=myname", in which case the name must be found in the config file or an exception will be thrown. Note that the connection found in the app.config or web.config file can be a normal database connection string (not a special Entity Framework connection string) in which case the DbContext will use Code First. However, if the connection found in the config file is a special Entity Framework connection string, then the DbContext will use Database/Model First and the model specified in the connection string will be used. An existing or explicitly created DbConnection can also be used instead of the database/connection name. A can be applied to a class derived from DbContext to set the version of conventions used by the context when it creates a model. If no attribute is applied then the latest version of conventions will be used. Interface implemented by objects that can provide an instance. The class implements this interface to provide access to the underlying ObjectContext. Gets the object context. The object context. Constructs a new context instance using conventions to create the name of the database to which a connection will be made. The by-convention name is the full name (namespace + class name) of the derived context class. See the class remarks for how this is used to create a connection. Constructs a new context instance using conventions to create the name of the database to which a connection will be made, and initializes it from the given model. The by-convention name is the full name (namespace + class name) of the derived context class. See the class remarks for how this is used to create a connection. The model that will back this context. Constructs a new context instance using the given string as the name or connection string for the database to which a connection will be made. See the class remarks for how this is used to create a connection. Either the database name or a connection string. Constructs a new context instance using the given string as the name or connection string for the database to which a connection will be made, and initializes it from the given model. See the class remarks for how this is used to create a connection. Either the database name or a connection string. The model that will back this context. Constructs a new context instance using the existing connection to connect to a database. The connection will not be disposed when the context is disposed. An existing connection to use for the new context. If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. Constructs a new context instance using the existing connection to connect to a database, and initializes it from the given model. The connection will not be disposed when the context is disposed. An existing connection to use for the new context. The model that will back this context. If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. Constructs a new context instance around an existing ObjectContext. An existing ObjectContext to wrap with the new context. If set to true the ObjectContext is disposed when the DbContext is disposed, otherwise the caller must dispose the connection. Initializes the internal context, discovers and initializes sets, and initializes from a model if one is provided. Discovers DbSets and initializes them. This method is called when the model for a derived context has been initialized, but before the model has been locked down and used to initialize the context. The default implementation of this method does nothing, but it can be overridden in a derived class such that the model can be further configured before it is locked down. Typically, this method is called only once when the first instance of a derived context is created. The model for that context is then cached and is for all further instances of the context in the app domain. This caching can be disabled by setting the ModelCaching property on the given ModelBuidler, but note that this can seriously degrade performance. More control over caching is provided through use of the DbModelBuilder and DbContextFactory classes directly. The builder that defines the model for the context being created. Internal method used to make the call to the real OnModelCreating method. The model builder. Returns a DbSet instance for access to entities of the given type in the context, the ObjectStateManager, and the underlying store. See the DbSet class for more details. The type entity for which a set should be returned. A set for the given entity type. Returns a non-generic DbSet instance for access to entities of the given type in the context, the ObjectStateManager, and the underlying store. The type of entity for which a set should be returned. A set for the given entity type. See the DbSet class for more details. Saves all changes made in this context to the underlying database. The number of objects written to the underlying database. Thrown if the context has been disposed. Validates tracked entities and returns a Collection of containing validation results. Collection of validation results for invalid entities. The collection is never null and must not contain null values or results for valid entities. 1. This method calls DetectChanges() to determine states of the tracked entities unless DbContextConfiguration.AutoDetectChangesEnabled is set to false. 2. By default only Added on Modified entities are validated. The user is able to change this behavior by overriding ShouldValidateEntity method. Extension point allowing the user to override the default behavior of validating only added and modified entities. DbEntityEntry instance that is supposed to be validated. true to proceed with validation. false otherwise. Extension point allowing the user to customize validation of an entity or filter out validation results. Called by . DbEntityEntry instance to be validated. User defined dictionary containing additional info for custom validation. It will be passed to and will be exposed as . This parameter is optional and can be null. Entity validation result. Possibly null when overridden. Internal method that calls the protected ValidateEntity method. DbEntityEntry instance to be validated. User defined dictionary containing additional info for custom validation. It will be passed to and will be exposed as . This parameter is optional and can be null. Entity validation result. Possibly null when ValidateEntity is overridden. Gets a object for the given entity providing access to information about the entity and the ability to perform actions on the entity. The type of the entity. The entity. An entry for the entity. Gets a object for the given entity providing access to information about the entity and the ability to perform actions on the entity. The entity. An entry for the entity. Calls the protected Dispose method. Disposes the context. The underlying is also disposed if it was created is by this context or ownership was passed to this context when this context was created. The connection to the database ( object) is also disposed if it was created is by this context or ownership was passed to this context when this context was created. true to release both managed and unmanaged resources; false to release only unmanaged resources. Creates a Database instance for this context that allows for creation/deletion/existence checks for the underlying database. Returns the Entity Framework ObjectContext that is underlying this context. Thrown if the context has been disposed. Provides access to features of the context that deal with change tracking of entities. An object used to access features that deal with change tracking. Provides access to configuration options for the context. An object used to access configuration options. Provides access to the underlying InternalContext for other parts of the internal design. A simple representation of an app.config or web.config file. Initializes a new instance of AppConfig based on supplied configuration Configuration to load settings from Initializes a new instance of AppConfig based on supplied connection strings The default configuration for database initializers and default connection factory will be used Connection strings to be used Initializes a new instance of AppConfig based on the for the AppDomain Use AppConfig.DefaultInstance instead of this constructor Appies any database intializers specified in the configuration Appies any database intializers specified in the configuration Value indicating if initializers should be re-applied if they have already been applied in this AppDomain Gets the specified connection string from the configuration Name of the connection string to get The connection string, or null if there is no connection string with the specified name Gets the default connection factory based on the configuration Gets a singleton instance of configuration based on the for the AppDomain Acts as a proxy for that for the most part just passes calls through to the real object but uses virtual methods/properties such that uses of the object can be mocked. Encapsulates information read from the application config file that specifies a database initializer and allows that initializer to be dynamically applied. Initializes a new instance of the class. The key from the entry in the config file. The value from the enrty in the config file. Uses the context type and initializer type specified in the config to create an initializer instance and set it with the DbDbatabase.SetInitializer method. Reads all initializers from the application config file and sets them using the Database class. Calculates the model hash values used the EdmMetadata table from EF 4.1/4.2. Calculates an SHA256 hash of the EDMX from the given code first model. This is the hash stored in the database in the EdmMetadata table in EF 4.1/4.2. The hash is always calculated using a v2 schema as was generated by EF 4.1/4.2 and with the entity included in the model. Acts as a proxy for that for the most part just passes calls through to the real object but uses virtual methods/properties such that uses of the object can be mocked. An implementation of that will use Code First Migrations to update the database to the latest version. Executes the strategy to initialize the database for the given context. The context. Initializes a new instance of the MigrateDatabaseToLatestVersion class. Initializes a new instance of the MigrateDatabaseToLatestVersion class that will use a specific connection string from the configuration file to connect to the database to perform the migration. The name of the connection string to use for migration. Helper class that is used to configure a column. Creates a new column definition to store Binary data. Value indicating whether or not the column allows null values. The maximum allowable length of the array data. Value indicating whether or not all data should be padded to the maximum length. Value indicating whether or not the maximum length supported by the database provider should be used. Constant value to use as the default value for this column. SQL expression used as the default value for this column. Value indicating whether or not this column should be configured as a timestamp. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store Boolean data. Value indicating whether or not the column allows null values. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store Byte data. Value indicating whether or not the column allows null values. Value indicating whether or not the database will generate values for this column during insert. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store DateTime data. Value indicating whether or not the column allows null values. The precision of the column. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store Decimal data. Value indicating whether or not the column allows null values. The numeric precision of the column. The numeric scale of the column. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Value indicating whether or not the database will generate values for this column during insert. The newly constructed column definition. Creates a new column definition to store Double data. Value indicating whether or not the column allows null values. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store GUID data. Value indicating whether or not the column allows null values. Value indicating whether or not the database will generate values for this column during insert. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store Single data. Value indicating whether or not the column allows null values. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store Short data. Value indicating whether or not the column allows null values. Value indicating whether or not the database will generate values for this column during insert. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store Integer data. Value indicating whether or not the column allows null values. Value indicating whether or not the database will generate values for this column during insert. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store Long data. Value indicating whether or not the column allows null values. Value indicating whether or not the database will generate values for this column during insert. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store String data. Value indicating whether or not the column allows null values. The maximum allowable length of the string data. Value indicating whether or not all data should be padded to the maximum length. Value indicating whether or not the maximum length supported by the database provider should be used. Value indicating whether or not the column supports Unicode content. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store Time data. Value indicating whether or not the column allows null values. The precision of the column. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store DateTimeOffset data. Value indicating whether or not the column allows null values. The precision of the column. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Helper class that is used to further configure a table being created from a CreateTable call on . Initializes a new instance of the TableBuilder class. The table creation operation to be further configured. The migration the table is created in. Specifies a primary key for the table. A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } The name of the primary key. If null is supplied, a default name will be generated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Itself, so that multiple calls can be chained. Specifies an index to be created on the table. A lambda expression representing the property to be indexed. C#: t => t.PropertyOne VB.Net: Function(t) t.PropertyOne If multiple properties are to be indexed then specify an anonymous type including the properties. C#: t => new { t.PropertyOne, t.PropertyTwo } VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } A value indicating whether or not this is a unique index. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Itself, so that multiple calls can be chained. Specifies a foreign key constraint to be created on the table. Name of the table that the foreign key constraint targets. A lambda expression representing the properties of the foreign key. C#: t => t.PropertyOne VB.Net: Function(t) t.PropertyOne If multiple properties make up the foreign key then specify an anonymous type including the properties. C#: t => new { t.PropertyOne, t.PropertyTwo } VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } A value indicating whether or not cascade delete should be configured on the foreign key constraint. The name of this foreign key constraint. If no name is supplied, a default name will be calculated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Itself, so that multiple calls can be chained. Base class for code-based migrations. Operations to be performed during the upgrade process. Operations to be performed during the downgrade process. Adds an operation to create a new table. The columns in this create table operation. You do not need to specify this type, it will be inferred from the columnsAction parameter you supply. The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. An action that specifies the columns to be included in the table. i.e. t => new { Id = t.Int(identity: true), Name = t.String() } Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. An object that allows further configuration of the table creation operation. Adds an operation to create a new foreign key constraint. The table that contains the foreign key column. Schema name is optional, if no schema is specified then dbo is assumed. The foreign key column. The table that contains the column this foreign key references. Schema name is optional, if no schema is specified then dbo is assumed. The column this foreign key references. If no value is supplied the primary key of the principal table will be referenced. A value indicating if cascade delete should be configured for the foreign key relationship. If no value is supplied, cascade delete will be off. The name of the foreign key constraint in the database. If no value is supplied a unique name will be generated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to create a new foreign key constraint. The table that contains the foreign key columns. Schema name is optional, if no schema is specified then dbo is assumed. The foreign key columns. The table that contains the columns this foreign key references. Schema name is optional, if no schema is specified then dbo is assumed. The columns this foreign key references. If no value is supplied the primary key of the principal table will be referenced. A value indicating if cascade delete should be configured for the foreign key relationship. If no value is supplied, cascade delete will be off. The name of the foreign key constraint in the database. If no value is supplied a unique name will be generated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a foreign key constraint based on its name. The table that contains the foreign key column. Schema name is optional, if no schema is specified then dbo is assumed. The name of the foreign key constraint in the database. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a foreign key constraint based on the column it targets. The table that contains the foreign key column. Schema name is optional, if no schema is specified then dbo is assumed. The foreign key column. The table that contains the column this foreign key references. Schema name is optional, if no schema is specified then dbo is assumed. The columns this foreign key references. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a foreign key constraint based on the columns it targets. The table that contains the foreign key columns. Schema name is optional, if no schema is specified then dbo is assumed. The foreign key columns. The table that contains the columns this foreign key references. Schema name is optional, if no schema is specified then dbo is assumed. The columns this foreign key references. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a table. The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is assumed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to move a table to a new schema. The name of the table to be moved. Schema name is optional, if no schema is specified then dbo is assumed. The schema the table is to be moved to. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to rename a table. To change the schema of a table use MoveTable The name of the table to be renamed. Schema name is optional, if no schema is specified then dbo is assumed. The new name for the table. Schema name is optional, if no schema is specified then dbo is assumed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to rename a column. The name of the table that contains the column to be renamed. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column to be renamed. The new name for the column. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to add a column to an existing table. The name of the table to add the column to. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column to be added. An action that specifies the column to be added. i.e. c => c.Int(nullable: false, defaultValue: 3) Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an existing column. The name of the table to drop the column from. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column to be dropped. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to alter the definition of an existing column. The name of the table the column exists in. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column to be changed. An action that specifies the new definition for the column. i.e. c => c.String(nullable: false, defaultValue: "none") Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to create a new primary key. The table that contains the primary key column. Schema name is optional, if no schema is specified then dbo is assumed. The primary key column. The name of the primary key in the database. If no value is supplied a unique name will be generated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to create a new primary key based on multiple columns. The table that contains the primary key columns. Schema name is optional, if no schema is specified then dbo is assumed. The primary key columns. The name of the primary key in the database. If no value is supplied a unique name will be generated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an existing primary key that does not have the default name. The table that contains the primary key column. Schema name is optional, if no schema is specified then dbo is assumed. The name of the primary key to be dropped. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an existing primary key that was created with the default name. The table that contains the primary key column. Schema name is optional, if no schema is specified then dbo is assumed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to create an index on a single column. The name of the table to create the index on. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column to create the index on. A value indicating if this is a unique index. If no value is supplied a non-unique index will be created. The name to use for the index in the database. If no value is supplied a unique name will be generated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to create an index on multiple columns. The name of the table to create the index on. Schema name is optional, if no schema is specified then dbo is assumed. The name of the columns to create the index on. A value indicating if this is a unique index. If no value is supplied a non-unique index will be created. The name to use for the index in the database. If no value is supplied a unique name will be generated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an index based on its name. The name of the table to drop the index from. Schema name is optional, if no schema is specified then dbo is assumed. The name of the index to be dropped. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an index based on the columns it targets. The name of the table to drop the index from. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column(s) the index targets. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to execute a SQL command. The SQL to be executed. A value indicating if the SQL should be executed outside of the transaction being used for the migration process. If no value is supplied the SQL will be executed within the transaction. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Configuration relating to the use of migrations for a given model. You will typically create a configuration class that derives from rather than using this class. Initializes a new instance of the DbMigrationsConfiguration class. Adds a new SQL generator to be used for a given database provider. Name of the database provider to set the SQL generator for. The SQL generator to be used. Gets the SQL generator that is set to be used with a given database provider. Name of the database provider to get the SQL generator for. The SQL generator that is set for the database provider. Gets or sets a value indicating if automatic migrations can be used when migration the database. Gets or sets a value indicating if data loss is acceptable during automatic migration. If set to false an exception will be thrown if data loss may occur as part of an automatic migration. Gets or sets the derived DbContext representing the model to be migrated. Gets or sets the namespace used for code-based migrations. Gets or sets the sub-directory that code-based migrations are stored in. Gets or sets the code generator to be used when scaffolding migrations. Gets or sets the assembly containing code-based migrations. Gets or sets a value to override the connection of the database to be migrated. Gets or sets the timeout value used for the individual commands within a migration. A null value indicates that the default value of the underlying provider will be used. Configuration relating to the use of migrations for a given model. The context representing the model that this configuration applies to. Initializes a new instance of the DbMigrationsConfiguration class. Runs after upgrading to the latest migration to allow seed data to be updated. Context to be used for updating seed data. DbMigrator is used to apply existing migrations to a database. DbMigrator can be used to upgrade and downgrade to any given migration. To scaffold migrations based on changes to your model use Base class for decorators that wrap the core Initializes a new instance of the MigratorBase class. The migrator that this decorator is wrapping. Gets a list of the pending migrations that have not been applied to the database. List of migration Ids Updates the target database to the latest migration. Updates the target database to a given migration. The migration to upgrade/downgrade to. Gets a list of the migrations that are defined in the assembly. List of migration Ids Gets a list of the migrations that have been applied to the database. List of migration Ids Gets the configuration being used for the migrations process. Migration Id representing the state of the database before any migrations are applied. Initializes a new instance of the DbMigrator class. Configuration to be used for the migration process. Gets all migrations that are defined in the configured migrations assembly. Gets all migrations that have been applied to the target database. Gets all migrations that are defined in the assembly but haven't been applied to the target database. Updates the target database to a given migration. The migration to upgrade/downgrade to. Gets the configuration that is being used for the migration process. A set of extension methods for Adds or updates entities by key when SaveChanges is called. Equivalent to an "upsert" operation from database terminology. This method can useful when seeding data using Migrations. The entities to add or update. When the parameter is a custom or fake IDbSet implementation, this method will attempt to locate and invoke a public, instance method with the same signature as this extension method. Adds or updates entities by a custom identification expression when SaveChanges is called. Equivalent to an "upsert" operation from database terminology. This method can useful when seeding data using Migrations. An expression specifying the properties that should be used when determining whether an Add or Update operation should be performed. The entities to add or update. When the parameter is a custom or fake IDbSet implementation, this method will attempt to locate and invoke a public, instance method with the same signature as this extension method. Generates C# code for a code-based migration. Base class for providers that generate code for code-based migrations. Generates the code that should be added to the users project. Unique identifier of the migration. Operations to be performed by the migration. Source model to be stored in the migration metadata. Target model to be stored in the migration metadata. Namespace that code should be generated in. Name of the class that should be generated. The generated code. Gets the namespaces that must be output as "using" or "Imports" directives to handle the code generated by the given operations. The operations for which code is going to be generated. An ordered list of namespace names. Gets the default namespaces that must be output as "using" or "Imports" directives for any code generated. A value indicating if this class is being generated for a code-behind file. An ordered list of namespace names. Generates the primary code file that the user can view and edit. Operations to be performed by the migration. Namespace that code should be generated in. Name of the class that should be generated. The generated code. Generates the code behind file with migration metadata. Unique identifier of the migration. Source model to be stored in the migration metadata. Target model to be stored in the migration metadata. Namespace that code should be generated in. Name of the class that should be generated. The generated code. Generates a property to return the source or target model in the code behind file. Name of the property. Value to be returned. Text writer to add the generated code to. Generates a namespace, using statements and class definition. Namespace that code should be generated in. Name of the class that should be generated. Text writer to add the generated code to. Base class for the generated class. A value indicating if this class is being generated for a code-behind file. Namespaces for which using directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. Generates the closing code for a class that was started with WriteClassStart. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to specify a set of column names using a lambda expression. The columns to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to specify the definition for a . The column definition to generate code for. Text writer to add the generated code to. A value indicating whether to include the column name in the definition. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column of unknown data type. The value to be used as the default. Code representing the default value. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Removes any invalid characters from the name of an database artifact. The name to be scrubbed. The scrubbed name. Gets the type name to use for a column of the given data type. The data type to translate. The type name to use in the generated migration. Quotes an identifier using appropriate escaping to allow it to be stored in a string. The identifier to be quoted. The quoted identifier. Scaffolds code-based migrations to apply pending model changes to the database. Initializes a new instance of the MigrationScaffolder class. Configuration to be used for scaffolding. Scaffolds a code based migration to apply any pending model changes to the database. The name to use for the scaffolded migration. The scaffolded migration. Scaffolds a code based migration to apply any pending model changes to the database. The name to use for the scaffolded migration. Whether or not to include model changes. The scaffolded migration. Scaffolds the initial code-based migration corresponding to a previously run database initializer. The scaffolded migration. Gets or sets the namespace used in the migration's generated code. By default, this is the same as MigrationsNamespace on the migrations configuration object passed into the constructor. For VB.NET projects, this will need to be updated to take into account the project's root namespace. Represents a code-based migration that has been scaffolded and is ready to be written to a file. Gets or sets the unique identifier for this migration. Typically used for the file name of the generated code. Gets or sets the scaffolded migration code that the user can edit. Gets or sets the scaffolded migration code that should be stored in a code behind file. Gets or sets the programming language used for this migration. Typically used for the file extension of the generated code. Gets or sets the subdirectory in the user's project that this migration should be saved in. Gets a dictionary of string resources to add to the migration resource file. Represents an exception that occurred while running an operation in another AppDomain in the . Initializes a new instance of the ToolingException class. Error that explains the reason for the exception. The type of the exception that was thrown. The stack trace of the exception that was thrown. Gets the type of the exception that was thrown. Gets the stack trace of the exception that was thrown. Helper class that is used by design time tools to run migrations related commands that need to interact with an application that is being edited in Visual Studio. Because the application is being edited the assemblies need to be loaded in a separate AppDomain to ensure the latest version is always loaded. The App/Web.config file from the startup project is also copied to ensure that any configuration is applied. Initializes a new instance of the ToolingFacade class. The name of the assembly that contains the migrations configuration to be used. The namespace qualified name of migrations configuration to be used. The working directory containing the compiled assemblies. The path of the config file from the startup project. The path of the application data directory from the startup project. Typically the App_Data directory for web applications or the working directory for executables. The connection to the database to be migrated. If null is supplied, the default connection for the context will be used. Releases all unmanaged resources used by the facade. Gets the fully qualified name of all types deriving from . All context types found. Gets the fully qualified name of a type deriving from . The name of the context type. If null, the single context type found in the assembly will be returned. The context type found. Gets a list of all migrations that have been applied to the database. Ids of applied migrations. Gets a list of all migrations that have not been applied to the database. Ids of pending migrations. Updates the database to the specified migration. The Id of the migration to migrate to. If null is supplied, the database will be updated to the latest migration. Value indicating if data loss during automatic migration is acceptable. Generates a SQL script to migrate between two migrations. The migration to update from. If null is supplied, a script to update the current database will be produced. The migration to update to. If null is supplied, a script to update to the latest migration will be produced. Value indicating if data loss during automatic migration is acceptable. The generated SQL script. Scaffolds a code-based migration to apply any pending model changes. The name for the generated migration. The programming language of the generated migration. The root namespace of the project the migration will be added to. Whether or not to include model changes. The scaffolded migration. Scaffolds the initial code-based migration corresponding to a previously run database initializer. The programming language of the generated migration. The root namespace of the project the migration will be added to. The scaffolded migration. Releases all resources used by the facade. true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets or sets an action to be run to log information. Gets or sets an action to be run to log warnings. Gets or sets an action to be run to log verbose information. Base class for loggers that can be used for the migrations process. Logs an informational message. The message to be logged. Logs a warning that the user should be made aware of. The message to be logged. Logs some additional information that should only be presented to the user if they request verbose output. The message to be logged. Generates VB.Net code for a code-based migration. Generates the primary code file that the user can view and edit. Operations to be performed by the migration. Namespace that code should be generated in. Name of the class that should be generated. The generated code. Generates the code behind file with migration metadata. Unique identifier of the migration. Source model to be stored in the migration metadata. Target model to be stored in the migration metadata. Namespace that code should be generated in. Name of the class that should be generated. The generated code. Generates a property to return the source or target model in the code behind file. Name of the property. Value to be returned. Text writer to add the generated code to. Generates a namespace, using statements and class definition. Namespace that code should be generated in. Name of the class that should be generated. Text writer to add the generated code to. Base class for the generated class. A value indicating if this class is being generated for a code-behind file. Namespaces for which Imports directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. Generates the closing code for a class that was started with WriteClassStart. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to specify a set of column names using a lambda expression. The columns to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to specify the definition for a . The column definition to generate code for. Text writer to add the generated code to. A value indicating whether to include the column name in the definition. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column of unknown data type. The value to be used as the default. Code representing the default value. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Removes any invalid characters from the name of an database artifact. The name to be scrubbed. The scrubbed name. Gets the type name to use for a column of the given data type. The data type to translate. The type name to use in the generated migration. Quotes an identifier using appropriate escaping to allow it to be stored in a string. The identifier to be quoted. The quoted identifier. This class is used by Code First Migrations to read and write migration history from the database. It is not intended to be used by other code and is only public so that it can be accessed by EF when running under partial trust. It may be changed or removed in the future. Gets or sets the Id of the migration this row represents. Gets or sets the date and time that this migrations history entry was created. Gets or sets the state of the model after this migration was applied. Gets or sets the version of Entity Framework that created this entry. This is a version of the HistoryContext that still includes CreatedOn in its model. It is used when figuring out whether or not the CreatedOn column exists and so should be dropped. Represents an error that occurs when an automatic migration would result in data loss. Represents errors that occur inside the Code First Migrations pipeline. Initializes a new instance of the MigrationsException class. Initializes a new instance of the MigrationsException class. The message that describes the error. Initializes a new instance of the MigrationsException class. The message that describes the error. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the MigrationsException class with serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. Initializes a new instance of the AutomaticDataLossException class. The message that describes the error. Represents an error that occurs when there are pending model changes after applying the last migration and automatic migration is disabled. Initializes a new instance of the AutomaticMigrationsDisabledException class. The message that describes the error. Provides additional metadata about a code-based migration. Gets the unique identifier for the migration. Gets the state of the model before this migration is run. Gets the state of the model after this migration is run. Decorator to provide logging during migrations operations.. Initializes a new instance of the MigratorLoggingDecorator class. The migrator that this decorator is wrapping. The logger to write messages to. Decorator to produce a SQL script instead of applying changes to the database. Using this decorator to wrap will prevent from applying any changes to the target database. Initializes a new instance of the MigratorScriptingDecorator class. The migrator that this decorator is wrapping. Represents a column being added to a table. Represents an operation to modify a database schema. Initializes a new instance of the MigrationOperation class. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets additional arguments that may be processed by providers. Gets an operation that will revert this operation. Gets a value indicating if this operation may result in data loss. Initializes a new instance of the AddColumnOperation class. The name of the table the column should be added to. Details of the column being added. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table the column should be added to. Gets the details of the column being added. Gets an operation that represents dropping the added column. Represents a foreign key constraint being added to a table. Base class for changes that affect foreign key constraints. Initializes a new instance of the ForeignKeyOperation class. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets or sets the name of the table that the foreign key constraint targets. Gets or sets the name of the table that the foreign key columns exist in. The names of the foreign key column(s). Gets a value indicating if a specific name has been supplied for this foreign key constraint. Gets or sets the name of this foreign key constraint. If no name is supplied, a default name will be calculated. Initializes a new instance of the AddForeignKeyOperation class. The PrincipalTable, PrincipalColumns, DependentTable and DependentColumns properties should also be populated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation to create an index on the foreign key column(s). An operation to add the index. The names of the column(s) that the foreign key constraint should target. Gets or sets a value indicating if cascade delete should be configured on the foreign key constraint. Gets an operation to drop the foreign key constraint. Represents adding a primary key to a table. Common base class to represent operations affecting primary keys. Initializes a new instance of the PrimaryKeyOperation class. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets or sets the name of the table that contains the primary key. Gets the column(s) that make up the primary key. Gets a value indicating if a specific name has been supplied for this primary key. Gets or sets the name of this primary key. If no name is supplied, a default name will be calculated. Initializes a new instance of the AddPrimaryKeyOperation class. The Table and Columns properties should also be populated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation to drop the primary key. Represents altering an existing column. Initializes a new instance of the AlterColumnOperation class. The name of the table that the column belongs to. Details of what the column should be altered to. Value indicating if this change will result in data loss. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the AlterColumnOperation class. The name of the table that the column belongs to. Details of what the column should be altered to. Value indicating if this change will result in data loss. An operation to revert this alteration of the column. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table that the column belongs to. Gets the new definition for the column. Gets an operation that represents reverting the alteration. The inverse cannot be automatically calculated, if it was not supplied to the constructor this property will return null. Represents information about a column. Initializes a new instance of the class. The data type for this column. Initializes a new instance of the class. The data type for this column. Additional details about the data type. This includes details such as maximum length, nullability etc. Determines if this column is a narrower data type than another column. Used to determine if altering the supplied column definition to this definition will result in data loss. The column to compare to. Details of the database provider being used. True if this column is of a narrower data type. Gets the data type for this column. Gets the CLR type corresponding to the database type of this column. Gets the default value for the CLR type corresponding to the database type of this column. Gets additional details about the data type of this column. This includes details such as maximum length, nullability etc. Gets or sets the name of the column. Gets or sets a provider specific data type to use for this column. Gets or sets a value indicating if this column can store null values. Gets or sets a value indicating if values for this column will be generated by the database using the identity pattern. Gets or sets the maximum length for this column. Only valid for array data types. Gets or sets the precision for this column. Only valid for decimal data types. Gets or sets the scale for this column. Only valid for decimal data types. Gets or sets a constant value to use as the default value for this column. Gets or sets a SQL expression used as the default value for this column. Gets or sets a value indicating if this column is fixed length. Only valid for array data types. Gets or sets a value indicating if this column supports Unicode characters. Only valid for textual data types. Gets or sets a value indicating if this column should be configured as a timestamp. Represents creating a database index. Common base class for operations affecting indexes. Initializes a new instance of the IndexOperation class. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets or sets the table the index belongs to. Gets or sets the columns that are indexed. Gets a value indicating if a specific name has been supplied for this index. Gets or sets the name of this index. If no name is supplied, a default name will be calculated. Initializes a new instance of the CreateIndexOperation class. The Table and Columns properties should also be populated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets or sets a value indicating if this is a unique index. Gets an operation to drop this index. Represents creating a table. Initializes a new instance of the CreateTableOperation class. Name of the table to be created. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table to be created. Gets the columns to be included in the new table. Gets or sets the primary key for the new table. Gets an operation to drop the table. Represents deleting a new record from the migrations history table. The migrations history table is used to store a log of the migrations that have been applied to the database. Common base class for operations that affect the migrations history table. The migrations history table is used to store a log of the migrations that have been applied to the database. Initializes a new instance of the HistoryOperation class. Name of the migrations history table. Name of the migration being affected. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the migrations history table. Gets the name of the migration being affected. Initializes a new instance of the DeleteHistoryOperation class. Name of the migrations history table. Id of the migration record to be deleted. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Represents a column being dropped from a table. Initializes a new instance of the DropColumnOperation class. The name of the table the column should be dropped from. The name of the column to be dropped. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropColumnOperation class. The name of the table the column should be dropped from. The name of the column to be dropped. The operation that represents reverting the drop operation. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table the column should be dropped from. Gets the name of the column to be dropped. Gets an operation that represents reverting dropping the column. The inverse cannot be automatically calculated, if it was not supplied to the constructor this property will return null. Represents a foreign key constraint being dropped from a table. Initializes a new instance of the DropForeignKeyOperation class. The PrincipalTable, DependentTable and DependentColumns properties should also be populated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropForeignKeyOperation class. The operation that represents reverting dropping the foreign key constraint. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation to drop the associated index on the foreign key column(s). An operation to drop the index. Gets an operation that represents reverting dropping the foreign key constraint. The inverse cannot be automatically calculated, if it was not supplied to the constructor this property will return null. Represents dropping an existing index. Initializes a new instance of the DropIndexOperation class. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropIndexOperation class. The operation that represents reverting dropping the index. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation that represents reverting dropping the index. The inverse cannot be automatically calculated, if it was not supplied to the constructor this property will return null. Represents dropping a primary key from a table. Initializes a new instance of the DropPrimaryKeyOperation class. The Table and Columns properties should also be populated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation to add the primary key. Represents dropping an existing table. Initializes a new instance of the DropTableOperation class. The name of the table to be dropped. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropTableOperation class. The name of the table to be dropped. An operation that represents reverting dropping the table. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table to be dropped. Gets an operation that represents reverting dropping the table. The inverse cannot be automatically calculated, if it was not supplied to the constructor this property will return null. Represents inserting a new record into the migrations history table. The migrations history table is used to store a log of the migrations that have been applied to the database. Initializes a new instance of the InsertHistoryOperation class. Name of the migrations history table. Id of the migration record to be inserted. Value to be stored in the model column. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the value to store in the history table representing the target model of the migration. Gets the value to store in the history table indicating the version of Entity Framework used to produce this migration. Represents moving a table from one schema to another. Initializes a new instance of the MoveTableOperation class. Name of the table to be moved. Name of the schema to move the table to. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table to be moved. Gets the name of the schema to move the table to. Gets an operation that moves the table back to its original schema. Represents renaming an existing column. Initializes a new instance of the RenameColumnOperation class. Name of the table the column belongs to. Name of the column to be renamed. New name for the column. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table the column belongs to. Gets the name of the column to be renamed. Gets the new name for the column. Gets an operation that reverts the rename. Represents renaming an existing table. Initializes a new instance of the RenameTableOperation class. Name of the table to be renamed. New name for the table. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table to be renamed. Gets the new name for the table. Gets an operation that reverts the rename. Represents a provider specific SQL statement to be executed directly against the target database. Initializes a new instance of the SqlOperation class. The SQL to be executed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the SQL to be executed. Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails. Common base class for providers that convert provider agnostic migration operations into database provider specific SQL commands. Converts a set of migration operations into database provider specific SQL. The operations to be converted. Token representing the version of the database being targeted. A list of SQL statements to be executed to perform the migration operations. Represents a migration operation that has been translated into a SQL statement. Gets or sets the SQL to be executed to perform this migration operation. Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails. Provider to convert provider agnostic migration operations into SQL commands that can be run against Microsoft SQL Server Compact Edition. Provider to convert provider agnostic migration operations into SQL commands that can be run against a Microsoft SQL Server database. Converts a set of migration operations into Microsoft SQL Server specific SQL. The operations to be converted. Token representing the version of SQL Server being targeted (i.e. "2005", "2008"). A list of SQL statements to be executed to perform the migration operations. Creates an empty connection for the current provider. Allows derived providers to use connection other than . Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL to mark a table as a system table. Generated SQL should be added using the Statement method. The table to mark as a system table. Generates SQL to create a database schema. Generated SQL should be added using the Statement method. The name of the schema to create. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL to specify a constant byte[] default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant bool default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant DateTime default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant DateTimeOffset default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant Guid default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant string default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant TimeSpan default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify the data type of a column. This method just generates the actual type, not the SQL to create the column. The definition of the column. SQL representing the data type. Generates a quoted name. The supplied name may or may not contain the schema. The name to be quoted. The quoted name. Quotes an identifier for SQL Server. The identifier to be quoted. The quoted identifier. Adds a new Statement to be executed against the database. The statement to be executed. Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails. Gets a new that can be used to build SQL. This is just a helper method to create a writer. Writing to the writer will not cause SQL to be registered for execution. You must pass the generated SQL to the Statement method. An empty text writer to use for SQL generation. Adds a new Statement to be executed against the database. The writer containing the SQL to be executed. Utility class to prep the user's config file to run in an AppDomain Updates a config file by adding binding redirects for EntityFramework.dll. This ensures that the user's code can be ran in an AppDomain and the exact same version of the assembly will be used for both domains. That path of the user's config file. Can also be null or a path to an non-existent file. The path of the updated config file. It is the caller's responsibility to delete this. The same as but works in partial trust. Specifies the default tab string. This field is constant. Initializes a new instance of the IndentedTextWriter class using the specified text writer and default tab string. The to use for output. Initializes a new instance of the IndentedTextWriter class using the specified text writer and tab string. The to use for output. The tab string to use for indentation. Closes the document being written to. Flushes the stream. Outputs the tab string once for each level of indentation according to the property. Writes the specified string to the text stream. The string to write. Writes the text representation of a Boolean value to the text stream. The Boolean value to write. Writes a character to the text stream. The character to write. Writes a character array to the text stream. The character array to write. Writes a subarray of characters to the text stream. The character array to write data from. Starting index in the buffer. The number of characters to write. Writes the text representation of a Double to the text stream. The double to write. Writes the text representation of a Single to the text stream. The single to write. Writes the text representation of an integer to the text stream. The integer to write. Writes the text representation of an 8-byte integer to the text stream. The 8-byte integer to write. Writes the text representation of an object to the text stream. The object to write. Writes out a formatted string, using the same semantics as specified. The formatting string. The object to write into the formatted string. Writes out a formatted string, using the same semantics as specified. The formatting string to use. The first object to write into the formatted string. The second object to write into the formatted string. Writes out a formatted string, using the same semantics as specified. The formatting string to use. The argument array to output. Writes the specified string to a line without tabs. The string to write. Writes the specified string, followed by a line terminator, to the text stream. The string to write. Writes a line terminator. Writes the text representation of a Boolean, followed by a line terminator, to the text stream. The Boolean to write. Writes a character, followed by a line terminator, to the text stream. The character to write. Writes a character array, followed by a line terminator, to the text stream. The character array to write. Writes a subarray of characters, followed by a line terminator, to the text stream. The character array to write data from. Starting index in the buffer. The number of characters to write. Writes the text representation of a Double, followed by a line terminator, to the text stream. The double to write. Writes the text representation of a Single, followed by a line terminator, to the text stream. The single to write. Writes the text representation of an integer, followed by a line terminator, to the text stream. The integer to write. Writes the text representation of an 8-byte integer, followed by a line terminator, to the text stream. The 8-byte integer to write. Writes the text representation of an object, followed by a line terminator, to the text stream. The object to write. Writes out a formatted string, followed by a line terminator, using the same semantics as specified. The formatting string. The object to write into the formatted string. Writes out a formatted string, followed by a line terminator, using the same semantics as specified. The formatting string to use. The first object to write into the formatted string. The second object to write into the formatted string. Writes out a formatted string, followed by a line terminator, using the same semantics as specified. The formatting string to use. The argument array to output. Writes the text representation of a UInt32, followed by a line terminator, to the text stream. A UInt32 to output. Gets the encoding for the text writer to use. An that indicates the encoding for the text writer to use. Gets or sets the new line character to use. The new line character to use. Gets or sets the number of spaces to indent. The number of spaces to indent. Gets the to use. The to use. Used for generating values that are always in sequential order for the calling thread. Returns the value of unless this value would be the same as the last value returned by this thread calling this method, in which case the thread pushes the value a little bit into the future. The comparison is in terms of the form used to store migration ID in the database--i.e. to the 1/10 second. There should never be any pushing to the future involved for normal use of migrations, but when this method is called in rapid succession while testing or otherwise calling the DbMigrator APIs there may be occasional sleeping. Same as UtcNow method bur returns the time in the timestamp format used in migration IDs. Convention to apply column ordering specified via or the API. This convention throws if a duplicate configured column order is detected. Convention to apply column ordering specified via or the API. Identifies conventions that can be removed from a instance. /// Note that implementations of this interface must be immutable. Strongly-typed and parameterized string resources. A string like "Applying automatic migration: {0}." A string like "Reverting automatic migration: {0}." A string like "Applying code-based migration: {0}." A string like "Reverting code-based migration: {0}." A string like "Applying code-based migrations: [{1}]." A string like "Reverting migrations: [{1}]." A string like "Target database is already at version {0}." A string like "Target database is: {0}." A string like "'{1}' (DataSource: {0}, Provider: {2}, Origin: {3})" A string like "The specified target migration '{0}' does not exist. Ensure that target migration refers to an existing migration id." A string like "The Foreign Key on table '{0}' with columns '{1}' could not be created because the principal key columns could not be determined. Use the AddForeignKey fluent API to fully specify the Foreign Key." A string like "'{0}' is not a valid target migration. When targeting a previously applied automatic migration, use the full migration id including timestamp." A string like "'{0}' is not a valid migration. Code-based migrations must be used for both source and target when scripting the upgrade between them." A string like "The target context '{0}' is not constructible. Add a default constructor or provide an implementation of IDbContextFactory." A string like "The specified migration name '{0}' is ambiguous. Specify the full migration id including timestamp instead." A string like "The migrations configuration type '{0}' was not be found in the assembly '{1}'." A string like "More than one migrations configuration type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the one to use." A string like "No migrations configuration type was found in the assembly '{0}'. (In Visual Studio you can use the Enable-Migrations command from Package Manager Console to add a migrations configuration)." A string like "More than one migrations configuration type was found in the assembly '{0}'. Specify the name of the one to use." A string like "The type '{0}' is not a migrations configuration type." A string like "The migrations configuration type '{0}' must have a public default constructor." A string like "The migrations configuration type '{0}' must not be abstract." A string like "The migrations configuration type '{0}' must not be generic." A string like "In VB.NET projects, the migrations namespace '{0}' must be under the root namespace '{1}'. Update the migrations project's root namespace to allow classes under the migrations namespace to be added." A string like "No MigrationSqlGenerator found for provider '{0}'. Use the SetSqlGenerator method in the target migrations configuration class to register additional SQL generators." A string like "Could not load assembly '{0}'. (If you are using Code First Migrations inside Visual Studio this can happen if the startUp project for your solution does not reference the project that contains your migrations. You can either change the startUp project for your solution or use the -StartUpProjectName parameter.)" A string like "No context type was found in the assembly '{0}'." A string like "More than one context type was found in the assembly '{0}'." A string like "To enable migrations for {0}, use Enable-Migrations -ContextTypeName {0}." A string like "The context type '{0}' was not found in the assembly '{1}'." A string like "More than one context type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the context." A string like "The argument '{0}' cannot be null, empty or contain only white space." A string like "The argument property '{0}' cannot be null." A string like "The precondition '{0}' failed. {1}" A string like "The type '{0}' has already been configured as a complex type. It cannot be reconfigured as an entity type." A string like "The type '{0}' has already been configured as an entity type. It cannot be reconfigured as a complex type." A string like "The key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property." A string like "The foreign key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property." A string like "The property '{0}' is not a declared property on type '{1}'. Verify that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation. Make sure that it is a valid primitive property." A string like "The navigation property '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid navigation property." A string like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'." A string like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. Use dotted paths for nested properties: C#: 't => t.MyProperty.MyProperty' VB.Net: 'Function(t) t.MyProperty.MyProperty'." A string like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'." A string like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'." A string like "Conflicting configuration settings were specified for property '{0}' on type '{1}': {2}" A string like "Conflicting configuration settings were specified for column '{0}' on table '{1}': {2}" A string like "{0} = {1} conflicts with {2} = {3}" A string like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from ComplexObject." A string like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from EntityObject." A string like "The navigation property '{0}' declared on type '{1}' cannot be the inverse of itself." A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting foreign keys." A string like "Values of incompatible types ('{1}' and '{2}') were assigned to the '{0}' discriminator column. Values of the same type must be specified. To explicitly specify the type of the discriminator column use the HasColumnType method." A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting mapping information." A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting cascade delete operations using 'WillCascadeOnDelete'." A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting multiplicities." A string like "The MaxLengthAttribute on property '{0}' on type '{1} is not valid. The Length value must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." A string like "The StringLengthAttribute on property '{0}' on type '{1}' is not valid. The maximum length must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." A string like "Unable to determine composite primary key ordering for type '{0}'. Use the ColumnAttribute or the HasKey method to specify an order for composite primary keys." A string like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. Name must not be empty." A string like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The foreign key name '{2}' was not found on the dependent type '{3}'. The Name value should be a comma separated list of foreign key property names." A string like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The navigation property '{2}' was not found on the dependent type '{1}'. The Name value should be a valid navigation property name." A string like "Unable to determine a composite foreign key ordering for foreign key on type {0}. When using the ForeignKey data annotation on composite foreign key properties ensure order is specified by using the Column data annotation or the fluent API." A string like "The InversePropertyAttribute on property '{2}' on type '{3}' is not valid. The property '{0}' is not a valid navigation property on the related type '{1}'. Ensure that the property exists and is a valid reference or collection navigation property." A string like "A relationship cannot be established from property '{0}' on type '{1}' to property '{0}' on type '{1}'. Check the values in the InversePropertyAttribute to ensure relationship definitions are unique and reference from one navigation property to its corresponding inverse navigation property." A string like "\t{0}: {1}: {2}" A string like "A key is registered for the derived type '{0}'. Keys can only be registered for the root type '{1}'." A string like "The {0} value '{1}' already exists in the user-defined dictionary." A string like "The type '{0}' has already been mapped to table '{1}'. Specify all mapping aspects of a table in a single Map call." A string like "Map was called more than once for type '{0}' and at least one of the calls didn't specify the target table name." A string like "The derived type '{0}' has already been mapped using the chaining syntax. A derived type can only be mapped once using the chaining syntax." A string like "An "is not null" condition cannot be specified on property '{0}' on type '{1}' because this property is not included in the model. Check that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation." A string like "Values of type '{0}' cannot be used as type discriminator values. Supported types include byte, signed byte, bool, int16, int32, int64, and string." A string like "Unable to add the convention '{0}'. Could not find an existing convention of type '{1}' in the current convention set." A string like "Not all properties for type '{0}' have been mapped. Either map those properties or explicitly excluded them from the model." A string like "Unable to determine the provider name for connection of type '{0}'." A string like "The qualified table name '{0}' contains an invalid schema name. Schema names must have a non-zero length." A string like "The qualified table name '{0}' contains an invalid table name. Table names must have a non-zero length." A string like "Properties for type '{0}' can only be mapped once. Ensure the MapInheritedProperties method is only used during one call to the Map method." A string like "Properties for type '{0}' can only be mapped once. Ensure the Properties method is used and that repeated calls specify each non-key property only once." A string like "Properties for type '{0}' can only be mapped once. The non-key property '{1}' is mapped more than once. Ensure the Properties method specifies each non-key property only once." A string like "The property '{1}' on type '{0}' cannot be mapped because it has been explicitly excluded from the model or it is of a type not supported by the DbModelBuilderVersion being used." A string like "The entity types '{0}' and '{1}' cannot share table '{2}' because they are not in the same type hierarchy or do not have a valid one to one foreign key relationship with matching primary keys between them." A string like "You cannot use Ignore method on the property '{0}' on type '{1}' because this type inherits from the type '{2}' where this property is mapped. To exclude this property from your model, use NotMappedAttribute or Ignore method on the base type." A string like "The property '{0}' cannot be used as a key property on the entity '{1}' because the property type is not a valid key type. Only scalar types, string and byte[] are supported key types." A string like "The specified table '{0}' was not found in the model. Ensure that the table name has been correctly specified." A string like "The specified association foreign key columns '{0}' are invalid. The number of columns specified must match the number of primary key columns." A string like "Unable to determine the principal end of an association between the types '{0}' and '{1}'. The principal end of this association must be explicitly configured using either the relationship fluent API or data annotations." A string like "The abstract type '{0}' has no mapped descendents and so cannot be mapped. Either remove '{0}' from the model or add one or more types deriving from '{0}' to the model. " A string like "The type '{0}' cannot be mapped as defined because it maps inherited properties from types that use entity splitting or another form of inheritance. Either choose a different inheritance mapping strategy so as to not map inherited properties, or change all types in the hierarchy to map inherited properties and to not use splitting. " A string like "The table '{0}' was configured but is not used in any mappings. Verify the mapping configuration for '{0}' is correct." A string like "The configured column orders for the table '{0}' contains duplicates. Ensure the specified column order values are distinct." A string like "The enum or spatial property '{1}' on type '{0}' cannot be mapped. Use DbModelBuilderVersion 'V5_0' or later to map enum or spatial properties." A string like "Multiple potential primary key properties named '{0}' but differing only by case were found on entity type '{1}'. Configure the primary key explicitly using the HasKey fluent API or the KeyAttribute data annotation." A string like "Cannot get value for property '{0}' from entity of type '{1}' because the property has no get accessor." A string like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor." A string like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor and is in the '{2}' state." A string like "Member '{0}' cannot be called for property '{1}' on entity of type '{2}' because the property is not part of the Entity Data Model." A string like "Cannot call the {0} method for an entity of type '{1}' on a DbSet for entities of type '{2}'. Only entities of type '{2}' or derived from type '{2}' can be added, attached, or removed." A string like "Cannot call the Create method for the type '{0}' on a DbSet for entities of type '{1}'. Only entities of type '{1}' or derived from type '{1}' can be created." A string like "The property '{0}' on type '{1}' is a collection navigation property. The Collection method should be used instead of the Reference method." A string like "The property '{0}' on type '{1}' is a reference navigation property. The Reference method should be used instead of the Collection method." A string like "The property '{0}' on type '{1}' is not a navigation property. The Reference and Collection methods can only be used with navigation properties. Use the Property or ComplexProperty method." A string like "The property '{0}' on type '{1}' is not a primitive or complex property. The Property method can only be used with primitive or complex properties. Use the Reference or Collection method." A string like "The property '{0}' on type '{1}' is not a complex property. The ComplexProperty method can only be used with complex properties. Use the Property, Reference or Collection method." A string like "The property '{0}' on type '{1}' is not a primitive property, complex property, collection navigation property, or reference navigation property." A string like ""The property '{0}' from the property path '{1}' is not a complex property on type '{2}'. Property paths must be composed of complex properties for all except the final property."" A string like ""The property path '{0}' cannot be used for navigation properties. Property paths can only be used to access primitive or complex properties."" A string like "The navigation property '{0}' on entity type '{1}' cannot be used for entities of type '{2}' because it refers to entities of type '{3}'." A string like "The generic type argument '{0}' cannot be used with the Member method when accessing the collection navigation property '{1}' on entity type '{2}'. The generic type argument '{3}' must be used instead." A string like "The property '{0}' on entity type '{1}' cannot be used for objects of type '{2}' because it is a property for objects of type '{3}'." A string like "The expression passed to method {0} must represent a property defined on the type '{1}'." A string like "{0} cannot be used for entities in the {1} state." A string like "Cannot set non-nullable property '{0}' of type '{1}' to null on object of type '{2}'." A string like "The property '{0}' in the entity of type '{1}' is null. Store values cannot be obtained for an entity with a null complex property." A string like "Cannot assign value of type '{0}' to property '{1}' of type '{2}' in property values for type '{3}'." A string like "The '{0}' property does not exist or is not mapped for the type '{1}'." A string like "Cannot copy values from DbPropertyValues for type '{0}' into DbPropertyValues for type '{1}'." A string like "Cannot copy from property values for object of type '{0}' into property values for object of type '{1}'." A string like "The value of the complex property '{0}' on entity of type '{1}' is null. Complex properties cannot be set to null and values cannot be set for null complex properties." A string like "The value of the nested property values property '{0}' on the values for entity of type '{1}' is null. Nested property values cannot be set to null and values cannot be set for null complex properties." A string like "Cannot set the value of the nested property '{0}' because value of the complex property '{1}' to which it belongs is null." A string like "Cannot set the original value of the nested property '{0}' because the original value of the complex property '{1}' to which it belongs is null." A string like "The model backing the '{0}' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269)." A string like "Database '{0}' cannot be created because it already exists." A string like "Failed to set database initializer of type '{0}' for DbContext type '{1}' specified in the application configuration. See inner exception for details." A string like "Configuration for DbContext type '{0}' is specified multiple times in the application configuration. Each context can only be configured once." A string like "Failed to set Database.DefaultConnectionFactory to an instance of the '{0}' type as specified in the application configuration. See inner exception for details." A string like "The type '{0}' could not be found. The type name must be an assembly-qualified name." A string like "The connection string '{0}' in the application's configuration file does not contain the required providerName attribute."" A string like "The entity found was of type {0} when an entity of type {1} was requested." A string like "The type '{0}' is mapped as a complex type. The Set method, DbSet objects, and DbEntityEntry objects can only be used with entity types, not complex types." A string like "The type '{0}' is not attributed with EdmEntityTypeAttribute but is contained in an assembly attributed with EdmSchemaAttribute. POCO entities that do not use EdmEntityTypeAttribute cannot be contained in the same assembly as non-POCO entities that use EdmEntityTypeAttribute." A string like "The entity type {0} is not part of the model for the current context." A string like "No connection string named '{0}' could be found in the application config file." A string like "The collection navigation property '{0}' on the entity of type '{1}' cannot be set because the entity type does not define a navigation property with a set accessor." A string like "Multiple object sets per type are not supported. The object sets '{0}' and '{1}' can both contain instances of type '{2}'." A string like "The context type '{0}' must have a public constructor taking an EntityConnection." A string like "An unexpected exception was thrown during validation of '{0}' when invoking {1}.IsValid. See the inner exception for details." A string like "An unexpected exception was thrown during validation of '{0}' when invoking {1}.Validate. See the inner exception for details." A string like "The database name '{0}' is not supported because it is an MDF file name. A full connection string must be provided to attach an MDF file." A string like "The context factory type '{0}' must have a public default constructor." A string like "The '{0}' property of EdmPrimitiveType is fixed and cannot be set." A string like "The namespace '{0}' is a system namespace and cannot be used by other schemas. Choose another namespace name." A string like "Role '{0}' in AssociationSets '{1}' and '{2}' refers to the same EntitySet '{3}' in EntityContainer '{4}'. Make sure that if two or more AssociationSets refer to the same AssociationType, the ends do not refer to the same EntitySet." A string like "The referenced EntitySet '{0}' for End '{1}' could not be found in the containing EntityContainer." A string like "Type '{0}' is derived from type '{1}' that is the type for EntitySet '{2}'. Type '{0}' defines new concurrency requirements that are not allowed for subtypes of base EntitySet types." A string like "EntitySet '{0}' is based on type '{1}' that has no keys defined." A string like "The end name '{0}' is already defined." A string like "The key specified in EntityType '{0}' is not valid. Property '{1}' is referenced more than once in the Key element." A string like "Property '{0}' has a CollectionKind specified but is not a collection property." A string like "Property '{0}' has a CollectionKind specified. CollectionKind is only supported in version 1.1 EDM models." A string like "ComplexType '{0}' is marked as abstract. Abstract ComplexTypes are only supported in version 1.1 EDM models." A string like "ComplexType '{0}' has a BaseType specified. ComplexType inheritance is only supported in version 1.1 EDM models." A string like "Key part '{0}' for type '{1}' is not valid. All parts of the key must be non-nullable." A string like "The property '{0}' in EntityType '{1}' is not valid. All properties that are part of the EntityKey must be of PrimitiveType." A string like "Key usage is not valid. The {0} class cannot define keys because one of its base classes ('{1}') defines keys." A string like "EntityType '{0}' has no key defined. Define the key for this EntityType." A string like "NavigationProperty is not valid. Role '{0}' or Role '{1}' is not defined in Relationship '{2}'." A string like "End '{0}' on relationship '{1}' cannot have an operation specified because its multiplicity is '*'. Operations cannot be specified on ends with multiplicity '*'." A string like "Each Name and PluralName in a relationship must be unique. '{0}' is already defined." A string like "In relationship '{0}', the Principal and Dependent Role of the referential constraint refer to the same Role in the relationship type." A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Valid values for multiplicity for the Principal Role are '0..1' or '1'." A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because all the properties in the Dependent Role are nullable, multiplicity of the Principal Role must be '0..1'." A string like "Multiplicity conflicts with the referential constraint in Role '{0}' in relationship '{1}'. Because at least one of the properties in the Dependent Role is non-nullable, multiplicity of the Principal Role must be '1'." A string like "Multiplicity conflicts with the referential constraint in Role '{0}' in relationship '{1}'. Because all of the properties in the Dependent Role are non-nullable, multiplicity of the Principal Role must be '1'." A string like "Properties referred by the Dependent Role '{0}' must be a subset of the key of the EntityType '{1}' referred to by the Dependent Role in the referential constraint for relationship '{2}'." A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because the Dependent Role refers to the key properties, the upper bound of the multiplicity of the Dependent Role must be '1'." A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because the Dependent Role properties are not the key properties, the upper bound of the multiplicity of the Dependent Role must be '*'." A string like "The types of all properties in the Dependent Role of a referential constraint must be the same as the corresponding property types in the Principal Role. The type of property '{0}' on entity '{1}' does not match the type of property '{2}' on entity '{3}' in the referential constraint '{4}'." A string like "There is no property with name '{0}' defined in the type referred to by Role '{1}'." A string like "A nullable ComplexType is not supported. Property '{0}' must not allow nulls." A string like "A property cannot be of type '{0}'. The property type must be a ComplexType or a PrimitiveType." A string like "Each member name in an EntityContainer must be unique. A member with name '{0}' is already defined." A string like "Each type name in a schema must be unique. Type name '{0}' is already defined." A string like "Name '{0}' cannot be used in type '{1}'. Member names cannot be the same as their enclosing type." A string like "Each property name in a type must be unique. Property name '{0}' is already defined." A string like "A cycle was detected in the type hierarchy of '{0}'." A string like "A property cannot be of type '{0}'. The property type must be a ComplexType, a PrimitiveType, or a CollectionType." A string like "A property cannot be of type {0}. The property type must be a ComplexType, a PrimitiveType or an EnumType." A string like "The specified name must not be longer than 480 characters: '{0}'." A string like "The specified name is not allowed: '{0}'." A string like "The field {0} must be a string or array type with a maximum length of '{1}'." A string like "The field {0} must be a string or array type with a minimum length of '{1}'." A string like "No connection string named '{0}' could be found in the application config file." A string like "AutomaticMigration" A string like "BootstrapMigration" A string like "InitialCreate" A string like "Automatic migration was not applied because it would result in data loss." A string like "[Inserting migration history record]" A string like "[Deleting migration history record]" A string like "[Updating EdmMetadata model hash]" A string like "Running Seed method." A string like "No pending code-based migrations." A string like "Explicit" A string like "Upgrading history table." A string like "Cannot scaffold the next migration because the target database was created with a version of Code First earlier than EF 4.3 and does not contain the migrations history table. To start using migrations against this database, ensure the current model is compatible with the target database and execute the migrations Update process. (In Visual Studio you can use the Update-Database command from Package Manager Console to execute the migrations Update process)." A string like "Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Either write the pending model changes to a code-based migration or enable automatic migration. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true to enable automatic migration." A string like "Scripting the downgrade between two specified migrations is not supported." A string like "Direct column renaming is not supported by SQL Server Compact. To rename a column in SQL Server Compact, you will need to recreate it." A string like "One or more validation errors were detected during model generation:" A string like "A circular ComplexType hierarchy was detected. Self-referencing ComplexTypes are not supported." A string like "Connection to the database failed. The connection string is configured with an invalid LocalDB server name. This may have been set in 'global.asax' by a pre-release version of MVC4. The default connection factory is now set in web.config so the line in 'global.asax' starting with 'Database.DefaultConnectionFactory = ' should be removed. See http://go.microsoft.com/fwlink/?LinkId=243166 for details." A string like "An error occurred while getting provider information from the database. This can be caused by Entity Framework using an incorrect connection string. Check the inner exceptions for details and ensure that the connection string is correct." A string like "Setting IsModified to false for a modified property is not supported." A string like "An error occurred while saving entities that do not expose foreign key properties for their relationships. The EntityEntries property will return null because a single entity cannot be identified as the source of the exception. Handling of exceptions while saving can be made easier by exposing foreign key properties in your entity types. See the InnerException for details." A string like "The set of property value names is read-only." A string like "A property of a complex type must be set to an instance of the generic or non-generic DbPropertyValues class for that type." A string like "Model compatibility cannot be checked because the DbContext instance was not created using Code First patterns. DbContext instances created from an ObjectContext or using an EDMX file cannot be checked for compatibility." A string like "Model compatibility cannot be checked because the EdmMetadata type was not included in the model. Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions." A string like "Model compatibility cannot be checked because the database does not contain model metadata. Model compatibility can only be checked for databases created using Code First or Code First Migrations." A string like "The context cannot be used while the model is being created." A string like "The DbContext class cannot be used with models that have multiple entity sets per type (MEST)." A string like "The operation cannot be completed because the DbContext has been disposed." A string like "The provider factory returned a null connection." A string like "The DbConnectionFactory instance returned a null connection." A string like "The number of primary key values passed must match number of primary key values defined on the entity." A string like "The type of one of the primary key values did not match the type defined in the entity. See inner exception for details." A string like "Multiple entities were found in the Added state that match the given primary key values." A string like "Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery) is not supported. Instead populate a DbSet with data, for example by calling Load on the DbSet, and then bind to local data. For WPF bind to DbSet.Local. For WinForms bind to DbSet.Local.ToBindingList()." A string like "The Include path expression must refer to a navigation property defined on the type. Use dotted paths for reference navigation properties and the Select operator for collection navigation properties." A string like "Cannot initialize a DbContext from an entity connection string or an EntityConnection instance together with a DbCompiledModel. If an entity connection string or EntityConnection instance is used, then the model will be created from the metadata in the connection. If a DbCompiledModel is used, then the connection supplied should be a standard database connection (for example, a SqlConnection instance) rather than an entity connection." A string like "Using the same DbCompiledModel to create contexts against different types of database servers is not supported. Instead, create a separate DbCompiledModel for each type of server being used." A string like "Validation failed for one or more entities. See 'EntityValidationErrors' property for more details." A string like "An exception occurred while initializing the database. See the InnerException for details." A string like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing ObjectContext is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." A string like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing DbCompiledModel is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." A string like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using Database First or Model First is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." A string like "Code generated using the T4 templates for Database First and Model First development may not work correctly if used in Code First mode. To continue using Database First or Model First ensure that the Entity Framework connection string is specified in the config file of executing application. To use these classes, that were generated from Database First or Model First, with Code First add any additional configuration using attributes or the DbModelBuilder API and then remove the code that throws this exception." A string like "The generic 'Set' method cannot be called with a proxy type. Either use the actual entity type or call the non-generic 'Set' method." A string like "NavigationProperty is not valid. The FromRole and ToRole are the same." A string like "OnDelete can be specified on only one End of an EdmAssociation." A string like "The number of properties in the Dependent and Principal Roles in a relationship constraint must be identical." A string like "The name is missing or not valid." A string like "AssociationEnd must not be null." A string like "DependentEnd must not be null." A string like "DependentProperties must not be empty." A string like "Association must not be null." A string like "ResultEnd must not be null." A string like "EntityType must not be null." A string like "ElementType must not be null." A string like "ElementType must not be null." A string like "SourceSet must not be null." A string like "TargetSet must not be null." A string like "The type is not a valid EdmTypeReference." A string like "Serializer can only serialize an EdmModel that has one EdmNamespace and one EdmEntityContainer." A string like "MaxLengthAttribute must have a Length value that is greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." A string like "MinLengthAttribute must have a Length value that is zero or greater." A string like "The connection can not be overridden because this context was created from an existing ObjectContext." A string like "Can not override the connection for this context with a standard DbConnection because the original connection was an EntityConnection." A string like "Can not override the connection for this context with an EntityConnection because the original connection was a standard DbConnection." Strongly-typed and parameterized exception factory. Migrations.Infrastructure.AutomaticDataLossException with message like "Automatic migration was not applied because it would result in data loss." Migrations.Infrastructure.MigrationsException with message like "Cannot scaffold the next migration because the target database was created with a version of Code First earlier than EF 4.3 and does not contain the migrations history table. To start using migrations against this database, ensure the current model is compatible with the target database and execute the migrations Update process. (In Visual Studio you can use the Update-Database command from Package Manager Console to execute the migrations Update process)." Migrations.Infrastructure.MigrationsException with message like "The specified target migration '{0}' does not exist. Ensure that target migration refers to an existing migration id." Migrations.Infrastructure.MigrationsException with message like "The Foreign Key on table '{0}' with columns '{1}' could not be created because the principal key columns could not be determined. Use the AddForeignKey fluent API to fully specify the Foreign Key." Migrations.Infrastructure.MigrationsException with message like "'{0}' is not a valid target migration. When targeting a previously applied automatic migration, use the full migration id including timestamp." Migrations.Infrastructure.MigrationsException with message like "'{0}' is not a valid migration. Code-based migrations must be used for both source and target when scripting the upgrade between them." Migrations.Infrastructure.MigrationsException with message like "The target context '{0}' is not constructible. Add a default constructor or provide an implementation of IDbContextFactory." Migrations.Infrastructure.MigrationsException with message like "The specified migration name '{0}' is ambiguous. Specify the full migration id including timestamp instead." Migrations.Infrastructure.AutomaticMigrationsDisabledException with message like "Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Either write the pending model changes to a code-based migration or enable automatic migration. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true to enable automatic migration." Migrations.Infrastructure.MigrationsException with message like "Scripting the downgrade between two specified migrations is not supported." Migrations.Infrastructure.MigrationsException with message like "The migrations configuration type '{0}' was not be found in the assembly '{1}'." Migrations.Infrastructure.MigrationsException with message like "More than one migrations configuration type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the one to use." Migrations.Infrastructure.MigrationsException with message like "No migrations configuration type was found in the assembly '{0}'. (In Visual Studio you can use the Enable-Migrations command from Package Manager Console to add a migrations configuration)." Migrations.Infrastructure.MigrationsException with message like "More than one migrations configuration type was found in the assembly '{0}'. Specify the name of the one to use." Migrations.Infrastructure.MigrationsException with message like "The type '{0}' is not a migrations configuration type." Migrations.Infrastructure.MigrationsException with message like "The migrations configuration type '{0}' must have a public default constructor." Migrations.Infrastructure.MigrationsException with message like "The migrations configuration type '{0}' must not be abstract." Migrations.Infrastructure.MigrationsException with message like "The migrations configuration type '{0}' must not be generic." Migrations.Infrastructure.MigrationsException with message like "Direct column renaming is not supported by SQL Server Compact. To rename a column in SQL Server Compact, you will need to recreate it." Migrations.Infrastructure.MigrationsException with message like "In VB.NET projects, the migrations namespace '{0}' must be under the root namespace '{1}'. Update the migrations project's root namespace to allow classes under the migrations namespace to be added." Migrations.Infrastructure.MigrationsException with message like "No MigrationSqlGenerator found for provider '{0}'. Use the SetSqlGenerator method in the target migrations configuration class to register additional SQL generators." Migrations.Infrastructure.MigrationsException with message like "No context type was found in the assembly '{0}'." Migrations.Infrastructure.MigrationsException with message like "The context type '{0}' was not found in the assembly '{1}'." Migrations.Infrastructure.MigrationsException with message like "More than one context type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the context." ArgumentException with message like "The argument '{0}' cannot be null, empty or contain only white space." ArgumentException with message like "The argument property '{0}' cannot be null." ArgumentException with message like "The precondition '{0}' failed. {1}" InvalidOperationException with message like "The type '{0}' has already been configured as a complex type. It cannot be reconfigured as an entity type." InvalidOperationException with message like "The type '{0}' has already been configured as an entity type. It cannot be reconfigured as a complex type." InvalidOperationException with message like "The key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property." InvalidOperationException with message like "The foreign key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property." InvalidOperationException with message like "The property '{0}' is not a declared property on type '{1}'. Verify that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation. Make sure that it is a valid primitive property." InvalidOperationException with message like "The navigation property '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid navigation property." InvalidOperationException with message like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'." InvalidOperationException with message like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. Use dotted paths for nested properties: C#: 't => t.MyProperty.MyProperty' VB.Net: 'Function(t) t.MyProperty.MyProperty'." InvalidOperationException with message like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'." InvalidOperationException with message like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'." InvalidOperationException with message like "Conflicting configuration settings were specified for property '{0}' on type '{1}': {2}" InvalidOperationException with message like "Conflicting configuration settings were specified for column '{0}' on table '{1}': {2}" InvalidOperationException with message like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from ComplexObject." InvalidOperationException with message like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from EntityObject." InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' cannot be the inverse of itself." InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting foreign keys." MappingException with message like "Values of incompatible types ('{1}' and '{2}') were assigned to the '{0}' discriminator column. Values of the same type must be specified. To explicitly specify the type of the discriminator column use the HasColumnType method." InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting mapping information." InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting cascade delete operations using 'WillCascadeOnDelete'." InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting multiplicities." InvalidOperationException with message like "The MaxLengthAttribute on property '{0}' on type '{1} is not valid. The Length value must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." InvalidOperationException with message like "The StringLengthAttribute on property '{0}' on type '{1}' is not valid. The maximum length must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." InvalidOperationException with message like "Unable to determine composite primary key ordering for type '{0}'. Use the ColumnAttribute or the HasKey method to specify an order for composite primary keys." InvalidOperationException with message like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. Name must not be empty." InvalidOperationException with message like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The foreign key name '{2}' was not found on the dependent type '{3}'. The Name value should be a comma separated list of foreign key property names." InvalidOperationException with message like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The navigation property '{2}' was not found on the dependent type '{1}'. The Name value should be a valid navigation property name." InvalidOperationException with message like "Unable to determine a composite foreign key ordering for foreign key on type {0}. When using the ForeignKey data annotation on composite foreign key properties ensure order is specified by using the Column data annotation or the fluent API." InvalidOperationException with message like "The InversePropertyAttribute on property '{2}' on type '{3}' is not valid. The property '{0}' is not a valid navigation property on the related type '{1}'. Ensure that the property exists and is a valid reference or collection navigation property." InvalidOperationException with message like "A relationship cannot be established from property '{0}' on type '{1}' to property '{0}' on type '{1}'. Check the values in the InversePropertyAttribute to ensure relationship definitions are unique and reference from one navigation property to its corresponding inverse navigation property." InvalidOperationException with message like "A key is registered for the derived type '{0}'. Keys can only be registered for the root type '{1}'." InvalidOperationException with message like "The type '{0}' has already been mapped to table '{1}'. Specify all mapping aspects of a table in a single Map call." InvalidOperationException with message like "Map was called more than once for type '{0}' and at least one of the calls didn't specify the target table name." InvalidOperationException with message like "The derived type '{0}' has already been mapped using the chaining syntax. A derived type can only be mapped once using the chaining syntax." InvalidOperationException with message like "An "is not null" condition cannot be specified on property '{0}' on type '{1}' because this property is not included in the model. Check that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation." ArgumentException with message like "Values of type '{0}' cannot be used as type discriminator values. Supported types include byte, signed byte, bool, int16, int32, int64, and string." InvalidOperationException with message like "Unable to add the convention '{0}'. Could not find an existing convention of type '{1}' in the current convention set." InvalidOperationException with message like "Not all properties for type '{0}' have been mapped. Either map those properties or explicitly excluded them from the model." NotSupportedException with message like "Unable to determine the provider name for connection of type '{0}'." ArgumentException with message like "The qualified table name '{0}' contains an invalid schema name. Schema names must have a non-zero length." ArgumentException with message like "The qualified table name '{0}' contains an invalid table name. Table names must have a non-zero length." InvalidOperationException with message like "Properties for type '{0}' can only be mapped once. Ensure the MapInheritedProperties method is only used during one call to the Map method." InvalidOperationException with message like "Properties for type '{0}' can only be mapped once. Ensure the Properties method is used and that repeated calls specify each non-key property only once." InvalidOperationException with message like "Properties for type '{0}' can only be mapped once. The non-key property '{1}' is mapped more than once. Ensure the Properties method specifies each non-key property only once." InvalidOperationException with message like "The property '{1}' on type '{0}' cannot be mapped because it has been explicitly excluded from the model or it is of a type not supported by the DbModelBuilderVersion being used." InvalidOperationException with message like "The entity types '{0}' and '{1}' cannot share table '{2}' because they are not in the same type hierarchy or do not have a valid one to one foreign key relationship with matching primary keys between them." InvalidOperationException with message like "You cannot use Ignore method on the property '{0}' on type '{1}' because this type inherits from the type '{2}' where this property is mapped. To exclude this property from your model, use NotMappedAttribute or Ignore method on the base type." InvalidOperationException with message like "The property '{0}' cannot be used as a key property on the entity '{1}' because the property type is not a valid key type. Only scalar types, string and byte[] are supported key types." InvalidOperationException with message like "The specified table '{0}' was not found in the model. Ensure that the table name has been correctly specified." InvalidOperationException with message like "The specified association foreign key columns '{0}' are invalid. The number of columns specified must match the number of primary key columns." InvalidOperationException with message like "A circular ComplexType hierarchy was detected. Self-referencing ComplexTypes are not supported." InvalidOperationException with message like "Unable to determine the principal end of an association between the types '{0}' and '{1}'. The principal end of this association must be explicitly configured using either the relationship fluent API or data annotations." InvalidOperationException with message like "The abstract type '{0}' has no mapped descendents and so cannot be mapped. Either remove '{0}' from the model or add one or more types deriving from '{0}' to the model. " NotSupportedException with message like "The type '{0}' cannot be mapped as defined because it maps inherited properties from types that use entity splitting or another form of inheritance. Either choose a different inheritance mapping strategy so as to not map inherited properties, or change all types in the hierarchy to map inherited properties and to not use splitting. " InvalidOperationException with message like "The table '{0}' was configured but is not used in any mappings. Verify the mapping configuration for '{0}' is correct." InvalidOperationException with message like "The configured column orders for the table '{0}' contains duplicates. Ensure the specified column order values are distinct." NotSupportedException with message like "The enum or spatial property '{1}' on type '{0}' cannot be mapped. Use DbModelBuilderVersion 'V5_0' or later to map enum or spatial properties." InvalidOperationException with message like "Multiple potential primary key properties named '{0}' but differing only by case were found on entity type '{1}'. Configure the primary key explicitly using the HasKey fluent API or the KeyAttribute data annotation." InvalidOperationException with message like "Cannot get value for property '{0}' from entity of type '{1}' because the property has no get accessor." InvalidOperationException with message like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor." NotSupportedException with message like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor and is in the '{2}' state." InvalidOperationException with message like "Member '{0}' cannot be called for property '{1}' on entity of type '{2}' because the property is not part of the Entity Data Model." ArgumentException with message like "Cannot call the {0} method for an entity of type '{1}' on a DbSet for entities of type '{2}'. Only entities of type '{2}' or derived from type '{2}' can be added, attached, or removed." ArgumentException with message like "Cannot call the Create method for the type '{0}' on a DbSet for entities of type '{1}'. Only entities of type '{1}' or derived from type '{1}' can be created." ArgumentException with message like "The property '{0}' on type '{1}' is a collection navigation property. The Collection method should be used instead of the Reference method." ArgumentException with message like "The property '{0}' on type '{1}' is a reference navigation property. The Reference method should be used instead of the Collection method." ArgumentException with message like "The property '{0}' on type '{1}' is not a navigation property. The Reference and Collection methods can only be used with navigation properties. Use the Property or ComplexProperty method." ArgumentException with message like "The property '{0}' on type '{1}' is not a primitive or complex property. The Property method can only be used with primitive or complex properties. Use the Reference or Collection method." ArgumentException with message like "The property '{0}' on type '{1}' is not a complex property. The ComplexProperty method can only be used with complex properties. Use the Property, Reference or Collection method." ArgumentException with message like "The property '{0}' on type '{1}' is not a primitive property, complex property, collection navigation property, or reference navigation property." ArgumentException with message like ""The property '{0}' from the property path '{1}' is not a complex property on type '{2}'. Property paths must be composed of complex properties for all except the final property."" NotSupportedException with message like "Setting IsModified to false for a modified property is not supported." ArgumentException with message like ""The property path '{0}' cannot be used for navigation properties. Property paths can only be used to access primitive or complex properties."" ArgumentException with message like "The navigation property '{0}' on entity type '{1}' cannot be used for entities of type '{2}' because it refers to entities of type '{3}'." ArgumentException with message like "The generic type argument '{0}' cannot be used with the Member method when accessing the collection navigation property '{1}' on entity type '{2}'. The generic type argument '{3}' must be used instead." ArgumentException with message like "The property '{0}' on entity type '{1}' cannot be used for objects of type '{2}' because it is a property for objects of type '{3}'." ArgumentException with message like "The expression passed to method {0} must represent a property defined on the type '{1}'." InvalidOperationException with message like "{0} cannot be used for entities in the {1} state." InvalidOperationException with message like "Cannot set non-nullable property '{0}' of type '{1}' to null on object of type '{2}'." InvalidOperationException with message like "The property '{0}' in the entity of type '{1}' is null. Store values cannot be obtained for an entity with a null complex property." InvalidOperationException with message like "Cannot assign value of type '{0}' to property '{1}' of type '{2}' in property values for type '{3}'." NotSupportedException with message like "The set of property value names is read-only." ArgumentException with message like "The '{0}' property does not exist or is not mapped for the type '{1}'." ArgumentException with message like "Cannot copy values from DbPropertyValues for type '{0}' into DbPropertyValues for type '{1}'." ArgumentException with message like "Cannot copy from property values for object of type '{0}' into property values for object of type '{1}'." ArgumentException with message like "A property of a complex type must be set to an instance of the generic or non-generic DbPropertyValues class for that type." InvalidOperationException with message like "The value of the complex property '{0}' on entity of type '{1}' is null. Complex properties cannot be set to null and values cannot be set for null complex properties." InvalidOperationException with message like "The value of the nested property values property '{0}' on the values for entity of type '{1}' is null. Nested property values cannot be set to null and values cannot be set for null complex properties." InvalidOperationException with message like "Cannot set the value of the nested property '{0}' because value of the complex property '{1}' to which it belongs is null." InvalidOperationException with message like "Cannot set the original value of the nested property '{0}' because the original value of the complex property '{1}' to which it belongs is null." InvalidOperationException with message like "The model backing the '{0}' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269)." InvalidOperationException with message like "Database '{0}' cannot be created because it already exists." NotSupportedException with message like "Model compatibility cannot be checked because the DbContext instance was not created using Code First patterns. DbContext instances created from an ObjectContext or using an EDMX file cannot be checked for compatibility." NotSupportedException with message like "Model compatibility cannot be checked because the EdmMetadata type was not included in the model. Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions." NotSupportedException with message like "Model compatibility cannot be checked because the database does not contain model metadata. Model compatibility can only be checked for databases created using Code First or Code First Migrations." InvalidOperationException with message like "Failed to set database initializer of type '{0}' for DbContext type '{1}' specified in the application configuration. See inner exception for details." InvalidOperationException with message like "Configuration for DbContext type '{0}' is specified multiple times in the application configuration. Each context can only be configured once." InvalidOperationException with message like "Failed to set Database.DefaultConnectionFactory to an instance of the '{0}' type as specified in the application configuration. See inner exception for details." InvalidOperationException with message like "The type '{0}' could not be found. The type name must be an assembly-qualified name." InvalidOperationException with message like "The context cannot be used while the model is being created." InvalidOperationException with message like "The DbContext class cannot be used with models that have multiple entity sets per type (MEST)." InvalidOperationException with message like "The operation cannot be completed because the DbContext has been disposed." InvalidOperationException with message like "The provider factory returned a null connection." InvalidOperationException with message like "The connection string '{0}' in the application's configuration file does not contain the required providerName attribute."" InvalidOperationException with message like "The DbConnectionFactory instance returned a null connection." ArgumentException with message like "The number of primary key values passed must match number of primary key values defined on the entity." ArgumentException with message like "The type of one of the primary key values did not match the type defined in the entity. See inner exception for details." InvalidOperationException with message like "The entity found was of type {0} when an entity of type {1} was requested." InvalidOperationException with message like "Multiple entities were found in the Added state that match the given primary key values." InvalidOperationException with message like "The type '{0}' is mapped as a complex type. The Set method, DbSet objects, and DbEntityEntry objects can only be used with entity types, not complex types." InvalidOperationException with message like "The type '{0}' is not attributed with EdmEntityTypeAttribute but is contained in an assembly attributed with EdmSchemaAttribute. POCO entities that do not use EdmEntityTypeAttribute cannot be contained in the same assembly as non-POCO entities that use EdmEntityTypeAttribute." InvalidOperationException with message like "The entity type {0} is not part of the model for the current context." NotSupportedException with message like "Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery) is not supported. Instead populate a DbSet with data, for example by calling Load on the DbSet, and then bind to local data. For WPF bind to DbSet.Local. For WinForms bind to DbSet.Local.ToBindingList()." ArgumentException with message like "The Include path expression must refer to a navigation property defined on the type. Use dotted paths for reference navigation properties and the Select operator for collection navigation properties." InvalidOperationException with message like "No connection string named '{0}' could be found in the application config file." InvalidOperationException with message like "Cannot initialize a DbContext from an entity connection string or an EntityConnection instance together with a DbCompiledModel. If an entity connection string or EntityConnection instance is used, then the model will be created from the metadata in the connection. If a DbCompiledModel is used, then the connection supplied should be a standard database connection (for example, a SqlConnection instance) rather than an entity connection." NotSupportedException with message like "The collection navigation property '{0}' on the entity of type '{1}' cannot be set because the entity type does not define a navigation property with a set accessor." NotSupportedException with message like "Using the same DbCompiledModel to create contexts against different types of database servers is not supported. Instead, create a separate DbCompiledModel for each type of server being used." InvalidOperationException with message like "Multiple object sets per type are not supported. The object sets '{0}' and '{1}' can both contain instances of type '{2}'." InvalidOperationException with message like "The context type '{0}' must have a public constructor taking an EntityConnection." NotSupportedException with message like "The database name '{0}' is not supported because it is an MDF file name. A full connection string must be provided to attach an MDF file." DataException with message like "An exception occurred while initializing the database. See the InnerException for details." NotSupportedException with message like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing ObjectContext is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." NotSupportedException with message like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing DbCompiledModel is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." NotSupportedException with message like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using Database First or Model First is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." InvalidOperationException with message like "The context factory type '{0}' must have a public default constructor." InvalidOperationException with message like "The generic 'Set' method cannot be called with a proxy type. Either use the actual entity type or call the non-generic 'Set' method." InvalidOperationException with message like "MaxLengthAttribute must have a Length value that is greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." InvalidOperationException with message like "MinLengthAttribute must have a Length value that is zero or greater." InvalidOperationException with message like "No connection string named '{0}' could be found in the application config file." InvalidOperationException with message like "The connection can not be overridden because this context was created from an existing ObjectContext." InvalidOperationException with message like "Can not override the connection for this context with a standard DbConnection because the original connection was an EntityConnection." InvalidOperationException with message like "Can not override the connection for this context with an EntityConnection because the original connection was a standard DbConnection." The exception that is thrown when a null reference (Nothing in Visual Basic) is passed to a method that does not accept it as a valid argument. The exception that is thrown when the value of an argument is outside the allowable range of values as defined by the invoked method. The exception that is thrown when the author has yet to implement the logic at this point in the program. This can act as an exception based TODO tag. The exception that is thrown when an invoked method is not supported, or when there is an attempt to read, seek, or write to a stream that does not support the invoked functionality. AutoGenerated resource class. Usage: string s = EntityRes.GetString(EntityRes.MyIdenfitier); Allows the construction and modification of a user-specified annotation (name-value pair) on a instance. Gets or sets an optional namespace that can be used to distinguish the annotation from others with the same value. Gets or sets the name of the annotation. Gets or sets the value of the annotation. DataModelEventArgs is the base argument type for all events raised by consumers of Entity Data Model (EDM) models. Gets a value indicating the that caused the event to be raised. Gets an optional value indicating which property of the source item caused the event to be raised. Gets a value that identifies the specific error that is being raised. Gets an optional descriptive message the describes the error that is being raised. DbAliasedMetadataItem provides the base type for all Database Metadata types that can have an optional that should be used instead of the item's when referring to the item in the database. NamedDbItem is the base for all types in the Database Metadata construction and modification API with a property. The base for all all Database Metadata types that support annotation using . DbDataModelItem is the base for all types in the Database Metadata construction and modification API. Gets or sets the currently assigned annotations. Gets or sets the currently assigned name. Gets an optional alternative identifier that should be used when referring to this item in the database. When implemented in derived types, allows the construction and modification of a column in a Database Metadata table or row. Gets or sets a string indicating the database-specific type of the column. Gets or sets a value indicating whether the column is nullable. Gets or sets an optional instance that applies additional constraints to the referenced database-specific type of the column. Allows the construction and modification of a database in a Database Metadata model. Gets or sets an optional value that indicates the database model version. Gets or sets the collection of instances that specifies the schemas within the database. Allows the construction and modification of a foreign key constraint sourced by a instance. Gets or sets the to take when a delete operation is attempted. Indicates which Database Metadata concept is represented by a given item. Database Kind Schema Kind Foreign Key Constraint Kind Function Kind Function Parameter Kind Function Return or Parameter Type Kind Row Column Kind Table Kind Table Column Kind Primitive Facets Kind Specifies the action to take on a given operation. Default behavior Restrict the operation Cascade the operation Allows the construction and modification of additional constraints that can be applied to a specific use of a primitive type in a Database Metadata item. Returns true if any facet value property currently has a non-null value; otherwise returns false . Gets or sets an optional value indicating whether the referenced type should be considered to have a fixed or variable length. Gets or sets an optional value indicating whether the referenced type should be considered to have its intrinsic maximum length, rather than a specific value. Gets or sets an optional value indicating whether the referenced type should be considered to be Unicode or non-Unicode. Gets or sets an optional value indicating the current constraint on the type's maximum length. Gets or sets an optional value indicating the current constraint on the type's precision. Gets or sets an optional value indicating the current constraint on the type's scale. Gets or sets an optional value indicating the current spatial type's SRID. Gets or sets an optional value indicating the current spatial type's SRID. Gets or sets an optional value indicating whether the spatial type is to be type checked strictly. Allows the construction and modification of a database schema in a database model. Gets or sets the collection of instances that specifies the tables declared within the schema. DbSchemaMetadataItem is the base for all types that can be contained in a schema. Allows the construction and modification of a column in a table. Gets or sets a value indicating whether the column is part of the table's primary key. Gets or sets a value indicating if and how the value of the column is automatically generated. Gets or sets an optional value indicating the collation specific to this table column. Gets or sets an optional value that specifies the default value for the column. Allows the construction and modification a table in a database schema. Gets or sets the collection of instances that specifies the columns present within the table. Gets or sets the collection of instances from the collection of the table that are part of the primary key. Gets or sets the collection of instances that defines the foreign key constraints sourced from the table. Represents a specific use of a type in a Database Metadata item. Gets or sets an optional instance that applies additional constraints to a referenced primitive type. Accessing this property forces the creation of a DbPrimitiveTypeFacets value if no value has previously been set. Use to determine whether or not this property currently has a value. Gets or sets a value indicating whether the represented type is a collection type. Gets or sets an optional value indicating whether the referenced type should be considered nullable. Gets a value indicating whether the type has been configured as a row type by the addition of one or more RowColumns. Represents the mapping of an EDM association end ( ) as a collection of property mappings ( ). DbMappingMetadataItem is the base for all types in the EDM-to-Database Mapping construction and modification API that support annotation using . DbMappingModelItem is the base for all types in the EDM-to-Database Mapping construction and modification API. Gets or sets the currently assigned annotations. Gets an value representing the association end that is being mapped. Gets the collection of s that specifies how the association end key properties are mapped to the table. Gets an value representing the association set that is being mapped. Gets a value representing the table to which the entity type's properties are being mapped. Gets the collection of s that specifies the constant or null values that columns in must have for this type mapping to apply. Allows the construction and modification of a condition for a column in a database table. Gets or sets a value representing the table column which must contain for this condition to hold. Gets or sets the value that must contain for this condition to hold. Gets or sets an value representing the model that is being mapped. Gets or sets a value representing the database that is the target of the mapping. Gets or sets the collection of s that specifies how the model's entity containers are mapped to the database. Represents the mapping of an entity property to a column in a database table. Gets or sets the collection of instances that defines the mapped property, beginning from a property declared by the mapped entity type and optionally proceeding through properties of complex property result types. Gets or sets a value representing the table column to which the entity property is being mapped. Allows the construction and modification of the mapping of an EDM entity container ( ) to a database ( ). Gets or sets an value representing the entity container that is being mapped. Gets or sets the collection of s that specifies how the container's entity sets are mapped to the database. Gets the collection of s that specifies how the container's association sets are mapped to the database. Allows the construction and modification of the mapping of an EDM entity set ( ) to a database ( ). Gets or sets an value representing the entity set that is being mapped. Gets or sets the collection of s that specifies how the set's entity types are mapped to the database. Allows the construction and modification of a complete or partial mapping of an EDM entity type ( ) or type hierarchy to a specific database table ( ). Gets or sets an value representing the entity type or hierarchy that is being mapped. Gets or sets a value indicating whether this type mapping applies to and all its direct or indirect subtypes ( true ), or only to ( false ). Gets a value representing the table to which the entity type's properties are being mapped. Gets the collection of s that specifies how the type's properties are mapped to the table. Gets the collection of s that specifies the constant or null values that columns in must have for this type mapping fragment to apply. Indicates which EDM-to-Database Mapping concept is represented by a given item. Database Mapping Kind Entity Container Mapping Kind Entity Set Mapping Kind Association Set Mapping Kind Entity Type Mapping Kind Query View Mapping Kind Entity Type Mapping Fragment Kind Edm Property Mapping Kind Association End Mapping Kind Column Condition Kind Property Condition Kind Allows the construction and modification of a constraint applied to an Entity Data Model (EDM) association. Gets or sets the that represents the 'dependent' end of the constraint; properties from this association end's entity type contribute to the collection. Gets or sets the collection of instances from the of the constraint. The values of these properties are constrained against the primary key values of the remaining, 'principal' association end's entity type. Allows the construction and modification of one end of an Entity Data Model (EDM) association. Gets or sets the entity type referenced by this association end. Gets or sets the of this association end, which indicates the multiplicity of the end and whether or not it is required. Gets or sets the to take when a delete operation is attempted. Indicates the multiplicity of an and whether or not it is required. Allows the construction and modification of an association set in an Entity Data Model (EDM) ). Represents an item in an Entity Data Model (EDM) . Gets or sets the that specifies the association type for the set. Gets or sets the that specifies the entity set corresponding to the association end for this association set. Gets or sets the that specifies the entity set corresponding to the association end for this association set. The base for all all Entity Data Model (EDM) types that represent a structured type from the EDM type system. Gets or sets the that defines the source end of the association. Gets or sets the that defines the target end of the association. Gets or sets the optional constraint that indicates whether the relationship is an independent association (no constraint present) or a foreign key relationship ( specified). Collection semantics for properties. The property does not have a collection type or does not specify explicit collection semantics. The property is an unordered collection that may contain duplicates. The property is an ordered collection that may contain duplicates. Allows the construction and modification of a complex type in an Entity Data Model (EDM) . Gets or sets the optional that indicates the base complex type of the complex type. Gets or sets a value indicating whether the complex type is abstract. Gets or sets the collection of instances that describe the (scalar or complex) properties of the complex type. Concurrency mode for properties. Default concurrency mode: the property is never validated at write time Fixed concurrency mode: the property is always validated at write time Allows the construction and modification of an entity container in an Entity Data Model (EDM) . Gets all s declared within the namspace. Includes s and s. Gets or sets the collection of s that specifies the association sets within the container. Gets or sets the collection of s that specifies the entity sets within the container. Allows the construction and modification of an entity set in an Entity Data Model (EDM) . Gets or sets the that specifies the entity type for the set. Allows the construction and modification of an entity type in an Entity Data Model (EDM) . Gets or sets the optional that indicates the base entity type of the entity type. Gets or sets a value indicating whether the entity type is abstract. Gets or sets the collection of s that specifies the properties declared by the entity type. Gets or sets the collection of s that indicates which properties from the collection are part of the entity key. Gets or sets the optional collection of s that specifies the navigation properties declared by the entity type. Indicates which Entity Data Model (EDM) concept is represented by a given item. Association End Kind Association Set Kind Association Type Kind Collection Type Kind Complex Type Kind Entity Container Kind Entity Set Kind Entity Type Kind Function Group Kind Function Overload Kind Function Import Kind Function Parameter Kind Navigation Property Kind EdmProperty Type Kind Association Constraint Type Kind Ref Type Kind Row Column Kind Row Type Kind Type Reference Kind Model Kind Namespace Kind Primitive Facets Kind Primitive Type Kind Enum Type Kind Enum Type Member Kind EdmModel is the top-level container for namespaces and entity containers belonging to the same logical Entity Data Model (EDM) model. Gets or sets an optional value that indicates the entity model version. Gets or sets the containers declared within the model. Gets or sets the namespaces declared within the model. Allows the construction and modification of a namespace in an . Gets all s declared within the namspace. Includes s, s, s. Gets or sets the s declared within the namespace. Gets or sets the s declared within the namespace. Gets or sets the s declared within the namespace. Allows the construction and modification of an Entity Data Model (EDM) navigation property. Gets or sets the that specifies the association over which navigation takes place. Gets or sets the that specifies which association end is the 'destination' end of the navigation and produces the navigation property result. Specifies the action to take on a given operation. Default behavior Restrict the operation Cascade the operation Represents one of the fixed set of Entity Data Model (EDM) primitive types. The base for all all Entity Data Model (EDM) types that represent a scalar type from the EDM type system. Retrieves the EdmPrimitiveType instance with the corresponding to the specified value, if any. The name of the primitive type instance to retrieve The EdmPrimitiveType with the specified name, if successful; otherwise null . true if the given name corresponds to an EDM primitive type name; otherwise false . Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets an value that indicates which Entity Data Model (EDM) primitive type this type represents. Allows the construction and modification of additional constraints that can be applied to a specific use of a primitive type in an Entity Data Model (EDM) item. See . Returns true if any facet value property currently has a non-null value; otherwise returns false . Gets or sets an optional value indicating the current constraint on the type's maximum length. Gets or sets an optional value indicating whether the referenced type should be considered to have its intrinsic maximum length, rather than a specific value. Gets or sets an optional value indicating whether the referenced type should be considered to have a fixed or variable length. Gets or sets an optional value indicating whether the referenced type should be considered to be Unicode or non-Unicode. Gets or sets an optional value indicating the current constraint on the type's precision. Gets or sets an optional value indicating the current constraint on the type's scale. Gets or sets an optional value indicating that the current spatial type's SRID is unconstrained. Gets or sets an optional value indicating the current spatial type's SRID. Gets or sets an optional value indicating whether the spatial type is to be type checked strictly. Primitive Types as defined by the Entity Data Model (EDM). Binary Type Kind Boolean Type Kind Byte Type Kind DateTime Type Kind Decimal Type Kind Double Type Kind Guid Type Kind Single Type Kind SByte Type Kind Int16 Type Kind Int32 Type Kind Int64 Type Kind String Type Kind Time Type Kind DateTimeOffset Type Kind Geometry Type Kind Geography Type Kind Geometric point type kind Geometric linestring type kind Geometric polygon type kind Geometric multi-point type kind Geometric multi-linestring type kind Geometric multi-polygon type kind Geometric collection type kind Geographic point type kind Geographic linestring type kind Geographic polygon type kind Geographic multi-point type kind Geographic multi-linestring type kind Geographic multi-polygon type kind Geographic collection type kind Allows the construction and modification of a primitive- or complex-valued property of an Entity Data Model (EDM) entity or complex type. Gets or sets an value that indicates which collection semantics - if any - apply to the property. Gets or sets a value that indicates whether the property is used for concurrency validation. Gets or sets on optional value that indicates an initial default value for the property. Gets or sets an that specifies the result type of the property. Enumerates all s declared or inherited by an . Allows the construction and modification of a specific use of a type in an Entity Data Model (EDM) item. See for examples. Gets or sets a value indicating the collection rank of the type reference. A collection rank greater than zero indicates that the type reference represents a collection of its referenced . Gets or sets a value indicating the referenced by this type reference. Gets or sets an optional value indicating whether the referenced type should be considered nullable. Gets or sets an optional instance that applies additional constraints to a referenced primitive type. Accessing this property forces the creation of an EdmPrimitiveTypeFacets value if no value has previously been set. Use to determine whether or not this property currently has a value. Gets a value indicating whether the property of this type reference has been assigned an value with at least one facet value specified. Indicates whether this type reference represents a collection of its referenced (when is greater than zero) or not. Indicates whether the property of this type reference currently refers to an , is not a collection type, and does not have primitive facet values specified. Gets the currently referred to by this type reference, or null if the type reference is a collection type or does not refer to a complex type. Indicates whether the property of this type reference currently refers to an and is not a collection type. Gets the currently referred to by this type reference, or null if the type reference is a collection type or does not refer to a primitive type. Contains constant values that apply to the EDM model, regardless of source (for CSDL specific constants see ). Parsing code taken from System.dll's System.CodeDom.Compiler.CodeGenerator.IsValidLanguageIndependentIdentifier(string) method to avoid LinkDemand needed to call this method Constants for CSDL XML. Constants for C-S MSL XML. Constants for SSDL XML. The acceptable range for this enum is 0000 - 0999; the range 10,000-15,000 is reserved for tools. Precision out of range Scale out of range One of the required facets is missing The facet isn't allow by the property type. This facet value is constant and is specified in the schema Multiplicity value was malformed The value for the Action attribute is invalid or not allowed in the current context An error occurred processing the On<Operation> elements Ends were given for the Property element of a EntityContainer that is not a RelationshipSet The extent name used in the EntittyContainerType End does not match the name of any of the EntityContainerProperties in the containing EntityContainer An end element was not given, and cannot be inferred because too many EntityContainerEntitySet elements that are good possibilities. An end element was not given, and cannot be inferred because there is no EntityContainerEntitySets that are the correct type to be used as an EntitySet. Not a valid parameter direction for the parameter in a function Unable to infer an optional schema part, to resolve this; be more explicit Invalid facet attribute(s) specified in provider manifest Invalid role value in the relationship constraint Invalid Property in relationship constraint Type mismatch between ToProperty and FromProperty in the relationship constraint Invalid multiplicity in FromRole in the relationship constraint The number of properties in the FromProperty and ToProperty in the relationship constraint must be identical No Properties defined in either FromProperty or ToProperty in the relationship constraint Missing constraint in relationship type in ssdl Same role referred in the ToRole and FromRole of a referential constraint Invalid value for attribute ParameterTypeSemantics Invalid type used for a Relationship End Type Invalid PrimitiveTypeKind Invalid TypeConversion DestinationType Expected a integer value between 0 - 255 Invalid Type specified in function Precision must not be greater than 28 Properties that are part of entity key must be of scalar type Binary type properties which are part of entity key are currently not supported The primitive type kind does not have a preferred mapping More than one PreferredMapping for a PrimitiveTypeKind End with * multiplicity cannot have operations specified EntitySet type has no keys InvalidNumberOfParametersForAggregateFunction InvalidParameterTypeForAggregateFunction Composable functions must declare a return type. Non-composable functions must not declare a return type. Non-composable functions do not permit the aggregate; niladic; or built-in attributes. Composable functions can not include command text attribute. Functions should not declare both a store name and command text (only one or the other can be used). SystemNamespace Empty DefiningQuery text Schema, Table and DefiningQuery are all specified, and are mutually exclusive ConcurrencyMode value was malformed Concurrency can't change for any sub types of an EntitySet type. Function import return type must be either empty, a collection of entities, or a singleton scalar. Function import specifies a non-existent entity set. Function import specifies entity type return but no entity set. Function import specifies entity type that does not derive from element type of entity set. Function import specifies a binding to an entity set but does not return entities. InternalError Same Entity Set Taking part in the same role of the relationship set in two different relationship sets Entity key refers to the same property twice Function declares a ReturnType attribute and element Nullable Complex Type not supported in Edm V1 Only Complex Collections supported in Edm V1.1 No Key defined on Entity Type Invalid namespace specified in using element Need not specify system namespace in using Cannot use a reserved/system namespace as alias Invalid qualification specified for type Invalid Entity Container Name in extends attribute Invalid CollectionKind value in property CollectionKind attribute Must specify namespace or alias of the schema in which this type is defined Entity Container cannot extend itself Failed to retrieve provider manifest Mismatched Provider Manifest token values in SSDL artifacts Missing Provider Manifest token value in SSDL artifact(s) Empty CommandText element Inconsistent Provider values in SSDL artifacts Inconsistent Provider Manifest token values in SSDL artifacts Duplicated Function overloads InvalidProvider FunctionWithNonEdmTypeNotSupported ComplexTypeAsReturnTypeAndDefinedEntitySet ComplexTypeAsReturnTypeAndDefinedEntitySet unused 179, unused 180, unused 181, In model functions facet attribute is allowed only on ScalarTypes Captures several conditions where facets are placed on element where it should not exist. Return type has not been declared Invalid value in the EnumTypeOption The structural annotation cannot use codegen namespaces Function and type cannot have the same fully qualified name Cannot load different version of schema in the same ItemCollection Expected bool value End without Multiplicity specified In SSDL, if composable function returns a collection of rows (TVF), all row properties must be of scalar types. The name of NamedEdmItem must not be empty or white space only EdmTypeReference is empty Unused 199; Serializes an that conforms to the restrictions of a single CSDL schema file to an XML writer. The model to be serialized must contain a single and a single . Serialize the to the XmlWriter. The EdmModel to serialize, mut have only one and one The XmlWriter to serialize to Serialize the to the XmlWriter The DbModel to serialize The XmlWriter to serialize to Serialize the to the The DbDatabaseMetadata to serialize Provider information on the Schema element ProviderManifestToken information on the Schema element The XmlWriter to serialize to author/email author/name author/uri published rights summary title contributor/email contributor/name contributor/uri category/@label Plaintext HTML XHTML updated link/@href link/@rel link/@type link/@hreflang link/@title link/@length category/@term category/@scheme Return role name pair The context for DataModel Validation Returns true if the given two ends are similar - the relationship type that this ends belongs to is the same and the entity set refered by the ends are same and they are from the same role Return true if the Referential Constraint on the association is ready for further validation, otherwise return false. Resolves the given property names to the property in the item Also checks whether the properties form the key for the given type and whether all the properties are nullable or not Return true if the namespaceName is a Edm System Namespace Return true if the entityType is a subtype of any entity type in the dictionary keys, and return the corresponding entry EntitySet value. Otherwise return false. Return true if any of the properties in the EdmEntityType defines ConcurrencyMode. Otherwise return false. Add member name to the Hash set, raise an error if the name exists already. If the string is null, empty, or only whitespace, return false, otherwise return true Determine if a cycle exists in the type hierarchy: use two pointers to walk the chain, if one catches up with the other, we have a cycle. true if a cycle exists in the type hierarchy, false otherwise RuleSet for DataModel Validation Get the related rules given certain DataModelItem The to validate A collection of Data Model Validator Validate the and all of its properties given certain version. The root of the model to be validated True to validate the syntax, otherwise false The RuleSet for EdmModel Get based on version a double value of version The context for EdmModel Validation Visitor for EdmModel Validation Edm Model Validator validate the from the root with the context The root to validate from The validation context An implementation of IDatabaseInitializer that will recreate and optionally re-seed the database only if the database does not exist. To seed the database, create a derived class and override the Seed method. The type of the context. Executes the strategy to initialize the database for the given context. The context. A that should be overridden to actually add data to the context for seeding. The default implementation does nothing. The context to seed. An instances of this class is obtained from an object and can be used to manage the actual database backing a DbContext or connection. This includes creating, deleting, and checking for the existence of a database. Note that deletion and checking for existence of a database can be performed using just a connection (i.e. without a full context) by using the static methods of this class. Creates a Database backed by the given context. This object can be used to create a database, check for database existence, and delete a database. The context that defines the database connection and model. Gets or sets the database initialization strategy. The database initialization strategy is called when instance is initialized from a . The strategy can optionally check for database existence, create a new database, and seed the database with data. The default strategy is an instance of . The type of the context. The strategy. The database creation strategy. Internal version of SetInitializer that allows the strategy to be locked such that it cannot be replaced by another call to SetInitializer. This allows strategies set in the app.config to win over strategies set in code. The type of the context. The strategy. if set to true then the strategy is locked. Runs the the registered on this context. If "force" is set to true, then the initializer is run regardless of whether or not it has been run before. This can be useful if a database is deleted while an app is running and needs to be reinitialized. If "force" is set to false, then the initializer is only run if it has not already been run for this context, model, and connection in this app domain. This method is typically used when it is necessary to ensure that the database has been created and seeded before starting some operation where doing so lazily will cause issues, such as when the operation is part of a transaction. if set to true the initializer is run even if it has already been run. Checks whether or not the database is compatible with the the current Code First model. Model compatibility currently uses the following rules. If the context was created using either the Model First or Database First approach then the model is assumed to be compatible with the database and this method returns true. For Code First the model is considered compatible if the model is stored in the database in the Migrations history table and that model has no differences from the current model as determined by Migrations model differ. If the model is not stored in the database but an EF 4.1/4.2 model hash is found instead, then this is used to check for compatibility. If set to true then an exception will be thrown if no model metadata is found in the database. If set to false then this method will return true if metadata is not found. True if the model hash in the context and the database match; false otherwise. Creates a new database on the database server for the model defined in the backing context. Note that calling this method before the database initialization strategy has run will disable executing that strategy. Creates a new database on the database server for the model defined in the backing context, but only if a database with the same name does not already exist on the server. True if the database did not exist and was created; false otherwise. Checks whether or not the database exists on the server. True if the database exists; false otherwise. Deletes the database on the database server if it exists, otherwise does nothing. Calling this method from outside of an initializer will mark the database as having not been initialized. This means that if an attempt is made to use the database again after it has been deleted, then any initializer set will run again and, usually, will try to create the database again automatically. True if the database did exist and was deleted; false otherwise. Checks whether or not the database exists on the server. The connection to the database is created using the given database name or connection string in the same way as is described in the documentation for the class. The database name or a connection string to the database. True if the database exists; false otherwise. Deletes the database on the database server if it exists, otherwise does nothing. The connection to the database is created using the given database name or connection string in the same way as is described in the documentation for the class. The database name or a connection string to the database. True if the database did exist and was deleted; false otherwise. Checks whether or not the database exists on the server. An existing connection to the database. True if the database exists; false otherwise. Deletes the database on the database server if it exists, otherwise does nothing. An existing connection to the database. True if the database did exist and was deleted; false otherwise. Resets the DefaultConnectionFactory to its initial value. Currently, this method is only used by test code. Performs the operation defined by the given delegate using the given lazy connection, ensuring that the lazy connection is disposed after use. Information used to create a DbConnection. The operation to perform. The return value of the operation. Performs the operation defined by the given delegate against a connection. The connection is either the connection accessed from the context backing this object, or is obtained from the connection information passed to one of the static methods. The connection to use. The operation to perform. The return value of the operation. Returns an empty ObjectContext that can be used to perform delete/exists operations. The connection for which to create an ObjectContext The empty context. Creates a raw SQL query that will return elements of the given generic type. The type can be any type that has properties that match the names of the columns returned from the query, or can be a simple primitive type. The type does not have to be an entity type. The results of this query are never tracked by the context even if the type of object returned is an entity type. Use the method to return entities that are tracked by the context. The type of object returned by the query. The SQL query string. The parameters to apply to the SQL query string. A object that will execute the query when it is enumerated. Creates a raw SQL query that will return elements of the given type. The type can be any type that has properties that match the names of the columns returned from the query, or can be a simple primitive type. The type does not have to be an entity type. The results of this query are never tracked by the context even if the type of object returned is an entity type. Use the method to return entities that are tracked by the context. The type of object returned by the query. The SQL query string. The parameters to apply to the SQL query string. A object that will execute the query when it is enumerated. Executes the given DDL/DML command against the database. The command string. The parameters to apply to the command string. The result returned by the database after executing the command. Returns the connection being used by this context. This may cause the connection to be created if it does not already exist. Thrown if the context has been disposed. Returns the as a delegate that can be called with an instance of the that owns this Database object, or returns null if there is no initializer set for this context type. The initializer delegate or null. The connection factory to use when creating a from just a database name or a connection string. This is used when just a database name or connection string is given to or when the no database name or connection is given to DbContext in which case the name of the context class is passed to this factory in order to generate a DbConnection. By default, the instance to use is read from the applications .config file from the "EntityFramework DefaultConnectionFactory" entry in appSettings. If no entry is found in the config file then is used. Setting this property in code always overrides whatever value is found in the config file. Checks wether or not the DefaultConnectionFactory has been set to something other than its default value. Common code for generic and non-generic string Include. Returns a new query where the entities returned will not be cached in the or . This method works by calling the AsNoTracking method of the underlying query object. If the underlying query object does not have a AsNoTracking method, then calling this method will have no affect. The element type. The source query. A new query with NoTracking applied, or the source query if NoTracking is not supported. Returns a new query where the entities returned will not be cached in the or . This method works by calling the AsNoTracking method of the underlying query object. If the underlying query object does not have a AsNoTracking method, then calling this method will have no affect. The source query. A new query with NoTracking applied, or the source query if NoTracking is not supported. Common code for generic and non-generic AsNoTracking. Enumerates the query such that for server queries such as those of , , , and others the results of the query will be loaded into the associated , or other cache on the client. This is equivalent to calling ToList and then throwing away the list without the overhead of actually creating the list. The source query. Returns an implementation that stays in sync with the given . The element type. The collection that the binding list will stay in sync with. The binding list. DbModelBuilder is used to map CLR classes to a database schema. This code centric approach to building an Entity Data Model (EDM) model is known as 'Code First'. DbModelBuilder is typically used to configure a model by overriding . You can also use DbModelBuilder independently of DbContext to build a model and then construct a or . The recommended approach, however, is to use OnModelCreating in as the workflow is more intuitive and takes care of common tasks, such as caching the created model. Types that form your model are registered with DbModelBuilder and optional configuration can be performed by applying data annotations to your classes and/or using the fluent style DbModelBuilder API. When the Build method is called a set of conventions are run to discover the initial model. These conventions will automatically discover aspects of the model, such as primary keys, and will also process any data annotations that were specified on your classes. Finally any configuration that was performed using the DbModelBuilder API is applied. Configuration done via the DbModelBuilder API takes precedence over data annotations which in turn take precedence over the default conventions. Initializes a new instance of the class. The process of discovering the initial model will use the set of conventions included in the most recent version of the Entity Framework installed on your machine. Upgrading to newer versions of the Entity Framework may cause breaking changes in your application because new conventions may cause the initial model to be configured differently. There is an alternate constructor that allows a specific version of conventions to be specified. Initializes a new instance of the class that will use a specific set of conventions to discover the initial model. The version of conventions to be used. Excludes a type from the model. This is used to remove types from the model that were added by convention during initial model discovery. The type to be excluded. The same DbModelBuilder instance so that multiple calls can be chained. Excludes a type(s) from the model. This is used to remove types from the model that were added by convention during initial model discovery. The types to be excluded from the model. The same DbModelBuilder instance so that multiple calls can be chained. Registers an entity type as part of the model and returns an object that can be used to configure the entity. This method can be called multiple times for the same entity to perform multiple lines of configuration. The type to be registered or configured. The configuration object for the specified entity type. Registers a type as an entity in the model and returns an object that can be used to configure the entity. This method can be called multiple times for the same type to perform multiple lines of configuration. The type to be registered or configured. The configuration object for the specified entity type. Registers a type as a complex type in the model and returns an object that can be used to configure the complex type. This method can be called multiple times for the same type to perform multiple lines of configuration. The type to be registered or configured. The configuration object for the specified complex type. Creates a based on the configuration performed using this builder. The connection is used to determine the database provider being used as this affects the database layer of the generated model. Connection to use to determine provider information. The model that was built. Creates a based on the configuration performed using this builder. Provider information must be specified because this affects the database layer of the generated model. For SqlClient the invariant name is 'System.Data.SqlClient' and the manifest token is the version year (i.e. '2005', '2008' etc.) The database provider that the model will be used with. The model that was built. Provides access to the settings of this DbModelBuilder that deal with conventions. Gets the for this DbModelBuilder. The registrar allows derived entity and complex type configurations to be registered with this builder. A value from this enumeration can be provided directly to the class or can be used in the applied to a class derived from . The value used defines which version of the DbContext and DbModelBuilder conventions should be used when building a model from code--also know as "Code First". Using DbModelBuilderVersion.Latest ensures that all the latest functionality is available when upgrading to a new release of the Entity Framework. However, it may result in an application behaving differently with the new release than it did with a previous release. This can be avoided by using a specific version of the conventions, but if a version other than the latest is set then not all the latest functionality will be available. Indicates that the latest version of the and conventions should be used. Indicates that the version of the and conventions shipped with Entity Framework 4.1 through 4.3 should be used. Indicates that the version of the and conventions shipped with Entity Framework 5.0 when targeting .NET 4 should be used. Indicates that the version of the and conventions shipped with Entity Framework 5.0 when targeting .NET 4.5 should be used. This attribute can be applied to a class derived from to set which version of the DbContext and conventions should be used when building a model from code--also know as "Code First". See the enumeration for details about DbModelBuilder versions. If the attribute is missing from DbContextthen DbContext will always use the latest version of the conventions. This is equivalent to using DbModelBuilderVersion.Latest. Initializes a new instance of the class. The conventions version to use. Gets the conventions version. The conventions version. A non-generic version of which can be used when the type of entity is not known at build time. Represents a non-generic LINQ to Entities query against a DbContext. An internal interface implemented by and that allows access to the internal query without using reflection. The underlying internal set. Internal constructor prevents external classes deriving from DbQuery. Throws an exception indicating that binding directly to a store query is not supported. Instead populate a DbSet with data, for example by using the Load extension method, and then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to DbSet.Local.ToBindingList(). Never returns; always throws. Gets the enumeration of this query causing it to be executed against the store. An enumerator for the query Returns a new query where the entities returned will not be cached in the . A new query with NoTracking applied. Returns the equivalent generic object. The type of element for which the query was created. The generic set object. Returns a representation of the underlying query. The query string. Returns false. false. The IQueryable element type. The IQueryable LINQ Expression. The IQueryable provider. Gets the underlying internal query object. The internal query. The internal query object that is backing this DbQuery An internal interface implemented by and that allows access to the internal set without using reflection. The underlying internal set. Internal constructor prevents external classes deriving from DbSet. Finds an entity with the given primary key values. If an entity with the given primary key values exists in the context, then it is returned immediately without making a request to the store. Otherwise, a request is made to the store for an entity with the given primary key values and this entity, if found, is attached to the context and returned. If no entity is found in the context or the store, then null is returned. The ordering of composite key values is as defined in the EDM, which is in turn as defined in the designer, by the Code First fluent API, or by the DataMember attribute. The values of the primary key for the entity to be found. The entity found, or null. Thrown if multiple entities exist in the context with the primary key values given. Thrown if the type of entity is not part of the data model for this context. Thrown if the types of the key values do not match the types of the key values for the entity type to be found. Thrown if the context has been disposed. Attaches the given entity to the context underlying the set. That is, the entity is placed into the context in the Unchanged state, just as if it had been read from the database. The entity to attach. The entity. Attach is used to repopulate a context with an entity that is known to already exist in the database. SaveChanges will therefore not attempt to insert an attached entity into the database because it is assumed to already be there. Note that entities that are already in the context in some other state will have their state set to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. Adds the given entity to the context underlying the set in the Added state such that it will be inserted into the database when SaveChanges is called. The entity to add. The entity. Note that entities that are already in the context in some other state will have their state set to Added. Add is a no-op if the entity is already in the context in the Added state. Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges is called. Note that the entity must exist in the context in some other state before this method is called. The entity to remove. The entity. Note that if the entity exists in the context in the Added state, then this method will cause it to be detached from the context. This is because an Added entity is assumed not to exist in the database such that trying to delete it does not make sense. Creates a new instance of an entity for the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The entity instance, which may be a proxy. Creates a new instance of an entity for the type of this set or for a type derived from the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The entity instance, which may be a proxy. Returns the equivalent generic object. The type of entity for which the set was created. The generic set object. Creates a raw SQL query that will return entities in this set. By default, the entities returned are tracked by the context; this can be changed by calling AsNoTracking on the returned. Note that the entities returned are always of the type for this set and never of a derived type. If the table or tables queried may contain data for other entity types, then the SQL query must be written appropriately to ensure that only entities of the correct type are returned. The SQL query string. The parameters to apply to the SQL query string. A object that will execute the query when it is enumerated. Gets an that represents a local view of all Added, Unchanged, and Modified entities in this set. This local view will stay in sync as entities are added or removed from the context. Likewise, entities added to or removed from the local view will automatically be added to or removed from the context. This property can be used for data binding by populating the set with data, for example by using the Load extension method, and then binding to the local data through this property. For WPF bind to this property directly. For Windows Forms bind to the result of calling ToBindingList on this property The local view. The internal IQueryable that is backing this DbQuery Gets the underlying internal set. The internal set. A DbSet represents the collection of all entities in the context, or that can be queried from the database, of a given type. DbSet objects are created from a DbContext using the DbContext.Set method. Note that DbSet does not support MEST (Multiple Entity Sets per Type) meaning that there is always a one-to-one correlation between a type and a set. The type that defines the set. Represents a LINQ to Entities query against a DbContext. The type of entity to query for. Creates a new query that will be backed by the given internal query object. The backing query. Returns a new query where the entities returned will not be cached in the . A new query with NoTracking applied. Throws an exception indicating that binding directly to a store query is not supported. Instead populate a DbSet with data, for example by using the Load extension method, and then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to DbSet.Local.ToBindingList(). Never returns; always throws. Gets the enumeration of this query causing it to be executed against the store. An enumerator for the query Gets the enumeration of this query causing it to be executed against the store. An enumerator for the query Returns a representation of the underlying query. The query string. Returns a new instance of the non-generic class for this query. A non-generic version. Returns false. false. The IQueryable element type. The IQueryable LINQ Expression. The IQueryable provider. The internal query object that is backing this DbQuery The internal query object that is backing this DbQuery An IDbSet represents the collection of all entities in the context, or that can be queried from the database, of a given type. DbSet is a concrete implementation of IDbSet. The type that defines the set. Finds an entity with the given primary key values. If an entity with the given primary key values exists in the context, then it is returned immediately without making a request to the store. Otherwise, a request is made to the store for an entity with the given primary key values and this entity, if found, is attached to the context and returned. If no entity is found in the context or the store, then null is returned. The ordering of composite key values is as defined in the EDM, which is in turn as defined in the designer, by the Code First fluent API, or by the DataMember attribute. The values of the primary key for the entity to be found. The entity found, or null. Adds the given entity to the context underlying the set in the Added state such that it will be inserted into the database when SaveChanges is called. The entity to add. The entity. Note that entities that are already in the context in some other state will have their state set to Added. Add is a no-op if the entity is already in the context in the Added state. Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges is called. Note that the entity must exist in the context in some other state before this method is called. The entity to remove. The entity. Note that if the entity exists in the context in the Added state, then this method will cause it to be detached from the context. This is because an Added entity is assumed not to exist in the database such that trying to delete it does not make sense. Attaches the given entity to the context underlying the set. That is, the entity is placed into the context in the Unchanged state, just as if it had been read from the database. The entity to attach. The entity. Attach is used to repopulate a context with an entity that is known to already exist in the database. SaveChanges will therefore not attempt to insert an attached entity into the database because it is assumed to already be there. Note that entities that are already in the context in some other state will have their state set to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. Creates a new instance of an entity for the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The entity instance, which may be a proxy. Creates a new instance of an entity for the type of this set or for a type derived from the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The type of entity to create. The entity instance, which may be a proxy. Gets an that represents a local view of all Added, Unchanged, and Modified entities in this set. This local view will stay in sync as entities are added or removed from the context. Likewise, entities added to or removed from the local view will automatically be added to or removed from the context. This property can be used for data binding by populating the set with data, for example by using the Load extension method, and then binding to the local data through this property. For WPF bind to this property directly. For Windows Forms bind to the result of calling ToBindingList on this property The local view. Creates a new set that will be backed by the given . The internal set. Finds an entity with the given primary key values. If an entity with the given primary key values exists in the context, then it is returned immediately without making a request to the store. Otherwise, a request is made to the store for an entity with the given primary key values and this entity, if found, is attached to the context and returned. If no entity is found in the context or the store, then null is returned. The ordering of composite key values is as defined in the EDM, which is in turn as defined in the designer, by the Code First fluent API, or by the DataMember attribute. The values of the primary key for the entity to be found. The entity found, or null. Thrown if multiple entities exist in the context with the primary key values given. Thrown if the type of entity is not part of the data model for this context. Thrown if the types of the key values do not match the types of the key values for the entity type to be found. Thrown if the context has been disposed. Attaches the given entity to the context underlying the set. That is, the entity is placed into the context in the Unchanged state, just as if it had been read from the database. The entity to attach. The entity. Attach is used to repopulate a context with an entity that is known to already exist in the database. SaveChanges will therefore not attempt to insert an attached entity into the database because it is assumed to already be there. Note that entities that are already in the context in some other state will have their state set to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. Adds the given entity to the context underlying the set in the Added state such that it will be inserted into the database when SaveChanges is called. The entity to add. The entity. Note that entities that are already in the context in some other state will have their state set to Added. Add is a no-op if the entity is already in the context in the Added state. Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges is called. Note that the entity must exist in the context in some other state before this method is called. The entity to remove. The entity. Note that if the entity exists in the context in the Added state, then this method will cause it to be detached from the context. This is because an Added entity is assumed not to exist in the database such that trying to delete it does not make sense. Creates a new instance of an entity for the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The entity instance, which may be a proxy. Creates a new instance of an entity for the type of this set or for a type derived from the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The type of entity to create. The entity instance, which may be a proxy. Returns the equivalent non-generic object. The non-generic set object. Creates a raw SQL query that will return entities in this set. By default, the entities returned are tracked by the context; this can be changed by calling AsNoTracking on the returned. Note that the entities returned are always of the type for this set and never of a derived type. If the table or tables queried may contain data for other entity types, then the SQL query must be written appropriately to ensure that only entities of the correct type are returned. The SQL query string. The parameters to apply to the SQL query string. A object that will execute the query when it is enumerated. Gets an that represents a local view of all Added, Unchanged, and Modified entities in this set. This local view will stay in sync as entities are added or removed from the context. Likewise, entities added to or removed from the local view will automatically be added to or removed from the context. This property can be used for data binding by populating the set with data, for example by using the Load extension method, and then binding to the local data through this property. For WPF bind to this property directly. For Windows Forms bind to the result of calling ToBindingList on this property The local view. The internal IQueryable that is backing this DbQuery An implementation of IDatabaseInitializer that will always recreate and optionally re-seed the database the first time that a context is used in the app domain. To seed the database, create a derived class and override the Seed method. The type of the context. Executes the strategy to initialize the database for the given context. The context. A that should be overridden to actually add data to the context for seeding. The default implementation does nothing. The context to seed. An implementation of IDatabaseInitializer that will DELETE, recreate, and optionally re-seed the database only if the model has changed since the database was created. Whether or not the model has changed is determined by the method. To seed the database create a derived class and override the Seed method. Executes the strategy to initialize the database for the given context. The context. A that should be overridden to actually add data to the context for seeding. The default implementation does nothing. The context to seed. Returned by the ChangeTracker method of to provide access to features of the context that are related to change tracking of entities. Initializes a new instance of the class. The internal context. Gets objects for all the entities tracked by this context. The entries. Gets objects for all the entities of the given type tracked by this context. The type of the entity. The entries. Detects changes made to the properties and relationships of POCO entities. Note that some types of entity (such as change tracking proxies and entities that derive from ) report changes automatically and a call to DetectChanges is not normally needed for these types of entities. Also note that normally DetectChanges is called automatically by many of the methods of and its related classes such that it is rare that this method will need to be called explicitly. However, it may be desirable, usually for performance reasons, to turn off this automatic calling of DetectChanges using the AutoDetectChangesEnabled flag from . A non-generic version of the class. This is an abstract base class use to represent a scalar or complex property, or a navigation property of an entity. Scalar and complex properties use the derived class , reference navigation properties use the derived class , and collection navigation properties use the derived class . Creates a from information in the given . This method will create an instance of the appropriate subclass depending on the metadata contained in the InternalMemberEntry instance. The internal member entry. The new entry. Validates this property. Collection of objects. Never null. If the entity is valid the collection will be empty. Returns the equivalent generic object. The type of entity on which the member is declared. The type of the property. The equivalent generic object. Gets the name of the property. The property name. Gets or sets the current value of this property. The current value. The to which this member belongs. An entry for the entity that owns this member. Gets the backing this object. The internal member entry. Creates a from information in the given . Use this method in preference to the constructor since it may potentially create a subclass depending on the type of member represented by the InternalCollectionEntry instance. The internal collection entry. The new entry. Initializes a new instance of the class. The internal entry. Loads the collection of entities from the database. Note that entities that already exist in the context are not overwritten with values from the database. Returns the query that would be used to load this collection from the database. The returned query can be modified using LINQ to perform filtering or operations in the database, such as counting the number of entities in the collection in the database without actually loading them. A query for the collection. Returns the equivalent generic object. The type of entity on which the member is declared. The type of the collection element. The equivalent generic object. Gets the property name. The property name. Gets or sets the current value of the navigation property. The current value is the entity that the navigation property references. The current value. Gets a value indicating whether the collection of entities has been loaded from the database. true if the collection is loaded; otherwise, false. The to which this navigation property belongs. An entry for the entity that owns this navigation property. Gets the backing this object as an . The internal member entry. Instances of this class are returned from the Collection method of and allow operations such as loading to be performed on the an entity's collection navigation properties. The type of the entity to which this property belongs. The type of the element in the collection of entities. This is an abstract base class use to represent a scalar or complex property, or a navigation property of an entity. Scalar and complex properties use the derived class , reference navigation properties use the derived class , and collection navigation properties use the derived class . The type of the entity to which this property belongs. The type of the property. Creates a from information in the given . This method will create an instance of the appropriate subclass depending on the metadata contained in the InternalMemberEntry instance. The internal member entry. The new entry. Returns a new instance of the non-generic class for the property represented by this object. A non-generic version. Validates this property. Collection of objects. Never null. If the entity is valid the collection will be empty. Gets or sets the current value of this property. The current value. Gets the underlying . The internal member entry. The to which this member belongs. An entry for the entity that owns this member. Creates a from information in the given . Use this method in preference to the constructor since it may potentially create a subclass depending on the type of member represented by the InternalCollectionEntry instance. The internal collection entry. The new entry. Initializes a new instance of the class. The internal entry. Loads the collection of entities from the database. Note that entities that already exist in the context are not overwritten with values from the database. Returns the query that would be used to load this collection from the database. The returned query can be modified using LINQ to perform filtering or operations in the database, such as counting the number of entities in the collection in the database without actually loading them. A query for the collection. Returns a new instance of the non-generic class for the navigation property represented by this object. A non-generic version. Gets the property name. The property name. Gets or sets the current value of the navigation property. The current value is the entity that the navigation property references. The current value. Gets a value indicating whether the collection of entities has been loaded from the database. true if the collection is loaded; otherwise, false. Gets the underlying as an . The internal member entry. The to which this navigation property belongs. An entry for the entity that owns this navigation property. An immutable representation of an Entity Data Model (EDM) model that can be used to create an or can be passed to the constructor of a . For increased performance, instances of this type should be cached and re-used to construct contexts. For mocking. Creates a model for the given EDM metadata model. The EDM metadata model. Creates an instance of ObjectContext or class derived from ObjectContext. Note that an instance of DbContext can be created instead by using the appropriate DbContext constructor. If a derived ObjectContext is used, then it must have a public constructor with a single EntityConnection parameter. The connection passed is used by the ObjectContext created, but is not owned by the context. The caller must dispose of the connection once the context has been disposed. The type of context to create. An existing connection to a database for use by the context. Gets a cached delegate (or creates a new one) used to call the constructor for the given derived ObjectContext type. A snapshot of the that was used to create this compiled model. The provider info (provider name and manifest token) that was used to create this model. A non-generic version of the class. A non-generic version of the class. Creates a from information in the given . Use this method in preference to the constructor since it may potentially create a subclass depending on the type of member represented by the InternalCollectionEntry instance. The internal property entry. The new entry. Initializes a new instance of the class. The internal entry. Returns the equivalent generic object. The type of entity on which the member is declared. The type of the property. The equivalent generic object. Gets the property name. The property name. Gets or sets the original value of this property. The original value. Gets or sets the current value of this property. The current value. Gets or sets a value indicating whether the value of this property has been modified since it was loaded from the database. true if this instance is modified; otherwise, false. The to which this property belongs. An entry for the entity that owns this property. The of the property for which this is a nested property. This method will only return a non-null entry for properties of complex objects; it will return null for properties of the entity itself. An entry for the parent complex property, or null if this is an entity property. Gets the backing this object. The internal member entry. Creates a from information in the given . Use this method in preference to the constructor since it may potentially create a subclass depending on the type of member represented by the InternalCollectionEntry instance. The internal property entry. The new entry. Initializes a new instance of the class. The internal entry. Gets an object that represents a nested property of this property. This method can be used for both scalar or complex properties. The name of the nested property. An object representing the nested property. Gets an object that represents a nested complex property of this property. The name of the nested property. An object representing the nested property. Returns the equivalent generic object. The type of entity on which the member is declared. The type of the complex property. The equivalent generic object. Instances of this class are returned from the ComplexProperty method of and allow access to the state of a complex property. The type of the entity to which this property belongs. The type of the property. Instances of this class are returned from the Property method of and allow access to the state of the scalar or complex property. The type of the entity to which this property belongs. The type of the property. Creates a from information in the given . Use this method in preference to the constructor since it may potentially create a subclass depending on the type of member represented by the InternalCollectionEntry instance. The internal property entry. The new entry. Initializes a new instance of the class. The internal entry. Returns a new instance of the non-generic class for the property represented by this object. A non-generic version. Gets the property name. The property name. Gets or sets the original value of this property. The original value. Gets or sets the current value of this property. The current value. Gets or sets a value indicating whether the value of this property has been modified since it was loaded from the database. true if this instance is modified; otherwise, false. The to which this property belongs. An entry for the entity that owns this property. The of the property for which this is a nested property. This method will only return a non-null entry for properties of complex objects; it will return null for properties of the entity itself. An entry for the parent complex property, or null if this is an entity property. Gets the underlying as an . The internal member entry. Creates a from information in the given . Use this method in preference to the constructor since it may potentially create a subclass depending on the type of member represented by the InternalCollectionEntry instance. The internal property entry. The new entry. Initializes a new instance of the class. The internal entry. Returns a new instance of the non-generic class for the property represented by this object. A non-generic version. Gets an object that represents a nested property of this property. This method can be used for both scalar or complex properties. The name of the nested property. An object representing the nested property. Gets an object that represents a nested property of this property. This method can be used for both scalar or complex properties. The type of the nested property. The name of the nested property. An object representing the nested property. Gets an object that represents a nested property of this property. This method can be used for both scalar or complex properties. The type of the nested property. An expression representing the nested property. An object representing the nested property. Gets an object that represents a nested complex property of this property. The name of the nested property. An object representing the nested property. Gets an object that represents a nested complex property of this property. The type of the nested property. The name of the nested property. An object representing the nested property. Gets an object that represents a nested complex property of this property. The type of the nested property. An expression representing the nested property. An object representing the nested property. Describes the origin of the database connection string associated with a . The connection string was created by convention. The connection string was read from external configuration. The connection string was explicitly specified at runtime. The connection string was overriden by connection information supplied to DbContextInfo. Returned by the Configuration method of to provide access to configuration options for the context. Initializes a new instance of the class. The internal context. Gets or sets a value indicating whether lazy loading of relationships exposed as navigation properties is enabled. Lazy loading is enabled by default. true if lazy loading is enabled; otherwise, false. Gets or sets a value indicating whether or not the framework will create instances of dynamically generated proxy classes whenever it creates an instance of an entity type. Note that even if proxy creation is enabled with this flag, proxy instances will only be created for entity types that meet the requirements for being proxied. Proxy creation is enabled by default. true if proxy creation is enabled; otherwise, false. Gets or sets a value indicating whether tracked entities should be validated automatically when is invoked. The default value is true. Provides runtime information about a given type. Creates a new instance representing a given type. The type deriving from . Creates a new instance representing a given targeting a specific database. The type deriving from . Connection information for the database to be used. Creates a new instance representing a given type. An external list of connection strings can be supplied and will be used during connection string resolution in place of any connection strings specified in external configuration files. It is preferable to use the constructor that accepts the entire config document instead of using this constructor. Providing the entire config document allows DefaultConnectionFactroy entries in the config to be found in addition to explicitly specified connection strings. The type deriving from . A collection of connection strings. Creates a new instance representing a given type. An external config object (e.g. app.config or web.config) can be supplied and will be used during connection string resolution. This includes looking for connection strings and DefaultConnectionFactory entries. The type deriving from . An object representing the config file. Creates a new instance representing a given , targeting a specific database. An external config object (e.g. app.config or web.config) can be supplied and will be used during connection string resolution. This includes looking for connection strings and DefaultConnectionFactory entries. The type deriving from . An object representing the config file. Connection information for the database to be used. Creates a new instance representing a given type. A can be supplied in order to override the default determined provider used when constructing the underlying EDM model. The type deriving from . A specifying the underlying ADO.NET provider to target. Creates a new instance representing a given type. An external config object (e.g. app.config or web.config) can be supplied and will be used during connection string resolution. This includes looking for connection strings and DefaultConnectionFactory entries. A can be supplied in order to override the default determined provider used when constructing the underlying EDM model. This can be useful to prevent EF from connecting to discover a manifest token. The type deriving from . An object representing the config file. A specifying the underlying ADO.NET provider to target. Called internally when a context info is needed for an existing context, which may not be constructable. The context instance to get info from. If instances of the underlying type can be created, returns a new instance; otherwise returns null. A instance. The concrete type. Whether or not instances of the underlying type can be created. The connection string used by the underlying type. The connection string name used by the underlying type. The ADO.NET provider name of the connection used by the underlying type. The origin of the connection string used by the underlying type. An action to be run on the DbModelBuilder after OnModelCreating has been run on the context. A non-generic version of the class. Initializes a new instance of the class. The internal entry. Queries the database for copies of the values of the tracked entity as they currently exist in the database. Note that changing the values in the returned dictionary will not update the values in the database. If the entity is not found in the database then null is returned. The store values. Reloads the entity from the database overwriting any property values with values from the database. The entity will be in the Unchanged state after calling this method. Gets an object that represents the reference (i.e. non-collection) navigation property from this entity to another entity. The name of the navigation property. An object representing the navigation property. Gets an object that represents the collection navigation property from this entity to a collection of related entities. The name of the navigation property. An object representing the navigation property. Gets an object that represents a scalar or complex property of this entity. The name of the property. An object representing the property. Gets an object that represents a complex property of this entity. The name of the complex property. An object representing the complex property. Gets an object that represents a member of the entity. The runtime type of the returned object will vary depending on what kind of member is asked for. The currently supported member types and their return types are: Reference navigation property: . Collection navigation property: . Primitive/scalar property: . Complex property: . The name of the member. An object representing the member. Returns a new instance of the generic class for the given generic type for the tracked entity represented by this object. Note that the type of the tracked entity must be compatible with the generic type or an exception will be thrown. The type of the entity. A generic version. Validates this instance and returns validation result. Entity validation result. Possibly null if method is overridden. Determines whether the specified is equal to this instance. Two instances are considered equal if they are both entries for the same entity on the same . The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. Two instances are considered equal if they are both entries for the same entity on the same . The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the entity. The entity. Gets or sets the state of the entity. The state. Gets the current property values for the tracked entity represented by this object. The current values. Gets the original property values for the tracked entity represented by this object. The original values are usually the entity's property values as they were when last queried from the database. The original values. Gets InternalEntityEntry object for this DbEntityEntry instance. Instances of this class provide access to information about and control of entities that are being tracked by the . Use the Entity or Entities methods of the context to obtain objects of this type. The type of the entity. Initializes a new instance of the class. The internal entry. Queries the database for copies of the values of the tracked entity as they currently exist in the database. Note that changing the values in the returned dictionary will not update the values in the database. If the entity is not found in the database then null is returned. The store values. Reloads the entity from the database overwriting any property values with values from the database. The entity will be in the Unchanged state after calling this method. Gets an object that represents the reference (i.e. non-collection) navigation property from this entity to another entity. The name of the navigation property. An object representing the navigation property. Gets an object that represents the reference (i.e. non-collection) navigation property from this entity to another entity. The type of the property. The name of the navigation property. An object representing the navigation property. Gets an object that represents the reference (i.e. non-collection) navigation property from this entity to another entity. The type of the property. An expression representing the navigation property. An object representing the navigation property. Gets an object that represents the collection navigation property from this entity to a collection of related entities. The name of the navigation property. An object representing the navigation property. Gets an object that represents the collection navigation property from this entity to a collection of related entities. The type of elements in the collection. The name of the navigation property. An object representing the navigation property. Gets an object that represents the collection navigation property from this entity to a collection of related entities. The type of elements in the collection. An expression representing the navigation property. An object representing the navigation property. Gets an object that represents a scalar or complex property of this entity. The name of the property. An object representing the property. Gets an object that represents a scalar or complex property of this entity. The type of the property. The name of the property. An object representing the property. Gets an object that represents a scalar or complex property of this entity. The type of the property. An expression representing the property. An object representing the property. Gets an object that represents a complex property of this entity. The name of the complex property. An object representing the complex property. Gets an object that represents a complex property of this entity. The type of the complex property. The name of the complex property. An object representing the complex property. Gets an object that represents a complex property of this entity. The type of the complex property. An expression representing the complex property. An object representing the complex property. Gets an object that represents a member of the entity. The runtime type of the returned object will vary depending on what kind of member is asked for. The currently supported member types and their return types are: Reference navigation property: . Collection navigation property: . Primitive/scalar property: . Complex property: . The name of the member. An object representing the member. Gets an object that represents a member of the entity. The runtime type of the returned object will vary depending on what kind of member is asked for. The currently supported member types and their return types are: Reference navigation property: . Collection navigation property: . Primitive/scalar property: . Complex property: . The type of the member. The name of the member. An object representing the member. Returns a new instance of the non-generic class for the tracked entity represented by this object. A non-generic version. Validates this instance and returns validation result. Entity validation result. Possibly null if method is overridden. Determines whether the specified is equal to this instance. Two instances are considered equal if they are both entries for the same entity on the same . The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. Two instances are considered equal if they are both entries for the same entity on the same . The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the entity. The entity. Gets or sets the state of the entity. The state. Gets the current property values for the tracked entity represented by this object. The current values. Gets the original property values for the tracked entity represented by this object. The original values are usually the entity's property values as they were when last queried from the database. The original values. Represents an Entity Data Model (EDM) created by the . The Compile method can be used to go from this EDM representation to a which is a compiled snapshot of the model suitable for caching and creation of or instances. Initializes a new instance of the class. Initializes a new instance of the class. Creates a for this mode which is a compiled snapshot suitable for caching and creation of instances. The compiled model. A snapshot of the that was used to create this compiled model. A collection of all the properties for an underlying entity or complex object. An instance of this class can be converted to an instance of the generic class using the Cast method. Complex properties in the underlying entity or complex object are represented in the property values as nested instances of this class. Initializes a new instance of the class. The internal dictionary. Creates an object of the underlying type for this dictionary and hydrates it with property values from this dictionary. The properties of this dictionary copied into a new object. Sets the values of this dictionary by reading values out of the given object. The given object can be of any type. Any property on the object with a name that matches a property name in the dictionary and can be read will be read. Other properties will be ignored. This allows, for example, copying of properties from simple Data Transfer Objects (DTOs). The object to read values from. Creates a new dictionary containing copies of all the properties in this dictionary. Changes made to the new dictionary will not be reflected in this dictionary and vice versa. A clone of this dictionary. Sets the values of this dictionary by reading values from another dictionary. The other dictionary must be based on the same type as this dictionary, or a type derived from the type for this dictionary. The dictionary to read values from. Gets the value of the property just like using the indexed property getter but typed to the type of the generic parameter. This is useful especially with nested dictionaries to avoid writing expressions with lots of casts. The type of the property. Name of the property. The value of the property. Gets the set of names of all properties in this dictionary as a read-only set. The property names. Gets or sets the value of the property with the specified property name. The value may be a nested instance of this class. The property name. The value of the property. Gets the internal dictionary. The internal dictionary. A non-generic version of the class. Creates a from information in the given . Use this method in preference to the constructor since it may potentially create a subclass depending on the type of member represented by the InternalCollectionEntry instance. The internal reference entry. The new entry. Initializes a new instance of the class. The internal entry. Loads the entity from the database. Note that if the entity already exists in the context, then it will not overwritten with values from the database. Returns the query that would be used to load this entity from the database. The returned query can be modified using LINQ to perform filtering or operations in the database. A query for the entity. Returns the equivalent generic object. The type of entity on which the member is declared. The type of the property. The equivalent generic object. Gets the property name. The property name. Gets or sets the current value of the navigation property. The current value is the entity that the navigation property references. The current value. Gets a value indicating whether the entity has been loaded from the database. true if the entity is loaded; otherwise, false. The to which this navigation property belongs. An entry for the entity that owns this navigation property. Gets the backing this object as an . The internal member entry. Instances of this class are returned from the Reference method of and allow operations such as loading to be performed on the an entity's reference navigation properties. The type of the entity to which this property belongs. The type of the property. Creates a from information in the given . Use this method in preference to the constructor since it may potentially create a subclass depending on the type of member represented by the InternalCollectionEntry instance. The internal reference entry. The new entry. Initializes a new instance of the class. The internal entry. Loads the entity from the database. Note that if the entity already exists in the context, then it will not overwritten with values from the database. Returns the query that would be used to load this entity from the database. The returned query can be modified using LINQ to perform filtering or operations in the database. A query for the entity. Returns a new instance of the non-generic class for the navigation property represented by this object. A non-generic version. Gets the property name. The property name. Gets or sets the current value of the navigation property. The current value is the entity that the navigation property references. The current value. Gets a value indicating whether the entity has been loaded from the database. true if the entity is loaded; otherwise, false. Gets the underlying as an . The internal member entry. The to which this navigation property belongs. An entry for the entity that owns this navigation property. Represents a SQL query for entities that is created from a and is executed using the connection from that context. Instances of this class are obtained from the instance for the entity type. The query is not executed when this object is created; it is executed each time it is enumerated, for example by using foreach. SQL queries for non-entities are created using the . See for a generic version of this class. Initializes a new instance of the class. The internal query. Executes the query and returns an enumerator for the elements. An object that can be used to iterate through the elements. Returns a new query where the results of the query will not be tracked by the associated . A new query with no-tracking applied. Returns a that contains the SQL string that was set when the query was created. The parameters are not included. A that represents this instance. Throws an exception indicating that binding directly to a store query is not supported. Never returns; always throws. Gets the internal query. The internal query. Returns false. false. Represents a SQL query for entities that is created from a and is executed using the connection from that context. Instances of this class are obtained from the instance for the entity type. The query is not executed when this object is created; it is executed each time it is enumerated, for example by using foreach. SQL queries for non-entities are created using the . See for a non-generic version of this class. Executes the query and returns an enumerator for the elements. An object that can be used to iterate through the elements. Executes the query and returns an enumerator for the elements. An object that can be used to iterate through the elements. Returns a new query where the results of the query will not be tracked by the associated . A new query with no-tracking applied. Returns a that contains the SQL string that was set when the query was created. The parameters are not included. A that represents this instance. Throws an exception indicating that binding directly to a store query is not supported. Never returns; always throws. Gets the internal query. The internal query. Returns false. false. Exception thrown by when it was expected that SaveChanges for an entity would result in a database update but in fact no rows in the database were affected. This usually indicates that the database has been concurrently updated such that a concurrency token that was expected to match did not actually match. Note that state entries referenced by this exception are not serialized due to security and accesses to the state entries after serialization will return null. Initializes a new instance of the class. The internal context. The inner exception. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Subscribes the SerializeObjectState event. Gets objects that represents the entities that could not be saved to the database. The entries representing the entities that could not be saved. Holds exception state that will be serialized when the exception is serialized. Completes the deserialization. The deserialized object. Gets or sets a value indicating whether the exception involved independent associations. Initializes a new instance of the class. The context. The inner exception. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Represents an entity used to store metadata about an EDM in the database. Attempts to get the model hash calculated by Code First for the given context. This method will return null if the context is not being used in Code First mode. The context. The hash string. Gets or sets the ID of the metadata entity, which is currently always 1. The id. Gets or sets the model hash which is used to check whether the model has changed since the database was created from it. The model hash. Contains methods used to access the Entity Data Model created by Code First in the EDMX form. These methods are typically used for debugging when there is a need to look at the model that Code First creates internally. Uses Code First with the given context and writes the resulting Entity Data Model to the given writer in EDMX form. This method can only be used with context instances that use Code First and create the model internally. The method cannot be used for contexts created using Database First or Model First, for contexts created using a pre-existing , or for contexts created using a pre-existing . The context. The writer. Writes the Entity Data Model represented by the given to the given writer in EDMX form. An object representing the EDM. The writer. A factory for creating derived instances. Implement this interface to enable design-time services for context types that do not have a public default constructor. At design-time, derived instances can be created in order to enable specific design-time experiences such as model rendering, DDL generation etc. To enable design-time instantiation for derived types that do not have a public, default constructor, implement this interface. Design-time services will auto-discover implementations of this interface that are in the same assembly as the derived type. Creates a new instance of a derived type. An instance of TContext This convention causes DbModelBuilder to include metadata about the model when it builds the model. When creates a model by convention it will add this convention to the list of those used by the DbModelBuilder. This will then result in model metadata being written to the database if the DbContext is used to create the database. This can then be used as a quick check to see if the model has changed since the last time it was used against the database. This convention can be removed from the conventions by overriding the OnModelCreating method on a derived DbContext class. Adds metadata to the given model configuration. The model configuration. This convention uses the name of the derived class as the container for the conceptual model built by Code First. Initializes a new instance of the class. The model container name. Applies the convention to the given model. The model. This convention uses the namespace of the derived class as the namespace of the conceptual model built by Code First. Initializes a new instance of the class. The model namespace. Applies the convention to the given model. The model. Instances of this class are used internally to create constant expressions for that are inserted into the expression tree to replace references to and . The type of the element. Private constructor called by the Create factory method. The query. Factory method called by CreateDelegate to create an instance of this class. The query, which must be a generic object of the expected type. A new instance. The public property expected in the LINQ expression tree. The query. Instances of this class are used to create DbConnection objects for SQL Server Compact Edition based on a given database name or connection string. It is necessary to provide the provider invariant name of the SQL Server Compact Edition to use when creating an instance of this class. This is because different versions of SQL Server Compact Editions use different invariant names. An instance of this class can be set on the class to cause all DbContexts created with no connection information or just a database name or connection string to use SQL Server Compact Edition by default. This class is immutable since multiple threads may access instances simultaneously when creating connections. Creates a new connection factory with empty (default) DatabaseDirectory and BaseConnectionString properties. The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. Creates a new connection factory with the given DatabaseDirectory and BaseConnectionString properties. The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. The path to prepend to the database name that will form the file name used by SQL Server Compact Edition when it creates or reads the database file. An empty string means that SQL Server Compact Edition will use its default for the database file location. The connection string to use for options to the database other than the 'Data Source'. The Data Source will be prepended to this string based on the database name when CreateConnection is called. Creates a connection for SQL Server Compact Edition based on the given database name or connection string. If the given string contains an '=' character then it is treated as a full connection string, otherwise it is treated as a database name only. The database name or connection string. An initialized DbConnection. The path to prepend to the database name that will form the file name used by SQL Server Compact Edition when it creates or reads the database file. The default value is "|DataDirectory|", which means the file will be placed in the designated data directory. The connection string to use for options to the database other than the 'Data Source'. The Data Source will be prepended to this string based on the database name when CreateConnection is called. The default is the empty string, which means no other options will be used. The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. Instances of this class are used to create DbConnection objects for SQL Server based on a given database name or connection string. By default, the connection is made to '.\SQLEXPRESS'. This can be changed by changing the base connection string when constructing a factory instance. An instance of this class can be set on the class to cause all DbContexts created with no connection information or just a database name or connection string to use SQL Server by default. This class is immutable since multiple threads may access instances simultaneously when creating connections. Creates a new connection factory with a default BaseConnectionString property of 'Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True'. Creates a new connection factory with the given BaseConnectionString property. The connection string to use for options to the database other than the 'Initial Catalog'. The 'Initial Catalog' will be prepended to this string based on the database name when CreateConnection is called. Creates a connection for SQL Server based on the given database name or connection string. If the given string contains an '=' character then it is treated as a full connection string, otherwise it is treated as a database name only. The database name or connection string. An initialized DbConnection. Remove hard dependency on DbProviderFactories. The connection string to use for options to the database other than the 'Initial Catalog'. The 'Initial Catalog' will be prepended to this string based on the database name when CreateConnection is called. The default is 'Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True'. This attribute can be applied to either an entire derived class or to individual or properties on that class. When applied any discovered or properties will still be included in the model but will not be automatically initialized. Thrown when a context is generated from the templates in Database First or Model First mode and is then used in Code First mode. Code generated using the T4 templates provided for Database First and Model First use may not work correctly if used in Code First mode. To use these classes with Code First please add any additional configuration using attributes or the DbModelBuilder API and then remove the code that throws this exception. Initializes a new instance of the class. Initializes a new instance of the class. The object that holds the serialized object data. The contextual information about the source or destination. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Implements ICachedMetadataWorkspace for a Code First model. Represents an object that holds a cached copy of a MetadataWorkspace and optionally the assemblies containing entity types to use with that workspace. Gets the MetadataWorkspace, potentially lazily creating it if it does not already exist. If the workspace is not compatible with the provider manifest obtained from the given connection then an exception is thrown. The connection to use to create or check SSDL provider info. The workspace. The list of assemblies that contain entity types for this workspace, which may be empty, but will never be null. The default container name for code first is the container name that is set from the DbModelBuilder The provider info used to construct the workspace. Builds and stores the workspace based on the given code first configuration. The code first EDM model. Gets the . If the workspace is not compatible with the provider manifest obtained from the given connection then an exception is thrown. The connection to use to create or check SSDL provider info. The workspace. The default container name for code first is the container name that is set from the DbModelBuilder The list of assemblies that contain entity types for this workspace, which may be empty, but will never be null. The provider info used to construct the workspace. The methods here are called from multiple places with an ObjectContext that may have been created in a variety of ways and ensure that the same code is run regardless of how the context was created. Used a delegate to do the actual creation once an ObjectContext has been obtained. This is factored in this way so that we do the same thing regardless of how we get to having an ObjectContext. Note however that a context obtained from only a connection will have no model and so will result in an empty database. Used a delegate to do the actual existence check once an ObjectContext has been obtained. This is factored in this way so that we do the same thing regardless of how we get to having an ObjectContext. Used a delegate to do the actual check/delete once an ObjectContext has been obtained. This is factored in this way so that we do the same thing regardless of how we get to having an ObjectContext. Helper class that extends Tuple to give the Item1 and Item2 properties more meaningful names. Creates a new pair of the given set of entity types and DbSet initializer delegate. The entity types part of the pair. The DbSet properties initializer part of the pair. Static helper methods only. Checks whether the given value is null and throws ArgumentNullException if it is. This method should only be used in places where Code Contracts are compiled out in the release build but we still need public surface null-checking, such as where a public abstract class is implemented by an internal concrete class. Checks whether the given string is null, empty, or just whitespace, and throws appropriately if the check fails. This method should only be used in places where Code Contracts are compiled out in the release build but we still need public surface checking, such as where a public abstract class is implemented by an internal concrete class. Given two key values that may or may not be byte arrays, this method determines whether or not they are equal. For non-binary key values, this is equivalent to Object.Equals. For binary keys, it is by comparison of every byte in the arrays. Provides a standard helper method for quoting identifiers Identifier to be quoted. Does not validate that this identifier is valid. Quoted string Checks the given string which might be a database name or a connection string and determines whether it should be treated as a name or connection string. Currently, the test is simply whether or not the string contains an '=' character--if it does, then it should be treated as a connection string. The name or connection string. true if the string should be treated as a connection string; false if it should be treated as a name. Determines whether the given string should be treated as a database name directly (it contains no '='), is in the form name=foo, or is some other connection string. If it is a direct name or has name=, then the name is extracted and the method returns true. The name or connection string. The name. True if a name is found; false otherwise. Determines whether the given string is a full EF connection string with provider, provider connection string, and metadata parts, or is is instead some other form of connection string. The name or connection string. true if the given string is an EF connection string; otherwise, false. Parses a property selector expression used for the expression-based versions of the Property, Collection, Reference, etc methods on and classes. The type of the entity. The type of the property. The property. Name of the method. Name of the param. The property name. Called recursively to parse an expression tree representing a property path such as can be passed to Include or the Reference/Collection/Property methods of . This involves parsing simple property accesses like o => o.Products as well as calls to Select like o => o.Products.Select(p => p.OrderLines). The expression to parse. The expression parsed into an include path, or null if the expression did not match. True if matching succeeded; false if the expression could not be parsed. Gets a cached dictionary mapping property names to property types for all the properties in the given type. Gets a dictionary of compiled property setter delegates for the underlying types. The dictionary is cached for the type in the app domain. Used by the property setter delegates to throw for attempts to set null onto non-nullable properties or otherwise go ahead and set the property. Gets a dictionary of compiled property getter delegates for the underlying types. The dictionary is cached for the type in the app domain. Creates a new with the NoTracking merge option applied. The query object passed in is not changed. The query. A new query with NoTracking applied. Converts to Name of the property being validated with ValidationAttributes. Null for type-level validation. ValidationResults instances to be converted to instances. An created based on the . class contains a property with names of properties the error applies to. On the other hand each applies at most to a single property. As a result for each name in ValidationResult.MemberNames one will be created (with some exceptions for special cases like null or empty .MemberNames or null names in the .MemberNames). Calculates a "path" to a property. For primitive properties on an entity type it is just the name of the property. Otherwise it is a dot separated list of names of the property and all its ancestor properties starting from the entity. Property for which to calculate the path. Dot separated path to the property. Gets names of the property and its ancestor properties as enumerable walking "bottom-up". Property for which to get the segments. Names of the property and its ancestor properties. Gets an type for the given element type. Type of the element. The collection type. Creates a database name given a type derived from DbContext. This handles nested and generic classes. No attempt is made to ensure that the name is not too long since this is provider specific. If a too long name is generated then the provider will throw and the user must correct by specifying their own name in the DbContext constructor. Type of the context. The database name to use. A local (in-memory) view of the entities in a DbSet. This view contains Added entities and does not contain Deleted entities. The view extends from and hooks up events between the collection and the state manager to keep the view in sync. The type of the entity. Initializes a new instance of the class for entities of the given generic type in the given internal context. The internal context. Called by the base class when the collection changes. This method looks at the change made to the collection and reflects those changes in the state manager. The instance containing the event data. Handles events from the state manager for entities entering, leaving, or being marked as deleted. The local view is kept in sync with these changes. The sender. The instance containing the event data. Clears the items by calling remove on each item such that we get Remove events that can be tracked back to the state manager, rather than a single Reset event that we cannot deal with. Adds a contains check to the base implementation of InsertItem since we can't support duplicate entities in the set. The index at which to insert. The item to insert. Returns a cached binding list implementation backed by this ObservableCollection. The binding list. Service used to search for instance properties on a DbContext class that can be assigned a DbSet instance. Also, if the the property has a public setter, then a delegate is compiled to set the property to a new instance of DbSet. All of this information is cached per app domain. Creates a set discovery service for the given derived context. Processes the given context type to determine the DbSet or IDbSet properties and collect root entity types from those properties. Also, delegates are created to initialize any of these properties that have public setters. If the type has been processed previously in the app domain, then all this information is returned from a cache. A dictionary of potential entity type to the list of the names of the properties that used the type. Calls the public setter on any property found to initialize it to a new instance of DbSet. Registers the entities and their entity set name hints with the given . The model builder. Returns false if SuppressDbSetInitializationAttribute is found on the property or the class, otherwise returns true. Determines whether or not an instance of DbSet/ObjectSet can be assigned to a property of the given type. The type to check. The entity type of the DbSet/ObjectSet that can be assigned, or null if no set type can be assigned. A EagerInternalConnection object wraps an already existing DbConnection object. InternalConnection objects manage DbConnections. Two concrete base classes of this abstract interface exist: and . IInternalConnection objects manage DbConnections. Two concrete implementations of this interface exist--LazyInternalConnection and EagerInternalConnection. Creates an from metadata in the connection. This method must only be called if ConnectionHasModel returns true. The newly created context. Returns the underlying DbConnection. Returns a key consisting of the connection type and connection string. If this is an EntityConnection then the metadata path is included in the key returned. Gets a value indicating whether the connection is an EF connection which therefore contains metadata specifying the model, or instead is a store connection, in which case it contains no model info. true if the connection contains model info; otherwise, false. Returns the origin of the underlying connection string. Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries and connection strins. Gets or sets the provider to be used when creating the underlying connection. Gets the name of the underlying connection string. Gets the original connection string. Creates an from metadata in the connection. This method must only be called if ConnectionHasModel returns true. The newly created context. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Called after the connection is initialized for the first time. Adds a tracking cookie to the connection string for SqlConnections. Returns the possibly modified store connection string. Returns the underlying DbConnection. Returns a key consisting of the connection type and connection string. If this is an EntityConnection then the metadata path is included in the key returned. Gets a value indicating whether the connection is an EF connection which therefore contains metadata specifying the model, or instead is a store connection, in which case it contains no model info. true if the connection contains model info; otherwise, false. Returns the origin of the underlying connection string. Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries and connection strins. Gets or sets the provider to be used when creating the underlying connection. Gets the name of the underlying connection string. Gets the original connection string. Gets or sets the underlying object. No initialization is done when the connection is obtained, and it can also be set to null. The underlying connection. Creates a new EagerInternalConnection that wraps an existing DbConnection. An existing connection. If set to true then the underlying connection should be disposed when this object is disposed. Dispose the existing connection is the original caller has specified that it should be disposed by the framework. Returns the origin of the underlying connection string. An is an where the instance that it wraps is set immediately at construction time rather than being created lazily. In this case the internal context may or may not own the instance but will only dispose it if it does own it. An underlies every instance of and wraps an instance. The also acts to expose necessary information to other parts of the design in a controlled manner without adding a lot of internal methods and properties to the class itself. Two concrete classes derive from this abstract class - and . Initializes the object with its owner. The owner . Returns the underlying without causing the underlying database to be created or the database initialization strategy to be executed. This is used to get a context that can then be used for database creation/initialization. Returns the underlying without causing the underlying database to be created or the database initialization strategy to be executed. This is used to get a context that can then be used for database creation/initialization. Creates a new temporary based on the same metadata and connection as the real and sets it as the context to use DisposeTempObjectContext is called. This allows this internal context and its DbContext to be used for transient operations such as initializing and seeding the database, after which it can be thrown away. This isolates the real from any changes made and and saves performed. If a temporary ObjectContext was set with UseTempObjectContext, then this method disposes that context and returns this internal context and its DbContext to using the real ObjectContext. Called by methods of to create a database either using the Migrations pipeline if possible and the core provider otherwise. The context to use for core provider calls. Internal implementation of . True if the model hash in the context and the database match; false otherwise. Checks whether the given model (an EDMX document) matches the current model. Queries the database for a model hash and returns it if found or returns null if the table or the row doesn't exist in the database. The model hash, or null if not found. Queries the database for a model stored in the MigrationHistory table and returns it as an EDMX, or returns null if the database does not contain a model. Saves the model hash from the context to the database. Performs the initialization action that may result in a and handle the exception to provide more meaning to the user. The action. Registers for the ObjectStateManagerChanged event on the underlying ObjectStateManager. This is a virtual method on this class so that it can be mocked. The event handler. Checks whether or not the given object is in the context in any state other than Deleted. This is a virtual method on this class so that it can be mocked. The entity. true if the entity is in the context and not deleted; otherwise false. Saves all changes made in this context to the underlying database. The number of objects written to the underlying database. Initializes this instance, which means both the context is initialized and the underlying database is initialized. Initializes the underlying ObjectContext but does not cause the database to be initialized. Marks the database as having not been initialized. This is called when the app calls Database.Delete so that the database if the app attempts to then use the database again it will be re-initialized automatically. Runs the unless it has already been run or there is no initializer for this context type in which case this method does nothing. Marks the database as having been initialized without actually running the . Runs the if one has been set for this context type. Calling this method will always cause the initializer to run even if the database is marked as initialized. Disposes the context. Override the DisposeContext method to perform additional work when disposing. Performs additional work to dispose a context. Calls DetectChanges on the underlying if AutoDetectChangesEnabled is true or if force is set to true. if set to true then DetectChanges is called regardless of the value of AutoDetectChangesEnabled. Returns the DbSet instance for the given entity type. This property is virtual and returns to that it can be mocked. The entity type for which a set should be returned. A set for the given entity type. Returns the non-generic instance for the given entity type. This property is virtual and returns to that it can be mocked. The entity type for which a set should be returned. A set for the given entity type. Creates an internal set using an app domain cached delegate. Type of the entity. The set. Returns the entity set and the base type for that entity set for the given type. This method does o-space loading if required and throws if the type is not in the model. The entity type to lookup. The entity set and base type pair. Returns the entity set and the base type for that entity set for the given type if that type is mapped in the model, otherwise returns null. This method does o-space loading if required. The entity type to lookup. The entity set and base type pair, or null if not found. Checks whether or not the given entity type is mapped in the model. The entity type to lookup. True if the type is mapped as an entity; false otherwise. Gets the local entities of the type specified from the state manager. That is, all Added, Modified, and Unchanged entities of the given type. The type of entity to get. The entities. Executes the given SQL query against the database backing this context. The results are not materialized as entities or tracked. The type of the element. The SQL. The parameters. The query results. Executes the given SQL query against the database backing this context. The results are not materialized as entities or tracked. Type of the element. The SQL. The parameters. The query results. Calls the generic ExecuteSqlQuery but with a non-generic return type so that it has the correct signature to be used with CreateDelegate above. Executes the given SQL command against the database backing this context. The SQL. The parameters. The return value from the database. Gets the underlying for the given entity, or returns null if the entity isn't tracked by this context. This method is virtual so that it can be mocked. The entity. The state entry or null. Gets the underlying objects for all entities tracked by this context. This method is virtual so that it can be mocked. State entries for all tracked entities. Gets the underlying objects for all entities of the given type tracked by this context. This method is virtual so that it can be mocked. The type of the entity. State entries for all tracked entities of the given type. Helper method that gets the underlying objects for all entities that match the given predicate. Wraps the given in either a or a depending on the actual exception type and the state entries involved. The update exception. A new exception wrapping the given exception. Uses the underlying context to create an entity such that if the context is configured to create proxies and the entity is suitable then a proxy instance will be returned. This method is virtual so that it can be mocked. The type of the entity. The new entity instance. Uses the underlying context to create an entity such that if the context is configured to create proxies and the entity is suitable then a proxy instance will be returned. This method is virtual so that it can be mocked. The type of entity to create. The new entity instance. This method is used by CreateDelegate to transform the CreateObject method with return type TEntity into a method with return type object which matches the required type of the delegate. Replaces the connection that will be used by this context. The connection can only be changed before the context is initialized. The new connection. Throws if the context has been disposed. Checks whether or not the internal cache of types to entity sets has been initialized, and initializes it if necessary. Forces all DbSets to be initialized, which in turn causes o-space loading to happen for any entity type for which we have a DbSet. This includes all DbSets that were discovered on the user's DbContext type. Performs o-space loading for the type and returns false if the type is not in the model. Performs o-space loading for the type and throws if the type is not in the model. Type of the entity. Returns true if the given entity type does not have EdmEntityTypeAttribute but is in an assembly that has EdmSchemaAttribute. This indicates mixing of POCO and EOCO in the same assembly, which is something that we don't support. Determines whether or not the given clrType is mapped to a complex type. Assumes o-space loading has happened. Updates the cache of types to entity sets either for the first time or after potentially doing some o-space loading. The public context instance that owns this internal context. Returns the underlying . Gets the temp object context, or null if none has been set. The temp object context. The compiled model created from the Code First pipeline, or null if Code First was not used to create this context. Causes the Code First pipeline to be run to create the model if it has not already been created. Set to true when a database initializer is performing some actions, such as creating or deleting a database, or seeding the database. Gets the default database initializer to use for this context if no other has been registered. For code first this property returns a instance. For database/model first, this property returns null. The default initializer. Gets or sets a value indicating whether lazy loading is enabled. Gets or sets a value indicating whether proxy creation is enabled. Gets or sets a value indicating whether DetectChanges is called automatically in the API. Gets or sets a value indicating whether to validate entities when is called. True if the context has been disposed. The connection underlying this context. Accessing this property does not cause the context to be initialized, only its connection. The connection string as originally applied to the context. This is used to perform operations that need the connection string in a non-mutated form, such as with security info still intact. Returns the origin of the underlying connection string. Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries, database intializers and connection strings. Gets or sets the provider details to be used when building the EDM model. Gets the name of the underlying connection string. Gets the provider name bsing used either using a cached value or getting it from the DbConnection in use. Gets or sets a custom OnModelCreating action. Gets the DatabaseOperations instance to use to perform Create/Delete/Exists operations against the database. Note that this virtual property can be mocked to help with unit testing. Gets instance used to create validators and validation contexts. This property is virtual to allow mocking. For mocking. Constructs an for an already existing . The owner . The existing . Returns the underlying without causing the underlying database to be created or the database initialization strategy to be executed. This is used to get a context that can then be used for database creation/initialization. Does nothing, since the already exists. Does nothing since the database is always considered initialized if the was created from an existing . Does nothing since the database is always considered initialized if the was created from an existing . Does nothing since the database is always considered initialized if the was created from an existing . Disposes the context. The underlying is also disposed if it is owned. Returns the underlying . Gets the default database initializer to use for this context if no other has been registered. For code first this property returns a instance. For database/model first, this property returns null. The default initializer. The connection underlying this context. The connection string as originally applied to the context. This is used to perform operations that need the connection string in a non-mutated form, such as with security info still intact. Returns the origin of the underlying connection string. Gets or sets a value indicating whether lazy loading is enabled. This is just a wrapper over the same flag in the underlying . Gets or sets a value indicating whether proxy creation is enabled. This is just a wrapper over the same flag in the underlying ObjectContext. An implementation of that represents a clone of another dictionary. That is, all the property values have been been copied into this dictionary. The internal class used to implement . This internal class allows for a clean internal factoring without compromising the public API. Initializes a new instance of the class. The internal context with which the entity of complex object is associated. The type of the entity or complex object. If set to true this is a dictionary for an entity, otherwise it is a dictionary for a complex object. Implemented by subclasses to get the dictionary item for a given property name. Checking that the name is valid should happen before this method is called such that subclasses do not need to perform the check. Name of the property. An item for the given name. Creates an object of the underlying type for this dictionary and hydrates it with property values from this dictionary. The properties of this dictionary copied into a new object. Creates an instance of the underlying type for this dictionary, which may either be an entity type (in which case CreateObject on the context is used) or a non-entity type (in which case the empty constructor is used.) In either case, app domain cached compiled delegates are used to do the creation. Sets the values of this dictionary by reading values out of the given object. The given object must be of the type that this dictionary is based on. The object to read values from. Creates a new dictionary containing copies of all the properties in this dictionary. Changes made to the new dictionary will not be reflected in this dictionary and vice versa. A clone of this dictionary. Sets the values of this dictionary by reading values from another dictionary. The other dictionary must be based on the same type as this dictionary, or a type derived from the type for this dictionary. The dictionary to read values from. Gets the dictionary item for the property with the given name. This method checks that the given name is valid. The property name. The item. Sets the value of the property only if it is different from the current value and is not an invalid attempt to set a complex property. Gets the set of names of all properties in this dictionary as a read-only set. The property names. Gets or sets the value of the property with the specified property name. The value may be a nested instance of this class. The property name. The value of the property. Gets the entity type of complex type that this dictionary is based on. The type of the object underlying this dictionary. Gets the internal context with which the underlying entity or complex type is associated. The internal context. Gets a value indicating whether the object for this dictionary is an entity or a complex object. true if this this is a dictionary for an entity; false if it is a dictionary for a complex object. Initializes a new instance of the class by copying values from the given dictionary. The dictionary to clone. If non-null, then the values for the new dictionary are taken from this record rather than from the original dictionary. Gets the dictionary item for a given property name. Name of the property. An item for the given name. Gets the set of names of all properties in this dictionary as a read-only set. The property names. An implementation of for an item in a . Represents an item in an representing a property name/value. Gets or sets the value of the property represented by this item. The value. Gets the name of the property. The name. Gets a value indicating whether this item represents a complex property. true If this instance represents a complex property; otherwise, false. Gets the type of the underlying property. The property type. Initializes a new instance of the class. The name. The value. The type. If set to true this item represents a complex property. Gets or sets the value of the property represented by this item. The value. Gets the name of the property. The name. Gets a value indicating whether this item represents a complex property. true If this instance represents a complex property; otherwise, false. Gets the type of the underlying property. The property type. An implementation of that is based on an existing instance. Initializes a new instance of the class. The internal context. The type. The data record. If set to true this is a dictionary for an entity, otherwise it is a dictionary for a complex object. Gets the dictionary item for a given property name. Name of the property. An item for the given name. Gets the set of names of all properties in this dictionary as a read-only set. The property names. An implementation of for an item in a . Initializes a new instance of the class. The data record. The ordinal. The value. Gets or sets the value of the property represented by this item. The value. Gets the name of the property. The name. Gets a value indicating whether this item represents a complex property. true If this instance represents a complex property; otherwise, false. Gets the type of the underlying property. The property type. This is version of an internal interface that already exists in System.Data.Entity that is implemented by . Using this interface allows state entries to be mocked for unit testing. The plan is to remove this version of the interface and use the one in System.Data.Entity once we roll into the framework. Note that some members may need to be added to the interface in the framework when we combine the two. The internal class used to implement and . This internal class contains all the common implementation between the generic and non-generic entry classes and also allows for a clean internal factoring without compromising the public API. Base class for and containing common code for collection and reference navigation property entries. Base class for all internal entries that represent different kinds of properties. Initializes a new instance of the class. The internal entity entry. The member metadata. Validates this property. A sequence of validation errors for this property. Empty if no errors. Never null. Creates a new non-generic backed by this internal entry. The actual subtype of the DbMemberEntry created depends on the metadata of this internal entry. The new entry. Creates a new generic backed by this internal entry. The actual subtype of the DbMemberEntry created depends on the metadata of this internal entry. The type of the entity. The type of the property. The new entry. Gets the property name. The property is virtual to allow mocking. The property name. Gets or sets the current value of the navigation property. The current value. Gets the internal entity entry property belongs to. This property is virtual to allow mocking. The internal entity entry. Gets the entry metadata. The entry metadata. Initializes a new instance of the class. The internal entity entry. The navigation metadata. Calls Load on the underlying . Uses CreateSourceQuery on the underlying to create a query for this navigation property. Gets the navigation property value from the object. The entity. The navigation property value. Validates that the owning entity entry is associated with an underlying and is not just wrapping a non-attached entity. If the entity is not detached, then the RelatedEnd for this navigation property is obtained. Calls IsLoaded on the underlying . Gets the related end, which will be null if the entity is not being tracked. The related end. Gets or sets the current value of the navigation property. The current value is the entity that the navigation property references or the collection of references for a collection property. This property is virtual so that it can be mocked. The current value. Gets a delegate that can be used to get the value of the property directly from the entity. Returns null if the property does not have an accessible getter. The getter delegate, or null. Gets a delegate that can be used to set the value of the property directly on the entity. Returns null if the property does not have an accessible setter. The setter delegate, or null. Initializes a new instance of the class. The internal entity entry. The navigation metadata. Gets the navigation property value from the object. Since for a collection the related end is an , it means that the internal representation of the navigation property is just the related end. The entity. The navigation property value. Creates a new non-generic backed by this internal entry. The runtime type of the DbMemberEntry created will be or a subtype of it. The new entry. Creates a new generic backed by this internal entry. The runtime type of the DbMemberEntry created will be or a subtype of it. The type of the entity. The type of the property. The new entry. Creates a new generic backed by this internal entry. The actual subtype of the DbCollectionEntry created depends on the metadata of this internal entry. The type of the entity. The type of the element. The new entry. Creates a object for the given entity type and collection element type. The type of the entity. The type of the property. Type of the element. The set. Gets or sets the current value of the navigation property. The current value is the entity that the navigation property references or the collection of references for a collection property. The current value. The internal class used to implement and . This internal class contains all the common implementation between the generic and non-generic entry classes and also allows for a clean internal factoring without compromising the public API. Initializes a new instance of the class. The internal context. The state entry. Initializes a new instance of the class for an entity which may or may not be attached to the context. The internal context. The entity. Queries the database for copies of the values of the tracked entity as they currently exist in the database. The store values. Appends a query for the properties in the entity to the given string builder that is being used to build the eSQL query. This method may be called recursively to query for all the sub-properties of a complex property. The query builder. The qualifier with which to prefix each property name. The dictionary that acts as a template for the properties to query. Validates that a dictionary can be obtained for the state of the entity represented by this entry. The method name being used to request a dictionary. The state that is invalid for the request being processed. Calls Refresh with StoreWins on the underlying state entry. Gets an internal object representing a reference navigation property. This method is virtual to allow mocking. The navigation property. The type of entity requested, which may be 'object' or null if any type can be accepted. The entry. Gets an internal object representing a collection navigation property. This method is virtual to allow mocking. The navigation property. The type of entity requested, which may be 'object' or null f any type can be accepted. The entry. Gets an internal object representing a navigation, scalar, or complex property. This method is virtual to allow mocking. Name of the property. The type of entity requested, which may be 'object' if any type can be accepted. The entry. Gets an internal object representing a scalar or complex property. This method is virtual to allow mocking. The property. The type of object requested, which may be null or 'object' if any type can be accepted. if set to true then the found property must be a complex property. The entry. Gets an internal object representing a scalar or complex property. The property may be a nested property on the given . The parent property entry, or null if this is a property directly on the entity. Name of the property. The type of object requested, which may be null or 'object' if any type can be accepted. if set to true then the found property must be a complex property. The entry. Gets an internal object representing a scalar or complex property. The property may be a nested property on the given . The parent property entry, or null if this is a property directly on the entity. Name of the property. The property split out into its parts. The type of object requested, which may be null or 'object' if any type can be accepted. if set to true then the found property must be a complex property. The entry. Checks that the given property name is a navigation property and is either a reference property or collection property according to the value of requireCollection. Gets metadata for the given property if that property is a navigation property or returns null if it is not a navigation property. Name of the property. Navigation property metadata or null. Gets the type of entity or entities at the target end of the given navigation property. The navigation property. The CLR type of the entity or entities at the other end. Gets the related end for the navigation property with the given name. The navigation property. Uses EDM metadata to validate that the property name exists in the model and represents a scalar or complex property or exists in the CLR type. This method is public and virtual so that it can be mocked. The property name. The type on which the property is declared. The type of object requested, which may be 'object' if any type can be accepted. Metadata for the property. Splits the given property name into parts delimited by dots. Name of the property. The parts of the name. Validates that this entry is associated with an underlying and is not just wrapping a non-attached entity. Validates entity represented by this entity entry. This method is virtual to allow mocking. User defined dictionary containing additional info for custom validation. This parameter is optional and can be null. containing validation result. Never null. Determines whether the specified is equal to this instance. Two instances are considered equal if they are both entries for the same entity on the same . The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. Two instances are considered equal if they are both entries for the same entity on the same . The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the tracked entity. This property is virtual to allow mocking. The entity. Gets or sets the state of the entity. The state. Gets the current property values for the tracked entity represented by this object. This property is virtual to allow mocking. The current values. Gets the original property values for the tracked entity represented by this object. The original values are usually the entity's property values as they were when last queried from the database. This property is virtual to allow mocking. The original values. Checks whether or not this entry is associated with an underlying or is just wrapping a non-attached entity. Gets the type of the entity being tracked. The type of the entity. Gets the c-space entity type for this entity from the EDM. Gets the underlying object state entry. Gets the internal context. The internal context. A concrete implementation of used for properties of entities. The internal class used to implement and . This internal class contains all the common implementation between the generic and non-generic entry classes and also allows for a clean internal factoring without compromising the public API. Initializes a new instance of the class. The internal entry. The property info. Creates a delegate that will get the value of this property. The delegate. Creates a delegate that will set the value of this property. The delegate. Returns true if the property of the entity that this property is ultimately part of is set as modified. If this is a property of an entity, then this method returns true if the property is modified. If this is a property of a complex object, then this method returns true if the top-level complex property on the entity is modified. True if the entity property is modified. Sets the property of the entity that this property is ultimately part of to modified. If this is a property of an entity, then this method marks it as modified. If this is a property of a complex object, then this method marks the top-level complex property as modified. Throws if the user attempts to set a complex property to null. The value. Sets the given value directly onto the underlying entity object. The value. True if the property had a setter that we could attempt to call; false if no setter was available. Sets the property value, potentially by setting individual nested values for a complex property. The value. Gets an internal object representing a scalar or complex property of this property, which must be a mapped complex property. This method is virtual to allow mocking. The property. The type of object requested, which may be null or 'object' if any type can be accepted. if set to true then the found property must be a complex property. The entry. Validates that the owning entity entry is associated with an underlying and is not just wrapping a non-attached entity. Creates a new non-generic backed by this internal entry. The runtime type of the DbMemberEntry created will be or a subtype of it. The new entry. Creates a new generic backed by this internal entry. The runtime type of the DbMemberEntry created will be or a subtype of it. The type of the entity. The type of the property. The new entry. Returns parent property, or null if this is a property on the top-level entity. Gets the current values of the parent entity or complex property. That is, the current values that contains the value for this property. The parent current values. Gets the original values of the parent entity or complex property. That is, the original values that contains the value for this property. The parent original values. A delegate that reads the value of this property. May be null if there is no way to set the value due to missing accessors on the type. A delegate that sets the value of this property. May be null if there is no way to set the value due to missing accessors on the type. Gets or sets the original value. Note that complex properties are returned as objects, not property values. Gets or sets the current value. Note that complex properties are returned as objects, not property values. Also, for complex properties, the object returned is the actual complex object from the entity and setting the complex object causes the actual object passed to be set onto the entity. The current value. Gets or sets a value indicating whether this property is modified. Gets the property metadata. The property metadata. Initializes a new instance of the class. The internal entry. The property info. Creates a delegate that will get the value of this property. The delegate. Creates a delegate that will set the value of this property. The delegate. Returns true if the property of the entity that this property is ultimately part of is set as modified. Since this is a property of an entity this method returns true if the property is modified. True if the entity property is modified. Sets the property of the entity that this property is ultimately part of to modified. Since this is a property of an entity this method marks it as modified. Returns parent property, or null if this is a property on the top-level entity. Gets the current values of the parent entity. That is, the current values that contains the value for this property. The parent current values. Gets the original values of the parent entity. That is, the original values that contains the value for this property. The parent original values. A concrete implementation of used for properties of complex objects. Initializes a new instance of the class. The parent property entry. The property metadata. Creates a delegate that will get the value of this property. The delegate. Creates a delegate that will set the value of this property. The delegate. Returns true if the property of the entity that this property is ultimately part of is set as modified. Since this is a property of a complex object this method returns true if the top-level complex property on the entity is modified. True if the entity property is modified. Sets the property of the entity that this property is ultimately part of to modified. Since this is a property of a complex object this method marks the top-level complex property as modified. Returns parent property, or null if this is a property on the top-level entity. Gets the current values of the parent complex property. That is, the current values that contains the value for this property. The parent current values. Gets the original values of the parent complex property. That is, the original values that contains the value for this property. The parent original values. The internal class used to implement , and . This internal class contains all the common implementation between the generic and non-generic entry classes and also allows for a clean internal factoring without compromising the public API. Initializes a new instance of the class. The internal entity entry. The navigation metadata. Gets the navigation property value from the object. For reference navigation properties, this means getting the value from the object. The entity. The navigation property value. Sets the navigation property value onto the object. For reference navigation properties, this means setting the value onto the object. The entity. The value. Sets the given value on the given which must be an . This method is setup in such a way that it can easily be used by CreateDelegate without any dynamic code generation needed. The type of the related entity. The entity reference. The value. Creates a new non-generic backed by this internal entry. The runtime type of the DbMemberEntry created will be or a subtype of it. The new entry. Creates a new generic backed by this internal entry. The runtime type of the DbMemberEntry created will be or a subtype of it. The type of the entity. The type of the property. The new entry. Gets or sets the current value of the navigation property. The current value is the entity that the navigation property references or the collection of references for a collection property. The current value. Contains metadata about a member of an entity type or complex type. Initializes a new instance of the class. The type that the property is declared on. Type of the property. The property name. Creates a new the runtime type of which will be determined by the metadata. The entity entry to which the member belongs. The parent property entry if the new entry is nested, otherwise null. The new entry. Gets the type of the member for which this is metadata. The type of the member entry. Gets the name of the property. The name. Gets the type of the entity or complex object that on which the member is declared. The type that the member is declared on. Gets the type of element for the property, which for non-collection properties is the same as the MemberType and which for collection properties is the type of element contained in the collection. The type of the element. Gets the type of the member, which for collection properties is the type of the collection rather than the type in the collection. The type of the member. The types of member entries supported. Initializes a new instance of the class. The type that the property is declared on. Type of the property. The property name. if set to true this is a collection nav prop. Creates a new the runtime type of which will be determined by the metadata. The entity entry to which the member belongs. The parent property entry which will always be null for navigation entries. The new entry. Gets the type of the member for which this is metadata. The type of the member entry. Gets the type of the member, which for collection properties is the type of the collection rather than the type in the collection. The type of the member. Contains metadata for a property of a complex object or entity. Initializes a new instance of the class. The type that the property is declared on. Type of the property. The property name. if set to true the property is mapped in the EDM. if set to true the property is a complex property. Validates that the given name is a property of the declaring type (either on the CLR type or in the EDM) and that it is a complex or scalar property rather than a nav property and then returns metadata about the property. The internal context. The type that the property is declared on. The type of property requested, which may be 'object' if any type can be accepted. Name of the property. Metadata about the property, or null if the property does not exist or is a navigation property. Creates a new the runtime type of which will be determined by the metadata. The entity entry to which the member belongs. The parent property entry if the new entry is nested, otherwise null. The new entry. Gets a value indicating whether this is a complex property. That is, not whether or not this is a property on a complex object, but rather if the property itself is a complex property. true if this instance is complex; otherwise, false. Gets the type of the member for which this is metadata. The type of the member entry. Gets a value indicating whether this instance is mapped in the EDM. true if this instance is mapped; otherwise, false. Gets the type of the member, which for collection properties is the type of the collection rather than the type in the collection. The type of the member. An implementation of that wraps an existing set but makes it read-only. Initializes a new instance of the class wrapped around another existing set. The existing set. This is a temporary adapter class that wraps an and presents it as an . This class will be removed once we roll into the System.Data.Entity assembly. See for more details. Helper class that extends Tuple to give the Item1 and Item2 properties more meaningful names. Creates a new pair of the given EntitySet and BaseType. The EntitySet part of the pair. The BaseType part of the pair. Helper class that extends Tuple to give the Item1 and Item2 properties more meaningful names. Creates a new pair of the given database initializer delegate and a flag indicating whether or not it is locked. The initializer delegate. A flag indicating whether or not the initializer is locked and should not be changed. Represents a raw SQL query against the context for any type where the results are never associated with an entity set and are never tracked. Represents a raw SQL query against the context that may be for entities in an entity set or for some other non-entity element type. Initializes a new instance of the class. The SQL. The parameters. If the query is would track entities, then this method returns a new query that will not track entities. A no-tracking query. Executes the query and returns an enumerator for the results. The query results. Throws an exception indicating that binding directly to a store query is not supported. Never returns; always throws. Returns a that contains the SQL string that was set when the query was created. The parameters are not included. A that represents this instance. Gets the SQL query string, The SQL query. Gets the parameters. The parameters. Returns false. false. Initializes a new instance of the class. The internal context. Type of the element. The SQL. The parameters. Returns this query since it can never be a tracking query. This instance. Executes the query and returns an enumerator for the results. The query results. Generic wrapper around to allow results to be returned as generic The type of the element. Executes the query and returns an enumerator for the elements. An object that can be used to iterate through the elements. Executes the query and returns an enumerator for the elements. An object that can be used to iterate through the elements. Returns a that contains the SQL string that was set when the query was created. The parameters are not included. A that represents this instance. Throws an exception indicating that binding directly to a store query is not supported. Never returns; always throws. Returns false. false. Represents a raw SQL query against the context for entities in an entity set. Initializes a new instance of the class. The set. The SQL. if set to true then the entities will not be tracked. The parameters. If the query is would track entities, then this method returns a new query that will not track entities. A no-tracking query. Executes the query and returns an enumerator for the results. The query results. Gets a value indicating whether this instance is set to track entities or not. true if this instance is no-tracking; otherwise, false. A LazyInternalConnection object manages information that can be used to create a DbConnection object and is responsible for creating that object and disposing it. Creates a new LazyInternalConnection using convention to calculate the connection. The DbConnection object will be created lazily on demand and will be disposed when the LazyInternalConnection is disposed. Either the database name or a connection string. Creates a new LazyInternalConnection targeting a specific database. The DbConnection object will be created lazily on demand and will be disposed when the LazyInternalConnection is disposed. The connection to target. Creates an from metadata in the connection. This method must only be called if ConnectionHasModel returns true. The newly created context. Disposes the underlying DbConnection. Note that dispose actually puts the LazyInternalConnection back to its initial state such that it can be used again. Searches the app.config/web.config file for a connection that matches the given name. The connection might be a store connection or an EF connection. The connection name. True if a connection from the app.config file was found and used. Attempts to locate a connection entry in the configuration based on the supplied context name. The name to search for. The configuration to search in. Connection string if found, otherwise null. Initializes the connection based on a connection string. The settings to initialize from. Returns the underlying DbConnection, creating it first if it does not already exist. Returns the origin of the underlying connection string. Gets the name of the underlying connection string. Returns a key consisting of the connection type and connection string. If this is an EntityConnection then the metadata path is included in the key returned. Gets a value indicating whether the connection is an EF connection which therefore contains metadata specifying the model, or instead is a store connection, in which case it contains no model info. true if connection contain model info; otherwise, false. Gets a value indicating if the lazy connection has been initialized. A is a concrete type that will lazily create the underlying when needed. The created is owned by the internal context and will be disposed when the internal context is disposed. Constructs a for the given owner that will be initialized on first use. The owner . Responsible for creating a connection lazily when the context is used for the first time. The model, or null if it will be created by convention Returns the underlying without causing the underlying database to be created or the database initialization strategy to be executed. This is used to get a context that can then be used for database creation/initialization. Saves all changes made in this context to the underlying database, but only if the context has been initialized. If the context has not been initialized, then this method does nothing because there is nothing to do; in particular, it does not cause the context to be initialized. The number of objects written to the underlying database. Disposes the context. The underlying is also disposed. The connection to the database ( object) is also disposed if it was created by the context, otherwise it is not disposed. Initializes the underlying . Creates an immutable, cacheable representation of the model defined by this builder. This model can be used to create an or can be passed to a constructor to create a for this model. Creates and configures the instance that will be used to build the . The builder. Marks the database as having not been initialized. This is called when the app calls Database.Delete so that the database if the app attempts to then use the database again it will be re-initialized automatically. Marks the database as having been initialized without actually running the . Runs the unless it has already been run or there is no initializer for this context type in which case this method does nothing. Performs some action (which may do nothing) in such a way that it is guaranteed only to be run once for the model and connection in this app domain, unless it fails by throwing an exception, in which case it will be re-tried next time the context is initialized. The action. Returns the underlying . The compiled model created from the Code First pipeline, or null if Code First was not used to create this context. Causes the Code First pipeline to be run to create the model if it has not already been created. The actually being used, which may be the temp context for initialization or the real context. The connection underlying this context. Accessing this property does not cause the context to be initialized, only its connection. The connection string as originally applied to the context. This is used to perform operations that need the connection string in a non-mutated form, such as with security info still intact. Returns the origin of the underlying connection string. Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries and connection strings. Gets the name of the underlying connection string. Gets or sets the provider details to be used when building the EDM model. Gets or sets a custom OnModelCreating action. Gets the default database initializer to use for this context if no other has been registered. For code first this property returns a instance. For database/model first, this property returns null. The default initializer. Gets or sets a value indicating whether lazy loading is enabled. If the exists, then this property acts as a wrapper over the flag stored there. If the has not been created yet, then we store the value given so we can later use it when we create the . This allows the flag to be changed, for example in a DbContext constructor, without it causing the to be created. Gets or sets a value indicating whether proxy creation is enabled. If the ObjectContext exists, then this property acts as a wrapper over the flag stored there. If the ObjectContext has not been created yet, then we store the value given so we can later use it when we create the ObjectContext. This allows the flag to be changed, for example in a DbContext constructor, without it causing the ObjectContext to be created. A wrapping query provider that performs expression transformation and then delegates to the provider. The objects returned are always instances of . This provider is associated with generic objects. Creates a provider that wraps the given provider. The provider to wrap. Performs expression replacement and then delegates to the wrapped provider before wrapping the returned as a . Performs expression replacement and then delegates to the wrapped provider before wrapping the returned as a where T is determined from the element type of the ObjectQuery. By default, calls the same method on the wrapped provider. By default, calls the same method on the wrapped provider. Creates an appropriate generic IQueryable using Reflection and the underlying ElementType of the given ObjectQuery. Performs expression replacement and then delegates to the wrapped provider to create an . Wraps the given as a where T is determined from the element type of the ObjectQuery. Gets the internal context. The internal context. A LINQ expression visitor that finds uses with equivalent instances. Replaces calls to DbContext.Set() with an expression for the equivalent . The node to replace. A new node, which may have had the replacement made. Replaces a or property with a constant expression for the underlying . The node to replace. A new node, which may have had the replacement made. Processes the fields in each constant expression and replaces instances with the underlying ObjectQuery instance. This handles cases where the query has a closure containing values. Gets a value from the given member, or returns null if the member doesn't contain a DbContext instance. The expression for the object for the member, which may be null for a static member. The member. The context or null. Gets the instance from the given instance or static member, returning null if the member does not contain a DbContext instance. The member. The value of the object to get the instance from, or null if the member is static. The context instance or null. Takes a or and creates an expression for the underlying . Takes a or and extracts the underlying . A non-generic interface implemented by that allows operations on any query object without knowing the type to which it applies. An interface implemented by . The type of the element. A non-generic interface implemented by that allows operations on any set object without knowing the type to which it applies. An interface implemented by . An instance of this internal class is created whenever an instance of the public class is needed. This allows the public surface to be non-generic, while the runtime type created still implements . The type of the element. Creates a new query that will be backed by the given internal query object. The backing query. See comments in . See comments in . Gets the enumeration of this query causing it to be executed against the store. An enumerator for the query Gets the underlying internal query object. The internal query. An instance of this internal class is created whenever an instance of the public class is needed. This allows the public surface to be non-generic, while the runtime type created still implements . The type of the entity. Creates a new set that will be backed by the given internal set. The internal set. Creates an instance of this class. This method is used with CreateDelegate to cache a delegate that can create a generic instance without calling MakeGenericType every time. The internal set to wrap, or null if a new internal set should be created. The set. See comments in . See comments in . See comments in . See comments in . See comments in . Gets the enumeration of this query causing it to be executed against the store. An enumerator for the query Gets the underlying internal query object. The internal query. Gets the underlying internal set. The internal set. See comments in . An InternalQuery underlies every instance of DbSet and DbQuery. It acts to lazily initialize a InternalContext as well as an ObjectQuery and EntitySet the first time that it is used. The InternalQuery also acts to expose necessary information to other parts of the design in a controlled manner without adding a lot of internal methods and properties to the DbSet and DbQuery classes themselves. The type of entity to query for. Creates a new query that will be backed by the given InternalContext. The backing context. Creates a new internal query based on the information in an existing query together with a new underlying ObjectQuery. Resets the query to its uninitialized state so that it will be re-lazy initialized the next time it is used. This allows the ObjectContext backing a DbContext to be switched out. Updates the underlying ObjectQuery with the given include path. The include path. A new query containing the defined include path. Returns a new query where the entities returned will not be cached in the . A new query with NoTracking applied. Performs lazy initialization of the underlying ObjectContext, ObjectQuery, and EntitySet objects so that the query can be used. Returns a representation of the underlying query, equivalent to ToTraceString on ObjectQuery. The query string. Gets the enumeration of this query causing it to be executed against the store. An enumerator for the query Gets the enumeration of this query causing it to be executed against the store. An enumerator for the query The underlying InternalContext. The underlying ObjectQuery. The underlying ObjectQuery. The LINQ query expression. The LINQ query provider for the underlying . The IQueryable element type. Creates a new query that will be backed by the given InternalContext. The backing context. Resets the set to its uninitialized state so that it will be re-lazy initialized the next time it is used. This allows the ObjectContext backing a DbContext to be switched out. Finds an entity with the given primary key values. If an entity with the given primary key values exists in the context, then it is returned immediately without making a request to the store. Otherwise, a request is made to the store for an entity with the given primary key values and this entity, if found, is attached to the context and returned. If no entity is found in the context or the store, then null is returned. The ordering of composite key values is as defined in the EDM, which is in turn as defined in the designer, by the Code First fluent API, or by the DataMember attribute. The values of the primary key for the entity to be found. The entity found, or null. Thrown if multiple entities exist in the context with the primary key values given. Thrown if the type of entity is not part of the data model for this context. Thrown if the types of the key values do not match the types of the key values for the entity type to be found. Thrown if the context has been disposed. Finds an entity in the state manager with the given primary key values, or returns null if no such entity can be found. This includes looking for Added entities with the given key values. Finds an entity in the store with the given primary key values, or returns null if no such entity can be found. This code is adapted from TryGetObjectByKey to include type checking in the query. Attaches the given entity to the context underlying the set. That is, the entity is placed into the context in the Unchanged state, just as if it had been read from the database. Attach is used to repopulate a context with an entity that is known to already exist in the database. SaveChanges will therefore not attempt to insert an attached entity into the database because it is assumed to already be there. Note that entities that are already in the context in some other state will have their state set to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. This method is virtual so that it can be mocked. The entity to attach. Adds the given entity to the context underlying the set in the Added state such that it will be inserted into the database when SaveChanges is called. Note that entities that are already in the context in some other state will have their state set to Added. Add is a no-op if the entity is already in the context in the Added state. This method is virtual so that it can be mocked. The entity to add. Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges is called. Note that the entity must exist in the context in some other state before this method is called. Note that if the entity exists in the context in the Added state, then this method will cause it to be detached from the context. This is because an Added entity is assumed not to exist in the database such that trying to delete it does not make sense. This method is virtual so that it can be mocked. The entity to remove. This method checks whether an entity is already in the context. If it is, then the state is changed to the new state given. If it isn't, then the action delegate is executed to either Add or Attach the entity. A delegate to Add or Attach the entity. The new state to give the entity if it is already in the context. The entity. Name of the method. Creates a new instance of an entity for the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The entity instance, which may be a proxy. Creates a new instance of an entity for the type of this set or for a type derived from the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The type of entity to create. The entity instance, which may be a proxy. Performs lazy initialization of the underlying ObjectContext, ObjectQuery, and EntitySet objects so that the query can be used. This method is virtual so that it can be mocked. Attempts to perform lazy initialization of the underlying ObjectContext, ObjectQuery, and EntitySet objects so that o-space loading has happened and the query can be used. This method doesn't throw if the type for the set is not mapped. Creates an underlying for this set. if set to true then the query is set to be no-tracking. The query. Returns a representation of the underlying query, equivalent to ToTraceString on ObjectQuery. The query string. Updates the underlying ObjectQuery with the given include path. The include path. A new query containing the defined include path. Returns a new query where the entities returned will not be cached in the . A new query with NoTracking applied. Executes the given SQL query against the database materializing entities into the entity set that backs this set. The SQL quey. if true then the entities are not tracked, otherwise they are. The parameters. The query results. Gets the enumeration of this query causing it to be executed against the store. An enumerator for the query Gets the ObservableCollection representing the local view for the set based on this query. The underlying ObjectQuery. Accessing this property will trigger lazy initialization of the query. The underlying EntitySet name. Accessing this property will trigger lazy initialization of the query. The underlying EntitySet name, quoted for ESQL. Accessing this property will trigger lazy initialization of the query. The underlying EntitySet. Accessing this property will trigger lazy initialization of the query. The base type for the underlying entity set. Accessing this property will trigger lazy initialization of the query. The underlying InternalContext. Accessing this property will trigger lazy initialization of the query. The LINQ query expression. The LINQ query provider for the underlying . A wrapping query provider that performs expression transformation and then delegates to the provider. The objects returned are always instances of when the generic CreateQuery method is used and are instances of when the non-generic CreateQuery method is used. This provider is associated with non-generic objects. Creates a provider that wraps the given provider. The provider to wrap. Performs expression replacement and then delegates to the wrapped provider before wrapping the returned as a . Delegates to the wrapped provider except returns instances of . Creates an appropriate generic IQueryable using Reflection and the underlying ElementType of the given ObjectQuery. Extends to create a sortable binding list that stays in sync with an underlying . That is, when items are added or removed from the binding list, they are added or removed from the ObservableCollecion, and vice-versa. The list element type. An extended BindingList implementation that implements sorting. This class was adapted from the LINQ to SQL class of the same name. The element type. Initializes a new instance of the class with the the given underlying list. Note that sorting is dependent on having an actual rather than some other ICollection implementation. The list. Applies sorting to the list. The property to sort by. The sort direction. Stops sorting. Gets a value indicating whether this list is sorted. true if this instance is sorted; otherwise, false. Gets the sort direction. The sort direction. Gets the sort property being used to sort. The sort property. Returns true indicating that this list supports sorting. true. Implements comparing for the implementation. Initializes a new instance of the class for sorting the list. The property to sort by. The sort direction. Compares two instances of items in the list. The left item to compare. The right item to compare. Determines whether this instance can sort for the specified type. The type. true if this instance can sort for the specified type; otherwise, false. Determines whether this instance can sort for the specified type using IComparable. The type. true if this instance can sort for the specified type; otherwise, false. Determines whether this instance can sort for the specified type using ToString. The type. true if this instance can sort for the specified type; otherwise, false. Initializes a new instance of a binding list backed by the given The obervable collection. Creates a new item to be added to the binding list. The new item. Cancels adding of a new item that was started with AddNew. Index of the item. Removes all items from the binding list and underlying ObservableCollection. Ends the process of adding a new item that was started with AddNew. Index of the item. Inserts the item into the binding list at the given index. The index. The item. Removes the item at the specified index. The index. Sets the item into the list at the given position. The index to insert at. The item. Event handler to update the binding list when the underlying observable collection changes. The sender. Data indicating how the collection has changed. Adds the item to the underlying observable collection. The item. Removes the item from the underlying from observable collection. The item. Adapted from to allow the initializer to take an input object and to do one-time initialization that only has side-effects and doesn't return a value. The type of the input. Initializes a new instance of the class. The action. Performs the action unless it has already been successfully performed before. The input to the action; ignored if the action has already succeeded. Adapted from to allow the initializer to take an input object and to retry initialization if it has previously failed. This class can only be used to initialize reference types that will not be null when initialized. The type of the input. The type of the result. Initializes a new instance of the class. The value factory. Gets the value, possibly by running the initializer if it has not been run before or if all previous times it ran resulted in exceptions. The input to the initializer; ignored if initialization has already succeeded. The initialized object. Validates a property of a given EDM complex type. This is a composite validator for a complex property of an entity. Validates a property of a given EDM property type. This is a composite validator for a property of an entity or a complex type. Simple validators for the corresponding property. Name of the property the validator was created for. Creates an instance of for a given EDM property. The EDM property name. Validators used to validate the given property. Validates a property. Validation context. Never null. Property to validate. Never null. Validation errors as . Empty if no errors. Never null. Simple validators for the corresponding property. Gets the name of the property the validator was created for. The complex type validator. Creates an instance of for a given complex property. The complex property name. Validators used to validate the given property. Complex type validator. Validates a complex property. Validation context. Never null. Property to validate. Never null. Validation errors as . Empty if no errors. Never null. Validator used to validate a property of a given EDM ComplexType. This is a composite validator. Validator used to validate an entity of a given EDM Type. This is a composite validator for an EDM Type. Creates an instance for a given EDM type. Property validators. Type level validators. Validates an instance. Entity validation context. Must not be null. The entry for the complex property. Null if validating an entity. instance. Never null. Protected so it doesn't appear on EntityValidator. Validates type properties. Any validation errors will be added to collection. Validation context. Must not be null. Collection of validation errors. Any validation errors will be added to it. The entry for the complex property. Null if validating an entity. Note that will be modified by this method. Errors should be only added, never removed or changed. Taking a collection as a modifiable parameter saves a couple of memory allocations and a merge of validation error lists per entity. Returns a validator for a child property. Name of the child property for which to return a validator. Validator for a child property. Possibly null if there are no validators for requested property. Creates an instance for a given EDM complex type. Property validators. Type level validators. Validates an instance. Entity validation context. Must not be null. The entry for the complex property. Null if validating an entity. instance. Never null. Validates type properties. Any validation errors will be added to collection. Validation context. Must not be null. Collection of validation errors. Any validation errors will be added to it. The entry for the complex property. Null if validating an entity. Note that will be modified by this method. Errors should be only added, never removed or changed. Taking a collection as a modifiable parameter saves a couple of memory allocations and a merge of validation error lists per entity. Contains information needed to validate an entity or its properties. The entity being validated or the entity that owns the property being validated. Initializes a new instance of EntityValidationContext class. The entity being validated or the entity that owns the property being validated. External contexts needed for validation. External context needed for validation. Gets the entity being validated or the entity that owns the property being validated. Validator used to validate an entity of a given EDM EntityType. This is a top level, composite validator. This is also an entry point to getting an entity validated as validation of an entity is always started by calling Validate method on this type. Creates an instance for a given EDM entity type. Property validators. Entity type level validators. Validates an entity. Entity validation context. Must not be null. instance. Never null. Validates type properties. Any validation errors will be added to collection. Validation context. Must not be null. Collection of validation errors. Any validation errors will be added to it. The entry for the complex property. Null if validating an entity. Note that will be modified by this method. Errors should be only added, never removed or changed. Taking a collection as a modifiable parameter saves a couple of memory allocations and a merge of validation error lists per entity. Builds validators based on s specified on entity CLR types and properties as well as based on presence of implementation on entity and complex type CLR types. It's not sealed and not static for mocking purposes. Builds an for the given . The entity entry to build the validator for. Whether the currently processed type is the target type or one of the ancestor types. for the given . Possibly null if no validation has been specified for this entity type. Builds the validator for a given and the corresponding . The CLR type that corresponds to the EDM complex type. The EDM complex type that type level validation is built for. A for the given complex type. May be null if no validation specified. Extracted method from BuildEntityValidator and BuildComplexTypeValidator Build validators for the and the corresponding or . Properties to build validators for. Non-navigation EDM properties. Navigation EDM properties. A list of validators. Possibly empty, never null. Builds a for the given and the corresponding . If the property is a complex type, type level validators will be built here as well. The CLR property to build the validator for. The EDM property to build the validator for. for the given . Possibly null if no validation has been specified for this property. Builds a for the given transient . The CLR property to build the validator for. for the given . Possibly null if no validation has been specified for this property. Builds s for given that derive from . Attributes used to build validators. A list of s built from . Possibly empty, never null. Returns all non-static non-indexed CLR properties from the . The CLR to get the properties from. A collection of CLR properties. Possibly empty, never null. Builds validators based on the facets of : * If .Nullable facet set to false adds a validator equivalent to the RequiredAttribute * If the .MaxLength facet is specified adds a validator equivalent to the MaxLengthAttribute. However the validator isn't added if .IsMaxLength has been set to true. The CLR property to build the facet validators for. The property for which facet validators will be created A collection of validators. Abstracts simple validators used to validate entities and properties. Validates an entity or a property. Validation context. Never null. Property to validate. Can be null for type level validation. Validation error as. Empty if no errors. Never null. Contract for IValidator.Validate method. Validation context. Property. Nothing - always throws. Validates entities or complex types implementing IValidatableObject interface. Display attribute used to specify the display name for an entity or complex property. Validates an entity or a complex type implementing IValidatableObject interface. This method is virtual to allow mocking. Validation context. Never null. Property to validate. Null if this is the entity that will be validated. Never null if this is the complex type that will be validated. Validation error as . Empty if no errors. Never null. Note that is used to figure out what needs to be validated. If it not null the complex type will be validated otherwise the entity will be validated. Also if this is an IValidatableObject complex type but the instance (.CurrentValue) is null we won't validate anything and will not return any errors. The reason for this is that Validation is supposed to validate using information the user provided and not some additional implicit rules. (ObjectContext will throw for operations that involve null complex properties). Validates a property, complex property or an entity using validation attributes the property or the complex/entity type is decorated with. Note that this class is used for validating primitive properties using attributes declared on the property (property level validation) and complex properties and entities using attributes declared on the type (type level validation). Display attribute used to specify the display name for a property or entity. Validation attribute used to validate a property or an entity. Creates an instance of class. Validation attribute used to validate a property or an entity. Validates a property or an entity. Validation context. Never null. Property to validate. Null for entity validation. Not null for property validation. Validation errors as . Empty if no errors, never null. Used to cache and retrieve generated validators and to create context for validating entities or properties. Collection of validators keyed by the entity CLR type. Note that if there's no validation for a given type it will be associated with a null validator. Initializes a new instance of class. Returns a validator to validate . Entity the validator is requested for. to validate . Possibly null if no validation has been specified for the entity. Returns a validator to validate . Navigation property the validator is requested for. Validator to validate . Possibly null if no validation has been specified for the requested property. Gets a validator for the . Entity validator. Property to get a validator for. Validator to validate . Possibly null if there is no validation for the . For complex properties this method walks up the type hierarchy to get to the entity level and then goes down and gets a validator for the child property that is an ancestor of the property to validate. If a validator returned for an ancestor is null it means that there is no validation defined beneath and the method just propagates (and eventually returns) null. Creates for . Entity entry for which a validation context needs to be created. User defined dictionary containing additional info for custom validation. This parameter is optional and can be null. An instance of class. A wrapper around EntityKey that allows key/values pairs that have null values to be used. This allows Added entities with null key values to be searched for in the ObjectStateManager. The key name/key value pairs, where some key values may be null Creates a new WrappedEntityKey instance. The entity set that the key belongs to. The fully qualified name of the given entity set. The key values, which may be null or contain null values. The name of the parameter passed for keyValue by the user, which is used when throwing exceptions. True if any of the key values are null, which means that the EntityKey will also be null. An actual EntityKey, or null if any of the key values are null. The key name/key value pairs of the key, in which some of the key values may be null. Allows configuration to be performed for an complex type in a model. A ComplexTypeConfiguration can be obtained via the ComplexType method on or a custom type derived from ComplexTypeConfiguration can be registered via the Configurations property on . The complex type to be configured. Allows configuration to be performed for a type in a model. The type to be configured. Configures a property that is defined on this type. The type of the property being configured. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. The type of the property being configured. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Excludes a property from the model so that it will not be mapped to the database. The type of the property to be ignored. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty Initializes a new instance of ComplexTypeConfiguration Allows derived configuration classes for entities and complex types to be registered with a . Derived configuration classes are created by deriving from or and using a type to be included in the model as the generic parameter. Configuration can be performed without creating derived configuration classes via the Entity and ComplexType methods on . Adds an to the . Only one can be added for each type in a model. The entity type being configured. The entity type configuration to be added. The same ConfigurationRegistrar instance so that multiple calls can be chained. Adds an to the . Only one can be added for each type in a model. The complex type being configured. The complex type configuration to be added The same ConfigurationRegistrar instance so that multiple calls can be chained. Allows the conventions used by a instance to be customized. Currently removal of one or more default conventions is the only supported operation. The default conventions can be found in the System.Data.Entity.ModelConfiguration.Conventions namespace. Disables a convention for the . The default conventions that are available for removal can be found in the System.Data.Entity.ModelConfiguration.Conventions namespace. The type of the convention to be disabled. Configures the table and column mapping for an entity type or a sub-set of properties from an entity type. This configuration functionality is available via the Code First Fluent API, see . The entity type to be mapped. Configures the properties that will be included in this mapping fragment. If this method is not called then all properties that have not yet been included in a mapping fragment will be configured. An anonymous type including the properties to be mapped. A lambda expression to an anonymous type that contains the properties to be mapped. C#: t => new { t.Id, t.Property1, t.Property2 } VB.Net: Function(t) New With { p.Id, t.Property1, t.Property2 } Re-maps all properties inherited from base types. When configuring a derived type to be mapped to a separate table this will cause all properties to be included in the table rather than just the non-inherited properties. This is known as Table per Concrete Type (TPC) mapping. Configures the table name to be mapped to. Name of the table. Configures the table name and schema to be mapped to. Name of the table. Schema of the table. Configures the discriminator column used to differentiate between types in an inheritance hierarchy. The name of the discriminator column. A configuration object to further configure the discriminator column and values. Configures the discriminator condition used to differentiate between types in an inheritance hierarchy. The type of the property being used to discriminate between types. A lambda expression representing the property being used to discriminate between types. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object to further configure the discriminator condition. Moves a foreign key constraint from oldTable to newTable and updates column references Move any FK constraints that are now completely in newTable and used to refer to oldColumn Configures a condition used to discriminate between types in an inheritance hierarchy based on the values assigned to a property. This configuration functionality is available via the Code First Fluent API, see . Configures the condition to require a value in the property. Rows that do not have a value assigned to column that this property is stored in are assumed to be of the base type of this entity type. Populate the table mapping structure Sets nullability for association set mappings' foreign keys for 1:* and 1:0..1 associations when no base types share the the association set mapping's table Makes sure only the required property mappings are present Determines if the table and entity type need mapping, and if not, removes the existing entity type mapping Configures a database column used to store a string values. This configuration functionality is available via the Code First Fluent API, see . Configures the column to allow the maximum length supported by the database provider. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the column to be fixed length. Use HasMaxLength to set the length that the property is fixed to. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the column to be variable length. Columns are variable length by default. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the column to be optional. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the column to be required. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the data type of the database column. Name of the database provider specific data type. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the order of the database column. The order that this column should appear in the database table. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the column to support Unicode string content. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures whether or not the column supports Unicode string content. Value indicating if the column supports Unicode string content or not. Specifying 'null' will remove the Unicode facet from the column. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures a discriminator column used to differentiate between types in an inheritance hierarchy. This configuration functionality is available via the Code First Fluent API, see . Configures the discriminator value used to identify the entity type being configured from other types in the inheritance hierarchy. Type of the discriminator value. The value to be used to identify the entity type. A configuration object to configure the column used to store discriminator values. Configures the discriminator value used to identify the entity type being configured from other types in the inheritance hierarchy. Type of the discriminator value. The value to be used to identify the entity type. A configuration object to configure the column used to store discriminator values. Configures the discriminator value used to identify the entity type being configured from other types in the inheritance hierarchy. The value to be used to identify the entity type. A configuration object to configure the column used to store discriminator values. Initializes configurations in the ModelConfiguration so that configuration data is in a single place Configures a many relationship from an entity type. The entity type that the relationship originates from. The entity type that the relationship targets. Configures the relationship to be many:many with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be many:many without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be many:required with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be many:required without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be many:optional with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be many:optional without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures an optional relationship from an entity type. The entity type that the relationship originates from. The entity type that the relationship targets. Configures the relationship to be optional:many with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:many without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:required with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:required without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:optional with a navigation property on the other side of the relationship. The entity type being configured will be the dependent and contain a foreign key to the principal. The entity type that the relationship targets will be the principal in the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:optional without a navigation property on the other side of the relationship. The entity type being configured will be the dependent and contain a foreign key to the principal. The entity type that the relationship targets will be the principal in the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:optional with a navigation property on the other side of the relationship. The entity type being configured will be the principal in the relationship. The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. A lambda expression representing the navigation property on the other end of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:optional without a navigation property on the other side of the relationship. The entity type being configured will be the principal in the relationship. The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. A configuration object that can be used to further configure the relationship. Configures an required relationship from an entity type. The entity type that the relationship originates from. The entity type that the relationship targets. Configures the relationship to be required:many with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be required:many without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be required:optional with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be required:optional without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be required:required with a navigation property on the other side of the relationship. The entity type being configured will be the dependent and contain a foreign key to the principal. The entity type that the relationship targets will be the principal in the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be required:required without a navigation property on the other side of the relationship. The entity type being configured will be the dependent and contain a foreign key to the principal. The entity type that the relationship targets will be the principal in the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be required:required with a navigation property on the other side of the relationship. The entity type being configured will be the principal in the relationship. The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be required:required without a navigation property on the other side of the relationship. The entity type being configured will be the principal in the relationship. The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. A configuration object that can be used to further configure the relationship. Base class for configuring a property on an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . True if the NavigationProperty's declaring type is the principal end, false if it is not, null if it is not known Base class for performing configuration of a relationship. This configuration functionality is available via the Code First Fluent API, see . Configures a relationship that can support cascade on delete functionality. Configures cascade delete to be on for the relationship. Configures whether or not cascade delete is on for the relationship. Value indicating if cascade delete is on or not. Configures a relationship that can support foreign key properties that are exposed in the object model. This configuration functionality is available via the Code First Fluent API, see . The dependent entity type. Configures a relationship that can only support foreign key properties that are not exposed in the object model. This configuration functionality is available via the Code First Fluent API, see . Configures the relationship to use foreign key property(s) that are not exposed in the object model. The column(s) and table can be customized by specifying a configuration action. If an empty configuration action is specified then column name(s) will be generated by convention. If foreign key properties are exposed in the object model then use the HasForeignKey method. Not all relationships support exposing foreign key properties in the object model. Action that configures the foreign key column(s) and table. A configuration object that can be used to further configure the relationship. Configures the relationship to use foreign key property(s) that are exposed in the object model. If the foreign key property(s) are not exposed in the object model then use the Map method. The type of the key. A lambda expression representing the property to be used as the foreign key. If the foreign key is made up of multiple properties then specify an anonymous type including the properties. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the principal entity type. A configuration object that can be used to further configure the relationship. Configures the table and column mapping of a relationship that does not expose foreign key properties in the object model. This configuration functionality is available via the Code First Fluent API, see . Configures the name of the column(s) for the foreign key. The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures the table name that the foreign key column(s) reside in. The table that is specified must already be mapped for the entity type. If you want the foreign key(s) to reside in their own table then use the Map method on to perform entity splitting to create the table with just the primary key property. Foreign keys can then be added to the table via this method. Name of the table. The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures the table name and schema that the foreign key column(s) reside in. The table that is specified must already be mapped for the entity type. If you want the foreign key(s) to reside in their own table then use the Map method on to perform entity splitting to create the table with just the primary key property. Foreign keys can then be added to the table via this method. Name of the table. Schema of the table. The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures the table and column mapping of a many:many relationship. This configuration functionality is available via the Code First Fluent API, see . Configures the join table name for the relationship. Name of the table. The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures the join table name and schema for the relationship. Name of the table. Schema of the table. The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures the name of the column(s) for the left foreign key. The left foreign key represents the navigation property specified in the HasMany call. The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures the name of the column(s) for the right foreign key. The right foreign key represents the navigation property specified in the WithMany call. The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures a many:many relationship. This configuration functionality is available via the Code First Fluent API, see . Configures the foreign key column(s) and table used to store the relationship. Action that configures the foreign key column(s) and table. Used to configure a property of an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Used to configure a property with length facets for an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Used to configure a primitive property of an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Configures the property to be optional. The database column used to store this property will be nullable. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the property to be required. The database column used to store this property will be non-nullable. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures how values for the property are generated by the database. The pattern used to generate values for the property in the database. Setting 'null' will remove the database generated pattern facet from the property. Setting 'null' will cause the same runtime behavior as specifying 'None'. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the property to be used as an optimistic concurrency token. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property is to be used as an optimistic concurrency token. Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the data type of the database column used to store the property. Name of the database provider specific data type. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the name of the database column used to store the property. The name of the column. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the order of the database column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The order that this column should appear in the database table. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the property to allow the maximum length supported by the database provider. The same LengthPropertyConfiguration instance so that multiple calls can be chained. Configures the property to have the specified maximum length. The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column. The same LengthPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be fixed length. Use HasMaxLength to set the length that the property is fixed to. The same LengthPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be variable length. Properties are variable length by default. The same LengthPropertyConfiguration instance so that multiple calls can be chained. Configures the property to allow the maximum length supported by the database provider. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to have the specified maximum length. The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be fixed length. Use HasMaxLength to set the length that the property is fixed to. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be variable length. properties are variable length by default. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be optional. The database column used to store this property will be nullable. properties are optional by default. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be required. The database column used to store this property will be non-nullable. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures how values for the property are generated by the database. The pattern used to generate values for the property in the database. Setting 'null' will remove the database generated pattern facet from the property. Setting 'null' will cause the same runtime behavior as specifying 'None'. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be used as an optimistic concurrency token. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property is to be used as an optimistic concurrency token. Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the name of the database column used to store the property. The name of the column. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the data type of the database column used to store the property. Name of the database provider specific data type. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the order of the database column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The order that this column should appear in the database table. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be a row version in the database. The actual data type will vary depending on the database provider being used. Setting the property to be a row version will automatically configure it to be an optimistic concurrency token. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Used to configure a property of an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Configures the property to be optional. The database column used to store this property will be nullable. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the property to be required. The database column used to store this property will be non-nullable. properties are required by default. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures how values for the property are generated by the database. The pattern used to generate values for the property in the database. Setting 'null' will remove the database generated pattern facet from the property. Setting 'null' will cause the same runtime behavior as specifying 'None'. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the property to be used as an optimistic concurrency token. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property is to be used as an optimistic concurrency token. Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the name of the database column used to store the property. The name of the column. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the data type of the database column used to store the property. Name of the database provider specific data type. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the order of the database column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The order that this column should appear in the database table. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the precision of the property. If the database provider does not support precision for the data type of the column then the value is ignored. Precision of the property. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Used to configure a property of an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Configures the property to be optional. The database column used to store this property will be nullable. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be required. The database column used to store this property will be non-nullable. properties are required by default. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures how values for the property are generated by the database. The pattern used to generate values for the property in the database. Setting 'null' will remove the database generated pattern facet from the property. Setting 'null' will cause the same runtime behavior as specifying 'None'. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be used as an optimistic concurrency token. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property is to be used as an optimistic concurrency token. Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the name of the database column used to store the property. The name of the column. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the data type of the database column used to store the property. Name of the database provider specific data type. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the order of the database column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The order that this column should appear in the database table. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the precision and scale of the property. The precision of the property. The scale of the property. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Used to configure a property of an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Configures the property to allow the maximum length supported by the database provider. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to have the specified maximum length. The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column.. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be fixed length. Use HasMaxLength to set the length that the property is fixed to. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be variable length. properties are variable length by default. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be optional. The database column used to store this property will be nullable. properties are optional by default. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be required. The database column used to store this property will be non-nullable. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures how values for the property are generated by the database. The pattern used to generate values for the property in the database. Setting 'null' will remove the database generated pattern facet from the property. Setting 'null' will cause the same runtime behavior as specifying 'None'. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be used as an optimistic concurrency token. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property is to be used as an optimistic concurrency token. Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the name of the database column used to store the property. The name of the column. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the data type of the database column used to store the property. Name of the database provider specific data type. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the order of the database column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The order that this column should appear in the database table. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to support Unicode string content. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property supports Unicode string content. Value indicating if the property supports Unicode string content or not. Specifying 'null' will remove the Unicode facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same StringPropertyConfiguration instance so that multiple calls can be chained. Indicates what parts of a configuration are overridable. Nothing in the configuration is overridable. The configuration values related to C-Space are overridable. The configuration values only related to S-Space are overridable. True if this configuration can be replaced in the model configuration, false otherwise This is only set to true for configurations that are registered automatically via the DbContext Base class for conventions that process CLR attributes found in the model. The type of member to look for. The type of the configuration to look for. The type of the attribute to look for. Convention to process instances of found on properties in the model Convention to process instances of found on properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on foreign key properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on navigation properties in the model. Convention to process instances of found on primitive properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on types in the model. Convention to process instances of found on types in the model. Convention to process instances of found on types in the model. Convention to detect navigation properties to be inverses of each other when only one pair of navigation properties exists between the related types. Convention to configure a type as a complex type if it has no primary key, no mapped base type and no navigation properties. Convention to convert any data types that were explicitly specified, via data annotations or API, to be lower case. The default SqlClient provider is case sensitive and requires data types to be lower case. This convention allows the and API to be case insensitive. Convention to add a cascade delete to the join table from both tables involved in a many to many relationship. Convention to ensure an invalid/unsupported mapping is not created when mapping inherited properties Convention to set the table name to be a pluralized version of the entity type name. Convention to set precision to 18 and scale to 2 for decimal properties. Convention to move primary key properties to appear first. Convention to distinguish between optional and required relationships based on CLR nullability of the foreign key property. Convention to process instances of found on navigation properties in the model. Convention to detect primary key properties. Recognized naming patterns in order of precedence are: 1. 'Id' 2. [type name]Id Primary key detection is case insensitive. Convention to discover foreign key properties whose names are a combination of the dependent navigation property name and the principal type primary key property name(s). Convention to enable cascade delete for any required relationships. Convention to configure the primary key(s) of the dependent entity type as foreign key(s) in a one:one relationship. Convention to set the entity set name to be a pluralized version of the entity type name. Convention to discover foreign key properties whose names match the principal type primary key property name(s). Convention to set a default maximum length of 128 for properties whose type supports length facets. Convention to set a default maximum length of 4000 for properties whose type supports length facets when SqlCe is the provider. Convention to configure integer primary keys to be identity. Checks for the PK property being an FK in a different table. A PK which is also an FK but in the same table is used for table splitting and can still be an identity column because the update pipeline is only inserting into one column of one table. Convention to discover foreign key properties whose names are a combination of the principal type name and the principal type primary key property name(s). This class provide service for both the singularization and pluralization, it takes the word pairs in the ctor following the rules that the first one is singular and the second one is plural. Factory method for PluralizationService. Only support english pluralization. Please set the PluralizationService on the System.Data.Entity.Design.EntityModelSchemaGenerator to extend the service to other locales. CultureInfo PluralizationService captalize the return word if the parameter is capitalized if word is "Table", then return "Tables" separate one combine word in to two parts, prefix word and the last word(suffix word) return true when the word is "[\s]*" or leading or tailing with spaces or contains non alphabetical characters This method allow you to add word to internal PluralizationService of English. If the singluar or the plural value was already added by this method, then an ArgumentException will be thrown. Attempt to determine the principal and dependent ends of this association. The following table illustrates the solution space. Source | Target || Prin | Dep | -------|--------||-------|-------| 1 | 1 || - | - | 1 | 0..1 || Sr | Ta | 1 | * || Sr | Ta | 0..1 | 1 || Ta | Sr | 0..1 | 0..1 || - | - | 0..1 | * || Sr | Ta | * | 1 || Ta | Sr | * | 0..1 || Ta | Sr | * | * || - | - | Allows configuration to be performed for an entity type in a model. An EntityTypeConfiguration can be obtained via the Entity method on or a custom type derived from EntityTypeConfiguration can be registered via the Configurations property on . Initializes a new instance of EntityTypeConfiguration Configures the primary key property(s) for this entity type. The type of the key. A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } The same EntityTypeConfiguration instance so that multiple calls can be chained. Configures the entity set name to be used for this entity type. The entity set name can only be configured for the base type in each set. The name of the entity set. The same EntityTypeConfiguration instance so that multiple calls can be chained. Configures the table name that this entity type is mapped to. The name of the table. Configures the table name that this entity type is mapped to. The name of the table. The database schema of the table. Allows advanced configuration related to how this entity type is mapped to the database schema. By default, any configuration will also apply to any type derived from this entity type. Derived types can be configured via the overload of Map that configures a derived type or by using an EntityTypeConfiguration for the derived type. The properties of an entity can be split between multiple tables using multiple Map calls. Calls to Map are additive, subsequent calls will not override configuration already preformed via Map. An action that performs configuration against an . The same EntityTypeConfiguration instance so that multiple calls can be chained. Allows advanced configuration related to how a derived entity type is mapped to the database schema. Calls to Map are additive, subsequent calls will not override configuration already preformed via Map. The derived entity type to be configured. An action that performs configuration against an . The same EntityTypeConfiguration instance so that multiple calls can be chained. Configures an optional relationship from this entity type. Instances of the entity type will be able to be saved to the database without this relationship being specified. The foreign key in the database will be nullable. The type of the entity at the other end of the relationship. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures a required relationship from this entity type. Instances of the entity type will not be able to be saved to the database unless this relationship is specified. The foreign key in the database will be non-nullable. The type of the entity at the other end of the relationship. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures a many relationship from this entity type. The type of the entity at the other end of the relationship. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Handles mapping from a CLR property to an EDM assocation and nav. prop. Exception thrown by during model creation when an invalid model is generated. Initializes a new instance of ModelValidationException Initializes a new instance of ModelValidationException The exception message. Initializes a new instance of ModelValidationException The exception message. The inner exception. Code Contracts hook methods - Called when contracts fail. Here we detect the most common preconditions so we can throw the correct exceptions. It also means that we can write preconditions using the simplest Contract.Requires() form. Returns true if a variable of this type can be assigned a null value True if a reference type or a nullable value type, false otherwise Exception thrown from when validating entities fails. Initializes a new instance of DbEntityValidationException Initializes a new instance of DbEntityValidationException The exception message. Initializes a new instance of DbEntityValidationException The exception message. Validation results. Initializes a new instance of DbEntityValidationException The exception message. The inner exception. Initializes a new instance of DbEntityValidationException The exception message. Validation results. The inner exception. Subscribes the SerializeObjectState event. Validation results. Holds exception state that will be serialized when the exception is serialized. Validation results. Completes the deserialization. The deserialized object. Validation results. Represents validation results for single entity. Entity entry the results applies to. Never null. List of instances. Never null. Can be empty meaning the entity is valid. Creates an instance of class. Entity entry the results applies to. Never null. List of instances. Never null. Can be empty meaning the entity is valid. Creates an instance of class. Entity entry the results applies to. Never null. List of instances. Never null. Can be empty meaning the entity is valid. Gets an instance of the results applies to. Gets validation errors. Never null. Gets an indicator if the entity is valid. Exception thrown from when an exception is thrown from the validation code. Initializes a new instance of DbUnexpectedValidationException The exception message. Initializes a new instance of DbUnexpectedValidationException The exception message. Initializes a new instance of DbUnexpectedValidationException The exception message. The inner exception. Initializes a new instance of DbUnexpectedValidationException with the specified serialization info and context. The serialization info. The streaming context. Validation error. Can be either entity or property level validation error. Name of the invalid property. Can be null (e.g. for entity level validations) Validation error message. Creates an instance of . Name of the invalid property. Can be null. Validation error message. Can be null. Gets name of the invalid property. Gets validation error message. ================================================ FILE: packages/EntityFramework.5.0.0/lib/net45/EntityFramework.xml ================================================ EntityFramework The base for all all Entity Data Model (EDM) types that represent a type from the EDM type system. Represents an item in an Entity Data Model (EDM) . The base for all all Entity Data Model (EDM) item types that with a Name property that represents a qualified (can be dotted) name. The base for all all Entity Data Model (EDM) item types that with a property. The base for all all Entity Data Model (EDM) types that support annotation using . EdmDataModelItem is the base for all types in the Entity Data Model (EDM) metadata construction and modification API. DataModelItem is the base for all types in the EDM metadata reflection, construction and modification API. Gets an value indicating which Entity Data Model (EDM) concept is represented by this item. IAnnotatedDataModelItem is implemented by model-specific base types for all types with an property. Gets or sets the currently assigned annotations. Gets or sets the currently assigned annotations. Returns all EdmItem children directly contained by this EdmItem. INamedDataModelItem is implemented by model-specific base types for all types with a property. Gets or sets the currently assigned name. Gets or sets the currently assigned name. Gets a value indicating whether this type is abstract. Gets the optional base type of this type. EdmStructuralMember is the base for all types that represent members of structural items in the Entity Data Model (EDM) metadata construction and modification API. Represents information about a database connection. Creates a new instance of DbConnectionInfo representing a connection that is specified in the application configuration file. The name of the connection string in the application configuration. Creates a new instance of DbConnectionInfo based on a connection string. The connection string to use for the connection. The name of the provider to use for the connection. Use 'System.Data.SqlClient' for SQL Server. Gets the connection information represented by this instance. Configuration to use if connection comes from the configuration file. Instances of this class are used to create DbConnection objects for SQL Server LocalDb based on a given database name or connection string. An instance of this class can be set on the class or in the app.config/web.config for the application to cause all DbContexts created with no connection information or just a database name to use SQL Server LocalDb by default. This class is immutable since multiple threads may access instances simultaneously when creating connections. Implementations of this interface are used to create DbConnection objects for a type of database server based on a given database name. An Instance is set on the class to cause all DbContexts created with no connection information or just a database name or connection string to use a certain type of database server by default. Two implementations of this interface are provided: is used to create connections to Microsoft SQL Server, including EXPRESS editions. is used to create connections to Microsoft SQL Server Compact Editions. Other implementations for other database servers can be added as needed. Note that implementations should be thread safe or immutable since they may be accessed by multiple threads at the same time. Creates a connection based on the given database name or connection string. The database name or connection string. An initialized DbConnection. Creates a new instance of the connection factory for the given version of LocalDb. For SQL Server 2012 LocalDb use "v11.0". The LocalDb version to use. Creates a new instance of the connection factory for the given version of LocalDb. For SQL Server 2012 LocalDb use "v11.0". The LocalDb version to use. The connection string to use for options to the database other than the 'Initial Catalog', 'Data Source', and 'AttachDbFilename'. The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the database name when CreateConnection is called. The 'Data Source' will be set based on the LocalDbVersion argument. Creates a connection for SQL Server LocalDb based on the given database name or connection string. If the given string contains an '=' character then it is treated as a full connection string, otherwise it is treated as a database name only. The database name or connection string. An initialized DbConnection. The connection string to use for options to the database other than the 'Initial Catalog', 'Data Source', and 'AttachDbFilename'. The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the database name when CreateConnection is called. The 'Data Source' will be set based on the LocalDbVersion argument. The default is 'Integrated Security=True; MultipleActiveResultSets=True;'. Encapsulates a cloned and store . Note that these objects are disposable and should be used in a using block to ensure both the cloned context and the cloned connection are disposed. For mocking. Creates a clone of the given . The underlying of the context is also cloned and the given connection string is used for the connection string of the cloned connection. Finds the assemblies that were used for loading o-space types in the source context and loads those assemblies in the cloned context. Disposes both the underlying ObjectContext and its store connection. The cloned context. This is always the store connection of the underlying ObjectContext. Represents setting the database initializer for a specific context type Represents a parameter to be passed to a method Represents a series of parameters to pass to a method Adds a new parameter to the collection Used for unit testing Represents the configuration for a series of contexts Adds a new context to the collection Used for unit testing Represents the configuration for a specific context type Represents setting the default connection factory Represents all Entity Framework related configuration Handles creating databases either using the core provider or the Migrations pipeline. Creates a database using the core provider (i.e. ObjectContext.CreateDatabase) or by using Code First Migrations to create an empty database and the perform an automatic migration to the current model. Migrations is used if Code First is being used and the EF provider is for SQL Server or SQL Compact. The core is used for non-Code First models and for other providers even when using Code First. A DbContext instance represents a combination of the Unit Of Work and Repository patterns such that it can be used to query from a database and group together changes that will then be written back to the store as a unit. DbContext is conceptually similar to ObjectContext. DbContext is usually used with a derived type that contains properties for the root entities of the model. These sets are automatically initialized when the instance of the derived class is created. This behavior can be modified by applying the attribute to either the entire derived context class, or to individual properties on the class. The Entity Data Model backing the context can be specified in several ways. When using the Code First approach, the properties on the derived context are used to build a model by convention. The protected OnModelCreating method can be overridden to tweak this model. More control over the model used for the Model First approach can be obtained by creating a explicitly from a and passing this model to one of the DbContext constructors. When using the Database First or Model First approach the Entity Data Model can be created using the Entity Designer (or manually through creation of an EDMX file) and then this model can be specified using entity connection string or an object. The connection to the database (including the name of the database) can be specified in several ways. If the parameterless DbContext constructor is called from a derived context, then the name of the derived context is used to find a connection string in the app.config or web.config file. If no connection string is found, then the name is passed to the DefaultConnectionFactory registered on the class. The connection factory then uses the context name as the database name in a default connection string. (This default connection string points to .\SQLEXPRESS on the local machine unless a different DefaultConnectionFactory is registered.) Instead of using the derived context name, the connection/database name can also be specified explicitly by passing the name to one of the DbContext constructors that takes a string. The name can also be passed in the form "name=myname", in which case the name must be found in the config file or an exception will be thrown. Note that the connection found in the app.config or web.config file can be a normal database connection string (not a special Entity Framework connection string) in which case the DbContext will use Code First. However, if the connection found in the config file is a special Entity Framework connection string, then the DbContext will use Database/Model First and the model specified in the connection string will be used. An existing or explicitly created DbConnection can also be used instead of the database/connection name. A can be applied to a class derived from DbContext to set the version of conventions used by the context when it creates a model. If no attribute is applied then the latest version of conventions will be used. Interface implemented by objects that can provide an instance. The class implements this interface to provide access to the underlying ObjectContext. Gets the object context. The object context. Constructs a new context instance using conventions to create the name of the database to which a connection will be made. The by-convention name is the full name (namespace + class name) of the derived context class. See the class remarks for how this is used to create a connection. Constructs a new context instance using conventions to create the name of the database to which a connection will be made, and initializes it from the given model. The by-convention name is the full name (namespace + class name) of the derived context class. See the class remarks for how this is used to create a connection. The model that will back this context. Constructs a new context instance using the given string as the name or connection string for the database to which a connection will be made. See the class remarks for how this is used to create a connection. Either the database name or a connection string. Constructs a new context instance using the given string as the name or connection string for the database to which a connection will be made, and initializes it from the given model. See the class remarks for how this is used to create a connection. Either the database name or a connection string. The model that will back this context. Constructs a new context instance using the existing connection to connect to a database. The connection will not be disposed when the context is disposed. An existing connection to use for the new context. If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. Constructs a new context instance using the existing connection to connect to a database, and initializes it from the given model. The connection will not be disposed when the context is disposed. An existing connection to use for the new context. The model that will back this context. If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. Constructs a new context instance around an existing ObjectContext. An existing ObjectContext to wrap with the new context. If set to true the ObjectContext is disposed when the DbContext is disposed, otherwise the caller must dispose the connection. Initializes the internal context, discovers and initializes sets, and initializes from a model if one is provided. Discovers DbSets and initializes them. This method is called when the model for a derived context has been initialized, but before the model has been locked down and used to initialize the context. The default implementation of this method does nothing, but it can be overridden in a derived class such that the model can be further configured before it is locked down. Typically, this method is called only once when the first instance of a derived context is created. The model for that context is then cached and is for all further instances of the context in the app domain. This caching can be disabled by setting the ModelCaching property on the given ModelBuidler, but note that this can seriously degrade performance. More control over caching is provided through use of the DbModelBuilder and DbContextFactory classes directly. The builder that defines the model for the context being created. Internal method used to make the call to the real OnModelCreating method. The model builder. Returns a DbSet instance for access to entities of the given type in the context, the ObjectStateManager, and the underlying store. See the DbSet class for more details. The type entity for which a set should be returned. A set for the given entity type. Returns a non-generic DbSet instance for access to entities of the given type in the context, the ObjectStateManager, and the underlying store. The type of entity for which a set should be returned. A set for the given entity type. See the DbSet class for more details. Saves all changes made in this context to the underlying database. The number of objects written to the underlying database. Thrown if the context has been disposed. Validates tracked entities and returns a Collection of containing validation results. Collection of validation results for invalid entities. The collection is never null and must not contain null values or results for valid entities. 1. This method calls DetectChanges() to determine states of the tracked entities unless DbContextConfiguration.AutoDetectChangesEnabled is set to false. 2. By default only Added on Modified entities are validated. The user is able to change this behavior by overriding ShouldValidateEntity method. Extension point allowing the user to override the default behavior of validating only added and modified entities. DbEntityEntry instance that is supposed to be validated. true to proceed with validation. false otherwise. Extension point allowing the user to customize validation of an entity or filter out validation results. Called by . DbEntityEntry instance to be validated. User defined dictionary containing additional info for custom validation. It will be passed to and will be exposed as . This parameter is optional and can be null. Entity validation result. Possibly null when overridden. Internal method that calls the protected ValidateEntity method. DbEntityEntry instance to be validated. User defined dictionary containing additional info for custom validation. It will be passed to and will be exposed as . This parameter is optional and can be null. Entity validation result. Possibly null when ValidateEntity is overridden. Gets a object for the given entity providing access to information about the entity and the ability to perform actions on the entity. The type of the entity. The entity. An entry for the entity. Gets a object for the given entity providing access to information about the entity and the ability to perform actions on the entity. The entity. An entry for the entity. Calls the protected Dispose method. Disposes the context. The underlying is also disposed if it was created is by this context or ownership was passed to this context when this context was created. The connection to the database ( object) is also disposed if it was created is by this context or ownership was passed to this context when this context was created. true to release both managed and unmanaged resources; false to release only unmanaged resources. Creates a Database instance for this context that allows for creation/deletion/existence checks for the underlying database. Returns the Entity Framework ObjectContext that is underlying this context. Thrown if the context has been disposed. Provides access to features of the context that deal with change tracking of entities. An object used to access features that deal with change tracking. Provides access to configuration options for the context. An object used to access configuration options. Provides access to the underlying InternalContext for other parts of the internal design. A simple representation of an app.config or web.config file. Initializes a new instance of AppConfig based on supplied configuration Configuration to load settings from Initializes a new instance of AppConfig based on supplied connection strings The default configuration for database initializers and default connection factory will be used Connection strings to be used Initializes a new instance of AppConfig based on the for the AppDomain Use AppConfig.DefaultInstance instead of this constructor Appies any database intializers specified in the configuration Appies any database intializers specified in the configuration Value indicating if initializers should be re-applied if they have already been applied in this AppDomain Gets the specified connection string from the configuration Name of the connection string to get The connection string, or null if there is no connection string with the specified name Gets the default connection factory based on the configuration Gets a singleton instance of configuration based on the for the AppDomain Acts as a proxy for that for the most part just passes calls through to the real object but uses virtual methods/properties such that uses of the object can be mocked. Encapsulates information read from the application config file that specifies a database initializer and allows that initializer to be dynamically applied. Initializes a new instance of the class. The key from the entry in the config file. The value from the enrty in the config file. Uses the context type and initializer type specified in the config to create an initializer instance and set it with the DbDbatabase.SetInitializer method. Reads all initializers from the application config file and sets them using the Database class. Calculates the model hash values used the EdmMetadata table from EF 4.1/4.2. Calculates an SHA256 hash of the EDMX from the given code first model. This is the hash stored in the database in the EdmMetadata table in EF 4.1/4.2. The hash is always calculated using a v2 schema as was generated by EF 4.1/4.2 and with the entity included in the model. Acts as a proxy for that for the most part just passes calls through to the real object but uses virtual methods/properties such that uses of the object can be mocked. An implementation of that will use Code First Migrations to update the database to the latest version. Executes the strategy to initialize the database for the given context. The context. Initializes a new instance of the MigrateDatabaseToLatestVersion class. Initializes a new instance of the MigrateDatabaseToLatestVersion class that will use a specific connection string from the configuration file to connect to the database to perform the migration. The name of the connection string to use for migration. Helper class that is used to configure a column. Creates a new column definition to store Binary data. Value indicating whether or not the column allows null values. The maximum allowable length of the array data. Value indicating whether or not all data should be padded to the maximum length. Value indicating whether or not the maximum length supported by the database provider should be used. Constant value to use as the default value for this column. SQL expression used as the default value for this column. Value indicating whether or not this column should be configured as a timestamp. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store Boolean data. Value indicating whether or not the column allows null values. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store Byte data. Value indicating whether or not the column allows null values. Value indicating whether or not the database will generate values for this column during insert. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store DateTime data. Value indicating whether or not the column allows null values. The precision of the column. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store Decimal data. Value indicating whether or not the column allows null values. The numeric precision of the column. The numeric scale of the column. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Value indicating whether or not the database will generate values for this column during insert. The newly constructed column definition. Creates a new column definition to store Double data. Value indicating whether or not the column allows null values. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store GUID data. Value indicating whether or not the column allows null values. Value indicating whether or not the database will generate values for this column during insert. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store Single data. Value indicating whether or not the column allows null values. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store Short data. Value indicating whether or not the column allows null values. Value indicating whether or not the database will generate values for this column during insert. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store Integer data. Value indicating whether or not the column allows null values. Value indicating whether or not the database will generate values for this column during insert. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store Long data. Value indicating whether or not the column allows null values. Value indicating whether or not the database will generate values for this column during insert. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store String data. Value indicating whether or not the column allows null values. The maximum allowable length of the string data. Value indicating whether or not all data should be padded to the maximum length. Value indicating whether or not the maximum length supported by the database provider should be used. Value indicating whether or not the column supports Unicode content. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store Time data. Value indicating whether or not the column allows null values. The precision of the column. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store DateTimeOffset data. Value indicating whether or not the column allows null values. The precision of the column. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store geography data. Value indicating whether or not the column allows null values. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Creates a new column definition to store geometry data. Value indicating whether or not the column allows null values. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. The newly constructed column definition. Helper class that is used to further configure a table being created from a CreateTable call on . Initializes a new instance of the TableBuilder class. The table creation operation to be further configured. The migration the table is created in. Specifies a primary key for the table. A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } The name of the primary key. If null is supplied, a default name will be generated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Itself, so that multiple calls can be chained. Specifies an index to be created on the table. A lambda expression representing the property to be indexed. C#: t => t.PropertyOne VB.Net: Function(t) t.PropertyOne If multiple properties are to be indexed then specify an anonymous type including the properties. C#: t => new { t.PropertyOne, t.PropertyTwo } VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } A value indicating whether or not this is a unique index. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Itself, so that multiple calls can be chained. Specifies a foreign key constraint to be created on the table. Name of the table that the foreign key constraint targets. A lambda expression representing the properties of the foreign key. C#: t => t.PropertyOne VB.Net: Function(t) t.PropertyOne If multiple properties make up the foreign key then specify an anonymous type including the properties. C#: t => new { t.PropertyOne, t.PropertyTwo } VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } A value indicating whether or not cascade delete should be configured on the foreign key constraint. The name of this foreign key constraint. If no name is supplied, a default name will be calculated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Itself, so that multiple calls can be chained. Base class for code-based migrations. Operations to be performed during the upgrade process. Operations to be performed during the downgrade process. Adds an operation to create a new table. The columns in this create table operation. You do not need to specify this type, it will be inferred from the columnsAction parameter you supply. The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. An action that specifies the columns to be included in the table. i.e. t => new { Id = t.Int(identity: true), Name = t.String() } Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. An object that allows further configuration of the table creation operation. Adds an operation to create a new foreign key constraint. The table that contains the foreign key column. Schema name is optional, if no schema is specified then dbo is assumed. The foreign key column. The table that contains the column this foreign key references. Schema name is optional, if no schema is specified then dbo is assumed. The column this foreign key references. If no value is supplied the primary key of the principal table will be referenced. A value indicating if cascade delete should be configured for the foreign key relationship. If no value is supplied, cascade delete will be off. The name of the foreign key constraint in the database. If no value is supplied a unique name will be generated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to create a new foreign key constraint. The table that contains the foreign key columns. Schema name is optional, if no schema is specified then dbo is assumed. The foreign key columns. The table that contains the columns this foreign key references. Schema name is optional, if no schema is specified then dbo is assumed. The columns this foreign key references. If no value is supplied the primary key of the principal table will be referenced. A value indicating if cascade delete should be configured for the foreign key relationship. If no value is supplied, cascade delete will be off. The name of the foreign key constraint in the database. If no value is supplied a unique name will be generated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a foreign key constraint based on its name. The table that contains the foreign key column. Schema name is optional, if no schema is specified then dbo is assumed. The name of the foreign key constraint in the database. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a foreign key constraint based on the column it targets. The table that contains the foreign key column. Schema name is optional, if no schema is specified then dbo is assumed. The foreign key column. The table that contains the column this foreign key references. Schema name is optional, if no schema is specified then dbo is assumed. The columns this foreign key references. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a foreign key constraint based on the columns it targets. The table that contains the foreign key columns. Schema name is optional, if no schema is specified then dbo is assumed. The foreign key columns. The table that contains the columns this foreign key references. Schema name is optional, if no schema is specified then dbo is assumed. The columns this foreign key references. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a table. The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is assumed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to move a table to a new schema. The name of the table to be moved. Schema name is optional, if no schema is specified then dbo is assumed. The schema the table is to be moved to. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to rename a table. To change the schema of a table use MoveTable The name of the table to be renamed. Schema name is optional, if no schema is specified then dbo is assumed. The new name for the table. Schema name is optional, if no schema is specified then dbo is assumed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to rename a column. The name of the table that contains the column to be renamed. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column to be renamed. The new name for the column. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to add a column to an existing table. The name of the table to add the column to. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column to be added. An action that specifies the column to be added. i.e. c => c.Int(nullable: false, defaultValue: 3) Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an existing column. The name of the table to drop the column from. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column to be dropped. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to alter the definition of an existing column. The name of the table the column exists in. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column to be changed. An action that specifies the new definition for the column. i.e. c => c.String(nullable: false, defaultValue: "none") Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to create a new primary key. The table that contains the primary key column. Schema name is optional, if no schema is specified then dbo is assumed. The primary key column. The name of the primary key in the database. If no value is supplied a unique name will be generated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to create a new primary key based on multiple columns. The table that contains the primary key columns. Schema name is optional, if no schema is specified then dbo is assumed. The primary key columns. The name of the primary key in the database. If no value is supplied a unique name will be generated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an existing primary key that does not have the default name. The table that contains the primary key column. Schema name is optional, if no schema is specified then dbo is assumed. The name of the primary key to be dropped. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an existing primary key that was created with the default name. The table that contains the primary key column. Schema name is optional, if no schema is specified then dbo is assumed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to create an index on a single column. The name of the table to create the index on. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column to create the index on. A value indicating if this is a unique index. If no value is supplied a non-unique index will be created. The name to use for the index in the database. If no value is supplied a unique name will be generated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to create an index on multiple columns. The name of the table to create the index on. Schema name is optional, if no schema is specified then dbo is assumed. The name of the columns to create the index on. A value indicating if this is a unique index. If no value is supplied a non-unique index will be created. The name to use for the index in the database. If no value is supplied a unique name will be generated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an index based on its name. The name of the table to drop the index from. Schema name is optional, if no schema is specified then dbo is assumed. The name of the index to be dropped. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an index based on the columns it targets. The name of the table to drop the index from. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column(s) the index targets. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to execute a SQL command. The SQL to be executed. A value indicating if the SQL should be executed outside of the transaction being used for the migration process. If no value is supplied the SQL will be executed within the transaction. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Configuration relating to the use of migrations for a given model. You will typically create a configuration class that derives from rather than using this class. Initializes a new instance of the DbMigrationsConfiguration class. Adds a new SQL generator to be used for a given database provider. Name of the database provider to set the SQL generator for. The SQL generator to be used. Gets the SQL generator that is set to be used with a given database provider. Name of the database provider to get the SQL generator for. The SQL generator that is set for the database provider. Gets or sets a value indicating if automatic migrations can be used when migration the database. Gets or sets a value indicating if data loss is acceptable during automatic migration. If set to false an exception will be thrown if data loss may occur as part of an automatic migration. Gets or sets the derived DbContext representing the model to be migrated. Gets or sets the namespace used for code-based migrations. Gets or sets the sub-directory that code-based migrations are stored in. Gets or sets the code generator to be used when scaffolding migrations. Gets or sets the assembly containing code-based migrations. Gets or sets a value to override the connection of the database to be migrated. Gets or sets the timeout value used for the individual commands within a migration. A null value indicates that the default value of the underlying provider will be used. Configuration relating to the use of migrations for a given model. The context representing the model that this configuration applies to. Initializes a new instance of the DbMigrationsConfiguration class. Runs after upgrading to the latest migration to allow seed data to be updated. Context to be used for updating seed data. DbMigrator is used to apply existing migrations to a database. DbMigrator can be used to upgrade and downgrade to any given migration. To scaffold migrations based on changes to your model use Base class for decorators that wrap the core Initializes a new instance of the MigratorBase class. The migrator that this decorator is wrapping. Gets a list of the pending migrations that have not been applied to the database. List of migration Ids Updates the target database to the latest migration. Updates the target database to a given migration. The migration to upgrade/downgrade to. Gets a list of the migrations that are defined in the assembly. List of migration Ids Gets a list of the migrations that have been applied to the database. List of migration Ids Gets the configuration being used for the migrations process. Migration Id representing the state of the database before any migrations are applied. Initializes a new instance of the DbMigrator class. Configuration to be used for the migration process. Gets all migrations that are defined in the configured migrations assembly. Gets all migrations that have been applied to the target database. Gets all migrations that are defined in the assembly but haven't been applied to the target database. Updates the target database to a given migration. The migration to upgrade/downgrade to. Gets the configuration that is being used for the migration process. A set of extension methods for Adds or updates entities by key when SaveChanges is called. Equivalent to an "upsert" operation from database terminology. This method can useful when seeding data using Migrations. The entities to add or update. When the parameter is a custom or fake IDbSet implementation, this method will attempt to locate and invoke a public, instance method with the same signature as this extension method. Adds or updates entities by a custom identification expression when SaveChanges is called. Equivalent to an "upsert" operation from database terminology. This method can useful when seeding data using Migrations. An expression specifying the properties that should be used when determining whether an Add or Update operation should be performed. The entities to add or update. When the parameter is a custom or fake IDbSet implementation, this method will attempt to locate and invoke a public, instance method with the same signature as this extension method. Generates C# code for a code-based migration. Base class for providers that generate code for code-based migrations. Generates the code that should be added to the users project. Unique identifier of the migration. Operations to be performed by the migration. Source model to be stored in the migration metadata. Target model to be stored in the migration metadata. Namespace that code should be generated in. Name of the class that should be generated. The generated code. Gets the namespaces that must be output as "using" or "Imports" directives to handle the code generated by the given operations. The operations for which code is going to be generated. An ordered list of namespace names. Gets the default namespaces that must be output as "using" or "Imports" directives for any code generated. A value indicating if this class is being generated for a code-behind file. An ordered list of namespace names. Generates the primary code file that the user can view and edit. Operations to be performed by the migration. Namespace that code should be generated in. Name of the class that should be generated. The generated code. Generates the code behind file with migration metadata. Unique identifier of the migration. Source model to be stored in the migration metadata. Target model to be stored in the migration metadata. Namespace that code should be generated in. Name of the class that should be generated. The generated code. Generates a property to return the source or target model in the code behind file. Name of the property. Value to be returned. Text writer to add the generated code to. Generates a namespace, using statements and class definition. Namespace that code should be generated in. Name of the class that should be generated. Text writer to add the generated code to. Base class for the generated class. A value indicating if this class is being generated for a code-behind file. Namespaces for which using directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. Generates the closing code for a class that was started with WriteClassStart. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to specify a set of column names using a lambda expression. The columns to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to specify the definition for a . The column definition to generate code for. Text writer to add the generated code to. A value indicating whether to include the column name in the definition. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column of unknown data type. The value to be used as the default. Code representing the default value. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Removes any invalid characters from the name of an database artifact. The name to be scrubbed. The scrubbed name. Gets the type name to use for a column of the given data type. The data type to translate. The type name to use in the generated migration. Quotes an identifier using appropriate escaping to allow it to be stored in a string. The identifier to be quoted. The quoted identifier. Scaffolds code-based migrations to apply pending model changes to the database. Initializes a new instance of the MigrationScaffolder class. Configuration to be used for scaffolding. Scaffolds a code based migration to apply any pending model changes to the database. The name to use for the scaffolded migration. The scaffolded migration. Scaffolds a code based migration to apply any pending model changes to the database. The name to use for the scaffolded migration. Whether or not to include model changes. The scaffolded migration. Scaffolds the initial code-based migration corresponding to a previously run database initializer. The scaffolded migration. Gets or sets the namespace used in the migration's generated code. By default, this is the same as MigrationsNamespace on the migrations configuration object passed into the constructor. For VB.NET projects, this will need to be updated to take into account the project's root namespace. Represents a code-based migration that has been scaffolded and is ready to be written to a file. Gets or sets the unique identifier for this migration. Typically used for the file name of the generated code. Gets or sets the scaffolded migration code that the user can edit. Gets or sets the scaffolded migration code that should be stored in a code behind file. Gets or sets the programming language used for this migration. Typically used for the file extension of the generated code. Gets or sets the subdirectory in the user's project that this migration should be saved in. Gets a dictionary of string resources to add to the migration resource file. Represents an exception that occurred while running an operation in another AppDomain in the . Initializes a new instance of the ToolingException class. Error that explains the reason for the exception. The type of the exception that was thrown. The stack trace of the exception that was thrown. Gets the type of the exception that was thrown. Gets the stack trace of the exception that was thrown. Helper class that is used by design time tools to run migrations related commands that need to interact with an application that is being edited in Visual Studio. Because the application is being edited the assemblies need to be loaded in a separate AppDomain to ensure the latest version is always loaded. The App/Web.config file from the startup project is also copied to ensure that any configuration is applied. Initializes a new instance of the ToolingFacade class. The name of the assembly that contains the migrations configuration to be used. The namespace qualified name of migrations configuration to be used. The working directory containing the compiled assemblies. The path of the config file from the startup project. The path of the application data directory from the startup project. Typically the App_Data directory for web applications or the working directory for executables. The connection to the database to be migrated. If null is supplied, the default connection for the context will be used. Releases all unmanaged resources used by the facade. Gets the fully qualified name of all types deriving from . All context types found. Gets the fully qualified name of a type deriving from . The name of the context type. If null, the single context type found in the assembly will be returned. The context type found. Gets a list of all migrations that have been applied to the database. Ids of applied migrations. Gets a list of all migrations that have not been applied to the database. Ids of pending migrations. Updates the database to the specified migration. The Id of the migration to migrate to. If null is supplied, the database will be updated to the latest migration. Value indicating if data loss during automatic migration is acceptable. Generates a SQL script to migrate between two migrations. The migration to update from. If null is supplied, a script to update the current database will be produced. The migration to update to. If null is supplied, a script to update to the latest migration will be produced. Value indicating if data loss during automatic migration is acceptable. The generated SQL script. Scaffolds a code-based migration to apply any pending model changes. The name for the generated migration. The programming language of the generated migration. The root namespace of the project the migration will be added to. Whether or not to include model changes. The scaffolded migration. Scaffolds the initial code-based migration corresponding to a previously run database initializer. The programming language of the generated migration. The root namespace of the project the migration will be added to. The scaffolded migration. Releases all resources used by the facade. true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets or sets an action to be run to log information. Gets or sets an action to be run to log warnings. Gets or sets an action to be run to log verbose information. Base class for loggers that can be used for the migrations process. Logs an informational message. The message to be logged. Logs a warning that the user should be made aware of. The message to be logged. Logs some additional information that should only be presented to the user if they request verbose output. The message to be logged. Generates VB.Net code for a code-based migration. Generates the primary code file that the user can view and edit. Operations to be performed by the migration. Namespace that code should be generated in. Name of the class that should be generated. The generated code. Generates the code behind file with migration metadata. Unique identifier of the migration. Source model to be stored in the migration metadata. Target model to be stored in the migration metadata. Namespace that code should be generated in. Name of the class that should be generated. The generated code. Generates a property to return the source or target model in the code behind file. Name of the property. Value to be returned. Text writer to add the generated code to. Generates a namespace, using statements and class definition. Namespace that code should be generated in. Name of the class that should be generated. Text writer to add the generated code to. Base class for the generated class. A value indicating if this class is being generated for a code-behind file. Namespaces for which Imports directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. Generates the closing code for a class that was started with WriteClassStart. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to specify a set of column names using a lambda expression. The columns to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to specify the definition for a . The column definition to generate code for. Text writer to add the generated code to. A value indicating whether to include the column name in the definition. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column of unknown data type. The value to be used as the default. Code representing the default value. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Removes any invalid characters from the name of an database artifact. The name to be scrubbed. The scrubbed name. Gets the type name to use for a column of the given data type. The data type to translate. The type name to use in the generated migration. Quotes an identifier using appropriate escaping to allow it to be stored in a string. The identifier to be quoted. The quoted identifier. This class is used by Code First Migrations to read and write migration history from the database. It is not intended to be used by other code and is only public so that it can be accessed by EF when running under partial trust. It may be changed or removed in the future. Gets or sets the Id of the migration this row represents. Gets or sets the date and time that this migrations history entry was created. Gets or sets the state of the model after this migration was applied. Gets or sets the version of Entity Framework that created this entry. This is a version of the HistoryContext that still includes CreatedOn in its model. It is used when figuring out whether or not the CreatedOn column exists and so should be dropped. Represents an error that occurs when an automatic migration would result in data loss. Represents errors that occur inside the Code First Migrations pipeline. Initializes a new instance of the MigrationsException class. Initializes a new instance of the MigrationsException class. The message that describes the error. Initializes a new instance of the MigrationsException class. The message that describes the error. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the MigrationsException class with serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. Initializes a new instance of the AutomaticDataLossException class. The message that describes the error. Represents an error that occurs when there are pending model changes after applying the last migration and automatic migration is disabled. Initializes a new instance of the AutomaticMigrationsDisabledException class. The message that describes the error. Provides additional metadata about a code-based migration. Gets the unique identifier for the migration. Gets the state of the model before this migration is run. Gets the state of the model after this migration is run. Decorator to provide logging during migrations operations.. Initializes a new instance of the MigratorLoggingDecorator class. The migrator that this decorator is wrapping. The logger to write messages to. Decorator to produce a SQL script instead of applying changes to the database. Using this decorator to wrap will prevent from applying any changes to the target database. Initializes a new instance of the MigratorScriptingDecorator class. The migrator that this decorator is wrapping. Represents a column being added to a table. Represents an operation to modify a database schema. Initializes a new instance of the MigrationOperation class. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets additional arguments that may be processed by providers. Gets an operation that will revert this operation. Gets a value indicating if this operation may result in data loss. Initializes a new instance of the AddColumnOperation class. The name of the table the column should be added to. Details of the column being added. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table the column should be added to. Gets the details of the column being added. Gets an operation that represents dropping the added column. Represents a foreign key constraint being added to a table. Base class for changes that affect foreign key constraints. Initializes a new instance of the ForeignKeyOperation class. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets or sets the name of the table that the foreign key constraint targets. Gets or sets the name of the table that the foreign key columns exist in. The names of the foreign key column(s). Gets a value indicating if a specific name has been supplied for this foreign key constraint. Gets or sets the name of this foreign key constraint. If no name is supplied, a default name will be calculated. Initializes a new instance of the AddForeignKeyOperation class. The PrincipalTable, PrincipalColumns, DependentTable and DependentColumns properties should also be populated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation to create an index on the foreign key column(s). An operation to add the index. The names of the column(s) that the foreign key constraint should target. Gets or sets a value indicating if cascade delete should be configured on the foreign key constraint. Gets an operation to drop the foreign key constraint. Represents adding a primary key to a table. Common base class to represent operations affecting primary keys. Initializes a new instance of the PrimaryKeyOperation class. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets or sets the name of the table that contains the primary key. Gets the column(s) that make up the primary key. Gets a value indicating if a specific name has been supplied for this primary key. Gets or sets the name of this primary key. If no name is supplied, a default name will be calculated. Initializes a new instance of the AddPrimaryKeyOperation class. The Table and Columns properties should also be populated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation to drop the primary key. Represents altering an existing column. Initializes a new instance of the AlterColumnOperation class. The name of the table that the column belongs to. Details of what the column should be altered to. Value indicating if this change will result in data loss. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the AlterColumnOperation class. The name of the table that the column belongs to. Details of what the column should be altered to. Value indicating if this change will result in data loss. An operation to revert this alteration of the column. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table that the column belongs to. Gets the new definition for the column. Gets an operation that represents reverting the alteration. The inverse cannot be automatically calculated, if it was not supplied to the constructor this property will return null. Represents information about a column. Initializes a new instance of the class. The data type for this column. Initializes a new instance of the class. The data type for this column. Additional details about the data type. This includes details such as maximum length, nullability etc. Determines if this column is a narrower data type than another column. Used to determine if altering the supplied column definition to this definition will result in data loss. The column to compare to. Details of the database provider being used. True if this column is of a narrower data type. Gets the data type for this column. Gets the CLR type corresponding to the database type of this column. Gets the default value for the CLR type corresponding to the database type of this column. Gets additional details about the data type of this column. This includes details such as maximum length, nullability etc. Gets or sets the name of the column. Gets or sets a provider specific data type to use for this column. Gets or sets a value indicating if this column can store null values. Gets or sets a value indicating if values for this column will be generated by the database using the identity pattern. Gets or sets the maximum length for this column. Only valid for array data types. Gets or sets the precision for this column. Only valid for decimal data types. Gets or sets the scale for this column. Only valid for decimal data types. Gets or sets a constant value to use as the default value for this column. Gets or sets a SQL expression used as the default value for this column. Gets or sets a value indicating if this column is fixed length. Only valid for array data types. Gets or sets a value indicating if this column supports Unicode characters. Only valid for textual data types. Gets or sets a value indicating if this column should be configured as a timestamp. Represents creating a database index. Common base class for operations affecting indexes. Initializes a new instance of the IndexOperation class. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets or sets the table the index belongs to. Gets or sets the columns that are indexed. Gets a value indicating if a specific name has been supplied for this index. Gets or sets the name of this index. If no name is supplied, a default name will be calculated. Initializes a new instance of the CreateIndexOperation class. The Table and Columns properties should also be populated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets or sets a value indicating if this is a unique index. Gets an operation to drop this index. Represents creating a table. Initializes a new instance of the CreateTableOperation class. Name of the table to be created. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table to be created. Gets the columns to be included in the new table. Gets or sets the primary key for the new table. Gets an operation to drop the table. Represents deleting a new record from the migrations history table. The migrations history table is used to store a log of the migrations that have been applied to the database. Common base class for operations that affect the migrations history table. The migrations history table is used to store a log of the migrations that have been applied to the database. Initializes a new instance of the HistoryOperation class. Name of the migrations history table. Name of the migration being affected. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the migrations history table. Gets the name of the migration being affected. Initializes a new instance of the DeleteHistoryOperation class. Name of the migrations history table. Id of the migration record to be deleted. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Represents a column being dropped from a table. Initializes a new instance of the DropColumnOperation class. The name of the table the column should be dropped from. The name of the column to be dropped. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropColumnOperation class. The name of the table the column should be dropped from. The name of the column to be dropped. The operation that represents reverting the drop operation. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table the column should be dropped from. Gets the name of the column to be dropped. Gets an operation that represents reverting dropping the column. The inverse cannot be automatically calculated, if it was not supplied to the constructor this property will return null. Represents a foreign key constraint being dropped from a table. Initializes a new instance of the DropForeignKeyOperation class. The PrincipalTable, DependentTable and DependentColumns properties should also be populated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropForeignKeyOperation class. The operation that represents reverting dropping the foreign key constraint. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation to drop the associated index on the foreign key column(s). An operation to drop the index. Gets an operation that represents reverting dropping the foreign key constraint. The inverse cannot be automatically calculated, if it was not supplied to the constructor this property will return null. Represents dropping an existing index. Initializes a new instance of the DropIndexOperation class. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropIndexOperation class. The operation that represents reverting dropping the index. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation that represents reverting dropping the index. The inverse cannot be automatically calculated, if it was not supplied to the constructor this property will return null. Represents dropping a primary key from a table. Initializes a new instance of the DropPrimaryKeyOperation class. The Table and Columns properties should also be populated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation to add the primary key. Represents dropping an existing table. Initializes a new instance of the DropTableOperation class. The name of the table to be dropped. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropTableOperation class. The name of the table to be dropped. An operation that represents reverting dropping the table. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table to be dropped. Gets an operation that represents reverting dropping the table. The inverse cannot be automatically calculated, if it was not supplied to the constructor this property will return null. Represents inserting a new record into the migrations history table. The migrations history table is used to store a log of the migrations that have been applied to the database. Initializes a new instance of the InsertHistoryOperation class. Name of the migrations history table. Id of the migration record to be inserted. Value to be stored in the model column. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the value to store in the history table representing the target model of the migration. Gets the value to store in the history table indicating the version of Entity Framework used to produce this migration. Represents moving a table from one schema to another. Initializes a new instance of the MoveTableOperation class. Name of the table to be moved. Name of the schema to move the table to. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table to be moved. Gets the name of the schema to move the table to. Gets an operation that moves the table back to its original schema. Represents renaming an existing column. Initializes a new instance of the RenameColumnOperation class. Name of the table the column belongs to. Name of the column to be renamed. New name for the column. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table the column belongs to. Gets the name of the column to be renamed. Gets the new name for the column. Gets an operation that reverts the rename. Represents renaming an existing table. Initializes a new instance of the RenameTableOperation class. Name of the table to be renamed. New name for the table. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table to be renamed. Gets the new name for the table. Gets an operation that reverts the rename. Represents a provider specific SQL statement to be executed directly against the target database. Initializes a new instance of the SqlOperation class. The SQL to be executed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the SQL to be executed. Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails. Common base class for providers that convert provider agnostic migration operations into database provider specific SQL commands. Converts a set of migration operations into database provider specific SQL. The operations to be converted. Token representing the version of the database being targeted. A list of SQL statements to be executed to perform the migration operations. Represents a migration operation that has been translated into a SQL statement. Gets or sets the SQL to be executed to perform this migration operation. Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails. Provider to convert provider agnostic migration operations into SQL commands that can be run against Microsoft SQL Server Compact Edition. Provider to convert provider agnostic migration operations into SQL commands that can be run against a Microsoft SQL Server database. Converts a set of migration operations into Microsoft SQL Server specific SQL. The operations to be converted. Token representing the version of SQL Server being targeted (i.e. "2005", "2008"). A list of SQL statements to be executed to perform the migration operations. Creates an empty connection for the current provider. Allows derived providers to use connection other than . Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL to mark a table as a system table. Generated SQL should be added using the Statement method. The table to mark as a system table. Generates SQL to create a database schema. Generated SQL should be added using the Statement method. The name of the schema to create. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL to specify a constant byte[] default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant bool default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant DateTime default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant DateTimeOffset default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant Guid default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant string default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant TimeSpan default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant geogrpahy default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant geometry default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify the data type of a column. This method just generates the actual type, not the SQL to create the column. The definition of the column. SQL representing the data type. Generates a quoted name. The supplied name may or may not contain the schema. The name to be quoted. The quoted name. Quotes an identifier for SQL Server. The identifier to be quoted. The quoted identifier. Adds a new Statement to be executed against the database. The statement to be executed. Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails. Gets a new that can be used to build SQL. This is just a helper method to create a writer. Writing to the writer will not cause SQL to be registered for execution. You must pass the generated SQL to the Statement method. An empty text writer to use for SQL generation. Adds a new Statement to be executed against the database. The writer containing the SQL to be executed. Utility class to prep the user's config file to run in an AppDomain Updates a config file by adding binding redirects for EntityFramework.dll. This ensures that the user's code can be ran in an AppDomain and the exact same version of the assembly will be used for both domains. That path of the user's config file. Can also be null or a path to an non-existent file. The path of the updated config file. It is the caller's responsibility to delete this. The same as but works in partial trust. Specifies the default tab string. This field is constant. Initializes a new instance of the IndentedTextWriter class using the specified text writer and default tab string. The to use for output. Initializes a new instance of the IndentedTextWriter class using the specified text writer and tab string. The to use for output. The tab string to use for indentation. Closes the document being written to. Flushes the stream. Outputs the tab string once for each level of indentation according to the property. Writes the specified string to the text stream. The string to write. Writes the text representation of a Boolean value to the text stream. The Boolean value to write. Writes a character to the text stream. The character to write. Writes a character array to the text stream. The character array to write. Writes a subarray of characters to the text stream. The character array to write data from. Starting index in the buffer. The number of characters to write. Writes the text representation of a Double to the text stream. The double to write. Writes the text representation of a Single to the text stream. The single to write. Writes the text representation of an integer to the text stream. The integer to write. Writes the text representation of an 8-byte integer to the text stream. The 8-byte integer to write. Writes the text representation of an object to the text stream. The object to write. Writes out a formatted string, using the same semantics as specified. The formatting string. The object to write into the formatted string. Writes out a formatted string, using the same semantics as specified. The formatting string to use. The first object to write into the formatted string. The second object to write into the formatted string. Writes out a formatted string, using the same semantics as specified. The formatting string to use. The argument array to output. Writes the specified string to a line without tabs. The string to write. Writes the specified string, followed by a line terminator, to the text stream. The string to write. Writes a line terminator. Writes the text representation of a Boolean, followed by a line terminator, to the text stream. The Boolean to write. Writes a character, followed by a line terminator, to the text stream. The character to write. Writes a character array, followed by a line terminator, to the text stream. The character array to write. Writes a subarray of characters, followed by a line terminator, to the text stream. The character array to write data from. Starting index in the buffer. The number of characters to write. Writes the text representation of a Double, followed by a line terminator, to the text stream. The double to write. Writes the text representation of a Single, followed by a line terminator, to the text stream. The single to write. Writes the text representation of an integer, followed by a line terminator, to the text stream. The integer to write. Writes the text representation of an 8-byte integer, followed by a line terminator, to the text stream. The 8-byte integer to write. Writes the text representation of an object, followed by a line terminator, to the text stream. The object to write. Writes out a formatted string, followed by a line terminator, using the same semantics as specified. The formatting string. The object to write into the formatted string. Writes out a formatted string, followed by a line terminator, using the same semantics as specified. The formatting string to use. The first object to write into the formatted string. The second object to write into the formatted string. Writes out a formatted string, followed by a line terminator, using the same semantics as specified. The formatting string to use. The argument array to output. Writes the text representation of a UInt32, followed by a line terminator, to the text stream. A UInt32 to output. Gets the encoding for the text writer to use. An that indicates the encoding for the text writer to use. Gets or sets the new line character to use. The new line character to use. Gets or sets the number of spaces to indent. The number of spaces to indent. Gets the to use. The to use. Used for generating values that are always in sequential order for the calling thread. Returns the value of unless this value would be the same as the last value returned by this thread calling this method, in which case the thread pushes the value a little bit into the future. The comparison is in terms of the form used to store migration ID in the database--i.e. to the 1/10 second. There should never be any pushing to the future involved for normal use of migrations, but when this method is called in rapid succession while testing or otherwise calling the DbMigrator APIs there may be occasional sleeping. Same as UtcNow method bur returns the time in the timestamp format used in migration IDs. Convention to apply column ordering specified via or the API. This convention throws if a duplicate configured column order is detected. Convention to apply column ordering specified via or the API. Identifies conventions that can be removed from a instance. /// Note that implementations of this interface must be immutable. Strongly-typed and parameterized string resources. A string like "Applying automatic migration: {0}." A string like "Reverting automatic migration: {0}." A string like "Applying code-based migration: {0}." A string like "Reverting code-based migration: {0}." A string like "Applying code-based migrations: [{1}]." A string like "Reverting migrations: [{1}]." A string like "Target database is already at version {0}." A string like "Target database is: {0}." A string like "'{1}' (DataSource: {0}, Provider: {2}, Origin: {3})" A string like "The specified target migration '{0}' does not exist. Ensure that target migration refers to an existing migration id." A string like "The Foreign Key on table '{0}' with columns '{1}' could not be created because the principal key columns could not be determined. Use the AddForeignKey fluent API to fully specify the Foreign Key." A string like "'{0}' is not a valid target migration. When targeting a previously applied automatic migration, use the full migration id including timestamp." A string like "'{0}' is not a valid migration. Code-based migrations must be used for both source and target when scripting the upgrade between them." A string like "The target context '{0}' is not constructible. Add a default constructor or provide an implementation of IDbContextFactory." A string like "The specified migration name '{0}' is ambiguous. Specify the full migration id including timestamp instead." A string like "The migrations configuration type '{0}' was not be found in the assembly '{1}'." A string like "More than one migrations configuration type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the one to use." A string like "No migrations configuration type was found in the assembly '{0}'. (In Visual Studio you can use the Enable-Migrations command from Package Manager Console to add a migrations configuration)." A string like "More than one migrations configuration type was found in the assembly '{0}'. Specify the name of the one to use." A string like "The type '{0}' is not a migrations configuration type." A string like "The migrations configuration type '{0}' must have a public default constructor." A string like "The migrations configuration type '{0}' must not be abstract." A string like "The migrations configuration type '{0}' must not be generic." A string like "In VB.NET projects, the migrations namespace '{0}' must be under the root namespace '{1}'. Update the migrations project's root namespace to allow classes under the migrations namespace to be added." A string like "No MigrationSqlGenerator found for provider '{0}'. Use the SetSqlGenerator method in the target migrations configuration class to register additional SQL generators." A string like "Could not load assembly '{0}'. (If you are using Code First Migrations inside Visual Studio this can happen if the startUp project for your solution does not reference the project that contains your migrations. You can either change the startUp project for your solution or use the -StartUpProjectName parameter.)" A string like "No context type was found in the assembly '{0}'." A string like "More than one context type was found in the assembly '{0}'." A string like "To enable migrations for {0}, use Enable-Migrations -ContextTypeName {0}." A string like "The context type '{0}' was not found in the assembly '{1}'." A string like "More than one context type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the context." A string like "The argument '{0}' cannot be null, empty or contain only white space." A string like "The argument property '{0}' cannot be null." A string like "The precondition '{0}' failed. {1}" A string like "The type '{0}' has already been configured as a complex type. It cannot be reconfigured as an entity type." A string like "The type '{0}' has already been configured as an entity type. It cannot be reconfigured as a complex type." A string like "The key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property." A string like "The foreign key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property." A string like "The property '{0}' is not a declared property on type '{1}'. Verify that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation. Make sure that it is a valid primitive property." A string like "The navigation property '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid navigation property." A string like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'." A string like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. Use dotted paths for nested properties: C#: 't => t.MyProperty.MyProperty' VB.Net: 'Function(t) t.MyProperty.MyProperty'." A string like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'." A string like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'." A string like "Conflicting configuration settings were specified for property '{0}' on type '{1}': {2}" A string like "Conflicting configuration settings were specified for column '{0}' on table '{1}': {2}" A string like "{0} = {1} conflicts with {2} = {3}" A string like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from ComplexObject." A string like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from EntityObject." A string like "The navigation property '{0}' declared on type '{1}' cannot be the inverse of itself." A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting foreign keys." A string like "Values of incompatible types ('{1}' and '{2}') were assigned to the '{0}' discriminator column. Values of the same type must be specified. To explicitly specify the type of the discriminator column use the HasColumnType method." A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting mapping information." A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting cascade delete operations using 'WillCascadeOnDelete'." A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting multiplicities." A string like "The MaxLengthAttribute on property '{0}' on type '{1} is not valid. The Length value must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." A string like "The StringLengthAttribute on property '{0}' on type '{1}' is not valid. The maximum length must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." A string like "Unable to determine composite primary key ordering for type '{0}'. Use the ColumnAttribute or the HasKey method to specify an order for composite primary keys." A string like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. Name must not be empty." A string like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The foreign key name '{2}' was not found on the dependent type '{3}'. The Name value should be a comma separated list of foreign key property names." A string like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The navigation property '{2}' was not found on the dependent type '{1}'. The Name value should be a valid navigation property name." A string like "Unable to determine a composite foreign key ordering for foreign key on type {0}. When using the ForeignKey data annotation on composite foreign key properties ensure order is specified by using the Column data annotation or the fluent API." A string like "The InversePropertyAttribute on property '{2}' on type '{3}' is not valid. The property '{0}' is not a valid navigation property on the related type '{1}'. Ensure that the property exists and is a valid reference or collection navigation property." A string like "A relationship cannot be established from property '{0}' on type '{1}' to property '{0}' on type '{1}'. Check the values in the InversePropertyAttribute to ensure relationship definitions are unique and reference from one navigation property to its corresponding inverse navigation property." A string like "\t{0}: {1}: {2}" A string like "A key is registered for the derived type '{0}'. Keys can only be registered for the root type '{1}'." A string like "The {0} value '{1}' already exists in the user-defined dictionary." A string like "The type '{0}' has already been mapped to table '{1}'. Specify all mapping aspects of a table in a single Map call." A string like "Map was called more than once for type '{0}' and at least one of the calls didn't specify the target table name." A string like "The derived type '{0}' has already been mapped using the chaining syntax. A derived type can only be mapped once using the chaining syntax." A string like "An "is not null" condition cannot be specified on property '{0}' on type '{1}' because this property is not included in the model. Check that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation." A string like "Values of type '{0}' cannot be used as type discriminator values. Supported types include byte, signed byte, bool, int16, int32, int64, and string." A string like "Unable to add the convention '{0}'. Could not find an existing convention of type '{1}' in the current convention set." A string like "Not all properties for type '{0}' have been mapped. Either map those properties or explicitly excluded them from the model." A string like "Unable to determine the provider name for connection of type '{0}'." A string like "The qualified table name '{0}' contains an invalid schema name. Schema names must have a non-zero length." A string like "The qualified table name '{0}' contains an invalid table name. Table names must have a non-zero length." A string like "Properties for type '{0}' can only be mapped once. Ensure the MapInheritedProperties method is only used during one call to the Map method." A string like "Properties for type '{0}' can only be mapped once. Ensure the Properties method is used and that repeated calls specify each non-key property only once." A string like "Properties for type '{0}' can only be mapped once. The non-key property '{1}' is mapped more than once. Ensure the Properties method specifies each non-key property only once." A string like "The property '{1}' on type '{0}' cannot be mapped because it has been explicitly excluded from the model or it is of a type not supported by the DbModelBuilderVersion being used." A string like "The entity types '{0}' and '{1}' cannot share table '{2}' because they are not in the same type hierarchy or do not have a valid one to one foreign key relationship with matching primary keys between them." A string like "You cannot use Ignore method on the property '{0}' on type '{1}' because this type inherits from the type '{2}' where this property is mapped. To exclude this property from your model, use NotMappedAttribute or Ignore method on the base type." A string like "The property '{0}' cannot be used as a key property on the entity '{1}' because the property type is not a valid key type. Only scalar types, string and byte[] are supported key types." A string like "The specified table '{0}' was not found in the model. Ensure that the table name has been correctly specified." A string like "The specified association foreign key columns '{0}' are invalid. The number of columns specified must match the number of primary key columns." A string like "Unable to determine the principal end of an association between the types '{0}' and '{1}'. The principal end of this association must be explicitly configured using either the relationship fluent API or data annotations." A string like "The abstract type '{0}' has no mapped descendents and so cannot be mapped. Either remove '{0}' from the model or add one or more types deriving from '{0}' to the model. " A string like "The type '{0}' cannot be mapped as defined because it maps inherited properties from types that use entity splitting or another form of inheritance. Either choose a different inheritance mapping strategy so as to not map inherited properties, or change all types in the hierarchy to map inherited properties and to not use splitting. " A string like "The table '{0}' was configured but is not used in any mappings. Verify the mapping configuration for '{0}' is correct." A string like "The configured column orders for the table '{0}' contains duplicates. Ensure the specified column order values are distinct." A string like "The enum or spatial property '{1}' on type '{0}' cannot be mapped. Use DbModelBuilderVersion 'V5_0' or later to map enum or spatial properties." A string like "Multiple potential primary key properties named '{0}' but differing only by case were found on entity type '{1}'. Configure the primary key explicitly using the HasKey fluent API or the KeyAttribute data annotation." A string like "Cannot get value for property '{0}' from entity of type '{1}' because the property has no get accessor." A string like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor." A string like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor and is in the '{2}' state." A string like "Member '{0}' cannot be called for property '{1}' on entity of type '{2}' because the property is not part of the Entity Data Model." A string like "Cannot call the {0} method for an entity of type '{1}' on a DbSet for entities of type '{2}'. Only entities of type '{2}' or derived from type '{2}' can be added, attached, or removed." A string like "Cannot call the Create method for the type '{0}' on a DbSet for entities of type '{1}'. Only entities of type '{1}' or derived from type '{1}' can be created." A string like "The property '{0}' on type '{1}' is a collection navigation property. The Collection method should be used instead of the Reference method." A string like "The property '{0}' on type '{1}' is a reference navigation property. The Reference method should be used instead of the Collection method." A string like "The property '{0}' on type '{1}' is not a navigation property. The Reference and Collection methods can only be used with navigation properties. Use the Property or ComplexProperty method." A string like "The property '{0}' on type '{1}' is not a primitive or complex property. The Property method can only be used with primitive or complex properties. Use the Reference or Collection method." A string like "The property '{0}' on type '{1}' is not a complex property. The ComplexProperty method can only be used with complex properties. Use the Property, Reference or Collection method." A string like "The property '{0}' on type '{1}' is not a primitive property, complex property, collection navigation property, or reference navigation property." A string like ""The property '{0}' from the property path '{1}' is not a complex property on type '{2}'. Property paths must be composed of complex properties for all except the final property."" A string like ""The property path '{0}' cannot be used for navigation properties. Property paths can only be used to access primitive or complex properties."" A string like "The navigation property '{0}' on entity type '{1}' cannot be used for entities of type '{2}' because it refers to entities of type '{3}'." A string like "The generic type argument '{0}' cannot be used with the Member method when accessing the collection navigation property '{1}' on entity type '{2}'. The generic type argument '{3}' must be used instead." A string like "The property '{0}' on entity type '{1}' cannot be used for objects of type '{2}' because it is a property for objects of type '{3}'." A string like "The expression passed to method {0} must represent a property defined on the type '{1}'." A string like "{0} cannot be used for entities in the {1} state." A string like "Cannot set non-nullable property '{0}' of type '{1}' to null on object of type '{2}'." A string like "The property '{0}' in the entity of type '{1}' is null. Store values cannot be obtained for an entity with a null complex property." A string like "Cannot assign value of type '{0}' to property '{1}' of type '{2}' in property values for type '{3}'." A string like "The '{0}' property does not exist or is not mapped for the type '{1}'." A string like "Cannot copy values from DbPropertyValues for type '{0}' into DbPropertyValues for type '{1}'." A string like "Cannot copy from property values for object of type '{0}' into property values for object of type '{1}'." A string like "The value of the complex property '{0}' on entity of type '{1}' is null. Complex properties cannot be set to null and values cannot be set for null complex properties." A string like "The value of the nested property values property '{0}' on the values for entity of type '{1}' is null. Nested property values cannot be set to null and values cannot be set for null complex properties." A string like "Cannot set the value of the nested property '{0}' because value of the complex property '{1}' to which it belongs is null." A string like "Cannot set the original value of the nested property '{0}' because the original value of the complex property '{1}' to which it belongs is null." A string like "The model backing the '{0}' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269)." A string like "Database '{0}' cannot be created because it already exists." A string like "Failed to set database initializer of type '{0}' for DbContext type '{1}' specified in the application configuration. See inner exception for details." A string like "Configuration for DbContext type '{0}' is specified multiple times in the application configuration. Each context can only be configured once." A string like "Failed to set Database.DefaultConnectionFactory to an instance of the '{0}' type as specified in the application configuration. See inner exception for details." A string like "The type '{0}' could not be found. The type name must be an assembly-qualified name." A string like "The connection string '{0}' in the application's configuration file does not contain the required providerName attribute."" A string like "The entity found was of type {0} when an entity of type {1} was requested." A string like "The type '{0}' is mapped as a complex type. The Set method, DbSet objects, and DbEntityEntry objects can only be used with entity types, not complex types." A string like "The type '{0}' is not attributed with EdmEntityTypeAttribute but is contained in an assembly attributed with EdmSchemaAttribute. POCO entities that do not use EdmEntityTypeAttribute cannot be contained in the same assembly as non-POCO entities that use EdmEntityTypeAttribute." A string like "The entity type {0} is not part of the model for the current context." A string like "No connection string named '{0}' could be found in the application config file." A string like "The collection navigation property '{0}' on the entity of type '{1}' cannot be set because the entity type does not define a navigation property with a set accessor." A string like "Multiple object sets per type are not supported. The object sets '{0}' and '{1}' can both contain instances of type '{2}'." A string like "The context type '{0}' must have a public constructor taking an EntityConnection." A string like "An unexpected exception was thrown during validation of '{0}' when invoking {1}.IsValid. See the inner exception for details." A string like "An unexpected exception was thrown during validation of '{0}' when invoking {1}.Validate. See the inner exception for details." A string like "The database name '{0}' is not supported because it is an MDF file name. A full connection string must be provided to attach an MDF file." A string like "The context factory type '{0}' must have a public default constructor." A string like "The '{0}' property of EdmPrimitiveType is fixed and cannot be set." A string like "The namespace '{0}' is a system namespace and cannot be used by other schemas. Choose another namespace name." A string like "Role '{0}' in AssociationSets '{1}' and '{2}' refers to the same EntitySet '{3}' in EntityContainer '{4}'. Make sure that if two or more AssociationSets refer to the same AssociationType, the ends do not refer to the same EntitySet." A string like "The referenced EntitySet '{0}' for End '{1}' could not be found in the containing EntityContainer." A string like "Type '{0}' is derived from type '{1}' that is the type for EntitySet '{2}'. Type '{0}' defines new concurrency requirements that are not allowed for subtypes of base EntitySet types." A string like "EntitySet '{0}' is based on type '{1}' that has no keys defined." A string like "The end name '{0}' is already defined." A string like "The key specified in EntityType '{0}' is not valid. Property '{1}' is referenced more than once in the Key element." A string like "Property '{0}' has a CollectionKind specified but is not a collection property." A string like "Property '{0}' has a CollectionKind specified. CollectionKind is only supported in version 1.1 EDM models." A string like "ComplexType '{0}' is marked as abstract. Abstract ComplexTypes are only supported in version 1.1 EDM models." A string like "ComplexType '{0}' has a BaseType specified. ComplexType inheritance is only supported in version 1.1 EDM models." A string like "Key part '{0}' for type '{1}' is not valid. All parts of the key must be non-nullable." A string like "The property '{0}' in EntityType '{1}' is not valid. All properties that are part of the EntityKey must be of PrimitiveType." A string like "Key usage is not valid. The {0} class cannot define keys because one of its base classes ('{1}') defines keys." A string like "EntityType '{0}' has no key defined. Define the key for this EntityType." A string like "NavigationProperty is not valid. Role '{0}' or Role '{1}' is not defined in Relationship '{2}'." A string like "End '{0}' on relationship '{1}' cannot have an operation specified because its multiplicity is '*'. Operations cannot be specified on ends with multiplicity '*'." A string like "Each Name and PluralName in a relationship must be unique. '{0}' is already defined." A string like "In relationship '{0}', the Principal and Dependent Role of the referential constraint refer to the same Role in the relationship type." A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Valid values for multiplicity for the Principal Role are '0..1' or '1'." A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because all the properties in the Dependent Role are nullable, multiplicity of the Principal Role must be '0..1'." A string like "Multiplicity conflicts with the referential constraint in Role '{0}' in relationship '{1}'. Because at least one of the properties in the Dependent Role is non-nullable, multiplicity of the Principal Role must be '1'." A string like "Multiplicity conflicts with the referential constraint in Role '{0}' in relationship '{1}'. Because all of the properties in the Dependent Role are non-nullable, multiplicity of the Principal Role must be '1'." A string like "Properties referred by the Dependent Role '{0}' must be a subset of the key of the EntityType '{1}' referred to by the Dependent Role in the referential constraint for relationship '{2}'." A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because the Dependent Role refers to the key properties, the upper bound of the multiplicity of the Dependent Role must be '1'." A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because the Dependent Role properties are not the key properties, the upper bound of the multiplicity of the Dependent Role must be '*'." A string like "The types of all properties in the Dependent Role of a referential constraint must be the same as the corresponding property types in the Principal Role. The type of property '{0}' on entity '{1}' does not match the type of property '{2}' on entity '{3}' in the referential constraint '{4}'." A string like "There is no property with name '{0}' defined in the type referred to by Role '{1}'." A string like "A nullable ComplexType is not supported. Property '{0}' must not allow nulls." A string like "A property cannot be of type '{0}'. The property type must be a ComplexType or a PrimitiveType." A string like "Each member name in an EntityContainer must be unique. A member with name '{0}' is already defined." A string like "Each type name in a schema must be unique. Type name '{0}' is already defined." A string like "Name '{0}' cannot be used in type '{1}'. Member names cannot be the same as their enclosing type." A string like "Each property name in a type must be unique. Property name '{0}' is already defined." A string like "A cycle was detected in the type hierarchy of '{0}'." A string like "A property cannot be of type '{0}'. The property type must be a ComplexType, a PrimitiveType, or a CollectionType." A string like "A property cannot be of type {0}. The property type must be a ComplexType, a PrimitiveType or an EnumType." A string like "The specified name must not be longer than 480 characters: '{0}'." A string like "The specified name is not allowed: '{0}'." A string like "The field {0} must be a string or array type with a maximum length of '{1}'." A string like "The field {0} must be a string or array type with a minimum length of '{1}'." A string like "No connection string named '{0}' could be found in the application config file." A string like "AutomaticMigration" A string like "BootstrapMigration" A string like "InitialCreate" A string like "Automatic migration was not applied because it would result in data loss." A string like "[Inserting migration history record]" A string like "[Deleting migration history record]" A string like "[Updating EdmMetadata model hash]" A string like "Running Seed method." A string like "No pending code-based migrations." A string like "Explicit" A string like "Upgrading history table." A string like "Cannot scaffold the next migration because the target database was created with a version of Code First earlier than EF 4.3 and does not contain the migrations history table. To start using migrations against this database, ensure the current model is compatible with the target database and execute the migrations Update process. (In Visual Studio you can use the Update-Database command from Package Manager Console to execute the migrations Update process)." A string like "Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Either write the pending model changes to a code-based migration or enable automatic migration. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true to enable automatic migration." A string like "Scripting the downgrade between two specified migrations is not supported." A string like "Direct column renaming is not supported by SQL Server Compact. To rename a column in SQL Server Compact, you will need to recreate it." A string like "One or more validation errors were detected during model generation:" A string like "A circular ComplexType hierarchy was detected. Self-referencing ComplexTypes are not supported." A string like "Connection to the database failed. The connection string is configured with an invalid LocalDB server name. This may have been set in 'global.asax' by a pre-release version of MVC4. The default connection factory is now set in web.config so the line in 'global.asax' starting with 'Database.DefaultConnectionFactory = ' should be removed. See http://go.microsoft.com/fwlink/?LinkId=243166 for details." A string like "An error occurred while getting provider information from the database. This can be caused by Entity Framework using an incorrect connection string. Check the inner exceptions for details and ensure that the connection string is correct." A string like "Setting IsModified to false for a modified property is not supported." A string like "An error occurred while saving entities that do not expose foreign key properties for their relationships. The EntityEntries property will return null because a single entity cannot be identified as the source of the exception. Handling of exceptions while saving can be made easier by exposing foreign key properties in your entity types. See the InnerException for details." A string like "The set of property value names is read-only." A string like "A property of a complex type must be set to an instance of the generic or non-generic DbPropertyValues class for that type." A string like "Model compatibility cannot be checked because the DbContext instance was not created using Code First patterns. DbContext instances created from an ObjectContext or using an EDMX file cannot be checked for compatibility." A string like "Model compatibility cannot be checked because the EdmMetadata type was not included in the model. Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions." A string like "Model compatibility cannot be checked because the database does not contain model metadata. Model compatibility can only be checked for databases created using Code First or Code First Migrations." A string like "The context cannot be used while the model is being created." A string like "The DbContext class cannot be used with models that have multiple entity sets per type (MEST)." A string like "The operation cannot be completed because the DbContext has been disposed." A string like "The provider factory returned a null connection." A string like "The DbConnectionFactory instance returned a null connection." A string like "The number of primary key values passed must match number of primary key values defined on the entity." A string like "The type of one of the primary key values did not match the type defined in the entity. See inner exception for details." A string like "Multiple entities were found in the Added state that match the given primary key values." A string like "Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery) is not supported. Instead populate a DbSet with data, for example by calling Load on the DbSet, and then bind to local data. For WPF bind to DbSet.Local. For WinForms bind to DbSet.Local.ToBindingList()." A string like "The Include path expression must refer to a navigation property defined on the type. Use dotted paths for reference navigation properties and the Select operator for collection navigation properties." A string like "Cannot initialize a DbContext from an entity connection string or an EntityConnection instance together with a DbCompiledModel. If an entity connection string or EntityConnection instance is used, then the model will be created from the metadata in the connection. If a DbCompiledModel is used, then the connection supplied should be a standard database connection (for example, a SqlConnection instance) rather than an entity connection." A string like "Using the same DbCompiledModel to create contexts against different types of database servers is not supported. Instead, create a separate DbCompiledModel for each type of server being used." A string like "Validation failed for one or more entities. See 'EntityValidationErrors' property for more details." A string like "An exception occurred while initializing the database. See the InnerException for details." A string like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing ObjectContext is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." A string like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing DbCompiledModel is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." A string like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using Database First or Model First is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." A string like "Code generated using the T4 templates for Database First and Model First development may not work correctly if used in Code First mode. To continue using Database First or Model First ensure that the Entity Framework connection string is specified in the config file of executing application. To use these classes, that were generated from Database First or Model First, with Code First add any additional configuration using attributes or the DbModelBuilder API and then remove the code that throws this exception." A string like "The generic 'Set' method cannot be called with a proxy type. Either use the actual entity type or call the non-generic 'Set' method." A string like "NavigationProperty is not valid. The FromRole and ToRole are the same." A string like "OnDelete can be specified on only one End of an EdmAssociation." A string like "The number of properties in the Dependent and Principal Roles in a relationship constraint must be identical." A string like "The name is missing or not valid." A string like "AssociationEnd must not be null." A string like "DependentEnd must not be null." A string like "DependentProperties must not be empty." A string like "Association must not be null." A string like "ResultEnd must not be null." A string like "EntityType must not be null." A string like "ElementType must not be null." A string like "ElementType must not be null." A string like "SourceSet must not be null." A string like "TargetSet must not be null." A string like "The type is not a valid EdmTypeReference." A string like "Serializer can only serialize an EdmModel that has one EdmNamespace and one EdmEntityContainer." A string like "MaxLengthAttribute must have a Length value that is greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." A string like "MinLengthAttribute must have a Length value that is zero or greater." A string like "The connection can not be overridden because this context was created from an existing ObjectContext." A string like "Can not override the connection for this context with a standard DbConnection because the original connection was an EntityConnection." A string like "Can not override the connection for this context with an EntityConnection because the original connection was a standard DbConnection." Strongly-typed and parameterized exception factory. Migrations.Infrastructure.AutomaticDataLossException with message like "Automatic migration was not applied because it would result in data loss." Migrations.Infrastructure.MigrationsException with message like "Cannot scaffold the next migration because the target database was created with a version of Code First earlier than EF 4.3 and does not contain the migrations history table. To start using migrations against this database, ensure the current model is compatible with the target database and execute the migrations Update process. (In Visual Studio you can use the Update-Database command from Package Manager Console to execute the migrations Update process)." Migrations.Infrastructure.MigrationsException with message like "The specified target migration '{0}' does not exist. Ensure that target migration refers to an existing migration id." Migrations.Infrastructure.MigrationsException with message like "The Foreign Key on table '{0}' with columns '{1}' could not be created because the principal key columns could not be determined. Use the AddForeignKey fluent API to fully specify the Foreign Key." Migrations.Infrastructure.MigrationsException with message like "'{0}' is not a valid target migration. When targeting a previously applied automatic migration, use the full migration id including timestamp." Migrations.Infrastructure.MigrationsException with message like "'{0}' is not a valid migration. Code-based migrations must be used for both source and target when scripting the upgrade between them." Migrations.Infrastructure.MigrationsException with message like "The target context '{0}' is not constructible. Add a default constructor or provide an implementation of IDbContextFactory." Migrations.Infrastructure.MigrationsException with message like "The specified migration name '{0}' is ambiguous. Specify the full migration id including timestamp instead." Migrations.Infrastructure.AutomaticMigrationsDisabledException with message like "Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Either write the pending model changes to a code-based migration or enable automatic migration. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true to enable automatic migration." Migrations.Infrastructure.MigrationsException with message like "Scripting the downgrade between two specified migrations is not supported." Migrations.Infrastructure.MigrationsException with message like "The migrations configuration type '{0}' was not be found in the assembly '{1}'." Migrations.Infrastructure.MigrationsException with message like "More than one migrations configuration type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the one to use." Migrations.Infrastructure.MigrationsException with message like "No migrations configuration type was found in the assembly '{0}'. (In Visual Studio you can use the Enable-Migrations command from Package Manager Console to add a migrations configuration)." Migrations.Infrastructure.MigrationsException with message like "More than one migrations configuration type was found in the assembly '{0}'. Specify the name of the one to use." Migrations.Infrastructure.MigrationsException with message like "The type '{0}' is not a migrations configuration type." Migrations.Infrastructure.MigrationsException with message like "The migrations configuration type '{0}' must have a public default constructor." Migrations.Infrastructure.MigrationsException with message like "The migrations configuration type '{0}' must not be abstract." Migrations.Infrastructure.MigrationsException with message like "The migrations configuration type '{0}' must not be generic." Migrations.Infrastructure.MigrationsException with message like "Direct column renaming is not supported by SQL Server Compact. To rename a column in SQL Server Compact, you will need to recreate it." Migrations.Infrastructure.MigrationsException with message like "In VB.NET projects, the migrations namespace '{0}' must be under the root namespace '{1}'. Update the migrations project's root namespace to allow classes under the migrations namespace to be added." Migrations.Infrastructure.MigrationsException with message like "No MigrationSqlGenerator found for provider '{0}'. Use the SetSqlGenerator method in the target migrations configuration class to register additional SQL generators." Migrations.Infrastructure.MigrationsException with message like "No context type was found in the assembly '{0}'." Migrations.Infrastructure.MigrationsException with message like "The context type '{0}' was not found in the assembly '{1}'." Migrations.Infrastructure.MigrationsException with message like "More than one context type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the context." ArgumentException with message like "The argument '{0}' cannot be null, empty or contain only white space." ArgumentException with message like "The argument property '{0}' cannot be null." ArgumentException with message like "The precondition '{0}' failed. {1}" InvalidOperationException with message like "The type '{0}' has already been configured as a complex type. It cannot be reconfigured as an entity type." InvalidOperationException with message like "The type '{0}' has already been configured as an entity type. It cannot be reconfigured as a complex type." InvalidOperationException with message like "The key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property." InvalidOperationException with message like "The foreign key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property." InvalidOperationException with message like "The property '{0}' is not a declared property on type '{1}'. Verify that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation. Make sure that it is a valid primitive property." InvalidOperationException with message like "The navigation property '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid navigation property." InvalidOperationException with message like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'." InvalidOperationException with message like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. Use dotted paths for nested properties: C#: 't => t.MyProperty.MyProperty' VB.Net: 'Function(t) t.MyProperty.MyProperty'." InvalidOperationException with message like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'." InvalidOperationException with message like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'." InvalidOperationException with message like "Conflicting configuration settings were specified for property '{0}' on type '{1}': {2}" InvalidOperationException with message like "Conflicting configuration settings were specified for column '{0}' on table '{1}': {2}" InvalidOperationException with message like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from ComplexObject." InvalidOperationException with message like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from EntityObject." InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' cannot be the inverse of itself." InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting foreign keys." MappingException with message like "Values of incompatible types ('{1}' and '{2}') were assigned to the '{0}' discriminator column. Values of the same type must be specified. To explicitly specify the type of the discriminator column use the HasColumnType method." InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting mapping information." InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting cascade delete operations using 'WillCascadeOnDelete'." InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting multiplicities." InvalidOperationException with message like "The MaxLengthAttribute on property '{0}' on type '{1} is not valid. The Length value must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." InvalidOperationException with message like "The StringLengthAttribute on property '{0}' on type '{1}' is not valid. The maximum length must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." InvalidOperationException with message like "Unable to determine composite primary key ordering for type '{0}'. Use the ColumnAttribute or the HasKey method to specify an order for composite primary keys." InvalidOperationException with message like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. Name must not be empty." InvalidOperationException with message like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The foreign key name '{2}' was not found on the dependent type '{3}'. The Name value should be a comma separated list of foreign key property names." InvalidOperationException with message like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The navigation property '{2}' was not found on the dependent type '{1}'. The Name value should be a valid navigation property name." InvalidOperationException with message like "Unable to determine a composite foreign key ordering for foreign key on type {0}. When using the ForeignKey data annotation on composite foreign key properties ensure order is specified by using the Column data annotation or the fluent API." InvalidOperationException with message like "The InversePropertyAttribute on property '{2}' on type '{3}' is not valid. The property '{0}' is not a valid navigation property on the related type '{1}'. Ensure that the property exists and is a valid reference or collection navigation property." InvalidOperationException with message like "A relationship cannot be established from property '{0}' on type '{1}' to property '{0}' on type '{1}'. Check the values in the InversePropertyAttribute to ensure relationship definitions are unique and reference from one navigation property to its corresponding inverse navigation property." InvalidOperationException with message like "A key is registered for the derived type '{0}'. Keys can only be registered for the root type '{1}'." InvalidOperationException with message like "The type '{0}' has already been mapped to table '{1}'. Specify all mapping aspects of a table in a single Map call." InvalidOperationException with message like "Map was called more than once for type '{0}' and at least one of the calls didn't specify the target table name." InvalidOperationException with message like "The derived type '{0}' has already been mapped using the chaining syntax. A derived type can only be mapped once using the chaining syntax." InvalidOperationException with message like "An "is not null" condition cannot be specified on property '{0}' on type '{1}' because this property is not included in the model. Check that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation." ArgumentException with message like "Values of type '{0}' cannot be used as type discriminator values. Supported types include byte, signed byte, bool, int16, int32, int64, and string." InvalidOperationException with message like "Unable to add the convention '{0}'. Could not find an existing convention of type '{1}' in the current convention set." InvalidOperationException with message like "Not all properties for type '{0}' have been mapped. Either map those properties or explicitly excluded them from the model." NotSupportedException with message like "Unable to determine the provider name for connection of type '{0}'." ArgumentException with message like "The qualified table name '{0}' contains an invalid schema name. Schema names must have a non-zero length." ArgumentException with message like "The qualified table name '{0}' contains an invalid table name. Table names must have a non-zero length." InvalidOperationException with message like "Properties for type '{0}' can only be mapped once. Ensure the MapInheritedProperties method is only used during one call to the Map method." InvalidOperationException with message like "Properties for type '{0}' can only be mapped once. Ensure the Properties method is used and that repeated calls specify each non-key property only once." InvalidOperationException with message like "Properties for type '{0}' can only be mapped once. The non-key property '{1}' is mapped more than once. Ensure the Properties method specifies each non-key property only once." InvalidOperationException with message like "The property '{1}' on type '{0}' cannot be mapped because it has been explicitly excluded from the model or it is of a type not supported by the DbModelBuilderVersion being used." InvalidOperationException with message like "The entity types '{0}' and '{1}' cannot share table '{2}' because they are not in the same type hierarchy or do not have a valid one to one foreign key relationship with matching primary keys between them." InvalidOperationException with message like "You cannot use Ignore method on the property '{0}' on type '{1}' because this type inherits from the type '{2}' where this property is mapped. To exclude this property from your model, use NotMappedAttribute or Ignore method on the base type." InvalidOperationException with message like "The property '{0}' cannot be used as a key property on the entity '{1}' because the property type is not a valid key type. Only scalar types, string and byte[] are supported key types." InvalidOperationException with message like "The specified table '{0}' was not found in the model. Ensure that the table name has been correctly specified." InvalidOperationException with message like "The specified association foreign key columns '{0}' are invalid. The number of columns specified must match the number of primary key columns." InvalidOperationException with message like "A circular ComplexType hierarchy was detected. Self-referencing ComplexTypes are not supported." InvalidOperationException with message like "Unable to determine the principal end of an association between the types '{0}' and '{1}'. The principal end of this association must be explicitly configured using either the relationship fluent API or data annotations." InvalidOperationException with message like "The abstract type '{0}' has no mapped descendents and so cannot be mapped. Either remove '{0}' from the model or add one or more types deriving from '{0}' to the model. " NotSupportedException with message like "The type '{0}' cannot be mapped as defined because it maps inherited properties from types that use entity splitting or another form of inheritance. Either choose a different inheritance mapping strategy so as to not map inherited properties, or change all types in the hierarchy to map inherited properties and to not use splitting. " InvalidOperationException with message like "The table '{0}' was configured but is not used in any mappings. Verify the mapping configuration for '{0}' is correct." InvalidOperationException with message like "The configured column orders for the table '{0}' contains duplicates. Ensure the specified column order values are distinct." NotSupportedException with message like "The enum or spatial property '{1}' on type '{0}' cannot be mapped. Use DbModelBuilderVersion 'V5_0' or later to map enum or spatial properties." InvalidOperationException with message like "Multiple potential primary key properties named '{0}' but differing only by case were found on entity type '{1}'. Configure the primary key explicitly using the HasKey fluent API or the KeyAttribute data annotation." InvalidOperationException with message like "Cannot get value for property '{0}' from entity of type '{1}' because the property has no get accessor." InvalidOperationException with message like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor." NotSupportedException with message like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor and is in the '{2}' state." InvalidOperationException with message like "Member '{0}' cannot be called for property '{1}' on entity of type '{2}' because the property is not part of the Entity Data Model." ArgumentException with message like "Cannot call the {0} method for an entity of type '{1}' on a DbSet for entities of type '{2}'. Only entities of type '{2}' or derived from type '{2}' can be added, attached, or removed." ArgumentException with message like "Cannot call the Create method for the type '{0}' on a DbSet for entities of type '{1}'. Only entities of type '{1}' or derived from type '{1}' can be created." ArgumentException with message like "The property '{0}' on type '{1}' is a collection navigation property. The Collection method should be used instead of the Reference method." ArgumentException with message like "The property '{0}' on type '{1}' is a reference navigation property. The Reference method should be used instead of the Collection method." ArgumentException with message like "The property '{0}' on type '{1}' is not a navigation property. The Reference and Collection methods can only be used with navigation properties. Use the Property or ComplexProperty method." ArgumentException with message like "The property '{0}' on type '{1}' is not a primitive or complex property. The Property method can only be used with primitive or complex properties. Use the Reference or Collection method." ArgumentException with message like "The property '{0}' on type '{1}' is not a complex property. The ComplexProperty method can only be used with complex properties. Use the Property, Reference or Collection method." ArgumentException with message like "The property '{0}' on type '{1}' is not a primitive property, complex property, collection navigation property, or reference navigation property." ArgumentException with message like ""The property '{0}' from the property path '{1}' is not a complex property on type '{2}'. Property paths must be composed of complex properties for all except the final property."" NotSupportedException with message like "Setting IsModified to false for a modified property is not supported." ArgumentException with message like ""The property path '{0}' cannot be used for navigation properties. Property paths can only be used to access primitive or complex properties."" ArgumentException with message like "The navigation property '{0}' on entity type '{1}' cannot be used for entities of type '{2}' because it refers to entities of type '{3}'." ArgumentException with message like "The generic type argument '{0}' cannot be used with the Member method when accessing the collection navigation property '{1}' on entity type '{2}'. The generic type argument '{3}' must be used instead." ArgumentException with message like "The property '{0}' on entity type '{1}' cannot be used for objects of type '{2}' because it is a property for objects of type '{3}'." ArgumentException with message like "The expression passed to method {0} must represent a property defined on the type '{1}'." InvalidOperationException with message like "{0} cannot be used for entities in the {1} state." InvalidOperationException with message like "Cannot set non-nullable property '{0}' of type '{1}' to null on object of type '{2}'." InvalidOperationException with message like "The property '{0}' in the entity of type '{1}' is null. Store values cannot be obtained for an entity with a null complex property." InvalidOperationException with message like "Cannot assign value of type '{0}' to property '{1}' of type '{2}' in property values for type '{3}'." NotSupportedException with message like "The set of property value names is read-only." ArgumentException with message like "The '{0}' property does not exist or is not mapped for the type '{1}'." ArgumentException with message like "Cannot copy values from DbPropertyValues for type '{0}' into DbPropertyValues for type '{1}'." ArgumentException with message like "Cannot copy from property values for object of type '{0}' into property values for object of type '{1}'." ArgumentException with message like "A property of a complex type must be set to an instance of the generic or non-generic DbPropertyValues class for that type." InvalidOperationException with message like "The value of the complex property '{0}' on entity of type '{1}' is null. Complex properties cannot be set to null and values cannot be set for null complex properties." InvalidOperationException with message like "The value of the nested property values property '{0}' on the values for entity of type '{1}' is null. Nested property values cannot be set to null and values cannot be set for null complex properties." InvalidOperationException with message like "Cannot set the value of the nested property '{0}' because value of the complex property '{1}' to which it belongs is null." InvalidOperationException with message like "Cannot set the original value of the nested property '{0}' because the original value of the complex property '{1}' to which it belongs is null." InvalidOperationException with message like "The model backing the '{0}' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269)." InvalidOperationException with message like "Database '{0}' cannot be created because it already exists." NotSupportedException with message like "Model compatibility cannot be checked because the DbContext instance was not created using Code First patterns. DbContext instances created from an ObjectContext or using an EDMX file cannot be checked for compatibility." NotSupportedException with message like "Model compatibility cannot be checked because the EdmMetadata type was not included in the model. Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions." NotSupportedException with message like "Model compatibility cannot be checked because the database does not contain model metadata. Model compatibility can only be checked for databases created using Code First or Code First Migrations." InvalidOperationException with message like "Failed to set database initializer of type '{0}' for DbContext type '{1}' specified in the application configuration. See inner exception for details." InvalidOperationException with message like "Configuration for DbContext type '{0}' is specified multiple times in the application configuration. Each context can only be configured once." InvalidOperationException with message like "Failed to set Database.DefaultConnectionFactory to an instance of the '{0}' type as specified in the application configuration. See inner exception for details." InvalidOperationException with message like "The type '{0}' could not be found. The type name must be an assembly-qualified name." InvalidOperationException with message like "The context cannot be used while the model is being created." InvalidOperationException with message like "The DbContext class cannot be used with models that have multiple entity sets per type (MEST)." InvalidOperationException with message like "The operation cannot be completed because the DbContext has been disposed." InvalidOperationException with message like "The provider factory returned a null connection." InvalidOperationException with message like "The connection string '{0}' in the application's configuration file does not contain the required providerName attribute."" InvalidOperationException with message like "The DbConnectionFactory instance returned a null connection." ArgumentException with message like "The number of primary key values passed must match number of primary key values defined on the entity." ArgumentException with message like "The type of one of the primary key values did not match the type defined in the entity. See inner exception for details." InvalidOperationException with message like "The entity found was of type {0} when an entity of type {1} was requested." InvalidOperationException with message like "Multiple entities were found in the Added state that match the given primary key values." InvalidOperationException with message like "The type '{0}' is mapped as a complex type. The Set method, DbSet objects, and DbEntityEntry objects can only be used with entity types, not complex types." InvalidOperationException with message like "The type '{0}' is not attributed with EdmEntityTypeAttribute but is contained in an assembly attributed with EdmSchemaAttribute. POCO entities that do not use EdmEntityTypeAttribute cannot be contained in the same assembly as non-POCO entities that use EdmEntityTypeAttribute." InvalidOperationException with message like "The entity type {0} is not part of the model for the current context." NotSupportedException with message like "Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery) is not supported. Instead populate a DbSet with data, for example by calling Load on the DbSet, and then bind to local data. For WPF bind to DbSet.Local. For WinForms bind to DbSet.Local.ToBindingList()." ArgumentException with message like "The Include path expression must refer to a navigation property defined on the type. Use dotted paths for reference navigation properties and the Select operator for collection navigation properties." InvalidOperationException with message like "No connection string named '{0}' could be found in the application config file." InvalidOperationException with message like "Cannot initialize a DbContext from an entity connection string or an EntityConnection instance together with a DbCompiledModel. If an entity connection string or EntityConnection instance is used, then the model will be created from the metadata in the connection. If a DbCompiledModel is used, then the connection supplied should be a standard database connection (for example, a SqlConnection instance) rather than an entity connection." NotSupportedException with message like "The collection navigation property '{0}' on the entity of type '{1}' cannot be set because the entity type does not define a navigation property with a set accessor." NotSupportedException with message like "Using the same DbCompiledModel to create contexts against different types of database servers is not supported. Instead, create a separate DbCompiledModel for each type of server being used." InvalidOperationException with message like "Multiple object sets per type are not supported. The object sets '{0}' and '{1}' can both contain instances of type '{2}'." InvalidOperationException with message like "The context type '{0}' must have a public constructor taking an EntityConnection." NotSupportedException with message like "The database name '{0}' is not supported because it is an MDF file name. A full connection string must be provided to attach an MDF file." DataException with message like "An exception occurred while initializing the database. See the InnerException for details." NotSupportedException with message like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing ObjectContext is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." NotSupportedException with message like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing DbCompiledModel is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." NotSupportedException with message like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using Database First or Model First is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." InvalidOperationException with message like "The context factory type '{0}' must have a public default constructor." InvalidOperationException with message like "The generic 'Set' method cannot be called with a proxy type. Either use the actual entity type or call the non-generic 'Set' method." InvalidOperationException with message like "MaxLengthAttribute must have a Length value that is greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." InvalidOperationException with message like "MinLengthAttribute must have a Length value that is zero or greater." InvalidOperationException with message like "No connection string named '{0}' could be found in the application config file." InvalidOperationException with message like "The connection can not be overridden because this context was created from an existing ObjectContext." InvalidOperationException with message like "Can not override the connection for this context with a standard DbConnection because the original connection was an EntityConnection." InvalidOperationException with message like "Can not override the connection for this context with an EntityConnection because the original connection was a standard DbConnection." The exception that is thrown when a null reference (Nothing in Visual Basic) is passed to a method that does not accept it as a valid argument. The exception that is thrown when the value of an argument is outside the allowable range of values as defined by the invoked method. The exception that is thrown when the author has yet to implement the logic at this point in the program. This can act as an exception based TODO tag. The exception that is thrown when an invoked method is not supported, or when there is an attempt to read, seek, or write to a stream that does not support the invoked functionality. AutoGenerated resource class. Usage: string s = EntityRes.GetString(EntityRes.MyIdenfitier); Allows the construction and modification of a user-specified annotation (name-value pair) on a instance. Gets or sets an optional namespace that can be used to distinguish the annotation from others with the same value. Gets or sets the name of the annotation. Gets or sets the value of the annotation. DataModelEventArgs is the base argument type for all events raised by consumers of Entity Data Model (EDM) models. Gets a value indicating the that caused the event to be raised. Gets an optional value indicating which property of the source item caused the event to be raised. Gets a value that identifies the specific error that is being raised. Gets an optional descriptive message the describes the error that is being raised. DbAliasedMetadataItem provides the base type for all Database Metadata types that can have an optional that should be used instead of the item's when referring to the item in the database. NamedDbItem is the base for all types in the Database Metadata construction and modification API with a property. The base for all all Database Metadata types that support annotation using . DbDataModelItem is the base for all types in the Database Metadata construction and modification API. Gets or sets the currently assigned annotations. Gets or sets the currently assigned name. Gets an optional alternative identifier that should be used when referring to this item in the database. When implemented in derived types, allows the construction and modification of a column in a Database Metadata table or row. Gets or sets a string indicating the database-specific type of the column. Gets or sets a value indicating whether the column is nullable. Gets or sets an optional instance that applies additional constraints to the referenced database-specific type of the column. Allows the construction and modification of a database in a Database Metadata model. Gets or sets an optional value that indicates the database model version. Gets or sets the collection of instances that specifies the schemas within the database. Allows the construction and modification of a foreign key constraint sourced by a instance. Gets or sets the to take when a delete operation is attempted. Indicates which Database Metadata concept is represented by a given item. Database Kind Schema Kind Foreign Key Constraint Kind Function Kind Function Parameter Kind Function Return or Parameter Type Kind Row Column Kind Table Kind Table Column Kind Primitive Facets Kind Specifies the action to take on a given operation. Default behavior Restrict the operation Cascade the operation Allows the construction and modification of additional constraints that can be applied to a specific use of a primitive type in a Database Metadata item. Returns true if any facet value property currently has a non-null value; otherwise returns false . Gets or sets an optional value indicating whether the referenced type should be considered to have a fixed or variable length. Gets or sets an optional value indicating whether the referenced type should be considered to have its intrinsic maximum length, rather than a specific value. Gets or sets an optional value indicating whether the referenced type should be considered to be Unicode or non-Unicode. Gets or sets an optional value indicating the current constraint on the type's maximum length. Gets or sets an optional value indicating the current constraint on the type's precision. Gets or sets an optional value indicating the current constraint on the type's scale. Gets or sets an optional value indicating the current spatial type's SRID. Gets or sets an optional value indicating the current spatial type's SRID. Gets or sets an optional value indicating whether the spatial type is to be type checked strictly. Allows the construction and modification of a database schema in a database model. Gets or sets the collection of instances that specifies the tables declared within the schema. DbSchemaMetadataItem is the base for all types that can be contained in a schema. Allows the construction and modification of a column in a table. Gets or sets a value indicating whether the column is part of the table's primary key. Gets or sets a value indicating if and how the value of the column is automatically generated. Gets or sets an optional value indicating the collation specific to this table column. Gets or sets an optional value that specifies the default value for the column. Allows the construction and modification a table in a database schema. Gets or sets the collection of instances that specifies the columns present within the table. Gets or sets the collection of instances from the collection of the table that are part of the primary key. Gets or sets the collection of instances that defines the foreign key constraints sourced from the table. Represents a specific use of a type in a Database Metadata item. Gets or sets an optional instance that applies additional constraints to a referenced primitive type. Accessing this property forces the creation of a DbPrimitiveTypeFacets value if no value has previously been set. Use to determine whether or not this property currently has a value. Gets or sets a value indicating whether the represented type is a collection type. Gets or sets an optional value indicating whether the referenced type should be considered nullable. Gets a value indicating whether the type has been configured as a row type by the addition of one or more RowColumns. Represents the mapping of an EDM association end ( ) as a collection of property mappings ( ). DbMappingMetadataItem is the base for all types in the EDM-to-Database Mapping construction and modification API that support annotation using . DbMappingModelItem is the base for all types in the EDM-to-Database Mapping construction and modification API. Gets or sets the currently assigned annotations. Gets an value representing the association end that is being mapped. Gets the collection of s that specifies how the association end key properties are mapped to the table. Gets an value representing the association set that is being mapped. Gets a value representing the table to which the entity type's properties are being mapped. Gets the collection of s that specifies the constant or null values that columns in must have for this type mapping to apply. Allows the construction and modification of a condition for a column in a database table. Gets or sets a value representing the table column which must contain for this condition to hold. Gets or sets the value that must contain for this condition to hold. Gets or sets an value representing the model that is being mapped. Gets or sets a value representing the database that is the target of the mapping. Gets or sets the collection of s that specifies how the model's entity containers are mapped to the database. Represents the mapping of an entity property to a column in a database table. Gets or sets the collection of instances that defines the mapped property, beginning from a property declared by the mapped entity type and optionally proceeding through properties of complex property result types. Gets or sets a value representing the table column to which the entity property is being mapped. Allows the construction and modification of the mapping of an EDM entity container ( ) to a database ( ). Gets or sets an value representing the entity container that is being mapped. Gets or sets the collection of s that specifies how the container's entity sets are mapped to the database. Gets the collection of s that specifies how the container's association sets are mapped to the database. Allows the construction and modification of the mapping of an EDM entity set ( ) to a database ( ). Gets or sets an value representing the entity set that is being mapped. Gets or sets the collection of s that specifies how the set's entity types are mapped to the database. Allows the construction and modification of a complete or partial mapping of an EDM entity type ( ) or type hierarchy to a specific database table ( ). Gets or sets an value representing the entity type or hierarchy that is being mapped. Gets or sets a value indicating whether this type mapping applies to and all its direct or indirect subtypes ( true ), or only to ( false ). Gets a value representing the table to which the entity type's properties are being mapped. Gets the collection of s that specifies how the type's properties are mapped to the table. Gets the collection of s that specifies the constant or null values that columns in must have for this type mapping fragment to apply. Indicates which EDM-to-Database Mapping concept is represented by a given item. Database Mapping Kind Entity Container Mapping Kind Entity Set Mapping Kind Association Set Mapping Kind Entity Type Mapping Kind Query View Mapping Kind Entity Type Mapping Fragment Kind Edm Property Mapping Kind Association End Mapping Kind Column Condition Kind Property Condition Kind Allows the construction and modification of a constraint applied to an Entity Data Model (EDM) association. Gets or sets the that represents the 'dependent' end of the constraint; properties from this association end's entity type contribute to the collection. Gets or sets the collection of instances from the of the constraint. The values of these properties are constrained against the primary key values of the remaining, 'principal' association end's entity type. Allows the construction and modification of one end of an Entity Data Model (EDM) association. Gets or sets the entity type referenced by this association end. Gets or sets the of this association end, which indicates the multiplicity of the end and whether or not it is required. Gets or sets the to take when a delete operation is attempted. Indicates the multiplicity of an and whether or not it is required. Allows the construction and modification of an association set in an Entity Data Model (EDM) ). Represents an item in an Entity Data Model (EDM) . Gets or sets the that specifies the association type for the set. Gets or sets the that specifies the entity set corresponding to the association end for this association set. Gets or sets the that specifies the entity set corresponding to the association end for this association set. The base for all all Entity Data Model (EDM) types that represent a structured type from the EDM type system. Gets or sets the that defines the source end of the association. Gets or sets the that defines the target end of the association. Gets or sets the optional constraint that indicates whether the relationship is an independent association (no constraint present) or a foreign key relationship ( specified). Collection semantics for properties. The property does not have a collection type or does not specify explicit collection semantics. The property is an unordered collection that may contain duplicates. The property is an ordered collection that may contain duplicates. Allows the construction and modification of a complex type in an Entity Data Model (EDM) . Gets or sets the optional that indicates the base complex type of the complex type. Gets or sets a value indicating whether the complex type is abstract. Gets or sets the collection of instances that describe the (scalar or complex) properties of the complex type. Concurrency mode for properties. Default concurrency mode: the property is never validated at write time Fixed concurrency mode: the property is always validated at write time Allows the construction and modification of an entity container in an Entity Data Model (EDM) . Gets all s declared within the namspace. Includes s and s. Gets or sets the collection of s that specifies the association sets within the container. Gets or sets the collection of s that specifies the entity sets within the container. Allows the construction and modification of an entity set in an Entity Data Model (EDM) . Gets or sets the that specifies the entity type for the set. Allows the construction and modification of an entity type in an Entity Data Model (EDM) . Gets or sets the optional that indicates the base entity type of the entity type. Gets or sets a value indicating whether the entity type is abstract. Gets or sets the collection of s that specifies the properties declared by the entity type. Gets or sets the collection of s that indicates which properties from the collection are part of the entity key. Gets or sets the optional collection of s that specifies the navigation properties declared by the entity type. Indicates which Entity Data Model (EDM) concept is represented by a given item. Association End Kind Association Set Kind Association Type Kind Collection Type Kind Complex Type Kind Entity Container Kind Entity Set Kind Entity Type Kind Function Group Kind Function Overload Kind Function Import Kind Function Parameter Kind Navigation Property Kind EdmProperty Type Kind Association Constraint Type Kind Ref Type Kind Row Column Kind Row Type Kind Type Reference Kind Model Kind Namespace Kind Primitive Facets Kind Primitive Type Kind Enum Type Kind Enum Type Member Kind EdmModel is the top-level container for namespaces and entity containers belonging to the same logical Entity Data Model (EDM) model. Gets or sets an optional value that indicates the entity model version. Gets or sets the containers declared within the model. Gets or sets the namespaces declared within the model. Allows the construction and modification of a namespace in an . Gets all s declared within the namspace. Includes s, s, s. Gets or sets the s declared within the namespace. Gets or sets the s declared within the namespace. Gets or sets the s declared within the namespace. Allows the construction and modification of an Entity Data Model (EDM) navigation property. Gets or sets the that specifies the association over which navigation takes place. Gets or sets the that specifies which association end is the 'destination' end of the navigation and produces the navigation property result. Specifies the action to take on a given operation. Default behavior Restrict the operation Cascade the operation Represents one of the fixed set of Entity Data Model (EDM) primitive types. The base for all all Entity Data Model (EDM) types that represent a scalar type from the EDM type system. Retrieves the EdmPrimitiveType instance with the corresponding to the specified value, if any. The name of the primitive type instance to retrieve The EdmPrimitiveType with the specified name, if successful; otherwise null . true if the given name corresponds to an EDM primitive type name; otherwise false . Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets the EdmPrimitiveType instance that represents the primitive type. Gets an value that indicates which Entity Data Model (EDM) primitive type this type represents. Allows the construction and modification of additional constraints that can be applied to a specific use of a primitive type in an Entity Data Model (EDM) item. See . Returns true if any facet value property currently has a non-null value; otherwise returns false . Gets or sets an optional value indicating the current constraint on the type's maximum length. Gets or sets an optional value indicating whether the referenced type should be considered to have its intrinsic maximum length, rather than a specific value. Gets or sets an optional value indicating whether the referenced type should be considered to have a fixed or variable length. Gets or sets an optional value indicating whether the referenced type should be considered to be Unicode or non-Unicode. Gets or sets an optional value indicating the current constraint on the type's precision. Gets or sets an optional value indicating the current constraint on the type's scale. Gets or sets an optional value indicating that the current spatial type's SRID is unconstrained. Gets or sets an optional value indicating the current spatial type's SRID. Gets or sets an optional value indicating whether the spatial type is to be type checked strictly. Primitive Types as defined by the Entity Data Model (EDM). Binary Type Kind Boolean Type Kind Byte Type Kind DateTime Type Kind Decimal Type Kind Double Type Kind Guid Type Kind Single Type Kind SByte Type Kind Int16 Type Kind Int32 Type Kind Int64 Type Kind String Type Kind Time Type Kind DateTimeOffset Type Kind Geometry Type Kind Geography Type Kind Geometric point type kind Geometric linestring type kind Geometric polygon type kind Geometric multi-point type kind Geometric multi-linestring type kind Geometric multi-polygon type kind Geometric collection type kind Geographic point type kind Geographic linestring type kind Geographic polygon type kind Geographic multi-point type kind Geographic multi-linestring type kind Geographic multi-polygon type kind Geographic collection type kind Allows the construction and modification of a primitive- or complex-valued property of an Entity Data Model (EDM) entity or complex type. Gets or sets an value that indicates which collection semantics - if any - apply to the property. Gets or sets a value that indicates whether the property is used for concurrency validation. Gets or sets on optional value that indicates an initial default value for the property. Gets or sets an that specifies the result type of the property. Enumerates all s declared or inherited by an . Allows the construction and modification of a specific use of a type in an Entity Data Model (EDM) item. See for examples. Gets or sets a value indicating the collection rank of the type reference. A collection rank greater than zero indicates that the type reference represents a collection of its referenced . Gets or sets a value indicating the referenced by this type reference. Gets or sets an optional value indicating whether the referenced type should be considered nullable. Gets or sets an optional instance that applies additional constraints to a referenced primitive type. Accessing this property forces the creation of an EdmPrimitiveTypeFacets value if no value has previously been set. Use to determine whether or not this property currently has a value. Gets a value indicating whether the property of this type reference has been assigned an value with at least one facet value specified. Indicates whether this type reference represents a collection of its referenced (when is greater than zero) or not. Indicates whether the property of this type reference currently refers to an , is not a collection type, and does not have primitive facet values specified. Gets the currently referred to by this type reference, or null if the type reference is a collection type or does not refer to a complex type. Indicates whether the property of this type reference currently refers to an and is not a collection type. Gets the currently referred to by this type reference, or null if the type reference is a collection type or does not refer to a primitive type. Contains constant values that apply to the EDM model, regardless of source (for CSDL specific constants see ). Parsing code taken from System.dll's System.CodeDom.Compiler.CodeGenerator.IsValidLanguageIndependentIdentifier(string) method to avoid LinkDemand needed to call this method Constants for CSDL XML. Constants for C-S MSL XML. Constants for SSDL XML. The acceptable range for this enum is 0000 - 0999; the range 10,000-15,000 is reserved for tools. Precision out of range Scale out of range One of the required facets is missing The facet isn't allow by the property type. This facet value is constant and is specified in the schema Multiplicity value was malformed The value for the Action attribute is invalid or not allowed in the current context An error occurred processing the On<Operation> elements Ends were given for the Property element of a EntityContainer that is not a RelationshipSet The extent name used in the EntittyContainerType End does not match the name of any of the EntityContainerProperties in the containing EntityContainer An end element was not given, and cannot be inferred because too many EntityContainerEntitySet elements that are good possibilities. An end element was not given, and cannot be inferred because there is no EntityContainerEntitySets that are the correct type to be used as an EntitySet. Not a valid parameter direction for the parameter in a function Unable to infer an optional schema part, to resolve this; be more explicit Invalid facet attribute(s) specified in provider manifest Invalid role value in the relationship constraint Invalid Property in relationship constraint Type mismatch between ToProperty and FromProperty in the relationship constraint Invalid multiplicity in FromRole in the relationship constraint The number of properties in the FromProperty and ToProperty in the relationship constraint must be identical No Properties defined in either FromProperty or ToProperty in the relationship constraint Missing constraint in relationship type in ssdl Same role referred in the ToRole and FromRole of a referential constraint Invalid value for attribute ParameterTypeSemantics Invalid type used for a Relationship End Type Invalid PrimitiveTypeKind Invalid TypeConversion DestinationType Expected a integer value between 0 - 255 Invalid Type specified in function Precision must not be greater than 28 Properties that are part of entity key must be of scalar type Binary type properties which are part of entity key are currently not supported The primitive type kind does not have a preferred mapping More than one PreferredMapping for a PrimitiveTypeKind End with * multiplicity cannot have operations specified EntitySet type has no keys InvalidNumberOfParametersForAggregateFunction InvalidParameterTypeForAggregateFunction Composable functions must declare a return type. Non-composable functions must not declare a return type. Non-composable functions do not permit the aggregate; niladic; or built-in attributes. Composable functions can not include command text attribute. Functions should not declare both a store name and command text (only one or the other can be used). SystemNamespace Empty DefiningQuery text Schema, Table and DefiningQuery are all specified, and are mutually exclusive ConcurrencyMode value was malformed Concurrency can't change for any sub types of an EntitySet type. Function import return type must be either empty, a collection of entities, or a singleton scalar. Function import specifies a non-existent entity set. Function import specifies entity type return but no entity set. Function import specifies entity type that does not derive from element type of entity set. Function import specifies a binding to an entity set but does not return entities. InternalError Same Entity Set Taking part in the same role of the relationship set in two different relationship sets Entity key refers to the same property twice Function declares a ReturnType attribute and element Nullable Complex Type not supported in Edm V1 Only Complex Collections supported in Edm V1.1 No Key defined on Entity Type Invalid namespace specified in using element Need not specify system namespace in using Cannot use a reserved/system namespace as alias Invalid qualification specified for type Invalid Entity Container Name in extends attribute Invalid CollectionKind value in property CollectionKind attribute Must specify namespace or alias of the schema in which this type is defined Entity Container cannot extend itself Failed to retrieve provider manifest Mismatched Provider Manifest token values in SSDL artifacts Missing Provider Manifest token value in SSDL artifact(s) Empty CommandText element Inconsistent Provider values in SSDL artifacts Inconsistent Provider Manifest token values in SSDL artifacts Duplicated Function overloads InvalidProvider FunctionWithNonEdmTypeNotSupported ComplexTypeAsReturnTypeAndDefinedEntitySet ComplexTypeAsReturnTypeAndDefinedEntitySet unused 179, unused 180, unused 181, In model functions facet attribute is allowed only on ScalarTypes Captures several conditions where facets are placed on element where it should not exist. Return type has not been declared Invalid value in the EnumTypeOption The structural annotation cannot use codegen namespaces Function and type cannot have the same fully qualified name Cannot load different version of schema in the same ItemCollection Expected bool value End without Multiplicity specified In SSDL, if composable function returns a collection of rows (TVF), all row properties must be of scalar types. The name of NamedEdmItem must not be empty or white space only EdmTypeReference is empty Unused 199; Serializes an that conforms to the restrictions of a single CSDL schema file to an XML writer. The model to be serialized must contain a single and a single . Serialize the to the XmlWriter. The EdmModel to serialize, mut have only one and one The XmlWriter to serialize to Serialize the to the XmlWriter The DbModel to serialize The XmlWriter to serialize to Serialize the to the The DbDatabaseMetadata to serialize Provider information on the Schema element ProviderManifestToken information on the Schema element The XmlWriter to serialize to author/email author/name author/uri published rights summary title contributor/email contributor/name contributor/uri category/@label Plaintext HTML XHTML updated link/@href link/@rel link/@type link/@hreflang link/@title link/@length category/@term category/@scheme Return role name pair The context for DataModel Validation Returns true if the given two ends are similar - the relationship type that this ends belongs to is the same and the entity set refered by the ends are same and they are from the same role Return true if the Referential Constraint on the association is ready for further validation, otherwise return false. Resolves the given property names to the property in the item Also checks whether the properties form the key for the given type and whether all the properties are nullable or not Return true if the namespaceName is a Edm System Namespace Return true if the entityType is a subtype of any entity type in the dictionary keys, and return the corresponding entry EntitySet value. Otherwise return false. Return true if any of the properties in the EdmEntityType defines ConcurrencyMode. Otherwise return false. Add member name to the Hash set, raise an error if the name exists already. If the string is null, empty, or only whitespace, return false, otherwise return true Determine if a cycle exists in the type hierarchy: use two pointers to walk the chain, if one catches up with the other, we have a cycle. true if a cycle exists in the type hierarchy, false otherwise RuleSet for DataModel Validation Get the related rules given certain DataModelItem The to validate A collection of Data Model Validator Validate the and all of its properties given certain version. The root of the model to be validated True to validate the syntax, otherwise false The RuleSet for EdmModel Get based on version a double value of version The context for EdmModel Validation Visitor for EdmModel Validation Edm Model Validator validate the from the root with the context The root to validate from The validation context An implementation of IDatabaseInitializer that will recreate and optionally re-seed the database only if the database does not exist. To seed the database, create a derived class and override the Seed method. The type of the context. Executes the strategy to initialize the database for the given context. The context. A that should be overridden to actually add data to the context for seeding. The default implementation does nothing. The context to seed. An instances of this class is obtained from an object and can be used to manage the actual database backing a DbContext or connection. This includes creating, deleting, and checking for the existence of a database. Note that deletion and checking for existence of a database can be performed using just a connection (i.e. without a full context) by using the static methods of this class. Creates a Database backed by the given context. This object can be used to create a database, check for database existence, and delete a database. The context that defines the database connection and model. Gets or sets the database initialization strategy. The database initialization strategy is called when instance is initialized from a . The strategy can optionally check for database existence, create a new database, and seed the database with data. The default strategy is an instance of . The type of the context. The strategy. The database creation strategy. Internal version of SetInitializer that allows the strategy to be locked such that it cannot be replaced by another call to SetInitializer. This allows strategies set in the app.config to win over strategies set in code. The type of the context. The strategy. if set to true then the strategy is locked. Runs the the registered on this context. If "force" is set to true, then the initializer is run regardless of whether or not it has been run before. This can be useful if a database is deleted while an app is running and needs to be reinitialized. If "force" is set to false, then the initializer is only run if it has not already been run for this context, model, and connection in this app domain. This method is typically used when it is necessary to ensure that the database has been created and seeded before starting some operation where doing so lazily will cause issues, such as when the operation is part of a transaction. if set to true the initializer is run even if it has already been run. Checks whether or not the database is compatible with the the current Code First model. Model compatibility currently uses the following rules. If the context was created using either the Model First or Database First approach then the model is assumed to be compatible with the database and this method returns true. For Code First the model is considered compatible if the model is stored in the database in the Migrations history table and that model has no differences from the current model as determined by Migrations model differ. If the model is not stored in the database but an EF 4.1/4.2 model hash is found instead, then this is used to check for compatibility. If set to true then an exception will be thrown if no model metadata is found in the database. If set to false then this method will return true if metadata is not found. True if the model hash in the context and the database match; false otherwise. Creates a new database on the database server for the model defined in the backing context. Note that calling this method before the database initialization strategy has run will disable executing that strategy. Creates a new database on the database server for the model defined in the backing context, but only if a database with the same name does not already exist on the server. True if the database did not exist and was created; false otherwise. Checks whether or not the database exists on the server. True if the database exists; false otherwise. Deletes the database on the database server if it exists, otherwise does nothing. Calling this method from outside of an initializer will mark the database as having not been initialized. This means that if an attempt is made to use the database again after it has been deleted, then any initializer set will run again and, usually, will try to create the database again automatically. True if the database did exist and was deleted; false otherwise. Checks whether or not the database exists on the server. The connection to the database is created using the given database name or connection string in the same way as is described in the documentation for the class. The database name or a connection string to the database. True if the database exists; false otherwise. Deletes the database on the database server if it exists, otherwise does nothing. The connection to the database is created using the given database name or connection string in the same way as is described in the documentation for the class. The database name or a connection string to the database. True if the database did exist and was deleted; false otherwise. Checks whether or not the database exists on the server. An existing connection to the database. True if the database exists; false otherwise. Deletes the database on the database server if it exists, otherwise does nothing. An existing connection to the database. True if the database did exist and was deleted; false otherwise. Resets the DefaultConnectionFactory to its initial value. Currently, this method is only used by test code. Performs the operation defined by the given delegate using the given lazy connection, ensuring that the lazy connection is disposed after use. Information used to create a DbConnection. The operation to perform. The return value of the operation. Performs the operation defined by the given delegate against a connection. The connection is either the connection accessed from the context backing this object, or is obtained from the connection information passed to one of the static methods. The connection to use. The operation to perform. The return value of the operation. Returns an empty ObjectContext that can be used to perform delete/exists operations. The connection for which to create an ObjectContext The empty context. Creates a raw SQL query that will return elements of the given generic type. The type can be any type that has properties that match the names of the columns returned from the query, or can be a simple primitive type. The type does not have to be an entity type. The results of this query are never tracked by the context even if the type of object returned is an entity type. Use the method to return entities that are tracked by the context. The type of object returned by the query. The SQL query string. The parameters to apply to the SQL query string. A object that will execute the query when it is enumerated. Creates a raw SQL query that will return elements of the given type. The type can be any type that has properties that match the names of the columns returned from the query, or can be a simple primitive type. The type does not have to be an entity type. The results of this query are never tracked by the context even if the type of object returned is an entity type. Use the method to return entities that are tracked by the context. The type of object returned by the query. The SQL query string. The parameters to apply to the SQL query string. A object that will execute the query when it is enumerated. Executes the given DDL/DML command against the database. The command string. The parameters to apply to the command string. The result returned by the database after executing the command. Returns the connection being used by this context. This may cause the connection to be created if it does not already exist. Thrown if the context has been disposed. Returns the as a delegate that can be called with an instance of the that owns this Database object, or returns null if there is no initializer set for this context type. The initializer delegate or null. The connection factory to use when creating a from just a database name or a connection string. This is used when just a database name or connection string is given to or when the no database name or connection is given to DbContext in which case the name of the context class is passed to this factory in order to generate a DbConnection. By default, the instance to use is read from the applications .config file from the "EntityFramework DefaultConnectionFactory" entry in appSettings. If no entry is found in the config file then is used. Setting this property in code always overrides whatever value is found in the config file. Checks wether or not the DefaultConnectionFactory has been set to something other than its default value. Common code for generic and non-generic string Include. Returns a new query where the entities returned will not be cached in the or . This method works by calling the AsNoTracking method of the underlying query object. If the underlying query object does not have a AsNoTracking method, then calling this method will have no affect. The element type. The source query. A new query with NoTracking applied, or the source query if NoTracking is not supported. Returns a new query where the entities returned will not be cached in the or . This method works by calling the AsNoTracking method of the underlying query object. If the underlying query object does not have a AsNoTracking method, then calling this method will have no affect. The source query. A new query with NoTracking applied, or the source query if NoTracking is not supported. Common code for generic and non-generic AsNoTracking. Enumerates the query such that for server queries such as those of , , , and others the results of the query will be loaded into the associated , or other cache on the client. This is equivalent to calling ToList and then throwing away the list without the overhead of actually creating the list. The source query. Returns an implementation that stays in sync with the given . The element type. The collection that the binding list will stay in sync with. The binding list. DbModelBuilder is used to map CLR classes to a database schema. This code centric approach to building an Entity Data Model (EDM) model is known as 'Code First'. DbModelBuilder is typically used to configure a model by overriding . You can also use DbModelBuilder independently of DbContext to build a model and then construct a or . The recommended approach, however, is to use OnModelCreating in as the workflow is more intuitive and takes care of common tasks, such as caching the created model. Types that form your model are registered with DbModelBuilder and optional configuration can be performed by applying data annotations to your classes and/or using the fluent style DbModelBuilder API. When the Build method is called a set of conventions are run to discover the initial model. These conventions will automatically discover aspects of the model, such as primary keys, and will also process any data annotations that were specified on your classes. Finally any configuration that was performed using the DbModelBuilder API is applied. Configuration done via the DbModelBuilder API takes precedence over data annotations which in turn take precedence over the default conventions. Initializes a new instance of the class. The process of discovering the initial model will use the set of conventions included in the most recent version of the Entity Framework installed on your machine. Upgrading to newer versions of the Entity Framework may cause breaking changes in your application because new conventions may cause the initial model to be configured differently. There is an alternate constructor that allows a specific version of conventions to be specified. Initializes a new instance of the class that will use a specific set of conventions to discover the initial model. The version of conventions to be used. Excludes a type from the model. This is used to remove types from the model that were added by convention during initial model discovery. The type to be excluded. The same DbModelBuilder instance so that multiple calls can be chained. Excludes a type(s) from the model. This is used to remove types from the model that were added by convention during initial model discovery. The types to be excluded from the model. The same DbModelBuilder instance so that multiple calls can be chained. Registers an entity type as part of the model and returns an object that can be used to configure the entity. This method can be called multiple times for the same entity to perform multiple lines of configuration. The type to be registered or configured. The configuration object for the specified entity type. Registers a type as an entity in the model and returns an object that can be used to configure the entity. This method can be called multiple times for the same type to perform multiple lines of configuration. The type to be registered or configured. The configuration object for the specified entity type. Registers a type as a complex type in the model and returns an object that can be used to configure the complex type. This method can be called multiple times for the same type to perform multiple lines of configuration. The type to be registered or configured. The configuration object for the specified complex type. Creates a based on the configuration performed using this builder. The connection is used to determine the database provider being used as this affects the database layer of the generated model. Connection to use to determine provider information. The model that was built. Creates a based on the configuration performed using this builder. Provider information must be specified because this affects the database layer of the generated model. For SqlClient the invariant name is 'System.Data.SqlClient' and the manifest token is the version year (i.e. '2005', '2008' etc.) The database provider that the model will be used with. The model that was built. Provides access to the settings of this DbModelBuilder that deal with conventions. Gets the for this DbModelBuilder. The registrar allows derived entity and complex type configurations to be registered with this builder. A value from this enumeration can be provided directly to the class or can be used in the applied to a class derived from . The value used defines which version of the DbContext and DbModelBuilder conventions should be used when building a model from code--also know as "Code First". Using DbModelBuilderVersion.Latest ensures that all the latest functionality is available when upgrading to a new release of the Entity Framework. However, it may result in an application behaving differently with the new release than it did with a previous release. This can be avoided by using a specific version of the conventions, but if a version other than the latest is set then not all the latest functionality will be available. Indicates that the latest version of the and conventions should be used. Indicates that the version of the and conventions shipped with Entity Framework 4.1 through 4.3 should be used. Indicates that the version of the and conventions shipped with Entity Framework 5.0 when targeting .NET 4 should be used. Indicates that the version of the and conventions shipped with Entity Framework 5.0 when targeting .NET 4.5 should be used. This attribute can be applied to a class derived from to set which version of the DbContext and conventions should be used when building a model from code--also know as "Code First". See the enumeration for details about DbModelBuilder versions. If the attribute is missing from DbContextthen DbContext will always use the latest version of the conventions. This is equivalent to using DbModelBuilderVersion.Latest. Initializes a new instance of the class. The conventions version to use. Gets the conventions version. The conventions version. A non-generic version of which can be used when the type of entity is not known at build time. Represents a non-generic LINQ to Entities query against a DbContext. An internal interface implemented by and that allows access to the internal query without using reflection. The underlying internal set. Internal constructor prevents external classes deriving from DbQuery. Throws an exception indicating that binding directly to a store query is not supported. Instead populate a DbSet with data, for example by using the Load extension method, and then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to DbSet.Local.ToBindingList(). Never returns; always throws. Gets the enumeration of this query causing it to be executed against the store. An enumerator for the query Returns a new query where the entities returned will not be cached in the . A new query with NoTracking applied. Returns the equivalent generic object. The type of element for which the query was created. The generic set object. Returns a representation of the underlying query. The query string. Returns false. false. The IQueryable element type. The IQueryable LINQ Expression. The IQueryable provider. Gets the underlying internal query object. The internal query. The internal query object that is backing this DbQuery An internal interface implemented by and that allows access to the internal set without using reflection. The underlying internal set. Internal constructor prevents external classes deriving from DbSet. Finds an entity with the given primary key values. If an entity with the given primary key values exists in the context, then it is returned immediately without making a request to the store. Otherwise, a request is made to the store for an entity with the given primary key values and this entity, if found, is attached to the context and returned. If no entity is found in the context or the store, then null is returned. The ordering of composite key values is as defined in the EDM, which is in turn as defined in the designer, by the Code First fluent API, or by the DataMember attribute. The values of the primary key for the entity to be found. The entity found, or null. Thrown if multiple entities exist in the context with the primary key values given. Thrown if the type of entity is not part of the data model for this context. Thrown if the types of the key values do not match the types of the key values for the entity type to be found. Thrown if the context has been disposed. Attaches the given entity to the context underlying the set. That is, the entity is placed into the context in the Unchanged state, just as if it had been read from the database. The entity to attach. The entity. Attach is used to repopulate a context with an entity that is known to already exist in the database. SaveChanges will therefore not attempt to insert an attached entity into the database because it is assumed to already be there. Note that entities that are already in the context in some other state will have their state set to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. Adds the given entity to the context underlying the set in the Added state such that it will be inserted into the database when SaveChanges is called. The entity to add. The entity. Note that entities that are already in the context in some other state will have their state set to Added. Add is a no-op if the entity is already in the context in the Added state. Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges is called. Note that the entity must exist in the context in some other state before this method is called. The entity to remove. The entity. Note that if the entity exists in the context in the Added state, then this method will cause it to be detached from the context. This is because an Added entity is assumed not to exist in the database such that trying to delete it does not make sense. Creates a new instance of an entity for the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The entity instance, which may be a proxy. Creates a new instance of an entity for the type of this set or for a type derived from the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The entity instance, which may be a proxy. Returns the equivalent generic object. The type of entity for which the set was created. The generic set object. Creates a raw SQL query that will return entities in this set. By default, the entities returned are tracked by the context; this can be changed by calling AsNoTracking on the returned. Note that the entities returned are always of the type for this set and never of a derived type. If the table or tables queried may contain data for other entity types, then the SQL query must be written appropriately to ensure that only entities of the correct type are returned. The SQL query string. The parameters to apply to the SQL query string. A object that will execute the query when it is enumerated. Gets an that represents a local view of all Added, Unchanged, and Modified entities in this set. This local view will stay in sync as entities are added or removed from the context. Likewise, entities added to or removed from the local view will automatically be added to or removed from the context. This property can be used for data binding by populating the set with data, for example by using the Load extension method, and then binding to the local data through this property. For WPF bind to this property directly. For Windows Forms bind to the result of calling ToBindingList on this property The local view. The internal IQueryable that is backing this DbQuery Gets the underlying internal set. The internal set. A DbSet represents the collection of all entities in the context, or that can be queried from the database, of a given type. DbSet objects are created from a DbContext using the DbContext.Set method. Note that DbSet does not support MEST (Multiple Entity Sets per Type) meaning that there is always a one-to-one correlation between a type and a set. The type that defines the set. Represents a LINQ to Entities query against a DbContext. The type of entity to query for. Creates a new query that will be backed by the given internal query object. The backing query. Returns a new query where the entities returned will not be cached in the . A new query with NoTracking applied. Throws an exception indicating that binding directly to a store query is not supported. Instead populate a DbSet with data, for example by using the Load extension method, and then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to DbSet.Local.ToBindingList(). Never returns; always throws. Gets the enumeration of this query causing it to be executed against the store. An enumerator for the query Gets the enumeration of this query causing it to be executed against the store. An enumerator for the query Returns a representation of the underlying query. The query string. Returns a new instance of the non-generic class for this query. A non-generic version. Returns false. false. The IQueryable element type. The IQueryable LINQ Expression. The IQueryable provider. The internal query object that is backing this DbQuery The internal query object that is backing this DbQuery An IDbSet represents the collection of all entities in the context, or that can be queried from the database, of a given type. DbSet is a concrete implementation of IDbSet. The type that defines the set. Finds an entity with the given primary key values. If an entity with the given primary key values exists in the context, then it is returned immediately without making a request to the store. Otherwise, a request is made to the store for an entity with the given primary key values and this entity, if found, is attached to the context and returned. If no entity is found in the context or the store, then null is returned. The ordering of composite key values is as defined in the EDM, which is in turn as defined in the designer, by the Code First fluent API, or by the DataMember attribute. The values of the primary key for the entity to be found. The entity found, or null. Adds the given entity to the context underlying the set in the Added state such that it will be inserted into the database when SaveChanges is called. The entity to add. The entity. Note that entities that are already in the context in some other state will have their state set to Added. Add is a no-op if the entity is already in the context in the Added state. Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges is called. Note that the entity must exist in the context in some other state before this method is called. The entity to remove. The entity. Note that if the entity exists in the context in the Added state, then this method will cause it to be detached from the context. This is because an Added entity is assumed not to exist in the database such that trying to delete it does not make sense. Attaches the given entity to the context underlying the set. That is, the entity is placed into the context in the Unchanged state, just as if it had been read from the database. The entity to attach. The entity. Attach is used to repopulate a context with an entity that is known to already exist in the database. SaveChanges will therefore not attempt to insert an attached entity into the database because it is assumed to already be there. Note that entities that are already in the context in some other state will have their state set to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. Creates a new instance of an entity for the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The entity instance, which may be a proxy. Creates a new instance of an entity for the type of this set or for a type derived from the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The type of entity to create. The entity instance, which may be a proxy. Gets an that represents a local view of all Added, Unchanged, and Modified entities in this set. This local view will stay in sync as entities are added or removed from the context. Likewise, entities added to or removed from the local view will automatically be added to or removed from the context. This property can be used for data binding by populating the set with data, for example by using the Load extension method, and then binding to the local data through this property. For WPF bind to this property directly. For Windows Forms bind to the result of calling ToBindingList on this property The local view. Creates a new set that will be backed by the given . The internal set. Finds an entity with the given primary key values. If an entity with the given primary key values exists in the context, then it is returned immediately without making a request to the store. Otherwise, a request is made to the store for an entity with the given primary key values and this entity, if found, is attached to the context and returned. If no entity is found in the context or the store, then null is returned. The ordering of composite key values is as defined in the EDM, which is in turn as defined in the designer, by the Code First fluent API, or by the DataMember attribute. The values of the primary key for the entity to be found. The entity found, or null. Thrown if multiple entities exist in the context with the primary key values given. Thrown if the type of entity is not part of the data model for this context. Thrown if the types of the key values do not match the types of the key values for the entity type to be found. Thrown if the context has been disposed. Attaches the given entity to the context underlying the set. That is, the entity is placed into the context in the Unchanged state, just as if it had been read from the database. The entity to attach. The entity. Attach is used to repopulate a context with an entity that is known to already exist in the database. SaveChanges will therefore not attempt to insert an attached entity into the database because it is assumed to already be there. Note that entities that are already in the context in some other state will have their state set to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. Adds the given entity to the context underlying the set in the Added state such that it will be inserted into the database when SaveChanges is called. The entity to add. The entity. Note that entities that are already in the context in some other state will have their state set to Added. Add is a no-op if the entity is already in the context in the Added state. Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges is called. Note that the entity must exist in the context in some other state before this method is called. The entity to remove. The entity. Note that if the entity exists in the context in the Added state, then this method will cause it to be detached from the context. This is because an Added entity is assumed not to exist in the database such that trying to delete it does not make sense. Creates a new instance of an entity for the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The entity instance, which may be a proxy. Creates a new instance of an entity for the type of this set or for a type derived from the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The type of entity to create. The entity instance, which may be a proxy. Returns the equivalent non-generic object. The non-generic set object. Creates a raw SQL query that will return entities in this set. By default, the entities returned are tracked by the context; this can be changed by calling AsNoTracking on the returned. Note that the entities returned are always of the type for this set and never of a derived type. If the table or tables queried may contain data for other entity types, then the SQL query must be written appropriately to ensure that only entities of the correct type are returned. The SQL query string. The parameters to apply to the SQL query string. A object that will execute the query when it is enumerated. Gets an that represents a local view of all Added, Unchanged, and Modified entities in this set. This local view will stay in sync as entities are added or removed from the context. Likewise, entities added to or removed from the local view will automatically be added to or removed from the context. This property can be used for data binding by populating the set with data, for example by using the Load extension method, and then binding to the local data through this property. For WPF bind to this property directly. For Windows Forms bind to the result of calling ToBindingList on this property The local view. The internal IQueryable that is backing this DbQuery An implementation of IDatabaseInitializer that will always recreate and optionally re-seed the database the first time that a context is used in the app domain. To seed the database, create a derived class and override the Seed method. The type of the context. Executes the strategy to initialize the database for the given context. The context. A that should be overridden to actually add data to the context for seeding. The default implementation does nothing. The context to seed. An implementation of IDatabaseInitializer that will DELETE, recreate, and optionally re-seed the database only if the model has changed since the database was created. Whether or not the model has changed is determined by the method. To seed the database create a derived class and override the Seed method. Executes the strategy to initialize the database for the given context. The context. A that should be overridden to actually add data to the context for seeding. The default implementation does nothing. The context to seed. Returned by the ChangeTracker method of to provide access to features of the context that are related to change tracking of entities. Initializes a new instance of the class. The internal context. Gets objects for all the entities tracked by this context. The entries. Gets objects for all the entities of the given type tracked by this context. The type of the entity. The entries. Detects changes made to the properties and relationships of POCO entities. Note that some types of entity (such as change tracking proxies and entities that derive from ) report changes automatically and a call to DetectChanges is not normally needed for these types of entities. Also note that normally DetectChanges is called automatically by many of the methods of and its related classes such that it is rare that this method will need to be called explicitly. However, it may be desirable, usually for performance reasons, to turn off this automatic calling of DetectChanges using the AutoDetectChangesEnabled flag from . A non-generic version of the class. This is an abstract base class use to represent a scalar or complex property, or a navigation property of an entity. Scalar and complex properties use the derived class , reference navigation properties use the derived class , and collection navigation properties use the derived class . Creates a from information in the given . This method will create an instance of the appropriate subclass depending on the metadata contained in the InternalMemberEntry instance. The internal member entry. The new entry. Validates this property. Collection of objects. Never null. If the entity is valid the collection will be empty. Returns the equivalent generic object. The type of entity on which the member is declared. The type of the property. The equivalent generic object. Gets the name of the property. The property name. Gets or sets the current value of this property. The current value. The to which this member belongs. An entry for the entity that owns this member. Gets the backing this object. The internal member entry. Creates a from information in the given . Use this method in preference to the constructor since it may potentially create a subclass depending on the type of member represented by the InternalCollectionEntry instance. The internal collection entry. The new entry. Initializes a new instance of the class. The internal entry. Loads the collection of entities from the database. Note that entities that already exist in the context are not overwritten with values from the database. Returns the query that would be used to load this collection from the database. The returned query can be modified using LINQ to perform filtering or operations in the database, such as counting the number of entities in the collection in the database without actually loading them. A query for the collection. Returns the equivalent generic object. The type of entity on which the member is declared. The type of the collection element. The equivalent generic object. Gets the property name. The property name. Gets or sets the current value of the navigation property. The current value is the entity that the navigation property references. The current value. Gets a value indicating whether the collection of entities has been loaded from the database. true if the collection is loaded; otherwise, false. The to which this navigation property belongs. An entry for the entity that owns this navigation property. Gets the backing this object as an . The internal member entry. Instances of this class are returned from the Collection method of and allow operations such as loading to be performed on the an entity's collection navigation properties. The type of the entity to which this property belongs. The type of the element in the collection of entities. This is an abstract base class use to represent a scalar or complex property, or a navigation property of an entity. Scalar and complex properties use the derived class , reference navigation properties use the derived class , and collection navigation properties use the derived class . The type of the entity to which this property belongs. The type of the property. Creates a from information in the given . This method will create an instance of the appropriate subclass depending on the metadata contained in the InternalMemberEntry instance. The internal member entry. The new entry. Returns a new instance of the non-generic class for the property represented by this object. A non-generic version. Validates this property. Collection of objects. Never null. If the entity is valid the collection will be empty. Gets or sets the current value of this property. The current value. Gets the underlying . The internal member entry. The to which this member belongs. An entry for the entity that owns this member. Creates a from information in the given . Use this method in preference to the constructor since it may potentially create a subclass depending on the type of member represented by the InternalCollectionEntry instance. The internal collection entry. The new entry. Initializes a new instance of the class. The internal entry. Loads the collection of entities from the database. Note that entities that already exist in the context are not overwritten with values from the database. Returns the query that would be used to load this collection from the database. The returned query can be modified using LINQ to perform filtering or operations in the database, such as counting the number of entities in the collection in the database without actually loading them. A query for the collection. Returns a new instance of the non-generic class for the navigation property represented by this object. A non-generic version. Gets the property name. The property name. Gets or sets the current value of the navigation property. The current value is the entity that the navigation property references. The current value. Gets a value indicating whether the collection of entities has been loaded from the database. true if the collection is loaded; otherwise, false. Gets the underlying as an . The internal member entry. The to which this navigation property belongs. An entry for the entity that owns this navigation property. An immutable representation of an Entity Data Model (EDM) model that can be used to create an or can be passed to the constructor of a . For increased performance, instances of this type should be cached and re-used to construct contexts. For mocking. Creates a model for the given EDM metadata model. The EDM metadata model. Creates an instance of ObjectContext or class derived from ObjectContext. Note that an instance of DbContext can be created instead by using the appropriate DbContext constructor. If a derived ObjectContext is used, then it must have a public constructor with a single EntityConnection parameter. The connection passed is used by the ObjectContext created, but is not owned by the context. The caller must dispose of the connection once the context has been disposed. The type of context to create. An existing connection to a database for use by the context. Gets a cached delegate (or creates a new one) used to call the constructor for the given derived ObjectContext type. A snapshot of the that was used to create this compiled model. The provider info (provider name and manifest token) that was used to create this model. A non-generic version of the class. A non-generic version of the class. Creates a from information in the given . Use this method in preference to the constructor since it may potentially create a subclass depending on the type of member represented by the InternalCollectionEntry instance. The internal property entry. The new entry. Initializes a new instance of the class. The internal entry. Returns the equivalent generic object. The type of entity on which the member is declared. The type of the property. The equivalent generic object. Gets the property name. The property name. Gets or sets the original value of this property. The original value. Gets or sets the current value of this property. The current value. Gets or sets a value indicating whether the value of this property has been modified since it was loaded from the database. Setting this value to false for a modified property will revert the change by setting the current value to the original value. If the result is that no properties of the entity are marked as modified, then the entity will be marked as Unchanged. Setting this value to false for properties of Added, Unchanged, or Deleted entities is a no-op. true if this instance is modified; otherwise, false. The to which this property belongs. An entry for the entity that owns this property. The of the property for which this is a nested property. This method will only return a non-null entry for properties of complex objects; it will return null for properties of the entity itself. An entry for the parent complex property, or null if this is an entity property. Gets the backing this object. The internal member entry. Creates a from information in the given . Use this method in preference to the constructor since it may potentially create a subclass depending on the type of member represented by the InternalCollectionEntry instance. The internal property entry. The new entry. Initializes a new instance of the class. The internal entry. Gets an object that represents a nested property of this property. This method can be used for both scalar or complex properties. The name of the nested property. An object representing the nested property. Gets an object that represents a nested complex property of this property. The name of the nested property. An object representing the nested property. Returns the equivalent generic object. The type of entity on which the member is declared. The type of the complex property. The equivalent generic object. Instances of this class are returned from the ComplexProperty method of and allow access to the state of a complex property. The type of the entity to which this property belongs. The type of the property. Instances of this class are returned from the Property method of and allow access to the state of the scalar or complex property. The type of the entity to which this property belongs. The type of the property. Creates a from information in the given . Use this method in preference to the constructor since it may potentially create a subclass depending on the type of member represented by the InternalCollectionEntry instance. The internal property entry. The new entry. Initializes a new instance of the class. The internal entry. Returns a new instance of the non-generic class for the property represented by this object. A non-generic version. Gets the property name. The property name. Gets or sets the original value of this property. The original value. Gets or sets the current value of this property. The current value. Gets or sets a value indicating whether the value of this property has been modified since it was loaded from the database. true if this instance is modified; otherwise, false. The to which this property belongs. An entry for the entity that owns this property. The of the property for which this is a nested property. This method will only return a non-null entry for properties of complex objects; it will return null for properties of the entity itself. An entry for the parent complex property, or null if this is an entity property. Gets the underlying as an . The internal member entry. Creates a from information in the given . Use this method in preference to the constructor since it may potentially create a subclass depending on the type of member represented by the InternalCollectionEntry instance. The internal property entry. The new entry. Initializes a new instance of the class. The internal entry. Returns a new instance of the non-generic class for the property represented by this object. A non-generic version. Gets an object that represents a nested property of this property. This method can be used for both scalar or complex properties. The name of the nested property. An object representing the nested property. Gets an object that represents a nested property of this property. This method can be used for both scalar or complex properties. The type of the nested property. The name of the nested property. An object representing the nested property. Gets an object that represents a nested property of this property. This method can be used for both scalar or complex properties. The type of the nested property. An expression representing the nested property. An object representing the nested property. Gets an object that represents a nested complex property of this property. The name of the nested property. An object representing the nested property. Gets an object that represents a nested complex property of this property. The type of the nested property. The name of the nested property. An object representing the nested property. Gets an object that represents a nested complex property of this property. The type of the nested property. An expression representing the nested property. An object representing the nested property. Describes the origin of the database connection string associated with a . The connection string was created by convention. The connection string was read from external configuration. The connection string was explicitly specified at runtime. The connection string was overriden by connection information supplied to DbContextInfo. Returned by the Configuration method of to provide access to configuration options for the context. Initializes a new instance of the class. The internal context. Gets or sets a value indicating whether lazy loading of relationships exposed as navigation properties is enabled. Lazy loading is enabled by default. true if lazy loading is enabled; otherwise, false. Gets or sets a value indicating whether or not the framework will create instances of dynamically generated proxy classes whenever it creates an instance of an entity type. Note that even if proxy creation is enabled with this flag, proxy instances will only be created for entity types that meet the requirements for being proxied. Proxy creation is enabled by default. true if proxy creation is enabled; otherwise, false. Gets or sets a value indicating whether tracked entities should be validated automatically when is invoked. The default value is true. Provides runtime information about a given type. Creates a new instance representing a given type. The type deriving from . Creates a new instance representing a given targeting a specific database. The type deriving from . Connection information for the database to be used. Creates a new instance representing a given type. An external list of connection strings can be supplied and will be used during connection string resolution in place of any connection strings specified in external configuration files. It is preferable to use the constructor that accepts the entire config document instead of using this constructor. Providing the entire config document allows DefaultConnectionFactroy entries in the config to be found in addition to explicitly specified connection strings. The type deriving from . A collection of connection strings. Creates a new instance representing a given type. An external config object (e.g. app.config or web.config) can be supplied and will be used during connection string resolution. This includes looking for connection strings and DefaultConnectionFactory entries. The type deriving from . An object representing the config file. Creates a new instance representing a given , targeting a specific database. An external config object (e.g. app.config or web.config) can be supplied and will be used during connection string resolution. This includes looking for connection strings and DefaultConnectionFactory entries. The type deriving from . An object representing the config file. Connection information for the database to be used. Creates a new instance representing a given type. A can be supplied in order to override the default determined provider used when constructing the underlying EDM model. The type deriving from . A specifying the underlying ADO.NET provider to target. Creates a new instance representing a given type. An external config object (e.g. app.config or web.config) can be supplied and will be used during connection string resolution. This includes looking for connection strings and DefaultConnectionFactory entries. A can be supplied in order to override the default determined provider used when constructing the underlying EDM model. This can be useful to prevent EF from connecting to discover a manifest token. The type deriving from . An object representing the config file. A specifying the underlying ADO.NET provider to target. Called internally when a context info is needed for an existing context, which may not be constructable. The context instance to get info from. If instances of the underlying type can be created, returns a new instance; otherwise returns null. A instance. The concrete type. Whether or not instances of the underlying type can be created. The connection string used by the underlying type. The connection string name used by the underlying type. The ADO.NET provider name of the connection used by the underlying type. The origin of the connection string used by the underlying type. An action to be run on the DbModelBuilder after OnModelCreating has been run on the context. A non-generic version of the class. Initializes a new instance of the class. The internal entry. Queries the database for copies of the values of the tracked entity as they currently exist in the database. Note that changing the values in the returned dictionary will not update the values in the database. If the entity is not found in the database then null is returned. The store values. Reloads the entity from the database overwriting any property values with values from the database. The entity will be in the Unchanged state after calling this method. Gets an object that represents the reference (i.e. non-collection) navigation property from this entity to another entity. The name of the navigation property. An object representing the navigation property. Gets an object that represents the collection navigation property from this entity to a collection of related entities. The name of the navigation property. An object representing the navigation property. Gets an object that represents a scalar or complex property of this entity. The name of the property. An object representing the property. Gets an object that represents a complex property of this entity. The name of the complex property. An object representing the complex property. Gets an object that represents a member of the entity. The runtime type of the returned object will vary depending on what kind of member is asked for. The currently supported member types and their return types are: Reference navigation property: . Collection navigation property: . Primitive/scalar property: . Complex property: . The name of the member. An object representing the member. Returns a new instance of the generic class for the given generic type for the tracked entity represented by this object. Note that the type of the tracked entity must be compatible with the generic type or an exception will be thrown. The type of the entity. A generic version. Validates this instance and returns validation result. Entity validation result. Possibly null if method is overridden. Determines whether the specified is equal to this instance. Two instances are considered equal if they are both entries for the same entity on the same . The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. Two instances are considered equal if they are both entries for the same entity on the same . The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the entity. The entity. Gets or sets the state of the entity. The state. Gets the current property values for the tracked entity represented by this object. The current values. Gets the original property values for the tracked entity represented by this object. The original values are usually the entity's property values as they were when last queried from the database. The original values. Gets InternalEntityEntry object for this DbEntityEntry instance. Instances of this class provide access to information about and control of entities that are being tracked by the . Use the Entity or Entities methods of the context to obtain objects of this type. The type of the entity. Initializes a new instance of the class. The internal entry. Queries the database for copies of the values of the tracked entity as they currently exist in the database. Note that changing the values in the returned dictionary will not update the values in the database. If the entity is not found in the database then null is returned. The store values. Reloads the entity from the database overwriting any property values with values from the database. The entity will be in the Unchanged state after calling this method. Gets an object that represents the reference (i.e. non-collection) navigation property from this entity to another entity. The name of the navigation property. An object representing the navigation property. Gets an object that represents the reference (i.e. non-collection) navigation property from this entity to another entity. The type of the property. The name of the navigation property. An object representing the navigation property. Gets an object that represents the reference (i.e. non-collection) navigation property from this entity to another entity. The type of the property. An expression representing the navigation property. An object representing the navigation property. Gets an object that represents the collection navigation property from this entity to a collection of related entities. The name of the navigation property. An object representing the navigation property. Gets an object that represents the collection navigation property from this entity to a collection of related entities. The type of elements in the collection. The name of the navigation property. An object representing the navigation property. Gets an object that represents the collection navigation property from this entity to a collection of related entities. The type of elements in the collection. An expression representing the navigation property. An object representing the navigation property. Gets an object that represents a scalar or complex property of this entity. The name of the property. An object representing the property. Gets an object that represents a scalar or complex property of this entity. The type of the property. The name of the property. An object representing the property. Gets an object that represents a scalar or complex property of this entity. The type of the property. An expression representing the property. An object representing the property. Gets an object that represents a complex property of this entity. The name of the complex property. An object representing the complex property. Gets an object that represents a complex property of this entity. The type of the complex property. The name of the complex property. An object representing the complex property. Gets an object that represents a complex property of this entity. The type of the complex property. An expression representing the complex property. An object representing the complex property. Gets an object that represents a member of the entity. The runtime type of the returned object will vary depending on what kind of member is asked for. The currently supported member types and their return types are: Reference navigation property: . Collection navigation property: . Primitive/scalar property: . Complex property: . The name of the member. An object representing the member. Gets an object that represents a member of the entity. The runtime type of the returned object will vary depending on what kind of member is asked for. The currently supported member types and their return types are: Reference navigation property: . Collection navigation property: . Primitive/scalar property: . Complex property: . The type of the member. The name of the member. An object representing the member. Returns a new instance of the non-generic class for the tracked entity represented by this object. A non-generic version. Validates this instance and returns validation result. Entity validation result. Possibly null if method is overridden. Determines whether the specified is equal to this instance. Two instances are considered equal if they are both entries for the same entity on the same . The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. Two instances are considered equal if they are both entries for the same entity on the same . The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the entity. The entity. Gets or sets the state of the entity. The state. Gets the current property values for the tracked entity represented by this object. The current values. Gets the original property values for the tracked entity represented by this object. The original values are usually the entity's property values as they were when last queried from the database. The original values. Represents an Entity Data Model (EDM) created by the . The Compile method can be used to go from this EDM representation to a which is a compiled snapshot of the model suitable for caching and creation of or instances. Initializes a new instance of the class. Initializes a new instance of the class. Creates a for this mode which is a compiled snapshot suitable for caching and creation of instances. The compiled model. A snapshot of the that was used to create this compiled model. A collection of all the properties for an underlying entity or complex object. An instance of this class can be converted to an instance of the generic class using the Cast method. Complex properties in the underlying entity or complex object are represented in the property values as nested instances of this class. Initializes a new instance of the class. The internal dictionary. Creates an object of the underlying type for this dictionary and hydrates it with property values from this dictionary. The properties of this dictionary copied into a new object. Sets the values of this dictionary by reading values out of the given object. The given object can be of any type. Any property on the object with a name that matches a property name in the dictionary and can be read will be read. Other properties will be ignored. This allows, for example, copying of properties from simple Data Transfer Objects (DTOs). The object to read values from. Creates a new dictionary containing copies of all the properties in this dictionary. Changes made to the new dictionary will not be reflected in this dictionary and vice versa. A clone of this dictionary. Sets the values of this dictionary by reading values from another dictionary. The other dictionary must be based on the same type as this dictionary, or a type derived from the type for this dictionary. The dictionary to read values from. Gets the value of the property just like using the indexed property getter but typed to the type of the generic parameter. This is useful especially with nested dictionaries to avoid writing expressions with lots of casts. The type of the property. Name of the property. The value of the property. Gets the set of names of all properties in this dictionary as a read-only set. The property names. Gets or sets the value of the property with the specified property name. The value may be a nested instance of this class. The property name. The value of the property. Gets the internal dictionary. The internal dictionary. A non-generic version of the class. Creates a from information in the given . Use this method in preference to the constructor since it may potentially create a subclass depending on the type of member represented by the InternalCollectionEntry instance. The internal reference entry. The new entry. Initializes a new instance of the class. The internal entry. Loads the entity from the database. Note that if the entity already exists in the context, then it will not overwritten with values from the database. Returns the query that would be used to load this entity from the database. The returned query can be modified using LINQ to perform filtering or operations in the database. A query for the entity. Returns the equivalent generic object. The type of entity on which the member is declared. The type of the property. The equivalent generic object. Gets the property name. The property name. Gets or sets the current value of the navigation property. The current value is the entity that the navigation property references. The current value. Gets a value indicating whether the entity has been loaded from the database. true if the entity is loaded; otherwise, false. The to which this navigation property belongs. An entry for the entity that owns this navigation property. Gets the backing this object as an . The internal member entry. Instances of this class are returned from the Reference method of and allow operations such as loading to be performed on the an entity's reference navigation properties. The type of the entity to which this property belongs. The type of the property. Creates a from information in the given . Use this method in preference to the constructor since it may potentially create a subclass depending on the type of member represented by the InternalCollectionEntry instance. The internal reference entry. The new entry. Initializes a new instance of the class. The internal entry. Loads the entity from the database. Note that if the entity already exists in the context, then it will not overwritten with values from the database. Returns the query that would be used to load this entity from the database. The returned query can be modified using LINQ to perform filtering or operations in the database. A query for the entity. Returns a new instance of the non-generic class for the navigation property represented by this object. A non-generic version. Gets the property name. The property name. Gets or sets the current value of the navigation property. The current value is the entity that the navigation property references. The current value. Gets a value indicating whether the entity has been loaded from the database. true if the entity is loaded; otherwise, false. Gets the underlying as an . The internal member entry. The to which this navigation property belongs. An entry for the entity that owns this navigation property. Represents a SQL query for entities that is created from a and is executed using the connection from that context. Instances of this class are obtained from the instance for the entity type. The query is not executed when this object is created; it is executed each time it is enumerated, for example by using foreach. SQL queries for non-entities are created using the . See for a generic version of this class. Initializes a new instance of the class. The internal query. Executes the query and returns an enumerator for the elements. An object that can be used to iterate through the elements. Returns a new query where the results of the query will not be tracked by the associated . A new query with no-tracking applied. Returns a that contains the SQL string that was set when the query was created. The parameters are not included. A that represents this instance. Throws an exception indicating that binding directly to a store query is not supported. Never returns; always throws. Gets the internal query. The internal query. Returns false. false. Represents a SQL query for entities that is created from a and is executed using the connection from that context. Instances of this class are obtained from the instance for the entity type. The query is not executed when this object is created; it is executed each time it is enumerated, for example by using foreach. SQL queries for non-entities are created using the . See for a non-generic version of this class. Executes the query and returns an enumerator for the elements. An object that can be used to iterate through the elements. Executes the query and returns an enumerator for the elements. An object that can be used to iterate through the elements. Returns a new query where the results of the query will not be tracked by the associated . A new query with no-tracking applied. Returns a that contains the SQL string that was set when the query was created. The parameters are not included. A that represents this instance. Throws an exception indicating that binding directly to a store query is not supported. Never returns; always throws. Gets the internal query. The internal query. Returns false. false. Exception thrown by when it was expected that SaveChanges for an entity would result in a database update but in fact no rows in the database were affected. This usually indicates that the database has been concurrently updated such that a concurrency token that was expected to match did not actually match. Note that state entries referenced by this exception are not serialized due to security and accesses to the state entries after serialization will return null. Initializes a new instance of the class. The internal context. The inner exception. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Subscribes the SerializeObjectState event. Gets objects that represents the entities that could not be saved to the database. The entries representing the entities that could not be saved. Holds exception state that will be serialized when the exception is serialized. Completes the deserialization. The deserialized object. Gets or sets a value indicating whether the exception involved independent associations. Initializes a new instance of the class. The context. The inner exception. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Represents an entity used to store metadata about an EDM in the database. Attempts to get the model hash calculated by Code First for the given context. This method will return null if the context is not being used in Code First mode. The context. The hash string. Gets or sets the ID of the metadata entity, which is currently always 1. The id. Gets or sets the model hash which is used to check whether the model has changed since the database was created from it. The model hash. Contains methods used to access the Entity Data Model created by Code First in the EDMX form. These methods are typically used for debugging when there is a need to look at the model that Code First creates internally. Uses Code First with the given context and writes the resulting Entity Data Model to the given writer in EDMX form. This method can only be used with context instances that use Code First and create the model internally. The method cannot be used for contexts created using Database First or Model First, for contexts created using a pre-existing , or for contexts created using a pre-existing . The context. The writer. Writes the Entity Data Model represented by the given to the given writer in EDMX form. An object representing the EDM. The writer. A factory for creating derived instances. Implement this interface to enable design-time services for context types that do not have a public default constructor. At design-time, derived instances can be created in order to enable specific design-time experiences such as model rendering, DDL generation etc. To enable design-time instantiation for derived types that do not have a public, default constructor, implement this interface. Design-time services will auto-discover implementations of this interface that are in the same assembly as the derived type. Creates a new instance of a derived type. An instance of TContext This convention causes DbModelBuilder to include metadata about the model when it builds the model. When creates a model by convention it will add this convention to the list of those used by the DbModelBuilder. This will then result in model metadata being written to the database if the DbContext is used to create the database. This can then be used as a quick check to see if the model has changed since the last time it was used against the database. This convention can be removed from the conventions by overriding the OnModelCreating method on a derived DbContext class. Adds metadata to the given model configuration. The model configuration. This convention uses the name of the derived class as the container for the conceptual model built by Code First. Initializes a new instance of the class. The model container name. Applies the convention to the given model. The model. This convention uses the namespace of the derived class as the namespace of the conceptual model built by Code First. Initializes a new instance of the class. The model namespace. Applies the convention to the given model. The model. Instances of this class are used internally to create constant expressions for that are inserted into the expression tree to replace references to and . The type of the element. Private constructor called by the Create factory method. The query. Factory method called by CreateDelegate to create an instance of this class. The query, which must be a generic object of the expected type. A new instance. The public property expected in the LINQ expression tree. The query. Instances of this class are used to create DbConnection objects for SQL Server Compact Edition based on a given database name or connection string. It is necessary to provide the provider invariant name of the SQL Server Compact Edition to use when creating an instance of this class. This is because different versions of SQL Server Compact Editions use different invariant names. An instance of this class can be set on the class to cause all DbContexts created with no connection information or just a database name or connection string to use SQL Server Compact Edition by default. This class is immutable since multiple threads may access instances simultaneously when creating connections. Creates a new connection factory with empty (default) DatabaseDirectory and BaseConnectionString properties. The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. Creates a new connection factory with the given DatabaseDirectory and BaseConnectionString properties. The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. The path to prepend to the database name that will form the file name used by SQL Server Compact Edition when it creates or reads the database file. An empty string means that SQL Server Compact Edition will use its default for the database file location. The connection string to use for options to the database other than the 'Data Source'. The Data Source will be prepended to this string based on the database name when CreateConnection is called. Creates a connection for SQL Server Compact Edition based on the given database name or connection string. If the given string contains an '=' character then it is treated as a full connection string, otherwise it is treated as a database name only. The database name or connection string. An initialized DbConnection. The path to prepend to the database name that will form the file name used by SQL Server Compact Edition when it creates or reads the database file. The default value is "|DataDirectory|", which means the file will be placed in the designated data directory. The connection string to use for options to the database other than the 'Data Source'. The Data Source will be prepended to this string based on the database name when CreateConnection is called. The default is the empty string, which means no other options will be used. The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. Instances of this class are used to create DbConnection objects for SQL Server based on a given database name or connection string. By default, the connection is made to '.\SQLEXPRESS'. This can be changed by changing the base connection string when constructing a factory instance. An instance of this class can be set on the class to cause all DbContexts created with no connection information or just a database name or connection string to use SQL Server by default. This class is immutable since multiple threads may access instances simultaneously when creating connections. Creates a new connection factory with a default BaseConnectionString property of 'Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True'. Creates a new connection factory with the given BaseConnectionString property. The connection string to use for options to the database other than the 'Initial Catalog'. The 'Initial Catalog' will be prepended to this string based on the database name when CreateConnection is called. Creates a connection for SQL Server based on the given database name or connection string. If the given string contains an '=' character then it is treated as a full connection string, otherwise it is treated as a database name only. The database name or connection string. An initialized DbConnection. Remove hard dependency on DbProviderFactories. The connection string to use for options to the database other than the 'Initial Catalog'. The 'Initial Catalog' will be prepended to this string based on the database name when CreateConnection is called. The default is 'Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True'. This attribute can be applied to either an entire derived class or to individual or properties on that class. When applied any discovered or properties will still be included in the model but will not be automatically initialized. Thrown when a context is generated from the templates in Database First or Model First mode and is then used in Code First mode. Code generated using the T4 templates provided for Database First and Model First use may not work correctly if used in Code First mode. To use these classes with Code First please add any additional configuration using attributes or the DbModelBuilder API and then remove the code that throws this exception. Initializes a new instance of the class. Initializes a new instance of the class. The object that holds the serialized object data. The contextual information about the source or destination. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Implements ICachedMetadataWorkspace for a Code First model. Represents an object that holds a cached copy of a MetadataWorkspace and optionally the assemblies containing entity types to use with that workspace. Gets the MetadataWorkspace, potentially lazily creating it if it does not already exist. If the workspace is not compatible with the provider manifest obtained from the given connection then an exception is thrown. The connection to use to create or check SSDL provider info. The workspace. The list of assemblies that contain entity types for this workspace, which may be empty, but will never be null. The default container name for code first is the container name that is set from the DbModelBuilder The provider info used to construct the workspace. Builds and stores the workspace based on the given code first configuration. The code first EDM model. Gets the . If the workspace is not compatible with the provider manifest obtained from the given connection then an exception is thrown. The connection to use to create or check SSDL provider info. The workspace. The default container name for code first is the container name that is set from the DbModelBuilder The list of assemblies that contain entity types for this workspace, which may be empty, but will never be null. The provider info used to construct the workspace. The methods here are called from multiple places with an ObjectContext that may have been created in a variety of ways and ensure that the same code is run regardless of how the context was created. Used a delegate to do the actual creation once an ObjectContext has been obtained. This is factored in this way so that we do the same thing regardless of how we get to having an ObjectContext. Note however that a context obtained from only a connection will have no model and so will result in an empty database. Used a delegate to do the actual existence check once an ObjectContext has been obtained. This is factored in this way so that we do the same thing regardless of how we get to having an ObjectContext. Used a delegate to do the actual check/delete once an ObjectContext has been obtained. This is factored in this way so that we do the same thing regardless of how we get to having an ObjectContext. Helper class that extends Tuple to give the Item1 and Item2 properties more meaningful names. Creates a new pair of the given set of entity types and DbSet initializer delegate. The entity types part of the pair. The DbSet properties initializer part of the pair. Static helper methods only. Checks whether the given value is null and throws ArgumentNullException if it is. This method should only be used in places where Code Contracts are compiled out in the release build but we still need public surface null-checking, such as where a public abstract class is implemented by an internal concrete class. Checks whether the given string is null, empty, or just whitespace, and throws appropriately if the check fails. This method should only be used in places where Code Contracts are compiled out in the release build but we still need public surface checking, such as where a public abstract class is implemented by an internal concrete class. Given two key values that may or may not be byte arrays, this method determines whether or not they are equal. For non-binary key values, this is equivalent to Object.Equals. For binary keys, it is by comparison of every byte in the arrays. Provides a standard helper method for quoting identifiers Identifier to be quoted. Does not validate that this identifier is valid. Quoted string Checks the given string which might be a database name or a connection string and determines whether it should be treated as a name or connection string. Currently, the test is simply whether or not the string contains an '=' character--if it does, then it should be treated as a connection string. The name or connection string. true if the string should be treated as a connection string; false if it should be treated as a name. Determines whether the given string should be treated as a database name directly (it contains no '='), is in the form name=foo, or is some other connection string. If it is a direct name or has name=, then the name is extracted and the method returns true. The name or connection string. The name. True if a name is found; false otherwise. Determines whether the given string is a full EF connection string with provider, provider connection string, and metadata parts, or is is instead some other form of connection string. The name or connection string. true if the given string is an EF connection string; otherwise, false. Parses a property selector expression used for the expression-based versions of the Property, Collection, Reference, etc methods on and classes. The type of the entity. The type of the property. The property. Name of the method. Name of the param. The property name. Called recursively to parse an expression tree representing a property path such as can be passed to Include or the Reference/Collection/Property methods of . This involves parsing simple property accesses like o => o.Products as well as calls to Select like o => o.Products.Select(p => p.OrderLines). The expression to parse. The expression parsed into an include path, or null if the expression did not match. True if matching succeeded; false if the expression could not be parsed. Gets a cached dictionary mapping property names to property types for all the properties in the given type. Gets a dictionary of compiled property setter delegates for the underlying types. The dictionary is cached for the type in the app domain. Used by the property setter delegates to throw for attempts to set null onto non-nullable properties or otherwise go ahead and set the property. Gets a dictionary of compiled property getter delegates for the underlying types. The dictionary is cached for the type in the app domain. Creates a new with the NoTracking merge option applied. The query object passed in is not changed. The query. A new query with NoTracking applied. Converts to Name of the property being validated with ValidationAttributes. Null for type-level validation. ValidationResults instances to be converted to instances. An created based on the . class contains a property with names of properties the error applies to. On the other hand each applies at most to a single property. As a result for each name in ValidationResult.MemberNames one will be created (with some exceptions for special cases like null or empty .MemberNames or null names in the .MemberNames). Calculates a "path" to a property. For primitive properties on an entity type it is just the name of the property. Otherwise it is a dot separated list of names of the property and all its ancestor properties starting from the entity. Property for which to calculate the path. Dot separated path to the property. Gets names of the property and its ancestor properties as enumerable walking "bottom-up". Property for which to get the segments. Names of the property and its ancestor properties. Gets an type for the given element type. Type of the element. The collection type. Creates a database name given a type derived from DbContext. This handles nested and generic classes. No attempt is made to ensure that the name is not too long since this is provider specific. If a too long name is generated then the provider will throw and the user must correct by specifying their own name in the DbContext constructor. Type of the context. The database name to use. A local (in-memory) view of the entities in a DbSet. This view contains Added entities and does not contain Deleted entities. The view extends from and hooks up events between the collection and the state manager to keep the view in sync. The type of the entity. Initializes a new instance of the class for entities of the given generic type in the given internal context. The internal context. Called by the base class when the collection changes. This method looks at the change made to the collection and reflects those changes in the state manager. The instance containing the event data. Handles events from the state manager for entities entering, leaving, or being marked as deleted. The local view is kept in sync with these changes. The sender. The instance containing the event data. Clears the items by calling remove on each item such that we get Remove events that can be tracked back to the state manager, rather than a single Reset event that we cannot deal with. Adds a contains check to the base implementation of InsertItem since we can't support duplicate entities in the set. The index at which to insert. The item to insert. Returns a cached binding list implementation backed by this ObservableCollection. The binding list. Service used to search for instance properties on a DbContext class that can be assigned a DbSet instance. Also, if the the property has a public setter, then a delegate is compiled to set the property to a new instance of DbSet. All of this information is cached per app domain. Creates a set discovery service for the given derived context. Processes the given context type to determine the DbSet or IDbSet properties and collect root entity types from those properties. Also, delegates are created to initialize any of these properties that have public setters. If the type has been processed previously in the app domain, then all this information is returned from a cache. A dictionary of potential entity type to the list of the names of the properties that used the type. Calls the public setter on any property found to initialize it to a new instance of DbSet. Registers the entities and their entity set name hints with the given . The model builder. Returns false if SuppressDbSetInitializationAttribute is found on the property or the class, otherwise returns true. Determines whether or not an instance of DbSet/ObjectSet can be assigned to a property of the given type. The type to check. The entity type of the DbSet/ObjectSet that can be assigned, or null if no set type can be assigned. A EagerInternalConnection object wraps an already existing DbConnection object. InternalConnection objects manage DbConnections. Two concrete base classes of this abstract interface exist: and . IInternalConnection objects manage DbConnections. Two concrete implementations of this interface exist--LazyInternalConnection and EagerInternalConnection. Creates an from metadata in the connection. This method must only be called if ConnectionHasModel returns true. The newly created context. Returns the underlying DbConnection. Returns a key consisting of the connection type and connection string. If this is an EntityConnection then the metadata path is included in the key returned. Gets a value indicating whether the connection is an EF connection which therefore contains metadata specifying the model, or instead is a store connection, in which case it contains no model info. true if the connection contains model info; otherwise, false. Returns the origin of the underlying connection string. Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries and connection strins. Gets or sets the provider to be used when creating the underlying connection. Gets the name of the underlying connection string. Gets the original connection string. Creates an from metadata in the connection. This method must only be called if ConnectionHasModel returns true. The newly created context. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Called after the connection is initialized for the first time. Adds a tracking cookie to the connection string for SqlConnections. Returns the possibly modified store connection string. Returns the underlying DbConnection. Returns a key consisting of the connection type and connection string. If this is an EntityConnection then the metadata path is included in the key returned. Gets a value indicating whether the connection is an EF connection which therefore contains metadata specifying the model, or instead is a store connection, in which case it contains no model info. true if the connection contains model info; otherwise, false. Returns the origin of the underlying connection string. Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries and connection strins. Gets or sets the provider to be used when creating the underlying connection. Gets the name of the underlying connection string. Gets the original connection string. Gets or sets the underlying object. No initialization is done when the connection is obtained, and it can also be set to null. The underlying connection. Creates a new EagerInternalConnection that wraps an existing DbConnection. An existing connection. If set to true then the underlying connection should be disposed when this object is disposed. Dispose the existing connection is the original caller has specified that it should be disposed by the framework. Returns the origin of the underlying connection string. An is an where the instance that it wraps is set immediately at construction time rather than being created lazily. In this case the internal context may or may not own the instance but will only dispose it if it does own it. An underlies every instance of and wraps an instance. The also acts to expose necessary information to other parts of the design in a controlled manner without adding a lot of internal methods and properties to the class itself. Two concrete classes derive from this abstract class - and . Initializes the object with its owner. The owner . Returns the underlying without causing the underlying database to be created or the database initialization strategy to be executed. This is used to get a context that can then be used for database creation/initialization. Returns the underlying without causing the underlying database to be created or the database initialization strategy to be executed. This is used to get a context that can then be used for database creation/initialization. Creates a new temporary based on the same metadata and connection as the real and sets it as the context to use DisposeTempObjectContext is called. This allows this internal context and its DbContext to be used for transient operations such as initializing and seeding the database, after which it can be thrown away. This isolates the real from any changes made and and saves performed. If a temporary ObjectContext was set with UseTempObjectContext, then this method disposes that context and returns this internal context and its DbContext to using the real ObjectContext. Called by methods of to create a database either using the Migrations pipeline if possible and the core provider otherwise. The context to use for core provider calls. Internal implementation of . True if the model hash in the context and the database match; false otherwise. Checks whether the given model (an EDMX document) matches the current model. Queries the database for a model hash and returns it if found or returns null if the table or the row doesn't exist in the database. The model hash, or null if not found. Queries the database for a model stored in the MigrationHistory table and returns it as an EDMX, or returns null if the database does not contain a model. Saves the model hash from the context to the database. Performs the initialization action that may result in a and handle the exception to provide more meaning to the user. The action. Registers for the ObjectStateManagerChanged event on the underlying ObjectStateManager. This is a virtual method on this class so that it can be mocked. The event handler. Checks whether or not the given object is in the context in any state other than Deleted. This is a virtual method on this class so that it can be mocked. The entity. true if the entity is in the context and not deleted; otherwise false. Saves all changes made in this context to the underlying database. The number of objects written to the underlying database. Initializes this instance, which means both the context is initialized and the underlying database is initialized. Initializes the underlying ObjectContext but does not cause the database to be initialized. Marks the database as having not been initialized. This is called when the app calls Database.Delete so that the database if the app attempts to then use the database again it will be re-initialized automatically. Runs the unless it has already been run or there is no initializer for this context type in which case this method does nothing. Marks the database as having been initialized without actually running the . Runs the if one has been set for this context type. Calling this method will always cause the initializer to run even if the database is marked as initialized. Disposes the context. Override the DisposeContext method to perform additional work when disposing. Performs additional work to dispose a context. Calls DetectChanges on the underlying if AutoDetectChangesEnabled is true or if force is set to true. if set to true then DetectChanges is called regardless of the value of AutoDetectChangesEnabled. Returns the DbSet instance for the given entity type. This property is virtual and returns to that it can be mocked. The entity type for which a set should be returned. A set for the given entity type. Returns the non-generic instance for the given entity type. This property is virtual and returns to that it can be mocked. The entity type for which a set should be returned. A set for the given entity type. Creates an internal set using an app domain cached delegate. Type of the entity. The set. Returns the entity set and the base type for that entity set for the given type. This method does o-space loading if required and throws if the type is not in the model. The entity type to lookup. The entity set and base type pair. Returns the entity set and the base type for that entity set for the given type if that type is mapped in the model, otherwise returns null. This method does o-space loading if required. The entity type to lookup. The entity set and base type pair, or null if not found. Checks whether or not the given entity type is mapped in the model. The entity type to lookup. True if the type is mapped as an entity; false otherwise. Gets the local entities of the type specified from the state manager. That is, all Added, Modified, and Unchanged entities of the given type. The type of entity to get. The entities. Executes the given SQL query against the database backing this context. The results are not materialized as entities or tracked. The type of the element. The SQL. The parameters. The query results. Executes the given SQL query against the database backing this context. The results are not materialized as entities or tracked. Type of the element. The SQL. The parameters. The query results. Calls the generic ExecuteSqlQuery but with a non-generic return type so that it has the correct signature to be used with CreateDelegate above. Executes the given SQL command against the database backing this context. The SQL. The parameters. The return value from the database. Gets the underlying for the given entity, or returns null if the entity isn't tracked by this context. This method is virtual so that it can be mocked. The entity. The state entry or null. Gets the underlying objects for all entities tracked by this context. This method is virtual so that it can be mocked. State entries for all tracked entities. Gets the underlying objects for all entities of the given type tracked by this context. This method is virtual so that it can be mocked. The type of the entity. State entries for all tracked entities of the given type. Helper method that gets the underlying objects for all entities that match the given predicate. Wraps the given in either a or a depending on the actual exception type and the state entries involved. The update exception. A new exception wrapping the given exception. Uses the underlying context to create an entity such that if the context is configured to create proxies and the entity is suitable then a proxy instance will be returned. This method is virtual so that it can be mocked. The type of the entity. The new entity instance. Uses the underlying context to create an entity such that if the context is configured to create proxies and the entity is suitable then a proxy instance will be returned. This method is virtual so that it can be mocked. The type of entity to create. The new entity instance. This method is used by CreateDelegate to transform the CreateObject method with return type TEntity into a method with return type object which matches the required type of the delegate. Replaces the connection that will be used by this context. The connection can only be changed before the context is initialized. The new connection. Throws if the context has been disposed. Checks whether or not the internal cache of types to entity sets has been initialized, and initializes it if necessary. Forces all DbSets to be initialized, which in turn causes o-space loading to happen for any entity type for which we have a DbSet. This includes all DbSets that were discovered on the user's DbContext type. Performs o-space loading for the type and returns false if the type is not in the model. Performs o-space loading for the type and throws if the type is not in the model. Type of the entity. Returns true if the given entity type does not have EdmEntityTypeAttribute but is in an assembly that has EdmSchemaAttribute. This indicates mixing of POCO and EOCO in the same assembly, which is something that we don't support. Determines whether or not the given clrType is mapped to a complex type. Assumes o-space loading has happened. Updates the cache of types to entity sets either for the first time or after potentially doing some o-space loading. The public context instance that owns this internal context. Returns the underlying . Gets the temp object context, or null if none has been set. The temp object context. The compiled model created from the Code First pipeline, or null if Code First was not used to create this context. Causes the Code First pipeline to be run to create the model if it has not already been created. Set to true when a database initializer is performing some actions, such as creating or deleting a database, or seeding the database. Gets the default database initializer to use for this context if no other has been registered. For code first this property returns a instance. For database/model first, this property returns null. The default initializer. Gets or sets a value indicating whether lazy loading is enabled. Gets or sets a value indicating whether proxy creation is enabled. Gets or sets a value indicating whether DetectChanges is called automatically in the API. Gets or sets a value indicating whether to validate entities when is called. True if the context has been disposed. The connection underlying this context. Accessing this property does not cause the context to be initialized, only its connection. The connection string as originally applied to the context. This is used to perform operations that need the connection string in a non-mutated form, such as with security info still intact. Returns the origin of the underlying connection string. Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries, database intializers and connection strings. Gets or sets the provider details to be used when building the EDM model. Gets the name of the underlying connection string. Gets the provider name bsing used either using a cached value or getting it from the DbConnection in use. Gets or sets a custom OnModelCreating action. Gets the DatabaseOperations instance to use to perform Create/Delete/Exists operations against the database. Note that this virtual property can be mocked to help with unit testing. Gets instance used to create validators and validation contexts. This property is virtual to allow mocking. For mocking. Constructs an for an already existing . The owner . The existing . Returns the underlying without causing the underlying database to be created or the database initialization strategy to be executed. This is used to get a context that can then be used for database creation/initialization. Does nothing, since the already exists. Does nothing since the database is always considered initialized if the was created from an existing . Does nothing since the database is always considered initialized if the was created from an existing . Does nothing since the database is always considered initialized if the was created from an existing . Disposes the context. The underlying is also disposed if it is owned. Returns the underlying . Gets the default database initializer to use for this context if no other has been registered. For code first this property returns a instance. For database/model first, this property returns null. The default initializer. The connection underlying this context. The connection string as originally applied to the context. This is used to perform operations that need the connection string in a non-mutated form, such as with security info still intact. Returns the origin of the underlying connection string. Gets or sets a value indicating whether lazy loading is enabled. This is just a wrapper over the same flag in the underlying . Gets or sets a value indicating whether proxy creation is enabled. This is just a wrapper over the same flag in the underlying ObjectContext. An implementation of that represents a clone of another dictionary. That is, all the property values have been been copied into this dictionary. The internal class used to implement . This internal class allows for a clean internal factoring without compromising the public API. Initializes a new instance of the class. The internal context with which the entity of complex object is associated. The type of the entity or complex object. If set to true this is a dictionary for an entity, otherwise it is a dictionary for a complex object. Implemented by subclasses to get the dictionary item for a given property name. Checking that the name is valid should happen before this method is called such that subclasses do not need to perform the check. Name of the property. An item for the given name. Creates an object of the underlying type for this dictionary and hydrates it with property values from this dictionary. The properties of this dictionary copied into a new object. Creates an instance of the underlying type for this dictionary, which may either be an entity type (in which case CreateObject on the context is used) or a non-entity type (in which case the empty constructor is used.) In either case, app domain cached compiled delegates are used to do the creation. Sets the values of this dictionary by reading values out of the given object. The given object must be of the type that this dictionary is based on. The object to read values from. Creates a new dictionary containing copies of all the properties in this dictionary. Changes made to the new dictionary will not be reflected in this dictionary and vice versa. A clone of this dictionary. Sets the values of this dictionary by reading values from another dictionary. The other dictionary must be based on the same type as this dictionary, or a type derived from the type for this dictionary. The dictionary to read values from. Gets the dictionary item for the property with the given name. This method checks that the given name is valid. The property name. The item. Sets the value of the property only if it is different from the current value and is not an invalid attempt to set a complex property. Gets the set of names of all properties in this dictionary as a read-only set. The property names. Gets or sets the value of the property with the specified property name. The value may be a nested instance of this class. The property name. The value of the property. Gets the entity type of complex type that this dictionary is based on. The type of the object underlying this dictionary. Gets the internal context with which the underlying entity or complex type is associated. The internal context. Gets a value indicating whether the object for this dictionary is an entity or a complex object. true if this this is a dictionary for an entity; false if it is a dictionary for a complex object. Initializes a new instance of the class by copying values from the given dictionary. The dictionary to clone. If non-null, then the values for the new dictionary are taken from this record rather than from the original dictionary. Gets the dictionary item for a given property name. Name of the property. An item for the given name. Gets the set of names of all properties in this dictionary as a read-only set. The property names. An implementation of for an item in a . Represents an item in an representing a property name/value. Gets or sets the value of the property represented by this item. The value. Gets the name of the property. The name. Gets a value indicating whether this item represents a complex property. true If this instance represents a complex property; otherwise, false. Gets the type of the underlying property. The property type. Initializes a new instance of the class. The name. The value. The type. If set to true this item represents a complex property. Gets or sets the value of the property represented by this item. The value. Gets the name of the property. The name. Gets a value indicating whether this item represents a complex property. true If this instance represents a complex property; otherwise, false. Gets the type of the underlying property. The property type. An implementation of that is based on an existing instance. Initializes a new instance of the class. The internal context. The type. The data record. If set to true this is a dictionary for an entity, otherwise it is a dictionary for a complex object. Gets the dictionary item for a given property name. Name of the property. An item for the given name. Gets the set of names of all properties in this dictionary as a read-only set. The property names. An implementation of for an item in a . Initializes a new instance of the class. The data record. The ordinal. The value. Gets or sets the value of the property represented by this item. The value. Gets the name of the property. The name. Gets a value indicating whether this item represents a complex property. true If this instance represents a complex property; otherwise, false. Gets the type of the underlying property. The property type. This is version of an internal interface that already exists in System.Data.Entity that is implemented by . Using this interface allows state entries to be mocked for unit testing. The plan is to remove this version of the interface and use the one in System.Data.Entity once we roll into the framework. Note that some members may need to be added to the interface in the framework when we combine the two. The internal class used to implement and . This internal class contains all the common implementation between the generic and non-generic entry classes and also allows for a clean internal factoring without compromising the public API. Base class for and containing common code for collection and reference navigation property entries. Base class for all internal entries that represent different kinds of properties. Initializes a new instance of the class. The internal entity entry. The member metadata. Validates this property. A sequence of validation errors for this property. Empty if no errors. Never null. Creates a new non-generic backed by this internal entry. The actual subtype of the DbMemberEntry created depends on the metadata of this internal entry. The new entry. Creates a new generic backed by this internal entry. The actual subtype of the DbMemberEntry created depends on the metadata of this internal entry. The type of the entity. The type of the property. The new entry. Gets the property name. The property is virtual to allow mocking. The property name. Gets or sets the current value of the navigation property. The current value. Gets the internal entity entry property belongs to. This property is virtual to allow mocking. The internal entity entry. Gets the entry metadata. The entry metadata. Initializes a new instance of the class. The internal entity entry. The navigation metadata. Calls Load on the underlying . Uses CreateSourceQuery on the underlying to create a query for this navigation property. Gets the navigation property value from the object. The entity. The navigation property value. Validates that the owning entity entry is associated with an underlying and is not just wrapping a non-attached entity. If the entity is not detached, then the RelatedEnd for this navigation property is obtained. Calls IsLoaded on the underlying . Gets the related end, which will be null if the entity is not being tracked. The related end. Gets or sets the current value of the navigation property. The current value is the entity that the navigation property references or the collection of references for a collection property. This property is virtual so that it can be mocked. The current value. Gets a delegate that can be used to get the value of the property directly from the entity. Returns null if the property does not have an accessible getter. The getter delegate, or null. Gets a delegate that can be used to set the value of the property directly on the entity. Returns null if the property does not have an accessible setter. The setter delegate, or null. Initializes a new instance of the class. The internal entity entry. The navigation metadata. Gets the navigation property value from the object. Since for a collection the related end is an , it means that the internal representation of the navigation property is just the related end. The entity. The navigation property value. Creates a new non-generic backed by this internal entry. The runtime type of the DbMemberEntry created will be or a subtype of it. The new entry. Creates a new generic backed by this internal entry. The runtime type of the DbMemberEntry created will be or a subtype of it. The type of the entity. The type of the property. The new entry. Creates a new generic backed by this internal entry. The actual subtype of the DbCollectionEntry created depends on the metadata of this internal entry. The type of the entity. The type of the element. The new entry. Creates a object for the given entity type and collection element type. The type of the entity. The type of the property. Type of the element. The set. Gets or sets the current value of the navigation property. The current value is the entity that the navigation property references or the collection of references for a collection property. The current value. The internal class used to implement and . This internal class contains all the common implementation between the generic and non-generic entry classes and also allows for a clean internal factoring without compromising the public API. Initializes a new instance of the class. The internal context. The state entry. Initializes a new instance of the class for an entity which may or may not be attached to the context. The internal context. The entity. Queries the database for copies of the values of the tracked entity as they currently exist in the database. The store values. Appends a query for the properties in the entity to the given string builder that is being used to build the eSQL query. This method may be called recursively to query for all the sub-properties of a complex property. The query builder. The qualifier with which to prefix each property name. The dictionary that acts as a template for the properties to query. Validates that a dictionary can be obtained for the state of the entity represented by this entry. The method name being used to request a dictionary. The state that is invalid for the request being processed. Calls Refresh with StoreWins on the underlying state entry. Gets an internal object representing a reference navigation property. This method is virtual to allow mocking. The navigation property. The type of entity requested, which may be 'object' or null if any type can be accepted. The entry. Gets an internal object representing a collection navigation property. This method is virtual to allow mocking. The navigation property. The type of entity requested, which may be 'object' or null f any type can be accepted. The entry. Gets an internal object representing a navigation, scalar, or complex property. This method is virtual to allow mocking. Name of the property. The type of entity requested, which may be 'object' if any type can be accepted. The entry. Gets an internal object representing a scalar or complex property. This method is virtual to allow mocking. The property. The type of object requested, which may be null or 'object' if any type can be accepted. if set to true then the found property must be a complex property. The entry. Gets an internal object representing a scalar or complex property. The property may be a nested property on the given . The parent property entry, or null if this is a property directly on the entity. Name of the property. The type of object requested, which may be null or 'object' if any type can be accepted. if set to true then the found property must be a complex property. The entry. Gets an internal object representing a scalar or complex property. The property may be a nested property on the given . The parent property entry, or null if this is a property directly on the entity. Name of the property. The property split out into its parts. The type of object requested, which may be null or 'object' if any type can be accepted. if set to true then the found property must be a complex property. The entry. Checks that the given property name is a navigation property and is either a reference property or collection property according to the value of requireCollection. Gets metadata for the given property if that property is a navigation property or returns null if it is not a navigation property. Name of the property. Navigation property metadata or null. Gets the type of entity or entities at the target end of the given navigation property. The navigation property. The CLR type of the entity or entities at the other end. Gets the related end for the navigation property with the given name. The navigation property. Uses EDM metadata to validate that the property name exists in the model and represents a scalar or complex property or exists in the CLR type. This method is public and virtual so that it can be mocked. The property name. The type on which the property is declared. The type of object requested, which may be 'object' if any type can be accepted. Metadata for the property. Splits the given property name into parts delimited by dots. Name of the property. The parts of the name. Validates that this entry is associated with an underlying and is not just wrapping a non-attached entity. Validates entity represented by this entity entry. This method is virtual to allow mocking. User defined dictionary containing additional info for custom validation. This parameter is optional and can be null. containing validation result. Never null. Determines whether the specified is equal to this instance. Two instances are considered equal if they are both entries for the same entity on the same . The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. Two instances are considered equal if they are both entries for the same entity on the same . The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the tracked entity. This property is virtual to allow mocking. The entity. Gets or sets the state of the entity. The state. Gets the current property values for the tracked entity represented by this object. This property is virtual to allow mocking. The current values. Gets the original property values for the tracked entity represented by this object. The original values are usually the entity's property values as they were when last queried from the database. This property is virtual to allow mocking. The original values. Checks whether or not this entry is associated with an underlying or is just wrapping a non-attached entity. Gets the type of the entity being tracked. The type of the entity. Gets the c-space entity type for this entity from the EDM. Gets the underlying object state entry. Gets the internal context. The internal context. A concrete implementation of used for properties of entities. The internal class used to implement and . This internal class contains all the common implementation between the generic and non-generic entry classes and also allows for a clean internal factoring without compromising the public API. Initializes a new instance of the class. The internal entry. The property info. Creates a delegate that will get the value of this property. The delegate. Creates a delegate that will set the value of this property. The delegate. Returns true if the property of the entity that this property is ultimately part of is set as modified. If this is a property of an entity, then this method returns true if the property is modified. If this is a property of a complex object, then this method returns true if the top-level complex property on the entity is modified. True if the entity property is modified. Sets the property of the entity that this property is ultimately part of to modified. If this is a property of an entity, then this method marks it as modified. If this is a property of a complex object, then this method marks the top-level complex property as modified. Rejects changes to this property. If this is a property of a complex object, then this method rejects changes to the top-level complex property. Walks the tree from a property of a complex property back up to the top-level complex property and then checks whether or not DetectChanges still considers the complex property to be modified. If it does not, then the complex property is marked as Unchanged. Throws if the user attempts to set a complex property to null. The value. Sets the given value directly onto the underlying entity object. The value. True if the property had a setter that we could attempt to call; false if no setter was available. Sets the property value, potentially by setting individual nested values for a complex property. The value. Gets an internal object representing a scalar or complex property of this property, which must be a mapped complex property. This method is virtual to allow mocking. The property. The type of object requested, which may be null or 'object' if any type can be accepted. if set to true then the found property must be a complex property. The entry. Validates that the owning entity entry is associated with an underlying and is not just wrapping a non-attached entity. Creates a new non-generic backed by this internal entry. The runtime type of the DbMemberEntry created will be or a subtype of it. The new entry. Creates a new generic backed by this internal entry. The runtime type of the DbMemberEntry created will be or a subtype of it. The type of the entity. The type of the property. The new entry. Returns parent property, or null if this is a property on the top-level entity. Gets the current values of the parent entity or complex property. That is, the current values that contains the value for this property. The parent current values. Gets the original values of the parent entity or complex property. That is, the original values that contains the value for this property. The parent original values. A delegate that reads the value of this property. May be null if there is no way to set the value due to missing accessors on the type. A delegate that sets the value of this property. May be null if there is no way to set the value due to missing accessors on the type. Gets or sets the original value. Note that complex properties are returned as objects, not property values. Gets or sets the current value. Note that complex properties are returned as objects, not property values. Also, for complex properties, the object returned is the actual complex object from the entity and setting the complex object causes the actual object passed to be set onto the entity. The current value. Gets or sets a value indicating whether this property is modified. Gets the property metadata. The property metadata. Initializes a new instance of the class. The internal entry. The property info. Creates a delegate that will get the value of this property. The delegate. Creates a delegate that will set the value of this property. The delegate. Returns true if the property of the entity that this property is ultimately part of is set as modified. Since this is a property of an entity this method returns true if the property is modified. True if the entity property is modified. Sets the property of the entity that this property is ultimately part of to modified. Since this is a property of an entity this method marks it as modified. Rejects changes to this property. Walks the tree from a property of a complex property back up to the top-level complex property and then checks whether or not DetectChanges still considers the complex property to be modified. If it does not, then the complex property is marked as Unchanged. Returns parent property, or null if this is a property on the top-level entity. Gets the current values of the parent entity. That is, the current values that contains the value for this property. The parent current values. Gets the original values of the parent entity. That is, the original values that contains the value for this property. The parent original values. A concrete implementation of used for properties of complex objects. Initializes a new instance of the class. The parent property entry. The property metadata. Creates a delegate that will get the value of this property. The delegate. Creates a delegate that will set the value of this property. The delegate. Returns true if the property of the entity that this property is ultimately part of is set as modified. Since this is a property of a complex object this method returns true if the top-level complex property on the entity is modified. True if the entity property is modified. Sets the property of the entity that this property is ultimately part of to modified. Since this is a property of a complex object this method marks the top-level complex property as modified. Rejects changes to this property. Since this is a property of a complex object this method rejects changes to the top-level complex property. Walks the tree from a property of a complex property back up to the top-level complex property and then checks whether or not DetectChanges still considers the complex property to be modified. If it does not, then the complex property is marked as Unchanged. Returns parent property, or null if this is a property on the top-level entity. Gets the current values of the parent complex property. That is, the current values that contains the value for this property. The parent current values. Gets the original values of the parent complex property. That is, the original values that contains the value for this property. The parent original values. The internal class used to implement , and . This internal class contains all the common implementation between the generic and non-generic entry classes and also allows for a clean internal factoring without compromising the public API. Initializes a new instance of the class. The internal entity entry. The navigation metadata. Gets the navigation property value from the object. For reference navigation properties, this means getting the value from the object. The entity. The navigation property value. Sets the navigation property value onto the object. For reference navigation properties, this means setting the value onto the object. The entity. The value. Sets the given value on the given which must be an . This method is setup in such a way that it can easily be used by CreateDelegate without any dynamic code generation needed. The type of the related entity. The entity reference. The value. Creates a new non-generic backed by this internal entry. The runtime type of the DbMemberEntry created will be or a subtype of it. The new entry. Creates a new generic backed by this internal entry. The runtime type of the DbMemberEntry created will be or a subtype of it. The type of the entity. The type of the property. The new entry. Gets or sets the current value of the navigation property. The current value is the entity that the navigation property references or the collection of references for a collection property. The current value. Contains metadata about a member of an entity type or complex type. Initializes a new instance of the class. The type that the property is declared on. Type of the property. The property name. Creates a new the runtime type of which will be determined by the metadata. The entity entry to which the member belongs. The parent property entry if the new entry is nested, otherwise null. The new entry. Gets the type of the member for which this is metadata. The type of the member entry. Gets the name of the property. The name. Gets the type of the entity or complex object that on which the member is declared. The type that the member is declared on. Gets the type of element for the property, which for non-collection properties is the same as the MemberType and which for collection properties is the type of element contained in the collection. The type of the element. Gets the type of the member, which for collection properties is the type of the collection rather than the type in the collection. The type of the member. The types of member entries supported. Initializes a new instance of the class. The type that the property is declared on. Type of the property. The property name. if set to true this is a collection nav prop. Creates a new the runtime type of which will be determined by the metadata. The entity entry to which the member belongs. The parent property entry which will always be null for navigation entries. The new entry. Gets the type of the member for which this is metadata. The type of the member entry. Gets the type of the member, which for collection properties is the type of the collection rather than the type in the collection. The type of the member. Contains metadata for a property of a complex object or entity. Initializes a new instance of the class. The type that the property is declared on. Type of the property. The property name. if set to true the property is mapped in the EDM. if set to true the property is a complex property. Validates that the given name is a property of the declaring type (either on the CLR type or in the EDM) and that it is a complex or scalar property rather than a nav property and then returns metadata about the property. The internal context. The type that the property is declared on. The type of property requested, which may be 'object' if any type can be accepted. Name of the property. Metadata about the property, or null if the property does not exist or is a navigation property. Creates a new the runtime type of which will be determined by the metadata. The entity entry to which the member belongs. The parent property entry if the new entry is nested, otherwise null. The new entry. Gets a value indicating whether this is a complex property. That is, not whether or not this is a property on a complex object, but rather if the property itself is a complex property. true if this instance is complex; otherwise, false. Gets the type of the member for which this is metadata. The type of the member entry. Gets a value indicating whether this instance is mapped in the EDM. true if this instance is mapped; otherwise, false. Gets the type of the member, which for collection properties is the type of the collection rather than the type in the collection. The type of the member. An implementation of that wraps an existing set but makes it read-only. Initializes a new instance of the class wrapped around another existing set. The existing set. This is a temporary adapter class that wraps an and presents it as an . This class will be removed once we roll into the System.Data.Entity assembly. See for more details. Helper class that extends Tuple to give the Item1 and Item2 properties more meaningful names. Creates a new pair of the given EntitySet and BaseType. The EntitySet part of the pair. The BaseType part of the pair. Helper class that extends Tuple to give the Item1 and Item2 properties more meaningful names. Creates a new pair of the given database initializer delegate and a flag indicating whether or not it is locked. The initializer delegate. A flag indicating whether or not the initializer is locked and should not be changed. Represents a raw SQL query against the context for any type where the results are never associated with an entity set and are never tracked. Represents a raw SQL query against the context that may be for entities in an entity set or for some other non-entity element type. Initializes a new instance of the class. The SQL. The parameters. If the query is would track entities, then this method returns a new query that will not track entities. A no-tracking query. Executes the query and returns an enumerator for the results. The query results. Throws an exception indicating that binding directly to a store query is not supported. Never returns; always throws. Returns a that contains the SQL string that was set when the query was created. The parameters are not included. A that represents this instance. Gets the SQL query string, The SQL query. Gets the parameters. The parameters. Returns false. false. Initializes a new instance of the class. The internal context. Type of the element. The SQL. The parameters. Returns this query since it can never be a tracking query. This instance. Executes the query and returns an enumerator for the results. The query results. Generic wrapper around to allow results to be returned as generic The type of the element. Executes the query and returns an enumerator for the elements. An object that can be used to iterate through the elements. Executes the query and returns an enumerator for the elements. An object that can be used to iterate through the elements. Returns a that contains the SQL string that was set when the query was created. The parameters are not included. A that represents this instance. Throws an exception indicating that binding directly to a store query is not supported. Never returns; always throws. Returns false. false. Represents a raw SQL query against the context for entities in an entity set. Initializes a new instance of the class. The set. The SQL. if set to true then the entities will not be tracked. The parameters. If the query is would track entities, then this method returns a new query that will not track entities. A no-tracking query. Executes the query and returns an enumerator for the results. The query results. Gets a value indicating whether this instance is set to track entities or not. true if this instance is no-tracking; otherwise, false. A LazyInternalConnection object manages information that can be used to create a DbConnection object and is responsible for creating that object and disposing it. Creates a new LazyInternalConnection using convention to calculate the connection. The DbConnection object will be created lazily on demand and will be disposed when the LazyInternalConnection is disposed. Either the database name or a connection string. Creates a new LazyInternalConnection targeting a specific database. The DbConnection object will be created lazily on demand and will be disposed when the LazyInternalConnection is disposed. The connection to target. Creates an from metadata in the connection. This method must only be called if ConnectionHasModel returns true. The newly created context. Disposes the underlying DbConnection. Note that dispose actually puts the LazyInternalConnection back to its initial state such that it can be used again. Searches the app.config/web.config file for a connection that matches the given name. The connection might be a store connection or an EF connection. The connection name. True if a connection from the app.config file was found and used. Attempts to locate a connection entry in the configuration based on the supplied context name. The name to search for. The configuration to search in. Connection string if found, otherwise null. Initializes the connection based on a connection string. The settings to initialize from. Returns the underlying DbConnection, creating it first if it does not already exist. Returns the origin of the underlying connection string. Gets the name of the underlying connection string. Returns a key consisting of the connection type and connection string. If this is an EntityConnection then the metadata path is included in the key returned. Gets a value indicating whether the connection is an EF connection which therefore contains metadata specifying the model, or instead is a store connection, in which case it contains no model info. true if connection contain model info; otherwise, false. Gets a value indicating if the lazy connection has been initialized. A is a concrete type that will lazily create the underlying when needed. The created is owned by the internal context and will be disposed when the internal context is disposed. Constructs a for the given owner that will be initialized on first use. The owner . Responsible for creating a connection lazily when the context is used for the first time. The model, or null if it will be created by convention Returns the underlying without causing the underlying database to be created or the database initialization strategy to be executed. This is used to get a context that can then be used for database creation/initialization. Saves all changes made in this context to the underlying database, but only if the context has been initialized. If the context has not been initialized, then this method does nothing because there is nothing to do; in particular, it does not cause the context to be initialized. The number of objects written to the underlying database. Disposes the context. The underlying is also disposed. The connection to the database ( object) is also disposed if it was created by the context, otherwise it is not disposed. Initializes the underlying . Creates an immutable, cacheable representation of the model defined by this builder. This model can be used to create an or can be passed to a constructor to create a for this model. Creates and configures the instance that will be used to build the . The builder. Marks the database as having not been initialized. This is called when the app calls Database.Delete so that the database if the app attempts to then use the database again it will be re-initialized automatically. Marks the database as having been initialized without actually running the . Runs the unless it has already been run or there is no initializer for this context type in which case this method does nothing. Performs some action (which may do nothing) in such a way that it is guaranteed only to be run once for the model and connection in this app domain, unless it fails by throwing an exception, in which case it will be re-tried next time the context is initialized. The action. Returns the underlying . The compiled model created from the Code First pipeline, or null if Code First was not used to create this context. Causes the Code First pipeline to be run to create the model if it has not already been created. The actually being used, which may be the temp context for initialization or the real context. The connection underlying this context. Accessing this property does not cause the context to be initialized, only its connection. The connection string as originally applied to the context. This is used to perform operations that need the connection string in a non-mutated form, such as with security info still intact. Returns the origin of the underlying connection string. Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries and connection strings. Gets the name of the underlying connection string. Gets or sets the provider details to be used when building the EDM model. Gets or sets a custom OnModelCreating action. Gets the default database initializer to use for this context if no other has been registered. For code first this property returns a instance. For database/model first, this property returns null. The default initializer. Gets or sets a value indicating whether lazy loading is enabled. If the exists, then this property acts as a wrapper over the flag stored there. If the has not been created yet, then we store the value given so we can later use it when we create the . This allows the flag to be changed, for example in a DbContext constructor, without it causing the to be created. Gets or sets a value indicating whether proxy creation is enabled. If the ObjectContext exists, then this property acts as a wrapper over the flag stored there. If the ObjectContext has not been created yet, then we store the value given so we can later use it when we create the ObjectContext. This allows the flag to be changed, for example in a DbContext constructor, without it causing the ObjectContext to be created. A wrapping query provider that performs expression transformation and then delegates to the provider. The objects returned are always instances of . This provider is associated with generic objects. Creates a provider that wraps the given provider. The provider to wrap. Performs expression replacement and then delegates to the wrapped provider before wrapping the returned as a . Performs expression replacement and then delegates to the wrapped provider before wrapping the returned as a where T is determined from the element type of the ObjectQuery. By default, calls the same method on the wrapped provider. By default, calls the same method on the wrapped provider. Creates an appropriate generic IQueryable using Reflection and the underlying ElementType of the given ObjectQuery. Performs expression replacement and then delegates to the wrapped provider to create an . Wraps the given as a where T is determined from the element type of the ObjectQuery. Gets the internal context. The internal context. A LINQ expression visitor that finds uses with equivalent instances. Replaces calls to DbContext.Set() with an expression for the equivalent . The node to replace. A new node, which may have had the replacement made. Replaces a or property with a constant expression for the underlying . The node to replace. A new node, which may have had the replacement made. Processes the fields in each constant expression and replaces instances with the underlying ObjectQuery instance. This handles cases where the query has a closure containing values. Gets a value from the given member, or returns null if the member doesn't contain a DbContext instance. The expression for the object for the member, which may be null for a static member. The member. The context or null. Gets the instance from the given instance or static member, returning null if the member does not contain a DbContext instance. The member. The value of the object to get the instance from, or null if the member is static. The context instance or null. Takes a or and creates an expression for the underlying . Takes a or and extracts the underlying . A non-generic interface implemented by that allows operations on any query object without knowing the type to which it applies. An interface implemented by . The type of the element. A non-generic interface implemented by that allows operations on any set object without knowing the type to which it applies. An interface implemented by . An instance of this internal class is created whenever an instance of the public class is needed. This allows the public surface to be non-generic, while the runtime type created still implements . The type of the element. Creates a new query that will be backed by the given internal query object. The backing query. See comments in . See comments in . Gets the enumeration of this query causing it to be executed against the store. An enumerator for the query Gets the underlying internal query object. The internal query. An instance of this internal class is created whenever an instance of the public class is needed. This allows the public surface to be non-generic, while the runtime type created still implements . The type of the entity. Creates a new set that will be backed by the given internal set. The internal set. Creates an instance of this class. This method is used with CreateDelegate to cache a delegate that can create a generic instance without calling MakeGenericType every time. The internal set to wrap, or null if a new internal set should be created. The set. See comments in . See comments in . See comments in . See comments in . See comments in . Gets the enumeration of this query causing it to be executed against the store. An enumerator for the query Gets the underlying internal query object. The internal query. Gets the underlying internal set. The internal set. See comments in . An InternalQuery underlies every instance of DbSet and DbQuery. It acts to lazily initialize a InternalContext as well as an ObjectQuery and EntitySet the first time that it is used. The InternalQuery also acts to expose necessary information to other parts of the design in a controlled manner without adding a lot of internal methods and properties to the DbSet and DbQuery classes themselves. The type of entity to query for. Creates a new query that will be backed by the given InternalContext. The backing context. Creates a new internal query based on the information in an existing query together with a new underlying ObjectQuery. Resets the query to its uninitialized state so that it will be re-lazy initialized the next time it is used. This allows the ObjectContext backing a DbContext to be switched out. Updates the underlying ObjectQuery with the given include path. The include path. A new query containing the defined include path. Returns a new query where the entities returned will not be cached in the . A new query with NoTracking applied. Performs lazy initialization of the underlying ObjectContext, ObjectQuery, and EntitySet objects so that the query can be used. Returns a representation of the underlying query, equivalent to ToTraceString on ObjectQuery. The query string. Gets the enumeration of this query causing it to be executed against the store. An enumerator for the query Gets the enumeration of this query causing it to be executed against the store. An enumerator for the query The underlying InternalContext. The underlying ObjectQuery. The underlying ObjectQuery. The LINQ query expression. The LINQ query provider for the underlying . The IQueryable element type. Creates a new query that will be backed by the given InternalContext. The backing context. Resets the set to its uninitialized state so that it will be re-lazy initialized the next time it is used. This allows the ObjectContext backing a DbContext to be switched out. Finds an entity with the given primary key values. If an entity with the given primary key values exists in the context, then it is returned immediately without making a request to the store. Otherwise, a request is made to the store for an entity with the given primary key values and this entity, if found, is attached to the context and returned. If no entity is found in the context or the store, then null is returned. The ordering of composite key values is as defined in the EDM, which is in turn as defined in the designer, by the Code First fluent API, or by the DataMember attribute. The values of the primary key for the entity to be found. The entity found, or null. Thrown if multiple entities exist in the context with the primary key values given. Thrown if the type of entity is not part of the data model for this context. Thrown if the types of the key values do not match the types of the key values for the entity type to be found. Thrown if the context has been disposed. Finds an entity in the state manager with the given primary key values, or returns null if no such entity can be found. This includes looking for Added entities with the given key values. Finds an entity in the store with the given primary key values, or returns null if no such entity can be found. This code is adapted from TryGetObjectByKey to include type checking in the query. Attaches the given entity to the context underlying the set. That is, the entity is placed into the context in the Unchanged state, just as if it had been read from the database. Attach is used to repopulate a context with an entity that is known to already exist in the database. SaveChanges will therefore not attempt to insert an attached entity into the database because it is assumed to already be there. Note that entities that are already in the context in some other state will have their state set to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. This method is virtual so that it can be mocked. The entity to attach. Adds the given entity to the context underlying the set in the Added state such that it will be inserted into the database when SaveChanges is called. Note that entities that are already in the context in some other state will have their state set to Added. Add is a no-op if the entity is already in the context in the Added state. This method is virtual so that it can be mocked. The entity to add. Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges is called. Note that the entity must exist in the context in some other state before this method is called. Note that if the entity exists in the context in the Added state, then this method will cause it to be detached from the context. This is because an Added entity is assumed not to exist in the database such that trying to delete it does not make sense. This method is virtual so that it can be mocked. The entity to remove. This method checks whether an entity is already in the context. If it is, then the state is changed to the new state given. If it isn't, then the action delegate is executed to either Add or Attach the entity. A delegate to Add or Attach the entity. The new state to give the entity if it is already in the context. The entity. Name of the method. Creates a new instance of an entity for the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The entity instance, which may be a proxy. Creates a new instance of an entity for the type of this set or for a type derived from the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The type of entity to create. The entity instance, which may be a proxy. Performs lazy initialization of the underlying ObjectContext, ObjectQuery, and EntitySet objects so that the query can be used. This method is virtual so that it can be mocked. Attempts to perform lazy initialization of the underlying ObjectContext, ObjectQuery, and EntitySet objects so that o-space loading has happened and the query can be used. This method doesn't throw if the type for the set is not mapped. Creates an underlying for this set. if set to true then the query is set to be no-tracking. The query. Returns a representation of the underlying query, equivalent to ToTraceString on ObjectQuery. The query string. Updates the underlying ObjectQuery with the given include path. The include path. A new query containing the defined include path. Returns a new query where the entities returned will not be cached in the . A new query with NoTracking applied. Executes the given SQL query against the database materializing entities into the entity set that backs this set. The SQL quey. if true then the entities are not tracked, otherwise they are. The parameters. The query results. Gets the enumeration of this query causing it to be executed against the store. An enumerator for the query Gets the ObservableCollection representing the local view for the set based on this query. The underlying ObjectQuery. Accessing this property will trigger lazy initialization of the query. The underlying EntitySet name. Accessing this property will trigger lazy initialization of the query. The underlying EntitySet name, quoted for ESQL. Accessing this property will trigger lazy initialization of the query. The underlying EntitySet. Accessing this property will trigger lazy initialization of the query. The base type for the underlying entity set. Accessing this property will trigger lazy initialization of the query. The underlying InternalContext. Accessing this property will trigger lazy initialization of the query. The LINQ query expression. The LINQ query provider for the underlying . A wrapping query provider that performs expression transformation and then delegates to the provider. The objects returned are always instances of when the generic CreateQuery method is used and are instances of when the non-generic CreateQuery method is used. This provider is associated with non-generic objects. Creates a provider that wraps the given provider. The provider to wrap. Performs expression replacement and then delegates to the wrapped provider before wrapping the returned as a . Delegates to the wrapped provider except returns instances of . Creates an appropriate generic IQueryable using Reflection and the underlying ElementType of the given ObjectQuery. Extends to create a sortable binding list that stays in sync with an underlying . That is, when items are added or removed from the binding list, they are added or removed from the ObservableCollecion, and vice-versa. The list element type. An extended BindingList implementation that implements sorting. This class was adapted from the LINQ to SQL class of the same name. The element type. Initializes a new instance of the class with the the given underlying list. Note that sorting is dependent on having an actual rather than some other ICollection implementation. The list. Applies sorting to the list. The property to sort by. The sort direction. Stops sorting. Gets a value indicating whether this list is sorted. true if this instance is sorted; otherwise, false. Gets the sort direction. The sort direction. Gets the sort property being used to sort. The sort property. Returns true indicating that this list supports sorting. true. Implements comparing for the implementation. Initializes a new instance of the class for sorting the list. The property to sort by. The sort direction. Compares two instances of items in the list. The left item to compare. The right item to compare. Determines whether this instance can sort for the specified type. The type. true if this instance can sort for the specified type; otherwise, false. Determines whether this instance can sort for the specified type using IComparable. The type. true if this instance can sort for the specified type; otherwise, false. Determines whether this instance can sort for the specified type using ToString. The type. true if this instance can sort for the specified type; otherwise, false. Initializes a new instance of a binding list backed by the given The obervable collection. Creates a new item to be added to the binding list. The new item. Cancels adding of a new item that was started with AddNew. Index of the item. Removes all items from the binding list and underlying ObservableCollection. Ends the process of adding a new item that was started with AddNew. Index of the item. Inserts the item into the binding list at the given index. The index. The item. Removes the item at the specified index. The index. Sets the item into the list at the given position. The index to insert at. The item. Event handler to update the binding list when the underlying observable collection changes. The sender. Data indicating how the collection has changed. Adds the item to the underlying observable collection. The item. Removes the item from the underlying from observable collection. The item. Adapted from to allow the initializer to take an input object and to do one-time initialization that only has side-effects and doesn't return a value. The type of the input. Initializes a new instance of the class. The action. Performs the action unless it has already been successfully performed before. The input to the action; ignored if the action has already succeeded. Adapted from to allow the initializer to take an input object and to retry initialization if it has previously failed. This class can only be used to initialize reference types that will not be null when initialized. The type of the input. The type of the result. Initializes a new instance of the class. The value factory. Gets the value, possibly by running the initializer if it has not been run before or if all previous times it ran resulted in exceptions. The input to the initializer; ignored if initialization has already succeeded. The initialized object. Validates a property of a given EDM complex type. This is a composite validator for a complex property of an entity. Validates a property of a given EDM property type. This is a composite validator for a property of an entity or a complex type. Simple validators for the corresponding property. Name of the property the validator was created for. Creates an instance of for a given EDM property. The EDM property name. Validators used to validate the given property. Validates a property. Validation context. Never null. Property to validate. Never null. Validation errors as . Empty if no errors. Never null. Simple validators for the corresponding property. Gets the name of the property the validator was created for. The complex type validator. Creates an instance of for a given complex property. The complex property name. Validators used to validate the given property. Complex type validator. Validates a complex property. Validation context. Never null. Property to validate. Never null. Validation errors as . Empty if no errors. Never null. Validator used to validate a property of a given EDM ComplexType. This is a composite validator. Validator used to validate an entity of a given EDM Type. This is a composite validator for an EDM Type. Creates an instance for a given EDM type. Property validators. Type level validators. Validates an instance. Entity validation context. Must not be null. The entry for the complex property. Null if validating an entity. instance. Never null. Protected so it doesn't appear on EntityValidator. Validates type properties. Any validation errors will be added to collection. Validation context. Must not be null. Collection of validation errors. Any validation errors will be added to it. The entry for the complex property. Null if validating an entity. Note that will be modified by this method. Errors should be only added, never removed or changed. Taking a collection as a modifiable parameter saves a couple of memory allocations and a merge of validation error lists per entity. Returns a validator for a child property. Name of the child property for which to return a validator. Validator for a child property. Possibly null if there are no validators for requested property. Creates an instance for a given EDM complex type. Property validators. Type level validators. Validates an instance. Entity validation context. Must not be null. The entry for the complex property. Null if validating an entity. instance. Never null. Validates type properties. Any validation errors will be added to collection. Validation context. Must not be null. Collection of validation errors. Any validation errors will be added to it. The entry for the complex property. Null if validating an entity. Note that will be modified by this method. Errors should be only added, never removed or changed. Taking a collection as a modifiable parameter saves a couple of memory allocations and a merge of validation error lists per entity. Contains information needed to validate an entity or its properties. The entity being validated or the entity that owns the property being validated. Initializes a new instance of EntityValidationContext class. The entity being validated or the entity that owns the property being validated. External contexts needed for validation. External context needed for validation. Gets the entity being validated or the entity that owns the property being validated. Validator used to validate an entity of a given EDM EntityType. This is a top level, composite validator. This is also an entry point to getting an entity validated as validation of an entity is always started by calling Validate method on this type. Creates an instance for a given EDM entity type. Property validators. Entity type level validators. Validates an entity. Entity validation context. Must not be null. instance. Never null. Validates type properties. Any validation errors will be added to collection. Validation context. Must not be null. Collection of validation errors. Any validation errors will be added to it. The entry for the complex property. Null if validating an entity. Note that will be modified by this method. Errors should be only added, never removed or changed. Taking a collection as a modifiable parameter saves a couple of memory allocations and a merge of validation error lists per entity. Builds validators based on s specified on entity CLR types and properties as well as based on presence of implementation on entity and complex type CLR types. It's not sealed and not static for mocking purposes. Builds an for the given . The entity entry to build the validator for. Whether the currently processed type is the target type or one of the ancestor types. for the given . Possibly null if no validation has been specified for this entity type. Builds the validator for a given and the corresponding . The CLR type that corresponds to the EDM complex type. The EDM complex type that type level validation is built for. A for the given complex type. May be null if no validation specified. Extracted method from BuildEntityValidator and BuildComplexTypeValidator Build validators for the and the corresponding or . Properties to build validators for. Non-navigation EDM properties. Navigation EDM properties. A list of validators. Possibly empty, never null. Builds a for the given and the corresponding . If the property is a complex type, type level validators will be built here as well. The CLR property to build the validator for. The EDM property to build the validator for. for the given . Possibly null if no validation has been specified for this property. Builds a for the given transient . The CLR property to build the validator for. for the given . Possibly null if no validation has been specified for this property. Builds s for given that derive from . Attributes used to build validators. A list of s built from . Possibly empty, never null. Returns all non-static non-indexed CLR properties from the . The CLR to get the properties from. A collection of CLR properties. Possibly empty, never null. Builds validators based on the facets of : * If .Nullable facet set to false adds a validator equivalent to the RequiredAttribute * If the .MaxLength facet is specified adds a validator equivalent to the MaxLengthAttribute. However the validator isn't added if .IsMaxLength has been set to true. The CLR property to build the facet validators for. The property for which facet validators will be created A collection of validators. Abstracts simple validators used to validate entities and properties. Validates an entity or a property. Validation context. Never null. Property to validate. Can be null for type level validation. Validation error as. Empty if no errors. Never null. Contract for IValidator.Validate method. Validation context. Property. Nothing - always throws. Validates entities or complex types implementing IValidatableObject interface. Display attribute used to specify the display name for an entity or complex property. Validates an entity or a complex type implementing IValidatableObject interface. This method is virtual to allow mocking. Validation context. Never null. Property to validate. Null if this is the entity that will be validated. Never null if this is the complex type that will be validated. Validation error as . Empty if no errors. Never null. Note that is used to figure out what needs to be validated. If it not null the complex type will be validated otherwise the entity will be validated. Also if this is an IValidatableObject complex type but the instance (.CurrentValue) is null we won't validate anything and will not return any errors. The reason for this is that Validation is supposed to validate using information the user provided and not some additional implicit rules. (ObjectContext will throw for operations that involve null complex properties). Validates a property, complex property or an entity using validation attributes the property or the complex/entity type is decorated with. Note that this class is used for validating primitive properties using attributes declared on the property (property level validation) and complex properties and entities using attributes declared on the type (type level validation). Display attribute used to specify the display name for a property or entity. Validation attribute used to validate a property or an entity. Creates an instance of class. Validation attribute used to validate a property or an entity. Validates a property or an entity. Validation context. Never null. Property to validate. Null for entity validation. Not null for property validation. Validation errors as . Empty if no errors, never null. Used to cache and retrieve generated validators and to create context for validating entities or properties. Collection of validators keyed by the entity CLR type. Note that if there's no validation for a given type it will be associated with a null validator. Initializes a new instance of class. Returns a validator to validate . Entity the validator is requested for. to validate . Possibly null if no validation has been specified for the entity. Returns a validator to validate . Navigation property the validator is requested for. Validator to validate . Possibly null if no validation has been specified for the requested property. Gets a validator for the . Entity validator. Property to get a validator for. Validator to validate . Possibly null if there is no validation for the . For complex properties this method walks up the type hierarchy to get to the entity level and then goes down and gets a validator for the child property that is an ancestor of the property to validate. If a validator returned for an ancestor is null it means that there is no validation defined beneath and the method just propagates (and eventually returns) null. Creates for . Entity entry for which a validation context needs to be created. User defined dictionary containing additional info for custom validation. This parameter is optional and can be null. An instance of class. A wrapper around EntityKey that allows key/values pairs that have null values to be used. This allows Added entities with null key values to be searched for in the ObjectStateManager. The key name/key value pairs, where some key values may be null Creates a new WrappedEntityKey instance. The entity set that the key belongs to. The fully qualified name of the given entity set. The key values, which may be null or contain null values. The name of the parameter passed for keyValue by the user, which is used when throwing exceptions. True if any of the key values are null, which means that the EntityKey will also be null. An actual EntityKey, or null if any of the key values are null. The key name/key value pairs of the key, in which some of the key values may be null. Allows configuration to be performed for an complex type in a model. A ComplexTypeConfiguration can be obtained via the ComplexType method on or a custom type derived from ComplexTypeConfiguration can be registered via the Configurations property on . The complex type to be configured. Allows configuration to be performed for a type in a model. The type to be configured. Configures a property that is defined on this type. The type of the property being configured. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. The type of the property being configured. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Excludes a property from the model so that it will not be mapped to the database. The type of the property to be ignored. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty Initializes a new instance of ComplexTypeConfiguration Allows derived configuration classes for entities and complex types to be registered with a . Derived configuration classes are created by deriving from or and using a type to be included in the model as the generic parameter. Configuration can be performed without creating derived configuration classes via the Entity and ComplexType methods on . Adds an to the . Only one can be added for each type in a model. The entity type being configured. The entity type configuration to be added. The same ConfigurationRegistrar instance so that multiple calls can be chained. Adds an to the . Only one can be added for each type in a model. The complex type being configured. The complex type configuration to be added The same ConfigurationRegistrar instance so that multiple calls can be chained. Allows the conventions used by a instance to be customized. Currently removal of one or more default conventions is the only supported operation. The default conventions can be found in the System.Data.Entity.ModelConfiguration.Conventions namespace. Disables a convention for the . The default conventions that are available for removal can be found in the System.Data.Entity.ModelConfiguration.Conventions namespace. The type of the convention to be disabled. Configures the table and column mapping for an entity type or a sub-set of properties from an entity type. This configuration functionality is available via the Code First Fluent API, see . The entity type to be mapped. Configures the properties that will be included in this mapping fragment. If this method is not called then all properties that have not yet been included in a mapping fragment will be configured. An anonymous type including the properties to be mapped. A lambda expression to an anonymous type that contains the properties to be mapped. C#: t => new { t.Id, t.Property1, t.Property2 } VB.Net: Function(t) New With { p.Id, t.Property1, t.Property2 } Re-maps all properties inherited from base types. When configuring a derived type to be mapped to a separate table this will cause all properties to be included in the table rather than just the non-inherited properties. This is known as Table per Concrete Type (TPC) mapping. Configures the table name to be mapped to. Name of the table. Configures the table name and schema to be mapped to. Name of the table. Schema of the table. Configures the discriminator column used to differentiate between types in an inheritance hierarchy. The name of the discriminator column. A configuration object to further configure the discriminator column and values. Configures the discriminator condition used to differentiate between types in an inheritance hierarchy. The type of the property being used to discriminate between types. A lambda expression representing the property being used to discriminate between types. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object to further configure the discriminator condition. Moves a foreign key constraint from oldTable to newTable and updates column references Move any FK constraints that are now completely in newTable and used to refer to oldColumn Configures a condition used to discriminate between types in an inheritance hierarchy based on the values assigned to a property. This configuration functionality is available via the Code First Fluent API, see . Configures the condition to require a value in the property. Rows that do not have a value assigned to column that this property is stored in are assumed to be of the base type of this entity type. Populate the table mapping structure Sets nullability for association set mappings' foreign keys for 1:* and 1:0..1 associations when no base types share the the association set mapping's table Makes sure only the required property mappings are present Determines if the table and entity type need mapping, and if not, removes the existing entity type mapping Configures a database column used to store a string values. This configuration functionality is available via the Code First Fluent API, see . Configures the column to allow the maximum length supported by the database provider. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the column to be fixed length. Use HasMaxLength to set the length that the property is fixed to. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the column to be variable length. Columns are variable length by default. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the column to be optional. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the column to be required. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the data type of the database column. Name of the database provider specific data type. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the order of the database column. The order that this column should appear in the database table. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the column to support Unicode string content. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures whether or not the column supports Unicode string content. Value indicating if the column supports Unicode string content or not. Specifying 'null' will remove the Unicode facet from the column. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures a discriminator column used to differentiate between types in an inheritance hierarchy. This configuration functionality is available via the Code First Fluent API, see . Configures the discriminator value used to identify the entity type being configured from other types in the inheritance hierarchy. Type of the discriminator value. The value to be used to identify the entity type. A configuration object to configure the column used to store discriminator values. Configures the discriminator value used to identify the entity type being configured from other types in the inheritance hierarchy. Type of the discriminator value. The value to be used to identify the entity type. A configuration object to configure the column used to store discriminator values. Configures the discriminator value used to identify the entity type being configured from other types in the inheritance hierarchy. The value to be used to identify the entity type. A configuration object to configure the column used to store discriminator values. Initializes configurations in the ModelConfiguration so that configuration data is in a single place Configures a many relationship from an entity type. The entity type that the relationship originates from. The entity type that the relationship targets. Configures the relationship to be many:many with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be many:many without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be many:required with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be many:required without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be many:optional with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be many:optional without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures an optional relationship from an entity type. The entity type that the relationship originates from. The entity type that the relationship targets. Configures the relationship to be optional:many with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:many without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:required with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:required without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:optional with a navigation property on the other side of the relationship. The entity type being configured will be the dependent and contain a foreign key to the principal. The entity type that the relationship targets will be the principal in the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:optional without a navigation property on the other side of the relationship. The entity type being configured will be the dependent and contain a foreign key to the principal. The entity type that the relationship targets will be the principal in the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:optional with a navigation property on the other side of the relationship. The entity type being configured will be the principal in the relationship. The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. A lambda expression representing the navigation property on the other end of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:optional without a navigation property on the other side of the relationship. The entity type being configured will be the principal in the relationship. The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. A configuration object that can be used to further configure the relationship. Configures an required relationship from an entity type. The entity type that the relationship originates from. The entity type that the relationship targets. Configures the relationship to be required:many with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be required:many without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be required:optional with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be required:optional without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be required:required with a navigation property on the other side of the relationship. The entity type being configured will be the dependent and contain a foreign key to the principal. The entity type that the relationship targets will be the principal in the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be required:required without a navigation property on the other side of the relationship. The entity type being configured will be the dependent and contain a foreign key to the principal. The entity type that the relationship targets will be the principal in the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be required:required with a navigation property on the other side of the relationship. The entity type being configured will be the principal in the relationship. The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be required:required without a navigation property on the other side of the relationship. The entity type being configured will be the principal in the relationship. The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. A configuration object that can be used to further configure the relationship. Base class for configuring a property on an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . True if the NavigationProperty's declaring type is the principal end, false if it is not, null if it is not known Base class for performing configuration of a relationship. This configuration functionality is available via the Code First Fluent API, see . Configures a relationship that can support cascade on delete functionality. Configures cascade delete to be on for the relationship. Configures whether or not cascade delete is on for the relationship. Value indicating if cascade delete is on or not. Configures a relationship that can support foreign key properties that are exposed in the object model. This configuration functionality is available via the Code First Fluent API, see . The dependent entity type. Configures a relationship that can only support foreign key properties that are not exposed in the object model. This configuration functionality is available via the Code First Fluent API, see . Configures the relationship to use foreign key property(s) that are not exposed in the object model. The column(s) and table can be customized by specifying a configuration action. If an empty configuration action is specified then column name(s) will be generated by convention. If foreign key properties are exposed in the object model then use the HasForeignKey method. Not all relationships support exposing foreign key properties in the object model. Action that configures the foreign key column(s) and table. A configuration object that can be used to further configure the relationship. Configures the relationship to use foreign key property(s) that are exposed in the object model. If the foreign key property(s) are not exposed in the object model then use the Map method. The type of the key. A lambda expression representing the property to be used as the foreign key. If the foreign key is made up of multiple properties then specify an anonymous type including the properties. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the principal entity type. A configuration object that can be used to further configure the relationship. Configures the table and column mapping of a relationship that does not expose foreign key properties in the object model. This configuration functionality is available via the Code First Fluent API, see . Configures the name of the column(s) for the foreign key. The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures the table name that the foreign key column(s) reside in. The table that is specified must already be mapped for the entity type. If you want the foreign key(s) to reside in their own table then use the Map method on to perform entity splitting to create the table with just the primary key property. Foreign keys can then be added to the table via this method. Name of the table. The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures the table name and schema that the foreign key column(s) reside in. The table that is specified must already be mapped for the entity type. If you want the foreign key(s) to reside in their own table then use the Map method on to perform entity splitting to create the table with just the primary key property. Foreign keys can then be added to the table via this method. Name of the table. Schema of the table. The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures the table and column mapping of a many:many relationship. This configuration functionality is available via the Code First Fluent API, see . Configures the join table name for the relationship. Name of the table. The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures the join table name and schema for the relationship. Name of the table. Schema of the table. The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures the name of the column(s) for the left foreign key. The left foreign key represents the navigation property specified in the HasMany call. The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures the name of the column(s) for the right foreign key. The right foreign key represents the navigation property specified in the WithMany call. The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures a many:many relationship. This configuration functionality is available via the Code First Fluent API, see . Configures the foreign key column(s) and table used to store the relationship. Action that configures the foreign key column(s) and table. Used to configure a property of an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Used to configure a property with length facets for an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Used to configure a primitive property of an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Configures the property to be optional. The database column used to store this property will be nullable. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the property to be required. The database column used to store this property will be non-nullable. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures how values for the property are generated by the database. The pattern used to generate values for the property in the database. Setting 'null' will remove the database generated pattern facet from the property. Setting 'null' will cause the same runtime behavior as specifying 'None'. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the property to be used as an optimistic concurrency token. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property is to be used as an optimistic concurrency token. Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the data type of the database column used to store the property. Name of the database provider specific data type. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the name of the database column used to store the property. The name of the column. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the order of the database column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The order that this column should appear in the database table. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the property to allow the maximum length supported by the database provider. The same LengthPropertyConfiguration instance so that multiple calls can be chained. Configures the property to have the specified maximum length. The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column. The same LengthPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be fixed length. Use HasMaxLength to set the length that the property is fixed to. The same LengthPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be variable length. Properties are variable length by default. The same LengthPropertyConfiguration instance so that multiple calls can be chained. Configures the property to allow the maximum length supported by the database provider. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to have the specified maximum length. The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be fixed length. Use HasMaxLength to set the length that the property is fixed to. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be variable length. properties are variable length by default. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be optional. The database column used to store this property will be nullable. properties are optional by default. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be required. The database column used to store this property will be non-nullable. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures how values for the property are generated by the database. The pattern used to generate values for the property in the database. Setting 'null' will remove the database generated pattern facet from the property. Setting 'null' will cause the same runtime behavior as specifying 'None'. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be used as an optimistic concurrency token. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property is to be used as an optimistic concurrency token. Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the name of the database column used to store the property. The name of the column. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the data type of the database column used to store the property. Name of the database provider specific data type. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the order of the database column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The order that this column should appear in the database table. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be a row version in the database. The actual data type will vary depending on the database provider being used. Setting the property to be a row version will automatically configure it to be an optimistic concurrency token. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Used to configure a property of an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Configures the property to be optional. The database column used to store this property will be nullable. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the property to be required. The database column used to store this property will be non-nullable. properties are required by default. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures how values for the property are generated by the database. The pattern used to generate values for the property in the database. Setting 'null' will remove the database generated pattern facet from the property. Setting 'null' will cause the same runtime behavior as specifying 'None'. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the property to be used as an optimistic concurrency token. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property is to be used as an optimistic concurrency token. Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the name of the database column used to store the property. The name of the column. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the data type of the database column used to store the property. Name of the database provider specific data type. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the order of the database column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The order that this column should appear in the database table. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the precision of the property. If the database provider does not support precision for the data type of the column then the value is ignored. Precision of the property. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Used to configure a property of an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Configures the property to be optional. The database column used to store this property will be nullable. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be required. The database column used to store this property will be non-nullable. properties are required by default. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures how values for the property are generated by the database. The pattern used to generate values for the property in the database. Setting 'null' will remove the database generated pattern facet from the property. Setting 'null' will cause the same runtime behavior as specifying 'None'. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be used as an optimistic concurrency token. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property is to be used as an optimistic concurrency token. Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the name of the database column used to store the property. The name of the column. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the data type of the database column used to store the property. Name of the database provider specific data type. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the order of the database column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The order that this column should appear in the database table. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the precision and scale of the property. The precision of the property. The scale of the property. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Used to configure a property of an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Configures the property to allow the maximum length supported by the database provider. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to have the specified maximum length. The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column.. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be fixed length. Use HasMaxLength to set the length that the property is fixed to. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be variable length. properties are variable length by default. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be optional. The database column used to store this property will be nullable. properties are optional by default. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be required. The database column used to store this property will be non-nullable. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures how values for the property are generated by the database. The pattern used to generate values for the property in the database. Setting 'null' will remove the database generated pattern facet from the property. Setting 'null' will cause the same runtime behavior as specifying 'None'. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be used as an optimistic concurrency token. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property is to be used as an optimistic concurrency token. Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the name of the database column used to store the property. The name of the column. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the data type of the database column used to store the property. Name of the database provider specific data type. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the order of the database column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The order that this column should appear in the database table. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to support Unicode string content. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property supports Unicode string content. Value indicating if the property supports Unicode string content or not. Specifying 'null' will remove the Unicode facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same StringPropertyConfiguration instance so that multiple calls can be chained. Indicates what parts of a configuration are overridable. Nothing in the configuration is overridable. The configuration values related to C-Space are overridable. The configuration values only related to S-Space are overridable. True if this configuration can be replaced in the model configuration, false otherwise This is only set to true for configurations that are registered automatically via the DbContext Base class for conventions that process CLR attributes found in the model. The type of member to look for. The type of the configuration to look for. The type of the attribute to look for. Convention to process instances of found on properties in the model Convention to process instances of found on properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on foreign key properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on navigation properties in the model. Convention to process instances of found on primitive properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on types in the model. Convention to process instances of found on types in the model. Convention to process instances of found on types in the model. Convention to detect navigation properties to be inverses of each other when only one pair of navigation properties exists between the related types. Convention to configure a type as a complex type if it has no primary key, no mapped base type and no navigation properties. Convention to convert any data types that were explicitly specified, via data annotations or API, to be lower case. The default SqlClient provider is case sensitive and requires data types to be lower case. This convention allows the and API to be case insensitive. Convention to add a cascade delete to the join table from both tables involved in a many to many relationship. Convention to ensure an invalid/unsupported mapping is not created when mapping inherited properties Convention to set the table name to be a pluralized version of the entity type name. Convention to set precision to 18 and scale to 2 for decimal properties. Convention to move primary key properties to appear first. Convention to distinguish between optional and required relationships based on CLR nullability of the foreign key property. Convention to process instances of found on navigation properties in the model. Convention to detect primary key properties. Recognized naming patterns in order of precedence are: 1. 'Id' 2. [type name]Id Primary key detection is case insensitive. Convention to discover foreign key properties whose names are a combination of the dependent navigation property name and the principal type primary key property name(s). Convention to enable cascade delete for any required relationships. Convention to configure the primary key(s) of the dependent entity type as foreign key(s) in a one:one relationship. Convention to set the entity set name to be a pluralized version of the entity type name. Convention to discover foreign key properties whose names match the principal type primary key property name(s). Convention to set a default maximum length of 128 for properties whose type supports length facets. Convention to set a default maximum length of 4000 for properties whose type supports length facets when SqlCe is the provider. Convention to configure integer primary keys to be identity. Checks for the PK property being an FK in a different table. A PK which is also an FK but in the same table is used for table splitting and can still be an identity column because the update pipeline is only inserting into one column of one table. Convention to discover foreign key properties whose names are a combination of the principal type name and the principal type primary key property name(s). This class provide service for both the singularization and pluralization, it takes the word pairs in the ctor following the rules that the first one is singular and the second one is plural. Factory method for PluralizationService. Only support english pluralization. Please set the PluralizationService on the System.Data.Entity.Design.EntityModelSchemaGenerator to extend the service to other locales. CultureInfo PluralizationService captalize the return word if the parameter is capitalized if word is "Table", then return "Tables" separate one combine word in to two parts, prefix word and the last word(suffix word) return true when the word is "[\s]*" or leading or tailing with spaces or contains non alphabetical characters This method allow you to add word to internal PluralizationService of English. If the singluar or the plural value was already added by this method, then an ArgumentException will be thrown. Attempt to determine the principal and dependent ends of this association. The following table illustrates the solution space. Source | Target || Prin | Dep | -------|--------||-------|-------| 1 | 1 || - | - | 1 | 0..1 || Sr | Ta | 1 | * || Sr | Ta | 0..1 | 1 || Ta | Sr | 0..1 | 0..1 || - | - | 0..1 | * || Sr | Ta | * | 1 || Ta | Sr | * | 0..1 || Ta | Sr | * | * || - | - | Allows configuration to be performed for an entity type in a model. An EntityTypeConfiguration can be obtained via the Entity method on or a custom type derived from EntityTypeConfiguration can be registered via the Configurations property on . Initializes a new instance of EntityTypeConfiguration Configures the primary key property(s) for this entity type. The type of the key. A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } The same EntityTypeConfiguration instance so that multiple calls can be chained. Configures the entity set name to be used for this entity type. The entity set name can only be configured for the base type in each set. The name of the entity set. The same EntityTypeConfiguration instance so that multiple calls can be chained. Configures the table name that this entity type is mapped to. The name of the table. Configures the table name that this entity type is mapped to. The name of the table. The database schema of the table. Allows advanced configuration related to how this entity type is mapped to the database schema. By default, any configuration will also apply to any type derived from this entity type. Derived types can be configured via the overload of Map that configures a derived type or by using an EntityTypeConfiguration for the derived type. The properties of an entity can be split between multiple tables using multiple Map calls. Calls to Map are additive, subsequent calls will not override configuration already preformed via Map. An action that performs configuration against an . The same EntityTypeConfiguration instance so that multiple calls can be chained. Allows advanced configuration related to how a derived entity type is mapped to the database schema. Calls to Map are additive, subsequent calls will not override configuration already preformed via Map. The derived entity type to be configured. An action that performs configuration against an . The same EntityTypeConfiguration instance so that multiple calls can be chained. Configures an optional relationship from this entity type. Instances of the entity type will be able to be saved to the database without this relationship being specified. The foreign key in the database will be nullable. The type of the entity at the other end of the relationship. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures a required relationship from this entity type. Instances of the entity type will not be able to be saved to the database unless this relationship is specified. The foreign key in the database will be non-nullable. The type of the entity at the other end of the relationship. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures a many relationship from this entity type. The type of the entity at the other end of the relationship. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Handles mapping from a CLR property to an EDM assocation and nav. prop. Exception thrown by during model creation when an invalid model is generated. Initializes a new instance of ModelValidationException Initializes a new instance of ModelValidationException The exception message. Initializes a new instance of ModelValidationException The exception message. The inner exception. Code Contracts hook methods - Called when contracts fail. Here we detect the most common preconditions so we can throw the correct exceptions. It also means that we can write preconditions using the simplest Contract.Requires() form. Returns true if a variable of this type can be assigned a null value True if a reference type or a nullable value type, false otherwise Exception thrown from when validating entities fails. Initializes a new instance of DbEntityValidationException Initializes a new instance of DbEntityValidationException The exception message. Initializes a new instance of DbEntityValidationException The exception message. Validation results. Initializes a new instance of DbEntityValidationException The exception message. The inner exception. Initializes a new instance of DbEntityValidationException The exception message. Validation results. The inner exception. Subscribes the SerializeObjectState event. Validation results. Holds exception state that will be serialized when the exception is serialized. Validation results. Completes the deserialization. The deserialized object. Validation results. Represents validation results for single entity. Entity entry the results applies to. Never null. List of instances. Never null. Can be empty meaning the entity is valid. Creates an instance of class. Entity entry the results applies to. Never null. List of instances. Never null. Can be empty meaning the entity is valid. Creates an instance of class. Entity entry the results applies to. Never null. List of instances. Never null. Can be empty meaning the entity is valid. Gets an instance of the results applies to. Gets validation errors. Never null. Gets an indicator if the entity is valid. Exception thrown from when an exception is thrown from the validation code. Initializes a new instance of DbUnexpectedValidationException The exception message. Initializes a new instance of DbUnexpectedValidationException The exception message. Initializes a new instance of DbUnexpectedValidationException The exception message. The inner exception. Initializes a new instance of DbUnexpectedValidationException with the specified serialization info and context. The serialization info. The streaming context. Validation error. Can be either entity or property level validation error. Name of the invalid property. Can be null (e.g. for entity level validations) Validation error message. Creates an instance of . Name of the invalid property. Can be null. Validation error message. Can be null. Gets name of the invalid property. Gets validation error message. ================================================ FILE: packages/EntityFramework.5.0.0/tools/EntityFramework.psm1 ================================================ # Copyright (c) Microsoft Corporation. All rights reserved. $InitialDatabase = '0' $knownExceptions = @( 'System.Data.Entity.Migrations.Infrastructure.MigrationsException', 'System.Data.Entity.Migrations.Infrastructure.AutomaticMigrationsDisabledException', 'System.Data.Entity.Migrations.Infrastructure.AutomaticDataLossException', 'System.Data.Entity.Migrations.MigrationsPendingException', 'System.Data.Entity.Migrations.ProjectTypeNotSupportedException' ) <# .SYNOPSIS Enables Code First Migrations in a project. .DESCRIPTION Enables Migrations by scaffolding a migrations configuration class in the project. If the target database was created by an initializer, an initial migration will be created (unless automatic migrations are enabled via the EnableAutomaticMigrations parameter). .PARAMETER ContextTypeName Specifies the context to use. If omitted, migrations will attempt to locate a single context type in the target project. .PARAMETER EnableAutomaticMigrations Specifies whether automatic migrations will be enabled in the scaffolded migrations configuration. If ommitted, automatic migrations will be disabled. .PARAMETER ProjectName Specifies the project that the scaffolded migrations configuration class will be added to. If omitted, the default project selected in package manager console is used. .PARAMETER StartUpProjectName Specifies the configuration file to use for named connection strings. If omitted, the specified project's configuration file is used. .PARAMETER ConnectionStringName Specifies the name of a connection string to use from the application's configuration file. .PARAMETER ConnectionString Specifies the the connection string to use. If omitted, the context's default connection will be used. .PARAMETER ConnectionProviderName Specifies the provider invariant name of the connection string. .PARAMETER Force Specifies that the migrations configuration be overwritten when running more than once for a given project. #> function Enable-Migrations { [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] param ( [string] $ContextTypeName, [alias('Auto')] [switch] $EnableAutomaticMigrations, [string] $ProjectName, [string] $StartUpProjectName, [parameter(ParameterSetName = 'ConnectionStringName')] [string] $ConnectionStringName, [parameter(ParameterSetName = 'ConnectionStringAndProviderName', Mandatory = $true)] [string] $ConnectionString, [parameter(ParameterSetName = 'ConnectionStringAndProviderName', Mandatory = $true)] [string] $ConnectionProviderName, [switch] $Force ) $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $null $ConnectionStringName $ConnectionString $ConnectionProviderName try { Invoke-RunnerCommand $runner System.Data.Entity.Migrations.EnableMigrationsCommand @( $EnableAutomaticMigrations.IsPresent, $Force.IsPresent ) @{ 'ContextTypeName' = $ContextTypeName } $error = Get-RunnerError $runner if ($error) { if ($knownExceptions -notcontains $error.TypeName) { Write-Host $error.StackTrace } throw $error.Message } } finally { Remove-Runner $runner } } <# .SYNOPSIS Scaffolds a migration script for any pending model changes. .DESCRIPTION Scaffolds a new migration script and adds it to the project. .PARAMETER Name Specifies the name of the custom script. .PARAMETER Force Specifies that the migration user code be overwritten when re-scaffolding an existing migration. .PARAMETER ProjectName Specifies the project that contains the migration configuration type to be used. If ommitted, the default project selected in package manager console is used. .PARAMETER StartUpProjectName Specifies the configuration file to use for named connection strings. If omitted, the specified project's configuration file is used. .PARAMETER ConfigurationTypeName Specifies the migrations configuration to use. If omitted, migrations will attempt to locate a single migrations configuration type in the target project. .PARAMETER ConnectionStringName Specifies the name of a connection string to use from the application's configuration file. .PARAMETER ConnectionString Specifies the the connection string to use. If omitted, the context's default connection will be used. .PARAMETER ConnectionProviderName Specifies the provider invariant name of the connection string. .PARAMETER IgnoreChanges Scaffolds an empty migration ignoring any pending changes detected in the current model. This can be used to create an initial, empty migration to enable Migrations for an existing database. N.B. Doing this assumes that the target database schema is compatible with the current model. #> function Add-Migration { [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] param ( [parameter(Position = 0, Mandatory = $true)] [string] $Name, [switch] $Force, [string] $ProjectName, [string] $StartUpProjectName, [string] $ConfigurationTypeName, [parameter(ParameterSetName = 'ConnectionStringName')] [string] $ConnectionStringName, [parameter(ParameterSetName = 'ConnectionStringAndProviderName', Mandatory = $true)] [string] $ConnectionString, [parameter(ParameterSetName = 'ConnectionStringAndProviderName', Mandatory = $true)] [string] $ConnectionProviderName, [switch] $IgnoreChanges) $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $ConfigurationTypeName $ConnectionStringName $ConnectionString $ConnectionProviderName try { Invoke-RunnerCommand $runner System.Data.Entity.Migrations.AddMigrationCommand @( $Name, $Force.IsPresent, $IgnoreChanges.IsPresent ) $error = Get-RunnerError $runner if ($error) { if ($knownExceptions -notcontains $error.TypeName) { Write-Host $error.StackTrace } throw $error.Message } } finally { Remove-Runner $runner } } <# .SYNOPSIS Applies any pending migrations to the database. .DESCRIPTION Updates the database to the current model by applying pending migrations. .PARAMETER SourceMigration Only valid with -Script. Specifies the name of a particular migration to use as the update's starting point. If ommitted, the last applied migration in the database will be used. .PARAMETER TargetMigration Specifies the name of a particular migration to update the database to. If ommitted, the current model will be used. .PARAMETER Script Generate a SQL script rather than executing the pending changes directly. .PARAMETER Force Specifies that data loss is acceptable during automatic migration of the database. .PARAMETER ProjectName Specifies the project that contains the migration configuration type to be used. If ommitted, the default project selected in package manager console is used. .PARAMETER StartUpProjectName Specifies the configuration file to use for named connection strings. If omitted, the specified project's configuration file is used. .PARAMETER ConfigurationTypeName Specifies the migrations configuration to use. If omitted, migrations will attempt to locate a single migrations configuration type in the target project. .PARAMETER ConnectionStringName Specifies the name of a connection string to use from the application's configuration file. .PARAMETER ConnectionString Specifies the the connection string to use. If omitted, the context's default connection will be used. .PARAMETER ConnectionProviderName Specifies the provider invariant name of the connection string. #> function Update-Database { [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] param ( [string] $SourceMigration, [string] $TargetMigration, [switch] $Script, [switch] $Force, [string] $ProjectName, [string] $StartUpProjectName, [string] $ConfigurationTypeName, [parameter(ParameterSetName = 'ConnectionStringName')] [string] $ConnectionStringName, [parameter(ParameterSetName = 'ConnectionStringAndProviderName', Mandatory = $true)] [string] $ConnectionString, [parameter(ParameterSetName = 'ConnectionStringAndProviderName', Mandatory = $true)] [string] $ConnectionProviderName) $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $ConfigurationTypeName $ConnectionStringName $ConnectionString $ConnectionProviderName try { Invoke-RunnerCommand $runner System.Data.Entity.Migrations.UpdateDatabaseCommand @( $SourceMigration, $TargetMigration, $Script.IsPresent, $Force.IsPresent, $Verbose.IsPresent ) $error = Get-RunnerError $runner if ($error) { if ($knownExceptions -notcontains $error.TypeName) { Write-Host $error.StackTrace } throw $error.Message } } finally { Remove-Runner $runner } } <# .SYNOPSIS Displays the migrations that have been applied to the target database. .DESCRIPTION Displays the migrations that have been applied to the target database. .PARAMETER ProjectName Specifies the project that contains the migration configuration type to be used. If ommitted, the default project selected in package manager console is used. .PARAMETER StartUpProjectName Specifies the configuration file to use for named connection strings. If omitted, the specified project's configuration file is used. .PARAMETER ConfigurationTypeName Specifies the migrations configuration to use. If omitted, migrations will attempt to locate a single migrations configuration type in the target project. .PARAMETER ConnectionStringName Specifies the name of a connection string to use from the application's configuration file. .PARAMETER ConnectionString Specifies the the connection string to use. If omitted, the context's default connection will be used. .PARAMETER ConnectionProviderName Specifies the provider invariant name of the connection string. #> function Get-Migrations { [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] param ( [string] $ProjectName, [string] $StartUpProjectName, [string] $ConfigurationTypeName, [parameter(ParameterSetName = 'ConnectionStringName')] [string] $ConnectionStringName, [parameter(ParameterSetName = 'ConnectionStringAndProviderName', Mandatory = $true)] [string] $ConnectionString, [parameter(ParameterSetName = 'ConnectionStringAndProviderName', Mandatory = $true)] [string] $ConnectionProviderName) $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $ConfigurationTypeName $ConnectionStringName $ConnectionString $ConnectionProviderName try { Invoke-RunnerCommand $runner System.Data.Entity.Migrations.GetMigrationsCommand $error = Get-RunnerError $runner if ($error) { if ($knownExceptions -notcontains $error.TypeName) { Write-Host $error.StackTrace } throw $error.Message } } finally { Remove-Runner $runner } } function New-MigrationsRunner($ProjectName, $StartUpProjectName, $ConfigurationTypeName, $ConnectionStringName, $ConnectionString, $ConnectionProviderName) { $startUpProject = Get-MigrationsStartUpProject $StartUpProjectName $ProjectName Build-Project $startUpProject $project = Get-MigrationsProject $ProjectName Build-Project $project $installPath = Get-EntityFrameworkInstallPath $project $toolsPath = Join-Path $installPath tools $info = New-Object System.AppDomainSetup -Property @{ ShadowCopyFiles = 'true'; ApplicationBase = $installPath; PrivateBinPath = 'tools' } $targetFrameworkVersion = (New-Object System.Runtime.Versioning.FrameworkName ($project.Properties.Item('TargetFrameworkMoniker').Value)).Version if ($targetFrameworkVersion -lt (New-Object Version @( 4, 5 ))) { $info.PrivateBinPath += ';lib\net40' $dteVersion = [System.Text.RegularExpressions.Regex]::Match($DTE.Version, '^(?\d{1,2}(\.\d{1,2})?)( \(.+\))?$').Groups['version'].Value if ((New-Object Version $dteVersion) -lt (New-Object Version @( 11, 0 ))) { $info.ConfigurationFile = Join-Path $toolsPath 'Redirect.config' } else { $info.ConfigurationFile = Join-Path $toolsPath 'Redirect.VS11.config' } } else { $info.PrivateBinPath += ';lib\net45' $info.ConfigurationFile = [AppDomain]::CurrentDomain.SetupInformation.ConfigurationFile } $domain = [AppDomain]::CreateDomain('Migrations', $null, $info) $domain.SetData('project', $project) $domain.SetData('startUpProject', $startUpProject) $domain.SetData('configurationTypeName', $ConfigurationTypeName) $domain.SetData('connectionStringName', $ConnectionStringName) $domain.SetData('connectionString', $ConnectionString) $domain.SetData('connectionProviderName', $ConnectionProviderName) [AppDomain]::CurrentDomain.SetShadowCopyFiles() $utilityAssembly = [System.Reflection.Assembly]::LoadFrom((Join-Path $toolsPath EntityFramework.PowerShell.Utility.dll)) $dispatcher = $utilityAssembly.CreateInstance( 'System.Data.Entity.Migrations.Utilities.DomainDispatcher', $false, [System.Reflection.BindingFlags]::Instance -bor [System.Reflection.BindingFlags]::Public, $null, $PSCmdlet, $null, $null) $domain.SetData('efDispatcher', $dispatcher) return @{ Domain = $domain; ToolsPath = $toolsPath } } function Remove-Runner($runner) { [AppDomain]::Unload($runner.Domain) } function Invoke-RunnerCommand($runner, $command, $parameters, $anonymousArguments) { $domain = $runner.Domain if ($anonymousArguments) { $anonymousArguments.GetEnumerator() | %{ $domain.SetData($_.Name, $_.Value) } } $domain.CreateInstanceFrom( (Join-Path $runner.ToolsPath EntityFramework.PowerShell.dll), $command, $false, 0, $null, $parameters, $null, $null) | Out-Null } function Get-RunnerError($runner) { $domain = $runner.Domain if (!$domain.GetData('wasError')) { return $null } return @{ Message = $domain.GetData('error.Message'); TypeName = $domain.GetData('error.TypeName'); StackTrace = $domain.GetData('error.StackTrace') } } function Get-MigrationsProject($name, $hideMessage) { if ($name) { return Get-SingleProject $name } $project = Get-Project $projectName = $project.Name if (!$hideMessage) { Write-Verbose "Using NuGet project '$projectName'." } return $project } function Get-MigrationsStartUpProject($name, $fallbackName) { $startUpProject = $null if ($name) { $startUpProject = Get-SingleProject $name } else { $startupProjectPaths = $DTE.Solution.SolutionBuild.StartupProjects if ($startupProjectPaths) { if ($startupProjectPaths.Length -eq 1) { $startupProjectPath = $startupProjectPaths[0] if (!(Split-Path -IsAbsolute $startupProjectPath)) { $solutionPath = Split-Path $DTE.Solution.Properties.Item('Path').Value $startupProjectPath = Join-Path $solutionPath $startupProjectPath -Resolve } $startupProject = Get-SolutionProjects | ?{ try { $fullName = $_.FullName } catch [NotImplementedException] { return false; } if ($fullName -and $fullName.EndsWith('\')) { $fullName = $fullName.Substring(0, $fullName.Length - 1) } return $fullName -eq $startupProjectPath } } else { Write-Verbose 'More than one start-up project found.' } } else { Write-Verbose 'No start-up project found.' } } if (!($startUpProject -and (Test-StartUpProject $startUpProject))) { $startUpProject = Get-MigrationsProject $fallbackName $true $startUpProjectName = $startUpProject.Name Write-Warning "Cannot determine a valid start-up project. Using project '$startUpProjectName' instead. Your configuration file and working directory may not be set as expected. Use the -StartUpProjectName parameter to set one explicitly. Use the -Verbose switch for more information." } else { $startUpProjectName = $startUpProject.Name Write-Verbose "Using StartUp project '$startUpProjectName'." } return $startUpProject } function Get-SolutionProjects() { $projects = New-Object System.Collections.Stack $DTE.Solution.Projects | %{ $projects.Push($_) } while ($projects.Count -ne 0) { $project = $projects.Pop(); # NOTE: This line is similar to doing a "yield return" in C# $project if ($project.ProjectItems) { $project.ProjectItems | ?{ $_.SubProject } | %{ $projects.Push($_.SubProject) } } } } function Get-SingleProject($name) { $project = Get-Project $name if ($project -is [array]) { throw "More than one project '$name' was found. Specify the full name of the one to use." } return $project } function Test-StartUpProject($project) { if ($project.Kind -eq '{cc5fd16d-436d-48ad-a40c-5a424c6e3e79}') { $projectName = $project.Name Write-Verbose "Cannot use start-up project '$projectName'. The Windows Azure Project type isn't supported." return $false } return $true } function Build-Project($project) { $configuration = $DTE.Solution.SolutionBuild.ActiveConfiguration.Name $DTE.Solution.SolutionBuild.BuildProject($configuration, $project.UniqueName, $true) if ($DTE.Solution.SolutionBuild.LastBuildInfo) { $projectName = $project.Name throw "The project '$projectName' failed to build." } } function Get-EntityFrameworkInstallPath($project) { $package = Get-Package -ProjectName $project.FullName | ?{ $_.Id -eq 'EntityFramework' } if (!$package) { $projectName = $project.Name throw "The EntityFramework package is not installed on project '$projectName'." } return Get-PackageInstallPath $package } function Get-PackageInstallPath($package) { $componentModel = Get-VsComponentModel $packageInstallerServices = $componentModel.GetService([NuGet.VisualStudio.IVsPackageInstallerServices]) $vsPackage = $packageInstallerServices.GetInstalledPackages() | ?{ $_.Id -eq $package.Id -and $_.Version -eq $package.Version } return $vsPackage.InstallPath } Export-ModuleMember @( 'Enable-Migrations', 'Add-Migration', 'Update-Database', 'Get-Migrations' ) -Variable InitialDatabase # SIG # Begin signature block # MIIaRgYJKoZIhvcNAQcCoIIaNzCCGjMCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUc46O5H/xCa1Zd+kKsDgAx0de # pNmgghUtMIIEoDCCA4igAwIBAgIKYRnMkwABAAAAZjANBgkqhkiG9w0BAQUFADB5 # MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk # bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN # aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTEwMTAyMDMyMjVaFw0xMzAx # MTAyMDMyMjVaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ # MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u # MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w # ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDuW759ESTjhgbgZv9ItRe9 # AuS0DDLwcj59LofXTqGxp0Mv92WeMeEyMUWu18EkhCHXLrWEfvo101Mc17ZRHk/O # ZrnrtwwC/SlcraiH9soitNW/CHX1inCPY9fvih7pj0MkZFrTh32QbTusds1XNn3o # vBBWrJjwiV0uZMavJgleHmMV8T2/Fo+ZiALDMLfBC2AfD3LM1reoNRKGm6ELCuaT # W476VJzB8xlfQo0Snx0/kLcnE4MZMoId89mH1CGyPKK2B0/XJKrujfWz2fr5OU+n # 6fKvWVL03EGbLxFwY93q3qrxbSEEEFMzu7JPxeFTskFlR2439rzpmxZBkWsuWzDD # AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUG1IO # 8xEqt8CJwxGBPdSWWLmjU24wDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFMsR # 6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu # bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z # MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93 # d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw # MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQClWzZsrU6baRLjb4oCm2l3w2xkciiI # 2T1FbSwYe9QoLxPiWWobwgs0t4r96rmU7Acx5mr0dQTTp9peOgaeEP2pDb2cUUNv # /2eUnOHPfPAksDXMg13u2sBvNknAWgpX9nPhnvPjCEw7Pi/M0s3uTyJw9wQfAqZL # m7iPXIgONpRsMwe4qa1RoNDC3I4iEr3D34LXVqH33fClIFcQEJ3urIZ0bHGbwfDy # wnBep9ttTTdYmU15QNA0XVolrmfrG05GBrCMKR+jEI+lM58j1fi1Rn3g7mOYkEs+ # BagvsBizWaSvQVOOCAUQLSrJOgZMHC6pMVFWZKyazKyXmCmKl5CH6p22MIIEujCC # A6KgAwIBAgIKYQUZlgAAAAAAGzANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV # UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE # ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt # ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE5WhcNMTIxMDI1MjA0MjE5WjCBszEL # MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v # bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q # UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjlFNzgtODY0Qi0wMzlEMSUwIwYD # VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B # AQEFAAOCAQ8AMIIBCgKCAQEA08s7U6KfRKN6q01WcVOKd6o3k34BPv2rAqNTqf/R # sSLFAJDndW7uGOiBDhPF2GEAvh+gdjsEDQTFBKCo/ENTBqEEBLkLkpgCYjjv1DMS # 9ys9e++tRVeFlSCf12M0nGJGjr6u4NmeOfapVf3P53fmNRPvXOi/SJNPGkMHWDiK # f4UUbOrJ0Et6gm7L0xVgCBSJlKhbPzrJPyB9bS9YGn3Kiji8w8I5aNgtWBoj7SoQ # CFogjIKl7dGXRZKFzMM3g98NmHzF07bgmVPYeAj15SMhB2KGWmppGf1w+VM0gfcl # MRmGh4vAVZr9qkw1Ff1b6ZXJq1OYKV8speElD2TF8rAndQIDAQABo4IBCTCCAQUw # HQYDVR0OBBYEFHkj56ENvlUsaBgpYoJn1vPhNjhaMB8GA1UdIwQYMBaAFCM0+NlS # RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj # cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD # QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p # Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw # EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAEfCdoFbMd1v # 0zyZ8npsfpcTUCwFFxsQuEShtYz0Vs+9sCG0ZG1hHNju6Ov1ku5DohhEw/r67622 # XH+XbUu1Q/snYXgIVHyx+a+YCrR0xKroLVDEff59TqGZ1icot67Y37GPgyKOzvN5 # /GEUbb/rzISw36O7WwW36lT1Yh1sJ6ZjS/rjofq734WWZWlTsLZxmGQmZr3F8Vxi # vJH0PZxLQgANzzgFFCZa3CoFS39qmTjY3XOZos6MUCSepOv1P4p4zFSZXSVmpEEG # KK9JxLRSlOzeAoNk/k3U/0ui/CmA2+4/qzztM4jKvyJg0Fw7BLAKtJhtPKc6T5rR # ARYRYopBdqAwggW8MIIDpKADAgECAgphMyYaAAAAAAAxMA0GCSqGSIb3DQEBBQUA # MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv # ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 # eTAeFw0xMDA4MzEyMjE5MzJaFw0yMDA4MzEyMjI5MzJaMHkxCzAJBgNVBAYTAlVT # MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK # ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2Rl # IFNpZ25pbmcgUENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsnJZ # XBkwZL8dmmAgIEKZdlNsPhvWb8zL8epr/pcWEODfOnSDGrcvoDLs/97CQk4j1XIA # 2zVXConKriBJ9PBorE1LjaW9eUtxm0cH2v0l3511iM+qc0R/14Hb873yNqTJXEXc # r6094CholxqnpXJzVvEXlOT9NZRyoNZ2Xx53RYOFOBbQc1sFumdSjaWyaS/aGQv+ # knQp4nYvVN0UMFn40o1i/cvJX0YxULknE+RAMM9yKRAoIsc3Tj2gMj2QzaE4BoVc # TlaCKCoFMrdL109j59ItYvFFPeesCAD2RqGe0VuMJlPoeqpK8kbPNzw4nrR3XKUX # no3LEY9WPMGsCV8D0wIDAQABo4IBXjCCAVowDwYDVR0TAQH/BAUwAwEB/zAdBgNV # HQ4EFgQUyxHoytK0FlgByTcuMxYWuUyaCh8wCwYDVR0PBAQDAgGGMBIGCSsGAQQB # gjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFP3RMU7TJoqV4ZhgO6gxb6Y8vNgt # MBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMB8GA1UdIwQYMBaAFA6sgmBAVieX # 5SUT/CrhClOVWeSkMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9z # b2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBU # BggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0 # LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MA0GCSqGSIb3DQEB # BQUAA4ICAQBZOT5/Jkav629AsTK1ausOL26oSffrX3XtTDst10OtC/7L6S0xoyPM # fFCYgCFdrD0vTLqiqFac43C7uLT4ebVJcvc+6kF/yuEMF2nLpZwgLfoLUMRWzS3j # StK8cOeoDaIDpVbguIpLV/KVQpzx8+/u44YfNDy4VprwUyOFKqSCHJPilAcd8uJO # +IyhyugTpZFOyBvSj3KVKnFtmxr4HPBT1mfMIv9cHc2ijL0nsnljVkSiUc356aNY # Vt2bAkVEL1/02q7UgjJu/KSVE+Traeepoiy+yCsQDmWOmdv1ovoSJgllOJTxeh9K # u9HhVujQeJYYXMk1Fl/dkx1Jji2+rTREHO4QFRoAXd01WyHOmMcJ7oUOjE9tDhNO # PXwpSJxy0fNsysHscKNXkld9lI2gG0gDWvfPo2cKdKU27S0vF8jmcjcS9G+xPGeC # +VKyjTMWZR4Oit0Q3mT0b85G1NMX6XnEBLTT+yzfH4qerAr7EydAreT54al/RrsH # YEdlYEBOsELsTu2zdnnYCjQJbRyAMR/iDlTd5aH75UcQrWSY/1AWLny/BSF64pVB # J2nDk4+VyY3YmyGuDVyc8KKuhmiDDGotu3ZrAB2WrfIWe/YWgyS5iM9qqEcxL5rc # 43E91wB+YkfRzojJuBj6DnKNwaM9rwJAav9pm5biEKgQtDdQCNbDPTCCBgcwggPv # oAMCAQICCmEWaDQAAAAAABwwDQYJKoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixk # ARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWlj # cm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTA3MDQwMzEyNTMw # OVoXDTIxMDQwMzEzMDMwOVowdzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp # bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw # b3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBMIIBIjAN # BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn6Fssd/bSJIqfGsuGeG94uPFmVEj # UK3O3RhOJA/u0afRTK10MCAR6wfVVJUVSZQbQpKumFwwJtoAa+h7veyJBw/3DgSY # 8InMH8szJIed8vRnHCz8e+eIHernTqOhwSNTyo36Rc8J0F6v0LBCBKL5pmyTZ9co # 3EZTsIbQ5ShGLieshk9VUgzkAyz7apCQMG6H81kwnfp+1pez6CGXfvjSE/MIt1Nt # UrRFkJ9IAEpHZhEnKWaol+TTBoFKovmEpxFHFAmCn4TtVXj+AZodUAiFABAwRu23 # 3iNGu8QtVJ+vHnhBMXfMm987g5OhYQK1HQ2x/PebsgHOIktU//kFw8IgCwIDAQAB # o4IBqzCCAacwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUIzT42VJGcArtQPt2 # +7MrsMM1sw8wCwYDVR0PBAQDAgGGMBAGCSsGAQQBgjcVAQQDAgEAMIGYBgNVHSME # gZAwgY2AFA6sgmBAVieX5SUT/CrhClOVWeSkoWOkYTBfMRMwEQYKCZImiZPyLGQB # GRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNy # b3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCEHmtFqFKoKWtTHNY9AcT # LmUwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3Br # aS9jcmwvcHJvZHVjdHMvbWljcm9zb2Z0cm9vdGNlcnQuY3JsMFQGCCsGAQUFBwEB # BEgwRjBEBggrBgEFBQcwAoY4aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9j # ZXJ0cy9NaWNyb3NvZnRSb290Q2VydC5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgw # DQYJKoZIhvcNAQEFBQADggIBABCXisNcA0Q23em0rXfbznlRTQGxLnRxW20ME6vO # vnuPuC7UEqKMbWK4VwLLTiATUJndekDiV7uvWJoc4R0Bhqy7ePKL0Ow7Ae7ivo8K # BciNSOLwUxXdT6uS5OeNatWAweaU8gYvhQPpkSokInD79vzkeJkuDfcH4nC8GE6d # jmsKcpW4oTmcZy3FUQ7qYlw/FpiLID/iBxoy+cwxSnYxPStyC8jqcD3/hQoT38IK # YY7w17gX606Lf8U1K16jv+u8fQtCe9RTciHuMMq7eGVcWwEXChQO0toUmPU8uWZY # sy0v5/mFhsxRVuidcJRsrDlM1PZ5v6oYemIp76KbKTQGdxpiyT0ebR+C8AvHLLvP # Q7Pl+ex9teOkqHQ1uE7FcSMSJnYLPFKMcVpGQxS8s7OwTWfIn0L/gHkhgJ4VMGbo # QhJeGsieIiHQQ+kr6bv0SMws1NgygEwmKkgkX1rqVu+m3pmdyjpvvYEndAYR7nYh # v5uCwSdUtrFqPYmhdmG0bqETpr+qR/ASb/2KMmyy/t9RyIwjyWa9nR2HEmQCPS2v # WY+45CHltbDKY7R4VAXUQS5QrJSwpXirs6CWdRrZkocTdSIvMqgIbqBbjCW/oO+E # yiHW6x5PyZruSeD3AWVviQt9yGnI5m7qp5fOMSn/DsVbXNhNG6HY+i+ePy5VFmvJ # E6P9MYIEgzCCBH8CAQEwgYcweTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp # bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw # b3JhdGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0ECCmEZ # zJMAAQAAAGYwCQYFKw4DAhoFAKCBsDAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIB # BDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQU # SDInMyiqV3LEzPhzf6mjYJvp5qAwUAYKKwYBBAGCNwIBDDFCMECgIoAgAEUAbgB0 # AGkAdAB5ACAARgByAGEAbQBlAHcAbwByAGuhGoAYaHR0cDovL21zZG4uY29tL2Rh # dGEvZWYgMA0GCSqGSIb3DQEBAQUABIIBAMTy2exDNM/cRmGrhj6rawr6XoQp77kh # +WOMUmSG5U4qSlP8g3fVFH030Xsxz5d8TunxEzRUyDhYHh3mQ56x4RCVJU/fdl8Q # dhXwn4VfV84G3+mIHVRCo8+8hm/o1l1K0sHhLCaPSoZht1bcKH09gK1VxoNhBt78 # BFUHLTWw0sRwrEJRW1xZPwOoh2rv1cnYi7GPKFHiYrCV3NSHRkSJZmA42UYA1iZv # 3fF9QCQNlTDY4jiC2vsa/eWt0qhups1gQXdqg8y/Zvc5cEYxF+ByataJ6fI4w5HP # 5WNzsVl1O+6VFlj1qjMzOyVlsHWCOIfFfc8iLoWWy+A4W00yEeHIMT2hggIdMIIC # GQYJKoZIhvcNAQkGMYICCjCCAgYCAQEwgYUwdzELMAkGA1UEBhMCVVMxEzARBgNV # BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv # c29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAg # UENBAgphBRmWAAAAAAAbMAcGBSsOAwIaoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3 # DQEHATAcBgkqhkiG9w0BCQUxDxcNMTIwNjI4MjA0MzM5WjAjBgkqhkiG9w0BCQQx # FgQU2luimdNA+66F/z6ooEia0K5OZC8wDQYJKoZIhvcNAQEFBQAEggEAPUTPALhi # x8qJIn6WmeZTiazQRH4/TVQHCJPDxhlaMgDUDsPwwmjrAfL/UnMz+TVi5ltSM0Hb # jGLfhTbaw/YcLUqztgxNq/vm0cFqU3n+rIGUBXFUwDoS6Ol6UTSoXkJVHyiOxHuU # Fdh33QDv9EVBbr1CQJLTs02d31Uwjg8vUt9+LDSYQWFlZH0+xsy1wStReGX4DSRz # QneatHmqk+Vej4/3iFKBlCJO1SPlXQLaFAUFsZr6yl6oTrpfatG6sA16/e8jjW4u # Kz0GzJYJ4DMVdSVGpsvVWMADsbEsjlr6yesOrN4ZDEBdv7Y3P518wK/iJ1/WdgRc # SA474q5bExc5pA== # SIG # End signature block ================================================ FILE: packages/EntityFramework.5.0.0/tools/Redirect.VS11.config ================================================ ================================================ FILE: packages/EntityFramework.5.0.0/tools/Redirect.config ================================================ ================================================ FILE: packages/EntityFramework.5.0.0/tools/about_EntityFramework.help.txt ================================================ TOPIC about_EntityFramework SHORT DESCRIPTION Provides information about Entity Framework commands. LONG DESCRIPTION This topic describes the Entity Framework commands. Entity Framework is Microsoft's recommended data access technology for new applications. The following Entity Framework cmdlets are included. Cmdlet Description ----------------- --------------------------------------------------- Enable-Migrations Enables Code First Migrations in a project. Add-Migration Scaffolds a migration script for any pending model changes. Update-Database Applies any pending migrations to the database. Get-Migrations Displays the migrations that have been applied to the target database. SEE ALSO Enable-Migrations Add-Migration Update-Database Get-Migrations ================================================ FILE: packages/EntityFramework.5.0.0/tools/init.ps1 ================================================ param($installPath, $toolsPath, $package, $project) $importedModule = Get-Module | ?{ $_.Name -eq 'EntityFramework' } if ($PSVersionTable.PSVersion -ge (New-Object Version @( 3, 0 ))) { $thisModuleManifest = 'EntityFramework.PS3.psd1' } else { $thisModuleManifest = 'EntityFramework.psd1' } $thisModule = Test-ModuleManifest (Join-Path $toolsPath $thisModuleManifest) $shouldImport = $true if ($importedModule) { if ($importedModule.Version -le $thisModule.Version) { Remove-Module EntityFramework } else { $shouldImport = $false } } if ($shouldImport) { Import-Module $thisModule } # SIG # Begin signature block # MIIaSAYJKoZIhvcNAQcCoIIaOTCCGjUCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQU4JbMotbKQrAO4s/cceCMbJQG # 482gghUtMIIEoDCCA4igAwIBAgIKYRnMkwABAAAAZjANBgkqhkiG9w0BAQUFADB5 # MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk # bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN # aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTEwMTAyMDMyMjVaFw0xMzAx # MTAyMDMyMjVaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ # MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u # MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w # ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDuW759ESTjhgbgZv9ItRe9 # AuS0DDLwcj59LofXTqGxp0Mv92WeMeEyMUWu18EkhCHXLrWEfvo101Mc17ZRHk/O # ZrnrtwwC/SlcraiH9soitNW/CHX1inCPY9fvih7pj0MkZFrTh32QbTusds1XNn3o # vBBWrJjwiV0uZMavJgleHmMV8T2/Fo+ZiALDMLfBC2AfD3LM1reoNRKGm6ELCuaT # W476VJzB8xlfQo0Snx0/kLcnE4MZMoId89mH1CGyPKK2B0/XJKrujfWz2fr5OU+n # 6fKvWVL03EGbLxFwY93q3qrxbSEEEFMzu7JPxeFTskFlR2439rzpmxZBkWsuWzDD # AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUG1IO # 8xEqt8CJwxGBPdSWWLmjU24wDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFMsR # 6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu # bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z # MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93 # d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw # MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQClWzZsrU6baRLjb4oCm2l3w2xkciiI # 2T1FbSwYe9QoLxPiWWobwgs0t4r96rmU7Acx5mr0dQTTp9peOgaeEP2pDb2cUUNv # /2eUnOHPfPAksDXMg13u2sBvNknAWgpX9nPhnvPjCEw7Pi/M0s3uTyJw9wQfAqZL # m7iPXIgONpRsMwe4qa1RoNDC3I4iEr3D34LXVqH33fClIFcQEJ3urIZ0bHGbwfDy # wnBep9ttTTdYmU15QNA0XVolrmfrG05GBrCMKR+jEI+lM58j1fi1Rn3g7mOYkEs+ # BagvsBizWaSvQVOOCAUQLSrJOgZMHC6pMVFWZKyazKyXmCmKl5CH6p22MIIEujCC # A6KgAwIBAgIKYQKSSgAAAAAAIDANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV # UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE # ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt # ZS1TdGFtcCBQQ0EwHhcNMTIwMTA5MjIyNTU5WhcNMTMwNDA5MjIyNTU5WjCBszEL # MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v # bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q # UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOkI4RUMtMzBBNC03MTQ0MSUwIwYD # VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B # AQEFAAOCAQ8AMIIBCgKCAQEAzWPD96K1R9n5OZRTrGuPpnk4IfTRbj0VOBbBcyyZ # j/vgPFvhokyLsquLtPJKx7mTUNEm9YdTsHp180cPFytnLGTrYOdKjOCLXsRWaTc6 # KgRdFwHIv6m308mro5GogeM/LbfY5MR4AHk5z/3HZOIjEnieDHYnSY+arA504wZV # VUnI7aF8cEVhfrJxFh7hwUG50tIy6VIk8zZQBNfdbzxJ1QvUdkD8ZWUTfpVROtX/ # uJqnV2tLFeU3WB/cAA3FrurfgUf58FKu5s9arOAUSqZxlID6/bAjMGDpg2CsDiQe # /xHy56VVYpXun3+eKdbNSwp2g/BDBN8GSSDyU1pEsFF6OQIDAQABo4IBCTCCAQUw # HQYDVR0OBBYEFM0ZrGFNlGcr9q+UdVnb8FgAg6E6MB8GA1UdIwQYMBaAFCM0+NlS # RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj # cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD # QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p # Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw # EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAFEc1t82HdyA # vAKnxpnfFsiQBmkVmjK582QQ0orzYikbeY/KYKmzXcTkFi01jESb8fRcYaRBrpqL # ulDRanlqs2KMnU1RUAupjtS/ohDAR9VOdVKJHj+Wao8uQBQGcu4/cFmSXYXtg5n6 # goSe5AMBIROrJ9bMcUnl2h3/bzwJTtWNZugMyX/uMRQCN197aeyJPkV/JUTnHxrW # xRrDSuTh8YSY50/5qZinGEbshGzsqQMK/Xx6Uh2ca6SoD5iSpJJ4XCt4432yx9m2 # cH3fW3NTv6rUZlBL8Mk7lYXlwUplnSVYULsgVJF5OhsHXGpXKK8xx5/nwx3uR/0n # 13/PdNxlxT8wggW8MIIDpKADAgECAgphMyYaAAAAAAAxMA0GCSqGSIb3DQEBBQUA # MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv # ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 # eTAeFw0xMDA4MzEyMjE5MzJaFw0yMDA4MzEyMjI5MzJaMHkxCzAJBgNVBAYTAlVT # MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK # ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2Rl # IFNpZ25pbmcgUENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsnJZ # XBkwZL8dmmAgIEKZdlNsPhvWb8zL8epr/pcWEODfOnSDGrcvoDLs/97CQk4j1XIA # 2zVXConKriBJ9PBorE1LjaW9eUtxm0cH2v0l3511iM+qc0R/14Hb873yNqTJXEXc # r6094CholxqnpXJzVvEXlOT9NZRyoNZ2Xx53RYOFOBbQc1sFumdSjaWyaS/aGQv+ # knQp4nYvVN0UMFn40o1i/cvJX0YxULknE+RAMM9yKRAoIsc3Tj2gMj2QzaE4BoVc # TlaCKCoFMrdL109j59ItYvFFPeesCAD2RqGe0VuMJlPoeqpK8kbPNzw4nrR3XKUX # no3LEY9WPMGsCV8D0wIDAQABo4IBXjCCAVowDwYDVR0TAQH/BAUwAwEB/zAdBgNV # HQ4EFgQUyxHoytK0FlgByTcuMxYWuUyaCh8wCwYDVR0PBAQDAgGGMBIGCSsGAQQB # gjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFP3RMU7TJoqV4ZhgO6gxb6Y8vNgt # MBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMB8GA1UdIwQYMBaAFA6sgmBAVieX # 5SUT/CrhClOVWeSkMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9z # b2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBU # BggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0 # LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MA0GCSqGSIb3DQEB # BQUAA4ICAQBZOT5/Jkav629AsTK1ausOL26oSffrX3XtTDst10OtC/7L6S0xoyPM # fFCYgCFdrD0vTLqiqFac43C7uLT4ebVJcvc+6kF/yuEMF2nLpZwgLfoLUMRWzS3j # StK8cOeoDaIDpVbguIpLV/KVQpzx8+/u44YfNDy4VprwUyOFKqSCHJPilAcd8uJO # +IyhyugTpZFOyBvSj3KVKnFtmxr4HPBT1mfMIv9cHc2ijL0nsnljVkSiUc356aNY # Vt2bAkVEL1/02q7UgjJu/KSVE+Traeepoiy+yCsQDmWOmdv1ovoSJgllOJTxeh9K # u9HhVujQeJYYXMk1Fl/dkx1Jji2+rTREHO4QFRoAXd01WyHOmMcJ7oUOjE9tDhNO # PXwpSJxy0fNsysHscKNXkld9lI2gG0gDWvfPo2cKdKU27S0vF8jmcjcS9G+xPGeC # +VKyjTMWZR4Oit0Q3mT0b85G1NMX6XnEBLTT+yzfH4qerAr7EydAreT54al/RrsH # YEdlYEBOsELsTu2zdnnYCjQJbRyAMR/iDlTd5aH75UcQrWSY/1AWLny/BSF64pVB # J2nDk4+VyY3YmyGuDVyc8KKuhmiDDGotu3ZrAB2WrfIWe/YWgyS5iM9qqEcxL5rc # 43E91wB+YkfRzojJuBj6DnKNwaM9rwJAav9pm5biEKgQtDdQCNbDPTCCBgcwggPv # oAMCAQICCmEWaDQAAAAAABwwDQYJKoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixk # ARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWlj # cm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTA3MDQwMzEyNTMw # OVoXDTIxMDQwMzEzMDMwOVowdzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp # bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw # b3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBMIIBIjAN # BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn6Fssd/bSJIqfGsuGeG94uPFmVEj # UK3O3RhOJA/u0afRTK10MCAR6wfVVJUVSZQbQpKumFwwJtoAa+h7veyJBw/3DgSY # 8InMH8szJIed8vRnHCz8e+eIHernTqOhwSNTyo36Rc8J0F6v0LBCBKL5pmyTZ9co # 3EZTsIbQ5ShGLieshk9VUgzkAyz7apCQMG6H81kwnfp+1pez6CGXfvjSE/MIt1Nt # UrRFkJ9IAEpHZhEnKWaol+TTBoFKovmEpxFHFAmCn4TtVXj+AZodUAiFABAwRu23 # 3iNGu8QtVJ+vHnhBMXfMm987g5OhYQK1HQ2x/PebsgHOIktU//kFw8IgCwIDAQAB # o4IBqzCCAacwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUIzT42VJGcArtQPt2 # +7MrsMM1sw8wCwYDVR0PBAQDAgGGMBAGCSsGAQQBgjcVAQQDAgEAMIGYBgNVHSME # gZAwgY2AFA6sgmBAVieX5SUT/CrhClOVWeSkoWOkYTBfMRMwEQYKCZImiZPyLGQB # GRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNy # b3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCEHmtFqFKoKWtTHNY9AcT # LmUwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3Br # aS9jcmwvcHJvZHVjdHMvbWljcm9zb2Z0cm9vdGNlcnQuY3JsMFQGCCsGAQUFBwEB # BEgwRjBEBggrBgEFBQcwAoY4aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9j # ZXJ0cy9NaWNyb3NvZnRSb290Q2VydC5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgw # DQYJKoZIhvcNAQEFBQADggIBABCXisNcA0Q23em0rXfbznlRTQGxLnRxW20ME6vO # vnuPuC7UEqKMbWK4VwLLTiATUJndekDiV7uvWJoc4R0Bhqy7ePKL0Ow7Ae7ivo8K # BciNSOLwUxXdT6uS5OeNatWAweaU8gYvhQPpkSokInD79vzkeJkuDfcH4nC8GE6d # jmsKcpW4oTmcZy3FUQ7qYlw/FpiLID/iBxoy+cwxSnYxPStyC8jqcD3/hQoT38IK # YY7w17gX606Lf8U1K16jv+u8fQtCe9RTciHuMMq7eGVcWwEXChQO0toUmPU8uWZY # sy0v5/mFhsxRVuidcJRsrDlM1PZ5v6oYemIp76KbKTQGdxpiyT0ebR+C8AvHLLvP # Q7Pl+ex9teOkqHQ1uE7FcSMSJnYLPFKMcVpGQxS8s7OwTWfIn0L/gHkhgJ4VMGbo # QhJeGsieIiHQQ+kr6bv0SMws1NgygEwmKkgkX1rqVu+m3pmdyjpvvYEndAYR7nYh # v5uCwSdUtrFqPYmhdmG0bqETpr+qR/ASb/2KMmyy/t9RyIwjyWa9nR2HEmQCPS2v # WY+45CHltbDKY7R4VAXUQS5QrJSwpXirs6CWdRrZkocTdSIvMqgIbqBbjCW/oO+E # yiHW6x5PyZruSeD3AWVviQt9yGnI5m7qp5fOMSn/DsVbXNhNG6HY+i+ePy5VFmvJ # E6P9MYIEhTCCBIECAQEwgYcweTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp # bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw # b3JhdGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0ECCmEZ # zJMAAQAAAGYwCQYFKw4DAhoFAKCBsDAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIB # BDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQU # WQ2AdtM5zwQcEcFbsSevYrmN6UQwUAYKKwYBBAGCNwIBDDFCMECgIoAgAEUAbgB0 # AGkAdAB5ACAARgByAGEAbQBlAHcAbwByAGuhGoAYaHR0cDovL21zZG4uY29tL2Rh # dGEvZWYgMA0GCSqGSIb3DQEBAQUABIIBAAp6IKF/Uj/9lpK3SAcA7JJxjVoqi+yI # n0i9qNP5b4+zTSrtpnPDibOaQvhdUlEsAlEjnJTRCwYR9zobPyxJfGoh9j/qkgcU # wWBIdmNhzMEzVDJwlE9puRipHQNP6ftcbaz9SOD40aOQ8skR9ecYuHW9SGG0levm # m2Q/UWxmxVvtv6HnYzWUn6vHrJmiRk+t1ckG9Dxq2GPnBA+hGrRdYaijPBSwSWcg # FnBsl4s88UVL7N8hpKYOQGnqGda6V1LJIgNPKoGNoPllFeJWXKgClvJ6majpd6dz # o8S6A9a19D2Dh1l0cbwpI2ZFZjfY9UOVSH33i6fk7CM0aCVe9z3dcB+hggIfMIIC # GwYJKoZIhvcNAQkGMYICDDCCAggCAQEwgYUwdzELMAkGA1UEBhMCVVMxEzARBgNV # BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv # c29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAg # UENBAgphApJKAAAAAAAgMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZI # hvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xMjA2MjgyMDQzMzlaMCMGCSqGSIb3DQEJ # BDEWBBTcH0Qic4YQ6MzFbjR1RWKCxjK8pzANBgkqhkiG9w0BAQUFAASCAQAdMhoS # z2zXLJyB1RIjdnGlDxLKzXF+rxImjMI7VfId2vIg4FaGIPqnN0BBTp8o+HZCv3cM # ZV/okS8w9k/82jWjJ183l9fn3moQe4qbVlV6yUJvPFpW47LFrEAXgdmL8bgA/VOW # HtJRP52lPDsb7J1WjqNOh7KkyD5x0Y8Pwrb+Xc63ibtTjOeAttPxKk+1gZh95wUA # ykjw7RKZLHfyJ9Ph5lCkzDQrXXwGGPuzaZVO+pkowgy2yCPRecShGBCKbCyOZlhT # BS1WVJDHS95N732o0lPzWE5rTQe/awv8xkgCe9e8ci4S7/lSnj3aVOLbM3S8jG4x # Oi4rxrjYTjts1n2P # SIG # End signature block ================================================ FILE: packages/EntityFramework.5.0.0/tools/install.ps1 ================================================ param($installPath, $toolsPath, $package, $project) function Invoke-ConnectionFactoryConfigurator($assemblyPath, $project) { $appDomain = [AppDomain]::CreateDomain( 'EntityFramework.PowerShell', $null, (New-Object System.AppDomainSetup -Property @{ ShadowCopyFiles = 'true' })) $appDomain.CreateInstanceFrom( $assemblyPath, 'System.Data.Entity.ConnectionFactoryConfig.ConnectionFactoryConfigurator', $false, 0, $null, $project, $null, $null) | Out-Null [AppDomain]::Unload($appDomain) } Invoke-ConnectionFactoryConfigurator (Join-Path $toolsPath EntityFramework.PowerShell.dll) $project Write-Host Write-Host "Type 'get-help EntityFramework' to see all available Entity Framework commands." # SIG # Begin signature block # MIIaRgYJKoZIhvcNAQcCoIIaNzCCGjMCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQU4nG54zEClXzFX9aYwYpo8BH3 # YWygghUtMIIEoDCCA4igAwIBAgIKYRnMkwABAAAAZjANBgkqhkiG9w0BAQUFADB5 # MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk # bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN # aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTEwMTAyMDMyMjVaFw0xMzAx # MTAyMDMyMjVaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ # MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u # MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w # ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDuW759ESTjhgbgZv9ItRe9 # AuS0DDLwcj59LofXTqGxp0Mv92WeMeEyMUWu18EkhCHXLrWEfvo101Mc17ZRHk/O # ZrnrtwwC/SlcraiH9soitNW/CHX1inCPY9fvih7pj0MkZFrTh32QbTusds1XNn3o # vBBWrJjwiV0uZMavJgleHmMV8T2/Fo+ZiALDMLfBC2AfD3LM1reoNRKGm6ELCuaT # W476VJzB8xlfQo0Snx0/kLcnE4MZMoId89mH1CGyPKK2B0/XJKrujfWz2fr5OU+n # 6fKvWVL03EGbLxFwY93q3qrxbSEEEFMzu7JPxeFTskFlR2439rzpmxZBkWsuWzDD # AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUG1IO # 8xEqt8CJwxGBPdSWWLmjU24wDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFMsR # 6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu # bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z # MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93 # d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw # MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQClWzZsrU6baRLjb4oCm2l3w2xkciiI # 2T1FbSwYe9QoLxPiWWobwgs0t4r96rmU7Acx5mr0dQTTp9peOgaeEP2pDb2cUUNv # /2eUnOHPfPAksDXMg13u2sBvNknAWgpX9nPhnvPjCEw7Pi/M0s3uTyJw9wQfAqZL # m7iPXIgONpRsMwe4qa1RoNDC3I4iEr3D34LXVqH33fClIFcQEJ3urIZ0bHGbwfDy # wnBep9ttTTdYmU15QNA0XVolrmfrG05GBrCMKR+jEI+lM58j1fi1Rn3g7mOYkEs+ # BagvsBizWaSvQVOOCAUQLSrJOgZMHC6pMVFWZKyazKyXmCmKl5CH6p22MIIEujCC # A6KgAwIBAgIKYQUZlgAAAAAAGzANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV # UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE # ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt # ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE5WhcNMTIxMDI1MjA0MjE5WjCBszEL # MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v # bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q # UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjlFNzgtODY0Qi0wMzlEMSUwIwYD # VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B # AQEFAAOCAQ8AMIIBCgKCAQEA08s7U6KfRKN6q01WcVOKd6o3k34BPv2rAqNTqf/R # sSLFAJDndW7uGOiBDhPF2GEAvh+gdjsEDQTFBKCo/ENTBqEEBLkLkpgCYjjv1DMS # 9ys9e++tRVeFlSCf12M0nGJGjr6u4NmeOfapVf3P53fmNRPvXOi/SJNPGkMHWDiK # f4UUbOrJ0Et6gm7L0xVgCBSJlKhbPzrJPyB9bS9YGn3Kiji8w8I5aNgtWBoj7SoQ # CFogjIKl7dGXRZKFzMM3g98NmHzF07bgmVPYeAj15SMhB2KGWmppGf1w+VM0gfcl # MRmGh4vAVZr9qkw1Ff1b6ZXJq1OYKV8speElD2TF8rAndQIDAQABo4IBCTCCAQUw # HQYDVR0OBBYEFHkj56ENvlUsaBgpYoJn1vPhNjhaMB8GA1UdIwQYMBaAFCM0+NlS # RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj # cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD # QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p # Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw # EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAEfCdoFbMd1v # 0zyZ8npsfpcTUCwFFxsQuEShtYz0Vs+9sCG0ZG1hHNju6Ov1ku5DohhEw/r67622 # XH+XbUu1Q/snYXgIVHyx+a+YCrR0xKroLVDEff59TqGZ1icot67Y37GPgyKOzvN5 # /GEUbb/rzISw36O7WwW36lT1Yh1sJ6ZjS/rjofq734WWZWlTsLZxmGQmZr3F8Vxi # vJH0PZxLQgANzzgFFCZa3CoFS39qmTjY3XOZos6MUCSepOv1P4p4zFSZXSVmpEEG # KK9JxLRSlOzeAoNk/k3U/0ui/CmA2+4/qzztM4jKvyJg0Fw7BLAKtJhtPKc6T5rR # ARYRYopBdqAwggW8MIIDpKADAgECAgphMyYaAAAAAAAxMA0GCSqGSIb3DQEBBQUA # MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv # ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 # eTAeFw0xMDA4MzEyMjE5MzJaFw0yMDA4MzEyMjI5MzJaMHkxCzAJBgNVBAYTAlVT # MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK # ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2Rl # IFNpZ25pbmcgUENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsnJZ # XBkwZL8dmmAgIEKZdlNsPhvWb8zL8epr/pcWEODfOnSDGrcvoDLs/97CQk4j1XIA # 2zVXConKriBJ9PBorE1LjaW9eUtxm0cH2v0l3511iM+qc0R/14Hb873yNqTJXEXc # r6094CholxqnpXJzVvEXlOT9NZRyoNZ2Xx53RYOFOBbQc1sFumdSjaWyaS/aGQv+ # knQp4nYvVN0UMFn40o1i/cvJX0YxULknE+RAMM9yKRAoIsc3Tj2gMj2QzaE4BoVc # TlaCKCoFMrdL109j59ItYvFFPeesCAD2RqGe0VuMJlPoeqpK8kbPNzw4nrR3XKUX # no3LEY9WPMGsCV8D0wIDAQABo4IBXjCCAVowDwYDVR0TAQH/BAUwAwEB/zAdBgNV # HQ4EFgQUyxHoytK0FlgByTcuMxYWuUyaCh8wCwYDVR0PBAQDAgGGMBIGCSsGAQQB # gjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFP3RMU7TJoqV4ZhgO6gxb6Y8vNgt # MBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMB8GA1UdIwQYMBaAFA6sgmBAVieX # 5SUT/CrhClOVWeSkMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9z # b2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBU # BggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0 # LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MA0GCSqGSIb3DQEB # BQUAA4ICAQBZOT5/Jkav629AsTK1ausOL26oSffrX3XtTDst10OtC/7L6S0xoyPM # fFCYgCFdrD0vTLqiqFac43C7uLT4ebVJcvc+6kF/yuEMF2nLpZwgLfoLUMRWzS3j # StK8cOeoDaIDpVbguIpLV/KVQpzx8+/u44YfNDy4VprwUyOFKqSCHJPilAcd8uJO # +IyhyugTpZFOyBvSj3KVKnFtmxr4HPBT1mfMIv9cHc2ijL0nsnljVkSiUc356aNY # Vt2bAkVEL1/02q7UgjJu/KSVE+Traeepoiy+yCsQDmWOmdv1ovoSJgllOJTxeh9K # u9HhVujQeJYYXMk1Fl/dkx1Jji2+rTREHO4QFRoAXd01WyHOmMcJ7oUOjE9tDhNO # PXwpSJxy0fNsysHscKNXkld9lI2gG0gDWvfPo2cKdKU27S0vF8jmcjcS9G+xPGeC # +VKyjTMWZR4Oit0Q3mT0b85G1NMX6XnEBLTT+yzfH4qerAr7EydAreT54al/RrsH # YEdlYEBOsELsTu2zdnnYCjQJbRyAMR/iDlTd5aH75UcQrWSY/1AWLny/BSF64pVB # J2nDk4+VyY3YmyGuDVyc8KKuhmiDDGotu3ZrAB2WrfIWe/YWgyS5iM9qqEcxL5rc # 43E91wB+YkfRzojJuBj6DnKNwaM9rwJAav9pm5biEKgQtDdQCNbDPTCCBgcwggPv # oAMCAQICCmEWaDQAAAAAABwwDQYJKoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixk # ARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWlj # cm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTA3MDQwMzEyNTMw # OVoXDTIxMDQwMzEzMDMwOVowdzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp # bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw # b3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBMIIBIjAN # BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn6Fssd/bSJIqfGsuGeG94uPFmVEj # UK3O3RhOJA/u0afRTK10MCAR6wfVVJUVSZQbQpKumFwwJtoAa+h7veyJBw/3DgSY # 8InMH8szJIed8vRnHCz8e+eIHernTqOhwSNTyo36Rc8J0F6v0LBCBKL5pmyTZ9co # 3EZTsIbQ5ShGLieshk9VUgzkAyz7apCQMG6H81kwnfp+1pez6CGXfvjSE/MIt1Nt # UrRFkJ9IAEpHZhEnKWaol+TTBoFKovmEpxFHFAmCn4TtVXj+AZodUAiFABAwRu23 # 3iNGu8QtVJ+vHnhBMXfMm987g5OhYQK1HQ2x/PebsgHOIktU//kFw8IgCwIDAQAB # o4IBqzCCAacwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUIzT42VJGcArtQPt2 # +7MrsMM1sw8wCwYDVR0PBAQDAgGGMBAGCSsGAQQBgjcVAQQDAgEAMIGYBgNVHSME # gZAwgY2AFA6sgmBAVieX5SUT/CrhClOVWeSkoWOkYTBfMRMwEQYKCZImiZPyLGQB # GRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNy # b3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCEHmtFqFKoKWtTHNY9AcT # LmUwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3Br # aS9jcmwvcHJvZHVjdHMvbWljcm9zb2Z0cm9vdGNlcnQuY3JsMFQGCCsGAQUFBwEB # BEgwRjBEBggrBgEFBQcwAoY4aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9j # ZXJ0cy9NaWNyb3NvZnRSb290Q2VydC5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgw # DQYJKoZIhvcNAQEFBQADggIBABCXisNcA0Q23em0rXfbznlRTQGxLnRxW20ME6vO # vnuPuC7UEqKMbWK4VwLLTiATUJndekDiV7uvWJoc4R0Bhqy7ePKL0Ow7Ae7ivo8K # BciNSOLwUxXdT6uS5OeNatWAweaU8gYvhQPpkSokInD79vzkeJkuDfcH4nC8GE6d # jmsKcpW4oTmcZy3FUQ7qYlw/FpiLID/iBxoy+cwxSnYxPStyC8jqcD3/hQoT38IK # YY7w17gX606Lf8U1K16jv+u8fQtCe9RTciHuMMq7eGVcWwEXChQO0toUmPU8uWZY # sy0v5/mFhsxRVuidcJRsrDlM1PZ5v6oYemIp76KbKTQGdxpiyT0ebR+C8AvHLLvP # Q7Pl+ex9teOkqHQ1uE7FcSMSJnYLPFKMcVpGQxS8s7OwTWfIn0L/gHkhgJ4VMGbo # QhJeGsieIiHQQ+kr6bv0SMws1NgygEwmKkgkX1rqVu+m3pmdyjpvvYEndAYR7nYh # v5uCwSdUtrFqPYmhdmG0bqETpr+qR/ASb/2KMmyy/t9RyIwjyWa9nR2HEmQCPS2v # WY+45CHltbDKY7R4VAXUQS5QrJSwpXirs6CWdRrZkocTdSIvMqgIbqBbjCW/oO+E # yiHW6x5PyZruSeD3AWVviQt9yGnI5m7qp5fOMSn/DsVbXNhNG6HY+i+ePy5VFmvJ # E6P9MYIEgzCCBH8CAQEwgYcweTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp # bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw # b3JhdGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0ECCmEZ # zJMAAQAAAGYwCQYFKw4DAhoFAKCBsDAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIB # BDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQU # aRQ2a/UgAzqOb3Wvyd0Y2tRWtIEwUAYKKwYBBAGCNwIBDDFCMECgIoAgAEUAbgB0 # AGkAdAB5ACAARgByAGEAbQBlAHcAbwByAGuhGoAYaHR0cDovL21zZG4uY29tL2Rh # dGEvZWYgMA0GCSqGSIb3DQEBAQUABIIBAMQdz1xbjYGj57Z6LNm3laDw2S6QJFye # QUSbvlY7kcxqlHQrERkp3wwR34emJSnTayLTcTPaCCvzUaGsZi86i+IW6HdA/3A/ # IwEZgAkai/qXZCYEEBvV9ja+iMRowFPAySU+ROh4LFbCTLzm4vez6qaLyui/JQNr # 46DZptV5XM0idAbgOfmtCMMipqRkrNqt7Zj8cuxu3cJBKOvhUOdLfEIxq1UW9pNy # 8c/aOStE0kLFInw3G1GL9IJnS43eTcgeIDMkrwX70o+rLS7lN1U3txL25IrBTUcY # Q6dxj4zSDxIjn3Tq2jqa8B6lR1OMEahj4INmR6vC+mFNspHODHWgt7GhggIdMIIC # GQYJKoZIhvcNAQkGMYICCjCCAgYCAQEwgYUwdzELMAkGA1UEBhMCVVMxEzARBgNV # BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv # c29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAg # UENBAgphBRmWAAAAAAAbMAcGBSsOAwIaoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3 # DQEHATAcBgkqhkiG9w0BCQUxDxcNMTIwNjI4MjA0MzU0WjAjBgkqhkiG9w0BCQQx # FgQUlE+8FmmwI9Hd6gz+luAdOPsKxHgwDQYJKoZIhvcNAQEFBQAEggEAiJCupwRm # YW3NHK2EdgaQ+VCIjXwVrEj6ElX4c30nAYXxnCOIesErL/N/jMYnM3Fo+GNsOikL # x9Mzo4sZv/c6bchLtnagS6MzQyDFiBPF+pngSMg2PpIDHsIBg2vPzClWx6+hCDxE # Yf9f7/s/vQEpEbHLjzQZJqoji2LV5HRxnHbT3J13atUF2yqgzyTRlOF2MPp3vLX1 # 7q5KnOBrWsfyxoYskJEddsbH7zilomWyVZ2zcpG8Ui/h2xoN50AXtMQntx9VYxwT # D5U5ECSdKzXeUIwktYBPtxor5yGBda63PNxjUHYXSRvFrdnLtXTiMiIQzEzJUdk9 # 6p75IHbjyjvZfg== # SIG # End signature block ================================================ FILE: packages/EntityFramework.6.1.3/content/App.config.transform ================================================  ================================================ FILE: packages/EntityFramework.6.1.3/content/Web.config.transform ================================================  ================================================ FILE: packages/EntityFramework.6.1.3/lib/net40/EntityFramework.SqlServer.xml ================================================ EntityFramework.SqlServer An that retries actions that throw exceptions caused by SQL Azure transient failures. This execution strategy will retry the operation on and if the contains any of the following error numbers: 40613, 40501, 40197, 10929, 10928, 10060, 10054, 10053, 233, 64 and 20 Creates a new instance of . The default retry limit is 5, which means that the total amount of time spent between retries is 26 seconds plus the random factor. Creates a new instance of with the specified limits for number of retries and the delay between retries. The maximum number of retry attempts. The maximum delay in milliseconds between retries. Contains function stubs that expose SqlServer methods in Linq to Entities. Returns the checksum of the values in a collection. Null values are ignored. The checksum computed from the input collection. The collection of values over which the checksum is computed. Returns the checksum of the values in a collection. Null values are ignored. The checksum computed from the input collection. The collection of values over which the checksum is computed. Returns the ASCII code value of the left-most character of a character expression. The ASCII code of the first character in the input string. A valid string. Returns the character that corresponds to the specified integer ASCII value. The character that corresponds to the specified ASCII value. An ASCII code. Returns the starting position of one expression found within another expression. The starting position of target if it is found in toSearch . The string expression to be searched. The string expression to be found. Returns the starting position of one expression found within another expression. The starting position of target if it is found in toSearch . The string expression to be searched. The string expression to be found. Returns the starting position of one expression found within another expression. The starting position of target if it is found in toSearch . The string expression to be searched. The string expression to be found. The character position in toSearch where searching begins. Returns the starting position of one expression found within another expression. The starting position of target if it is found in toSearch . The string expression to be searched. The string expression to be found. The character position in toSearch where searching begins. Returns the starting position of one expression found within another expression. A of value that is the starting position of target if it is found in toSearch . The string expression to be searched. The string expression to be found. The character position in toSearch where searching begins. Returns the starting position of one expression found within another expression. The starting position of target if it is found in toSearch . The string expression to be searched. The string expression to be found. The character position in toSearch at which searching begins. Returns an integer value that indicates the difference between the SOUNDEX values of two character expressions. The SOUNDEX difference between the two strings. The first string. The second string. Returns the Unicode character with the specified integer code, as defined by the Unicode standard. The character that corresponds to the input character code. A character code. Returns the starting position of the first occurrence of a pattern in a specified expression, or zeros if the pattern is not found, on all valid text and character data types. The starting character position where the string pattern was found. A string pattern to search for. The string to search. Returns a Unicode string with the delimiters added to make the input string a valid Microsoft SQL Server delimited identifier. The original string with brackets added. The expression that quote characters will be added to. Returns a Unicode string with the delimiters added to make the input string a valid Microsoft SQL Server delimited identifier. The original string with the specified quote characters added. The expression that quote characters will be added to. The one-character string to use as the delimiter. It can be a single quotation mark ( ' ), a left or right bracket ( [ ] ), or a double quotation mark ( " ). If quote_character is not specified, brackets are used. Repeats a string value a specified number of times. The target string, repeated the number of times specified by count . A valid string. The value that specifies how many time to repeat target . Converts an alphanumeric string to a four-character (SOUNDEX) code to find similar-sounding words or names. The SOUNDEX code of the input string. A valid string. Returns a string of repeated spaces. A string that consists of the specified number of spaces. The number of spaces. If negative, a null string is returned. Returns character data converted from numeric data. The numeric input expression converted to a string. A numeric expression. Returns character data converted from numeric data. The input expression converted to a string. A numeric expression. Returns character data converted from numeric data. The numeric input expression converted to a string. A numeric expression. The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. Returns character data converted from numeric data. The input expression converted to a string. A numeric expression. The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. Returns character data converted from numeric data. The numeric input expression converted to a string. A numeric expression. The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. The number of places to the right of the decimal point. decimal must be less than or equal to 16. If decimal is more than 16 then the result is truncated to sixteen places to the right of the decimal point. Returns character data converted from numeric data. The input expression converted to a string. A numeric expression. The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. The number of places to the right of the decimal point. decimal must be less than or equal to 16. If decimal is more than 16 then the result is truncated to sixteen places to the right of the decimal point. Inserts a string into another string. It deletes a specified length of characters in the target string at the start position and then inserts the second string into the target string at the start position. A string consisting of the two strings. The target string. The character position in stringinput where the replacement string is to be inserted. The number of characters to delete from stringInput . If length is longer than stringInput , deletion occurs up to the last character in stringReplacement . The substring to be inserted into stringInput . Returns the integer value, as defined by the Unicode standard, for the first character of the input expression. The character code for the first character in the input string. A valid string. A mathematical function that returns the angle, in radians, whose cosine is the specified numerical value. This angle is called the arccosine. The angle, in radians, defined by the input cosine value. The cosine of an angle. A mathematical function that returns the angle, in radians, whose cosine is the specified numerical value. This angle is called the arccosine. An angle, measured in radians. The cosine of an angle. A mathematical function that returns the angle, in radians, whose sine is the specified numerical value. This angle is called the arcsine. An angle, measured in radians. The sine of an angle. A mathematical function that returns the angle, in radians, whose sine is the specified numerical value. This angle is called the arcsine. An angle, measured in radians. The sine of an angle. A mathematical function that returns the angle, in radians, whose tangent is the specified numerical value. This angle is called the arctangent. An angle, measured in radians. The tangent of an angle. A mathematical function that returns the angle, in radians, whose tangent is the specified numerical value. This angle is called the arctangent. An angle, measured in radians. The tangent of an angle. Returns the positive angle, in radians, between the positive x-axis and the ray from the origin through the point (x, y), where x and y are the two specified numerical values. The first parameter passed to the function is the y-value and the second parameter is the x-value. An angle, measured in radians. The y-coordinate of a point. The x-coordinate of a point. Returns the positive angle, in radians, between the positive x-axis and the ray from the origin through the point (x, y), where x and y are the two specified numerical values. The first parameter passed to the function is the y-value and the second parameter is the x-value. An angle, measured in radians. The y-coordinate of a point. The x-coordinate of a point. Returns the trigonometric cosine of the specified angle, in radians, in the specified expression. The trigonometric cosine of the specified angle. An angle, measured in radians. Returns the trigonometric cosine of the specified angle, in radians, in the specified expression. The trigonometric cosine of the specified angle. An angle, measured in radians. A mathematical function that returns the trigonometric cotangent of the specified angle, in radians. The trigonometric cotangent of the specified angle. An angle, measured in radians. A mathematical function that returns the trigonometric cotangent of the specified angle, in radians. The trigonometric cotangent of the specified angle. An angle, measured in radians. Returns the corresponding angle in degrees for an angle specified in radians. The specified angle converted to degrees. An angle, measured in radians. Returns the corresponding angle in degrees for an angle specified in radians. The specified angle converted to degrees. An angle, measured in radians. Returns the corresponding angle in degrees for an angle specified in radians. The specified angle converted to degrees. An angle, measured in radians. Returns the corresponding angle in degrees for an angle specified in radians. The specified angle converted to degrees. An angle, measured in radians. Returns the exponential value of the specified float expression. The constant e raised to the power of the input value. The input value. Returns the exponential value of the specified float expression. The constant e raised to the power of the input value. The input value. Returns the natural logarithm of the specified input value. The natural logarithm of the input value. A numeric expression. Returns the natural logarithm of the specified input value. The natural logarithm of the input value. A numeric expression. Returns the base-10 logarithm of the specified input value. The base-10 logarithm of the input value. A numeric expression. Returns the base-10 logarithm of the specified input value. The base-10 logarithm of the input value. A numeric expression. Returns the constant value of pi. The numeric value of pi. Returns the radian measure corresponding to the specified angle in degrees. The radian measure of the specified angle. The angle, measured in degrees Returns the radian measure corresponding to the specified angle in degrees. The radian measure of the specified angle. The angle, measured in degrees Returns the radian measure corresponding to the specified angle in degrees. The radian measure of the specified angle. The angle, measured in degrees. Returns the radian measure corresponding to the specified angle in degrees. The radian measure of the specified angle. The angle, measured in degrees. Returns a pseudo-random float value from 0 through 1, exclusive. The pseudo-random value. Returns a pseudo-random float value from 0 through 1, exclusive. The pseudo-random value. The seed value. If seed is not specified, the SQL Server Database Engine assigns a seed value at random. For a specified seed value, the result returned is always the same. Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. The sign of the input expression. A numeric expression. Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. The sign of the input expression. A numeric expression. Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. The sign of the input expression. A numeric expression. Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. The sign of the input expression. A numeric expression. Returns the trigonometric sine of the specified angle. The trigonometric sine of the input expression. An angle, measured in radians. Returns the trigonometric sine of the specified angle. The trigonometric sine of the input expression. An angle, measured in radians. Returns the square root of the specified number. The square root of the input value. A numeric expression. Returns the square root of the specified number. The square root of the input value. A numeric expression. Returns the square of the specified number. The square of the input value. A numeric expression. Returns the square of the specified number. The square of the input value. A numeric expression. Returns the trigonometric tangent of the input expression. The tangent of the input angle. An angle, measured in radians. Returns the trigonometric tangent of the input expression. The tangent of the input angle. An angle, measured in radians. Returns a new datetime value based on adding an interval to the specified date. The new date. The part of the date to increment. The value used to increment a date by a specified amount. The date to increment. Returns a new time span value based on adding an interval to the specified time span. The new time span. The part of the date to increment. The value used to increment a date by a specified amount. The time span to increment. Returns a new date value based on adding an interval to the specified date. The new point in time, expressed as a date and time of day, relative to Coordinated Universal Time (UTC). The part of the date to increment. The value used to increment a date by a specified amount. The date to increment. Returns a new datetime value based on adding an interval to the specified date. A of value that is the new date. The part of the date to increment. The value used to increment a date by a specified amount. The date to increment. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The value specifying the number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two Dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns a character string that represents the specified datepart of the specified date. The specified part of the specified date. The part of the date to calculate the differing number of time intervals. The date. Returns a character string that represents the specified datepart of the specified date. The specified part of the specified date. The part of the date to calculate the differing number of time intervals. The date. Returns a character string that represents the specified datepart of the specified date. The specified part of the specified date. The part of the date to calculate the differing number of time intervals. The date. Returns a character string that represents the specified datepart of the specified date. The specified part of the specified date. The part of the date to calculate the differing number of time intervals. The date. Returns an integer that represents the specified datepart of the specified date. The the specified datepart of the specified date. The part of the date to return the value. The date. Returns an integer that represents the specified datepart of the specified date. The specified datepart of the specified date. The part of the date to return the value. The date. Returns an integer that represents the specified datepart of the specified date. The specified datepart of the specified date. The part of the date to return the value. The date. Returns an integer that represents the specified datepart of the specified date. The specified datepart of the specified date. The part of the date to return the value. The date. Returns the current database system timestamp as a datetime value without the database time zone offset. This value is derived from the operating system of the computer on which the instance of SQL Server is running. The current database timestamp. Returns the current database system timestamp as a datetime value. The database time zone offset is not included. This value represents the current UTC time (Coordinated Universal Time). This value is derived from the operating system of the computer on which the instance of SQL Server is running. The current database UTC timestamp. Returns the number of bytes used to represent any expression. The number of bytes in the input value. The value to be examined for data length. Returns the number of bytes used to represent any expression. The number of bytes in the input value. The value to be examined for data length. Returns the number of bytes used to represent any expression. The number of bytes in the input value. The value to be examined for data length. Returns the number of bytes used to represent any expression. The number of bytes in the input value. The value to be examined for data length. Returns the number of bytes used to represent any expression. The number of bytes in the input value. The value to be examined for data length. Returns the number of bytes used to represent any expression. The number of bytes in the input value. The value to be examined for data length. Returns the number of bytes used to represent any expression. The number of bytes in the input value. The value to be examined for data length. Returns the number of bytes used to represent any expression. The number of bytes in the input value. The value to be examined for length. Returns the number of bytes used to represent any expression. The number of bytes in the input value. The value to be examined for data length. Returns the checksum value computed over the input argument. The checksum computed over the input value. The value for which the checksum is calculated. Returns the checksum value computed over the input argument. The checksum computed over the input value. The value for which the checksum is calculated. Returns the checksum value computed over the input argument. The checksum computed over the input value. The value for which the checksum is calculated. Returns the checksum value computed over the input argument. The checksum computed over the input value. The value for which the checksum is calculated. Returns the checksum value computed over the input argument. The checksum computed over the input values. The value for which the checksum is calculated. Returns the checksum value computed over the input argument. The checksum computed over the input value. The value for which the checksum is calculated. Returns the checksum value computed over the input argument. The checksum computed over the input value. The value for which the checksum is calculated. Returns the checksum value computed over the input argument. The checksum computed over the input value. The character array for which the checksum is calculated. Returns the checksum value computed over the input argument. The checksum computed over the input value. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The character array for which the checksum is calculated. The character array for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The character array for which the checksum is calculated. The character array for which the checksum is calculated. The character array for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the current date and time. The current date and time. Returns the name of the current user. The name of the current user. Returns the workstation name. The name of the workstation. Returns a database user name corresponding to a specified identification number. The user name. A user ID. Returns a database user name corresponding to a specified identification number. The user name. Indicates whether the input value is a valid numeric type. 1 if the input expression is a valid numeric data type; otherwise, 0. A string expression. Indicates whether the input value is a valid date or time. 1 if the input expression is a valid date or time value of datetime or smalldatetime data types; otherwise, 0. The tested value. Provider to convert provider agnostic migration operations into SQL commands that can be run against a Microsoft SQL Server database. Converts a set of migration operations into Microsoft SQL Server specific SQL. The operations to be converted. Token representing the version of SQL Server being targeted (i.e. "2005", "2008"). A list of SQL statements to be executed to perform the migration operations. Generates the SQL body for a stored procedure. The command trees representing the commands for an insert, update or delete operation. The rows affected parameter name. The provider manifest token. The SQL body for the stored procedure. Generates the specified update database operation which represents applying a series of migrations. The generated script is idempotent, meaning it contains conditional logic to check if individual migrations have already been applied and only apply the pending ones. The update database operation. Generates SQL for a . Allows derived providers to handle additional operation types. Generated SQL should be added using the Statement method. The operation to produce SQL for. Creates an empty connection for the current provider. Allows derived providers to use connection other than . An empty connection for the current provider. Generates the specified create procedure operation. The create procedure operation. Generates the specified alter procedure operation. The alter procedure operation. Generates the specified drop procedure operation. The drop procedure operation. Generates SQL for a . This method differs from in that it will create the target database schema if it does not already exist. Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Writes CREATE TABLE SQL to the target writer. The operation to produce SQL for. The target writer. Override this method to generate SQL when the definition of a table or its attributes are changed. The default implementation of this method does nothing. The operation describing changes to the table. Generates SQL to mark a table as a system table. Generated SQL should be added using the Statement method. The table to mark as a system table. The to write the generated SQL to. Generates SQL to create a database schema. Generated SQL should be added using the Statement method. The name of the schema to create. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Call this method to generate SQL that will attempt to drop the default constraint created when a column is created. This method is usually called by code that overrides the creation or altering of columns. The table to which the constraint applies. The column to which the constraint applies. The writer to which generated SQL should be written. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement or StatementBatch methods. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates the specified rename procedure operation. The rename procedure operation. Generates the specified move procedure operation. The move procedure operation. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for the given column model. This method is called by other methods that process columns and can be overridden to change the SQL generated. The column for which SQL is being generated. The writer to which generated SQL should be written. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL to specify a constant byte[] default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant bool default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant DateTime default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant DateTimeOffset default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant Guid default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant string default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant TimeSpan default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant geogrpahy default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant geometry default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify the data type of a column. This method just generates the actual type, not the SQL to create the column. The definition of the column. SQL representing the data type. Generates a quoted name. The supplied name may or may not contain the schema. The name to be quoted. The quoted name. Quotes an identifier for SQL Server. The identifier to be quoted. The quoted identifier. Adds a new Statement to be executed against the database. The statement to be executed. Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails. The batch terminator for the database provider. Gets a new that can be used to build SQL. This is just a helper method to create a writer. Writing to the writer will not cause SQL to be registered for execution. You must pass the generated SQL to the Statement method. An empty text writer to use for SQL generation. Adds a new Statement to be executed against the database. The writer containing the SQL to be executed. The batch terminator for the database provider. Breaks sql string into one or more statements, handling T-SQL utility statements as necessary. The SQL to split into one ore more statements to be executed. Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails. Returns the column default value to use for store-generated GUID columns when no default value is explicitly specified in the migration. Returns newsequentialid() for on-premises SQL Server 2005 and later. Returns newid() for SQL Azure. Either newsequentialid() or newid() as described above. Contains function stubs that expose SqlServer methods in Linq to Entities. Constructs a geography instance representing a Point instance from its x and y values and a spatial reference ID (SRID). The constructed geography instance. The x-coordinate of the Point being generated. The y-coordinate of the Point being generated The SRID of the geography instance. Returns the Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geography instance augmented with any Z (elevation) and M (measure) values carried by the instance. The Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geography instance. The geography value. Returns a geometric object representing the union of all point values whose distance from a geography instance is less than or equal to a specified value, allowing for a specified tolerance. The union of all point values whose distance from a geography instance is less than or equal to a specified value The geography value. The distance. The specified tolerance. Specifying whether the tolerance value is relative or absolute. Returns the maximum angle between the point returned by EnvelopeCenter() and a point in the geography instance in degrees. the maximum angle between the point returned by EnvelopeCenter(). The geography value. Returns a point that can be used as the center of a bounding circle for the geography instance. A SqlGeography value that specifies the location of the center of a bounding circle. The geography value. Offers a fast, index-only intersection method to determine if a geography instance intersects another SqlGeography instance, assuming an index is available. True if a geography instance potentially intersects another SqlGeography instance; otherwise, false. The geography value. Another geography instance to compare against the instance on which Filter is invoked. Tests if the SqlGeography instance is the same as the specified type. A string that specifies one of the 12 types exposed in the geography type hierarchy. The geography value. A string that specifies one of the 12 types exposed in the geography type hierarchy. Returns the total number of rings in a Polygon instance. The total number of rings. The geography value. Returns an approximation of the given geography instance produced by running the Douglas-Peucker algorithm on the instance with the given tolerance. Returns . The geography value. The tolerance to input to the Douglas-Peucker algorithm. tolerance must be a positive number. Returns the specified ring of the SqlGeography instance: 1 ≤ n ≤ NumRings(). A SqlGeography object that represents the ring specified by n. The geography value. An int expression between 1 and the number of rings in a polygon instance. Constructs a geometry instance representing a Point instance from its x and y values and a spatial reference ID (SRID). The constructed geometry instance. The x-coordinate of the Point being generated. The y-coordinate of the Point being generated The SRID of the geography instance. Returns the Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geography instance augmented with any Z (elevation) and M (measure) values carried by the instance. The Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geometry instance. The geometry value. Returns a geometric object representing the union of all point values whose distance from a geometry instance is less than or equal to a specified value, allowing for a specified tolerance. The union of all point values whose distance from a geometry instance is less than or equal to a specified value The geometry value. The distance. The specified tolerance. Specifying whether the tolerance value is relative or absolute. Tests if the SqlGeometry instance is the same as the specified type. A string that specifies one of the 12 types exposed in the geography type hierarchy. The geometry value. A string that specifies one of the 12 types exposed in the geography type hierarchy. Offers a fast, index-only intersection method to determine if a geography instance intersects another SqlGeometry instance, assuming an index is available. True if a geography instance potentially intersects another SqlGeography instance; otherwise, false. The geometry value. Another geography instance to compare against the instance on which Filter is invoked. Converts an invalid geometry instance into a geometry instance with a valid Open Geospatial Consortium (OGC) type. The converted geometry instance. The geometry value. Returns an approximation of the given geography instance produced by running the Douglas-Peucker algorithm on the instance with the given tolerance. Returns . The geometry value. The tolerance to input to the Douglas-Peucker algorithm. tolerance must be a positive number. The DbProviderServices implementation for the SqlClient provider for SQL Server. Note that instance of this type also resolve additional provider services for Microsoft SQL Server when this type is registered as an EF provider either using an entry in the application's config file or through code-based registration in . The services resolved are: Requests for are resolved to a Singleton instance of to create connections to SQL Express by default. Requests for for the invariant name "System.Data.SqlClient" for any server name are resolved to a delegate that returns a to provide a non-retrying policy for SQL Server. Requests for for the invariant name "System.Data.SqlClient" are resolved to instances to provide default Migrations SQL generation for SQL Server. Requests for for the invariant name "System.Data.SqlClient" are resolved to a Singleton instance of to provide default spatial services for SQL Server. This is the well-known string using in configuration files and code-based configuration as the "provider invariant name" used to specify Microsoft SQL Server for ADO.NET and Entity Framework provider services. Registers a handler to process non-error messages coming from the database provider. The connection to receive information for. The handler to process messages. Create a Command Definition object, given the connection and command tree provider manifest that was determined from metadata command tree for the statement an executable command definition object See issue 2390 - cloning the DesignTimeVisible property on the can cause deadlocks. So here overriding to provide a method that does not clone DesignTimeVisible. the object to clone a clone of the Sets the parameter value and appropriate facets for the given . The parameter. The type of the parameter. The value of the parameter. Returns provider manifest token for a given connection. Connection to find manifest token from. The provider manifest token for the specified connection. Returns the provider manifest by using the specified version information. The token information associated with the provider manifest. The provider manifest by using the specified version information. Gets a spatial data reader for SQL Server. The reader where the spatial data came from. The manifest token associated with the provider manifest. The spatial data reader. Gets a spatial data reader for SQL Server. The manifest token associated with the provider manifest. The spatial data reader. Generates a data definition language (DDL) script that creates schema objects (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token. The provider manifest token identifying the target version. The structure of the database. A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token. Create the database and the database objects. If initial catalog is not specified, but AttachDBFilename is specified, we generate a random database name based on the AttachDBFilename. Note: this causes pollution of the db, as when the connection string is later used, the mdf will get attached under a different name. However if we try to replicate the name under which it would be attached, the following scenario would fail: The file does not exist, but registered with database. The user calls: If (DatabaseExists) DeleteDatabase CreateDatabase For further details on the behavior when AttachDBFilename is specified see Dev10# 188936 Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter. Execution timeout for any commands needed to create the database. The collection of all store items based on which the script should be created. Determines whether the database for the given connection exists. There are three cases: 1. Initial Catalog = X, AttachDBFilename = null: (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 2. Initial Catalog = X, AttachDBFilename = F: if (SELECT Count(*) FROM sys.databases WHERE [name]= X) > true, if not, try to open the connection and then return (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 3. Initial Catalog = null, AttachDBFilename = F: Try to open the connection. If that succeeds the result is true, otherwise if the there are no databases corresponding to the given file return false, otherwise throw. Note: We open the connection to cover the scenario when the mdf exists, but is not attached. Given that opening the connection would auto-attach it, it would not be appropriate to return false in this case. Also note that checking for the existence of the file does not work for a remote server. (Dev11 #290487) For further details on the behavior when AttachDBFilename is specified see Dev10# 188936 Connection to a database whose existence is checked by this method. Execution timeout for any commands needed to determine the existence of the database. The collection of all store items from the model. This parameter is no longer used for determining database existence. True if the provider can deduce the database only based on the connection. Determines whether the database for the given connection exists. There are three cases: 1. Initial Catalog = X, AttachDBFilename = null: (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 2. Initial Catalog = X, AttachDBFilename = F: if (SELECT Count(*) FROM sys.databases WHERE [name]= X) > true, if not, try to open the connection and then return (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 3. Initial Catalog = null, AttachDBFilename = F: Try to open the connection. If that succeeds the result is true, otherwise if the there are no databases corresponding to the given file return false, otherwise throw. Note: We open the connection to cover the scenario when the mdf exists, but is not attached. Given that opening the connection would auto-attach it, it would not be appropriate to return false in this case. Also note that checking for the existence of the file does not work for a remote server. (Dev11 #290487) For further details on the behavior when AttachDBFilename is specified see Dev10# 188936 Connection to a database whose existence is checked by this method. Execution timeout for any commands needed to determine the existence of the database. The collection of all store items from the model. This parameter is no longer used for determining database existence. True if the provider can deduce the database only based on the connection. Delete the database for the given connection. There are three cases: 1. If Initial Catalog is specified (X) drop database X 2. Else if AttachDBFilename is specified (F) drop all the databases corresponding to F if none throw 3. If niether the catalog not the file name is specified - throw Note that directly deleting the files does not work for a remote server. However, even for not attached databases the current logic would work assuming the user does: if (DatabaseExists) DeleteDatabase Connection Timeout for internal commands. Item Collection. The Singleton instance of the SqlProviderServices type. Set to the full name of the Microsoft.SqlServer.Types assembly to override the default selection Set this flag to false to prevent values from being truncated to the scale (number of decimal places) defined for the column. The default value is true, indicating that decimal values will be truncated, in order to prevent breaking existing applications that depend on this behavior. With this flag set to true objects are created with their Scale properties set. When this flag is set to false then the Scale properties are not set, meaning that the truncation behavior of SqlParameter is avoided. An implementation of to provide support for geospatial types when using Entity Framework with Microsoft SQL Server. ================================================ FILE: packages/EntityFramework.6.1.3/lib/net40/EntityFramework.xml ================================================ EntityFramework Represents a result mapping for a function import. Base class for items in the mapping space (DataSpace.CSSpace) Adds a type mapping. The type mapping to add. Removes a type mapping. The type mapping to remove. Gets the type mappings. Specifies a mapping condition evaluated by checking whether the value of the a property/column is null or not null. Mapping metadata for Conditional property mapping on a type. Condition Property Mapping specifies a Condition either on the C side property or S side property. For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ConditionProperyMap ( constant value-->SMemberMetadata ) --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ComplexPropertyMap --ComplexTypeMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --ConditionProperyMap ( constant value-->SMemberMetadata ) --AssociationSetMapping --AssociationTypeMapping --MappingFragment --EndPropertyMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --EndPropertyMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) This class represents the metadata for all the condition property map elements in the above example. Mapping metadata for all types of property mappings. For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap --ScalarPropertyMap --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap --ComplexPropertyMap --ScalarPropertyMap --ScalarProperyMap --ScalarPropertyMap --AssociationSetMapping --AssociationTypeMapping --MappingFragment --EndPropertyMap --ScalarPropertyMap --ScalarProperyMap --EndPropertyMap --ScalarPropertyMap This class represents the metadata for all property map elements in the above example. This includes the scalar property maps, complex property maps and end property maps. Gets an EdmProperty that specifies the mapped property. Gets an EdmProperty that specifies the mapped property. Gets an EdmProperty that specifies the mapped column. Creates an IsNullConditionMapping instance. An EdmProperty that specifies a property or column. A boolean that indicates whether to perform a null or a not-null check. Gets a bool that specifies whether the condition is evaluated by performing a null check or a not-null check. Specifies a mapping condition evaluated by comparing the value of a property or column with a given value. Creates a ValueConditionMapping instance. An EdmProperty that specifies a property or column. An object that specifies the value to compare with. Gets an object that specifies the value to check against. Serializes an that conforms to the restrictions of a single CSDL schema file to an XML writer. The model to be serialized must contain a single . Serialize the to the XmlWriter. The EdmModel to serialize. The XmlWriter to serialize to. The serialized model's namespace. true if the model is valid; otherwise, false. Occurs when an error is encountered serializing the model. Information about an error that occurred processing an Entity Framework model. Gets an optional value indicating which property of the source item caused the event to be raised. Gets an optional descriptive message the describes the error that is being raised. Gets a value indicating the that caused the event to be raised. Contains additional attributes and properties of the Note that objects are short lived and exist only to make initialization easier. Instance of this type are not compared to each other and arrays returned by array properties are copied to internal collections in the ctor. Therefore it is fine to suppress the Code Analysis messages. Gets or sets the function schema. The function schema. Gets or sets the store function name. The store function name. Gets or sets the command text associated with the function. The command text associated with the function. Gets or sets the entity sets for the function. The entity sets for the function. Gets a value that indicates whether this is an aggregate function. true if this is an aggregate function; otherwise, false. Gets or sets whether this function is a built-in function. true if this function is a built-in function; otherwise, false. Gets or sets whether the function contains no arguments. true if the function contains no arguments; otherwise, false. Gets or sets whether this function can be composed. true if this function can be composed; otherwise, false. Gets or sets whether this function is from a provider manifest. true if this function is from a provider manifest; otherwise, false. Gets or sets whether this function is a cached store function. true if this function is a cached store function; otherwise, false. Gets or sets whether this function is a function import. true if this function is a function import; otherwise, false. Gets or sets the return parameters. The return parameters. Gets or sets the parameter type semantics. The parameter type semantics. Gets or sets the function parameters. The function parameters. Serializes the storage (database) section of an to XML. Serialize the to the The EdmModel to serialize Provider information on the Schema element ProviderManifestToken information on the Schema element The XmlWriter to serialize to A value indicating whether to serialize Nullable attributes when they are set to the default value. true if model can be serialized, otherwise false Serialize the to the The EdmModel to serialize Namespace name on the Schema element Provider information on the Schema element ProviderManifestToken information on the Schema element The XmlWriter to serialize to A value indicating whether to serialize Nullable attributes when they are set to the default value. true if model can be serialized, otherwise false Occurs when an error is encountered serializing the model. Visits each element of an expression tree from a given root expression. If any element changes, the tree is rebuilt back to the root and the new root expression is returned; otherwise the original root expression is returned. Defines the basic functionality that should be implemented by visitors that return a result value of a specific type. The type of the result produced by the visitor. When overridden in a derived class, handles any expression of an unrecognized type. A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern method for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. Typed visitor pattern method for DbInExpression. The DbInExpression that is being visited. An instance of TResultType. Initializes a new instance of the class. Replaces an old expression with a new one for the expression visitor. The old expression. The new expression. Represents an event when the variable is rebound for the expression visitor. The location of the variable. The reference of the variable where it is rebounded. Represents an event when entering the scope for the expression visitor with specified scope variables. The collection of scope variables. Exits the scope for the expression visitor. Implements the visitor pattern for the expression. The implemented visitor pattern. The expression. Implements the visitor pattern for the expression list. The implemented visitor pattern. The expression list. Implements the visitor pattern for expression binding. The implemented visitor pattern. The expression binding. Implements the visitor pattern for the expression binding list. The implemented visitor pattern. The expression binding list. Implements the visitor pattern for the group expression binding. The implemented visitor pattern. The binding. Implements the visitor pattern for the sort clause. The implemented visitor pattern. The sort clause. Implements the visitor pattern for the sort order. The implemented visitor pattern. The sort order. Implements the visitor pattern for the aggregate. The implemented visitor pattern. The aggregate. Implements the visitor pattern for the function aggregate. The implemented visitor pattern. The aggregate. Implements the visitor pattern for the group aggregate. The implemented visitor pattern. The aggregate. Implements the visitor pattern for the Lambda function. The implemented visitor pattern. The lambda function. Implements the visitor pattern for the type. The implemented visitor pattern. The type. Implements the visitor pattern for the type usage. The implemented visitor pattern. The type. Implements the visitor pattern for the entity set. The implemented visitor pattern. The entity set. Implements the visitor pattern for the function. The implemented visitor pattern. The function metadata. Implements the visitor pattern for the basic functionality required by expression types. The implemented visitor. The expression. Implements the visitor pattern for the different kinds of constants. The implemented visitor. The constant expression. Implements the visitor pattern for a reference to a typed null literal. The implemented visitor. The expression. Implements the visitor pattern for a reference to a variable that is currently in scope. The implemented visitor. The expression. Implements the visitor pattern for a reference to a parameter declared on the command tree that contains this expression. The implemented visitor. The expression. Implements the visitor pattern for an invocation of a function. The implemented visitor. The function expression. Implements the visitor pattern for the application of a lambda function to arguments represented by DbExpression objects. The implemented visitor. The expression. Implements the visitor pattern for retrieving an instance property. The implemented visitor. The expression. Implements the visitor pattern for the comparison operation applied to two arguments. The implemented visitor. The cast expression. Implements the visitor pattern for a string comparison against the specified pattern with an optional escape string. The implemented visitor. The expression. Implements the visitor pattern for the restriction of the number of elements in the argument collection to the specified limit value. The implemented visitor. The expression. Implements the visitor pattern for the null determination applied to a single argument. The implemented visitor. The expression. Implements the visitor pattern for the arithmetic operation applied to numeric arguments. The implemented visitor. The arithmetic expression. Implements the visitor pattern for the logical AND expression. The implemented visitor. The logical AND expression. Implements the visitor pattern for the logical OR of two Boolean arguments. The implemented visitor. The expression. Implements the visitor pattern for the DbInExpression. The implemented visitor. The DbInExpression that is being visited. Implements the visitor pattern for the logical NOT of a single Boolean argument. The implemented visitor. The expression. Implements the visitor pattern for the removed duplicate elements from the specified set argument. The implemented visitor. The distinct expression. Implements the visitor pattern for the conversion of the specified set argument to a singleton the conversion of the specified set argument to a singleton. The implemented visitor. The element expression. Implements the visitor pattern for an empty set determination applied to a single set argument. The implemented visitor. The expression. Implements the visitor pattern for the set union operation between the left and right operands. The implemented visitor. The expression. Implements the visitor pattern for the set intersection operation between the left and right operands. The implemented visitor. The expression. Implements the visitor pattern for the set subtraction operation between the left and right operands. The implemented visitor. The expression. Implements the visitor pattern for a type conversion operation applied to a polymorphic argument. The implemented visitor. The expression. Implements the visitor pattern for the type comparison of a single argument against the specified type. The implemented visitor. The expression. Implements the visitor pattern for the type conversion of a single argument to the specified type. The implemented visitor. The cast expression. Implements the visitor pattern for the When, Then, and Else clauses. The implemented visitor. The case expression. Implements the visitor pattern for the retrieval of elements of the specified type from the given set argument. The implemented visitor. The expression. Implements the visitor pattern for the construction of a new instance of a given type, including set and record types. The implemented visitor. The expression. Implements the visitor pattern for a strongly typed reference to a specific instance within an entity set. The implemented visitor. The expression. Implements the visitor pattern for the navigation of a relationship. The implemented visitor. The expression. Implements the visitor pattern for the expression that retrieves an entity based on the specified reference. The implemented visitor. The DEREF expression. Implements the visitor pattern for the retrieval of the key value from the underlying reference value. The implemented visitor. The expression. Implements the visitor pattern for the expression that extracts a reference from the underlying entity instance. The implemented visitor. The entity reference expression. Implements the visitor pattern for a scan over an entity set or relationship set, as indicated by the Target property. The implemented visitor. The expression. Implements the visitor pattern for a predicate applied to filter an input set. The implemented visitor. The filter expression. Implements the visitor pattern for the projection of a given input set over the specified expression. The implemented visitor. The expression. Implements the visitor pattern for the unconditional join operation between the given collection arguments. The implemented visitor. The join expression. Implements the visitor pattern for an inner, left outer, or full outer join operation between the given collection arguments on the specified join condition. The implemented visitor. The expression. Implements the visitor pattern for the invocation of the specified function for each element in the specified input set. The implemented visitor. The APPLY expression. Implements the visitor pattern for a group by operation. The implemented visitor. The expression. Implements the visitor pattern for the skip expression. The implemented visitor. The expression. Implements the visitor pattern for a sort key that can be used as part of the sort order. The implemented visitor. The expression. Implements the visitor pattern for a quantifier operation of the specified kind over the elements of the specified input set. The implemented visitor. The expression. When this attribute is placed on a property it indicates that the database column to which the property is mapped has an index. This attribute is used by Entity Framework Migrations to create indexes on mapped database columns. Multi-column indexes are created by using the same index name in multiple attributes. The information in these attributes is then merged together to specify the actual database index. Creates a instance for an index that will be named by convention and has no column order, clustering, or uniqueness specified. Creates a instance for an index with the given name and has no column order, clustering, or uniqueness specified. The index name. Creates a instance for an index with the given name and column order, but with no clustering or uniqueness specified. Multi-column indexes are created by using the same index name in multiple attributes. The information in these attributes is then merged together to specify the actual database index. The index name. A number which will be used to determine column ordering for multi-column indexes. Returns true if this attribute specifies the same name and configuration as the given attribute. The attribute to compare. True if the other object is equal to this object; otherwise false. Returns true if this attribute specifies the same name and configuration as the given attribute. The attribute to compare. True if the other object is equal to this object; otherwise false. The index name. Multi-column indexes are created by using the same index name in multiple attributes. The information in these attributes is then merged together to specify the actual database index. A number which will be used to determine column ordering for multi-column indexes. This will be -1 if no column order has been specified. Multi-column indexes are created by using the same index name in multiple attributes. The information in these attributes is then merged together to specify the actual database index. Set this property to true to define a clustered index. Set this property to false to define a non-clustered index. The value of this property is only relevant if returns true. If returns false, then the value of this property is meaningless. Returns true if has been set to a value. Set this property to true to define a unique index. Set this property to false to define a non-unique index. The value of this property is only relevant if returns true. If returns false, then the value of this property is meaningless. Returns true if has been set to a value. Returns a different ID for each object instance such that type descriptors won't attempt to combine all IndexAttribute instances into a single instance. A class derived from this class can be placed in the same assembly as a class derived from to define Entity Framework configuration for an application. Configuration is set by calling protected methods and setting protected properties of this class in the constructor of your derived type. The type to use can also be registered in the config file of the application. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. Any class derived from must have a public parameterless constructor and that constructor should call this constructor. The Singleton instance of for this app domain. This can be set at application start before any Entity Framework features have been used and afterwards should be treated as read-only. The instance of . Attempts to discover and load the associated with the given type. This method is intended to be used by tooling to ensure that the correct configuration is loaded into the app domain. Tooling should use this method before accessing the property. A type to use for configuration discovery. Attempts to discover and load the from the given assembly. This method is intended to be used by tooling to ensure that the correct configuration is loaded into the app domain. Tooling should use this method before accessing the property. If the tooling knows the type being used, then the method should be used since it gives a greater chance that the correct configuration will be found. An to use for configuration discovery. Call this method from the constructor of a class derived from to add a instance to the Chain of Responsibility of resolvers that are used to resolve dependencies needed by the Entity Framework. Resolvers are asked to resolve dependencies in reverse order from which they are added. This means that a resolver can be added to override resolution of a dependency that would already have been resolved in a different way. The exceptions to this is that any dependency registered in the application's config file will always be used in preference to using a dependency resolver added here. The resolver to add. Call this method from the constructor of a class derived from to add a instance to the Chain of Responsibility of resolvers that are used to resolve dependencies needed by the Entity Framework. Unlike the AddDependencyResolver method, this method puts the resolver at the bottom of the Chain of Responsibility such that it will only be used to resolve a dependency that could not be resolved by any of the other resolvers. A implementation is automatically registered as a default resolver when it is added with a call to . This allows EF providers to act as resolvers for other services that may need to be overridden by the provider. The resolver to add. Call this method from the constructor of a class derived from to register an Entity Framework provider. Note that the provider is both registered as a service itself and also registered as a default resolver with a call to AddDefaultResolver. This allows EF providers to act as resolvers for other services that may need to be overridden by the provider. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for and also using AddDefaultResolver to add the provider as a default resolver. This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used. The provider instance. Call this method from the constructor of a class derived from to register an ADO.NET provider. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolvers for and . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used. The provider instance. Call this method from the constructor of a class derived from to register an for use with the provider represented by the given invariant name. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. A function that returns a new instance of an execution strategy. Call this method from the constructor of a class derived from to register an for use with the provider represented by the given invariant name and for a given server name. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. A function that returns a new instance of an execution strategy. A string that will be matched against the server name in the connection string. Call this method from the constructor of a class derived from to register a . This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. A function that returns a new instance of a transaction handler. Call this method from the constructor of a class derived from to register a for use with the provider represented by the given invariant name. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this transaction handler will be used. A function that returns a new instance of a transaction handler. Call this method from the constructor of a class derived from to register a for use with the provider represented by the given invariant name and for a given server name. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this transaction handler will be used. A function that returns a new instance of a transaction handler. A string that will be matched against the server name in the connection string. Sets the that is used to create connections by convention if no other connection string or connection is given to or can be discovered by . Note that a default connection factory is set in the app.config or web.config file whenever the EntityFramework NuGet package is installed. As for all config file settings, the default connection factory set in the config file will take precedence over any setting made with this method. Therefore the setting must be removed from the config file before calling this method will have any effect. Call this method from the constructor of a class derived from to change the default connection factory being used. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The connection factory. Call this method from the constructor of a class derived from to set the pluralization service. The pluralization service to use. Call this method from the constructor of a class derived from to set the database initializer to use for the given context type. The database initializer is called when a the given type is used to access a database for the first time. The default strategy for Code First contexts is an instance of . Calling this method is equivalent to calling . This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The type of the context. The initializer to use, or null to disable initialization for the given context type. Call this method from the constructor of a class derived from to register a for use with the provider represented by the given invariant name. This method is typically used by providers to register an associated SQL generator for Code First Migrations. It is different from setting the generator in the because it allows EF to use the Migrations pipeline to create a database even when there is no Migrations configuration in the project and/or Migrations are not being explicitly used. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The invariant name of the ADO.NET provider for which this generator should be used. A delegate that returns a new instance of the SQL generator each time it is called. Call this method from the constructor of a class derived from to set an implementation of which allows provider manifest tokens to be obtained from connections without necessarily opening the connection. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The manifest token resolver. Call this method from the constructor of a class derived from to set a factory for implementations of which allows custom annotations represented by instances to be serialized to and from the EDMX XML. Note that an is not needed if the annotation uses a simple string value. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The name of custom annotation that will be handled by this serializer. A delegate that will be used to create serializer instances. Call this method from the constructor of a class derived from to set an implementation of which allows a to be obtained from a in cases where the default implementation is not sufficient. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The provider factory service. Call this method from the constructor of a class derived from to set a as the model cache key factory which allows the key used to cache the model behind a to be changed. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The key factory. Call this method from the constructor of a class derived from to set a delegate which which be used for creation of the default for a any . This default factory will only be used if no factory is set explicitly in the and if no factory has been registered for the provider in use using the method. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. A factory for creating instances for a given and representing the default schema. Call this method from the constructor of a class derived from to set a delegate which allows for creation of a customized for the given provider for any that does not have an explicit factory set. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The invariant name of the ADO.NET provider for which this generator should be used. A factory for creating instances for a given and representing the default schema. Call this method from the constructor of a class derived from to set the global instance of which will be used whenever a spatial provider is required and a provider-specific spatial provider cannot be found. Normally, a provider-specific spatial provider is obtained from the a implementation which is in turn returned by resolving a service for passing the provider invariant name as a key. However, this cannot work for stand-alone instances of and since it is impossible to know the spatial provider to use. Therefore, when creating stand-alone instances of and the global spatial provider is always used. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The spatial provider. Call this method from the constructor of a class derived from to set an implementation of to use for a specific provider and provider manifest token. Use to register spatial services for use only when a specific manifest token is returned by the provider. Use to register global spatial services to be used when provider information is not available or no provider-specific spatial services are found. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The indicating the type of ADO.NET connection for which this spatial provider will be used. The spatial provider. Call this method from the constructor of a class derived from to set an implementation of to use for a specific provider with any manifest token. Use to register spatial services for use when any manifest token is returned by the provider. Use to register global spatial services to be used when provider information is not available or no provider-specific spatial services are found. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this spatial provider will be used. The spatial provider. Call this method from the constructor of a class derived from to set a factory for the type of to use with . Note that setting the type of formatter to use with this method does change the way command are logged when is used. It is still necessary to set a instance onto before any commands will be logged. For more low-level control over logging/interception see and . This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. A delegate that will create formatter instances. Call this method from the constructor of a class derived from to register an at application startup. Note that interceptors can also be added and removed at any time using . This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The interceptor to register. Call this method from the constructor of a class derived from to set a factory to allow to create instances of a context that does not have a public, parameterless constructor. This is typically needed to allow design-time tools like Migrations or scaffolding code to use contexts that do not have public, parameterless constructors. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for with the context as the key. This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The context type for which the factory should be used. The delegate to use to create context instances. Call this method from the constructor of a class derived from to set a factory to allow to create instances of a context that does not have a public, parameterless constructor. This is typically needed to allow design-time tools like Migrations or scaffolding code to use contexts that do not have public, parameterless constructors. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for with the context as the key. This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The context type for which the factory should be used. The delegate to use to create context instances. Call this method from the constructor of a class derived from to register a database table existence checker for a given provider. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for and also using AddDefaultResolver to add the provider as a default resolver. This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used. The table existence checker to use. Gets the of the current instance. The exact runtime type of the current instance. Creates a shallow copy of the current . A shallow copy of the current . Occurs during EF initialization after the DbConfiguration has been constructed but just before it is locked ready for use. Use this event to inspect and/or override services that have been registered before the configuration is locked. Note that this event should be used carefully since it may prevent tooling from discovering the same configuration that is used at runtime. Handlers can only be added before EF starts to use the configuration and so handlers should generally be added as part of application initialization. Do not access the DbConfiguration static methods inside the handler; instead use the the members of to get current services and/or add overrides. Gets the that is being used to resolve service dependencies in the Entity Framework. This attribute can be placed on a subclass of to indicate that the subclass of representing the code-based configuration for the application is in a different assembly than the context type. Normally a subclass of should be placed in the same assembly as the subclass of used by the application. It will then be discovered automatically. However, if this is not possible or if the application contains multiple context types in different assemblies, then this attribute can be used to direct DbConfiguration discovery to the appropriate type. An alternative to using this attribute is to specify the DbConfiguration type to use in the application's config file. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information. Indicates that the given subclass of should be used for code-based configuration for this application. The type to use. Indicates that the subclass of represented by the given assembly-qualified name should be used for code-based configuration for this application. The type to use. Gets the subclass of that should be used for code-based configuration for this application. Implements the basic functionality required by aggregates in a GroupBy clause. Gets the result type of this . The result type of this . Gets the list of expressions that define the arguments to this . The list of expressions that define the arguments to this . Represents the logical AND of two Boolean arguments. This class cannot be inherited. Implements the basic functionality required by expressions that accept two expression operands. Represents the base type for all expressions. Implements the visitor pattern for expressions that do not produce a result value. An instance of . Implements the visitor pattern for expressions that produce a result value of a specific type. The type of the result produced by . An instance of . The type of the result produced by visitor. Determines whether the specified is equal to the current DbExpression instance. True if the specified is equal to the current DbExpression instance; otherwise, false. The object to compare to the current . Serves as a hash function for the type. A hash code for the current expression. Creates a that represents the specified binary value, which may be null A that represents the specified binary value. The binary value on which the returned expression should be based. Enables implicit casting from a byte array. The value to be converted. The converted value. Creates a that represents the specified (nullable) Boolean value. A that represents the specified Boolean value. The Boolean value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified (nullable) byte value. A that represents the specified byte value. The byte value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified (nullable) value. A that represents the specified DateTime value. The DateTime value on which the returned expression should be based. Enables implicit casting from . The expression to be converted. The converted value. Creates a that represents the specified (nullable) value. A that represents the specified DateTimeOffset value. The DateTimeOffset value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified (nullable) decimal value. A that represents the specified decimal value. The decimal value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified (nullable) double value. A that represents the specified double value. The double value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified value, which may be null. A that represents the specified DbGeography value. The DbGeography value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified value, which may be null. A that represents the specified DbGeometry value. The DbGeometry value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified (nullable) value. A that represents the specified Guid value. The Guid value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified (nullable) Int16 value. A that represents the specified Int16 value. The Int16 value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified (nullable) Int32 value. A that represents the specified Int32 value. The Int32 value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified (nullable) Int64 value. A that represents the specified Int64 value. The Int64 value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified (nullable) Single value. A that represents the specified Single value. The Single value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified string value. A that represents the specified string value. The string value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Gets the type metadata for the result type of the expression. The type metadata for the result type of the expression. Gets the kind of the expression, which indicates the operation of this expression. The kind of the expression, which indicates the operation of this expression. Gets the that defines the left argument. The that defines the left argument. The expression is null. The expression is not associated with the command tree of the ,or its result type is not equal or promotable to the required type for the left argument. Gets the that defines the right argument. The that defines the right argument. The expression is null. The expression is not associated with the command tree of the ,or its result type is not equal or promotable to the required type for the right argument. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by the visitor . visitor is null. Represents an apply operation, which is the invocation of the specified function for each element in the specified input set. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by the visitor . visitor is null. Gets the that specifies the function that is invoked for each element in the input set. The that specifies the function that is invoked for each element in the input set. Gets the that specifies the input set. The that specifies the input set. Represents an arithmetic operation applied to numeric arguments. Addition, subtraction, multiplication, division, modulo, and negation are arithmetic operations. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the list of elements that define the current arguments. A fixed-size list of elements. Represents the When, Then, and Else clauses of the . This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor. visitor is null. Gets the When clauses of this . The When clauses of this . Gets the Then clauses of this . The Then clauses of this . Gets the Else clause of this . The Else clause of this . The expression is null. The expression is not associated with the command tree of the ,or its result type is not equal or promotable to the result type of the . Represents the type conversion of a single argument to the specified type. This class cannot be inherited. Implements the basic functionality required by expressions that accept a single expression argument. Gets the that defines the argument. The that defines the argument. The expression is null. The expression is not associated with the command tree of a , or its result type is not equal or promotable to the required type for the argument. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor. visitor is null. Describes the different "kinds" (classes) of command trees. A query to retrieve data Update existing data Insert new data Deleted existing data Call a function Represents a comparison operation applied to two arguments. Equality, greater than, greater than or equal, less than, less than or equal, and inequality are comparison operations. This class cannot be inherited. DbComparisonExpression requires that its arguments have a common result type that is equality comparable (for .Equals and .NotEquals), order comparable (for .GreaterThan and .LessThan), or both (for .GreaterThanOrEquals and .LessThanOrEquals). Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor. visitor is null. Represents different kinds of constants (literals). This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor. visitor is null. Gets the constant value. The constant value. Represents an unconditional join operation between the given collection arguments. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor. visitor is null. Gets a list that provides the input sets to the join. A list that provides the input sets to the join. Represents the an expression that retrieves an entity based on the specified reference. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor. visitor is null. Removes duplicate elements from the specified set argument. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor. visitor is null. Represents the conversion of the specified set argument to a singleton. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor. visitor is null. Represents an expression that extracts a reference from the underlying entity instance. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor. visitor is null. Represents the set subtraction operation between the left and right operands. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor. visitor is null. Describes a binding for an expression. Conceptually similar to a foreach loop in C#. The DbExpression property defines the collection being iterated over, while the Var property provides a means to reference the current element of the collection during the iteration. DbExpressionBinding is used to describe the set arguments to relational expressions such as , and . Gets the that defines the input set. The that defines the input set. The expression is null. The expression is not associated with the command tree of the binding, or its result type is not equal or promotable to the result type of the current value of the property. Gets the name assigned to the element variable. The name assigned to the element variable. Gets the type metadata of the element variable. The type metadata of the element variable. Gets the that references the element variable. The variable reference. Represents a predicate applied to filter an input set. This produces the set of elements that satisfy the predicate. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the that specifies the input set. The that specifies the input set. Gets the that specifies the predicate used to filter the input set. The that specifies the predicate used to filter the input set. The expression is null. The expression is not associated with the command tree of the , or its result type is not a Boolean type. Represents an invocation of a function. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the metadata for the function to invoke. The metadata for the function to invoke. Gets an list that provides the arguments to the function. An list that provides the arguments to the function. Represents a collection of elements that compose a group. Represents a group by operation. A group by operation is a grouping of the elements in the input set based on the specified key expressions followed by the application of the specified aggregates. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the that specifies the input set and provides access to the set element and group element variables. The that specifies the input set and provides access to the set element and group element variables. Gets a list that provides grouping keys. A list that provides grouping keys. Gets a list that provides the aggregates to apply. A list that provides the aggregates to apply. Represents the set intersection operation between the left and right operands. This class cannot be inherited. DbIntersectExpression requires that its arguments have a common collection result type Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Represents an empty set determination applied to a single set argument. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Represents null determination applied to a single argument. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Represents the type comparison of a single argument against the specified type. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the type metadata that the type metadata of the argument should be compared to. The type metadata that the type metadata of the argument should be compared to. Represents an inner, left outer, or full outer join operation between the given collection arguments on the specified join condition. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the that provides the left input. The that provides the left input. Gets the that provides the right input. The that provides the right input. Gets the join condition to apply. The join condition to apply. The expression is null. The expression is not associated with the command tree of the , or its result type is not a Boolean type. Allows the application of a lambda function to arguments represented by objects. The visitor pattern method for expression visitors that do not produce a result value. An instance of . visitor is null The visitor pattern method for expression visitors that produce a result value of a specific type. The type of the result produced by the expression visitor. An instance of a typed that produces a result value of type TResultType. The type of the result produced by visitor visitor is null Gets the representing the Lambda function applied by this expression. The representing the Lambda function applied by this expression. Gets a list that provides the arguments to which the Lambda function should be applied. The list. Represents a string comparison against the specified pattern with an optional escape string. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets an expression that specifies the string to compare against the given pattern. An expression that specifies the string to compare against the given pattern. The expression is null. The expression is not associated with the command tree of , or its result type is not a string type. Gets an expression that specifies the pattern against which the given string should be compared. An expression that specifies the pattern against which the given string should be compared. The expression is null. The expression is not associated with the command tree of , or its result type is not a string type. Gets an expression that provides an optional escape string to use for the comparison. An expression that provides an optional escape string to use for the comparison. The expression is null. The expression is not associated with the command tree of , or its result type is not a string type. Represents the restriction of the number of elements in the argument collection to the specified limit value. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets an expression that specifies the input collection. An expression that specifies the input collection. The expression is null. The expression is not associated with the command tree of the , or its result type is not a collection type. Gets an expression that specifies the limit on the number of elements returned from the input collection. An expression that specifies the limit on the number of elements returned from the input collection. The expression is null. The expression is not associated with the command tree of the , or is not one of or , or its result type is not equal or promotable to a 64-bit integer type. Gets whether the limit operation will include tied results. Including tied results might produce more results than specified by the value. true if the limit operation will include tied results; otherwise, false. The default is false. Represents the construction of a new instance of a given type, including set and record types. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets an list that provides the property/column values or set elements for the new instance. An list that provides the property/column values or set elements for the new instance. Represents the logical NOT of a single Boolean argument. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Represents a reference to a typed null literal. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Represents the retrieval of elements of the specified type from the given set argument. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the metadata of the type of elements that should be retrieved from the set argument. The metadata of the type of elements that should be retrieved from the set argument. Represents the logical OR of two Boolean arguments. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Represents a reference to a parameter declared on the command tree that contains this expression. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the name of the referenced parameter. The name of the referenced parameter. Represents the projection of a given input set over the specified expression. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the that specifies the input set. The that specifies the input set. Gets the that defines the projection. The that defines the projection. The expression is null. The expression is not associated with the command tree of the , or its result type is not equal or promotable to the reference type of the current projection. Provides methods and properties for retrieving an instance property. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Creates a new key/value pair based on this property expression. A new key/value pair with the key and value derived from the . Enables implicit casting to . The expression to be converted. The converted value. Gets the property metadata for the property to retrieve. The property metadata for the property to retrieve. Gets a that defines the instance from which the property should be retrieved. A that defines the instance from which the property should be retrieved. The expression is null. The expression is not associated with the command tree of the , or its result type is not equal or promotable to the type that defines the property. Represents a quantifier operation of the specified kind over the elements of the specified input set. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the that specifies the input set. The that specifies the input set. Gets the Boolean predicate that should be evaluated for each element in the input set. The Boolean predicate that should be evaluated for each element in the input set. The expression is null. The expression is not associated with the command tree for the ,or its result type is not a Boolean type. Represents a strongly typed reference to a specific instance within an entity set. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the metadata for the entity set that contains the instance. The metadata for the entity set that contains the instance. Represents the navigation of a relationship. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the metadata for the relationship over which navigation occurs. The metadata for the relationship over which navigation occurs. Gets the metadata for the relationship end to navigate from. The metadata for the relationship end to navigate from. Gets the metadata for the relationship end to navigate to. The metadata for the relationship end to navigate to. Gets an that specifies the starting point of the navigation and must be a reference to an entity instance. An that specifies the instance of the source relationship end from which navigation should occur. The expression is null. The expression is not associated with the command tree of the , or its result type is not equal or promotable to the reference type of the property. Skips a specified number of elements in the input set. can only be used after the input collection has been sorted as specified by the sort keys. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the that specifies the input set. The that specifies the input set. Gets a list that defines the sort order. A list that defines the sort order. Gets an expression that specifies the number of elements to skip from the input collection. An expression that specifies the number of elements to skip from the input collection. The expression is null. The expression is not associated with the command tree of the ; the expression is not either a or a ; or the result type of the expression is not equal or promotable to a 64-bit integer type. Specifies a sort key that can be used as part of the sort order in a . This class cannot be inherited. Gets a Boolean value indicating whether or not this sort key uses an ascending sort order. true if this sort key uses an ascending sort order; otherwise, false. Gets a string value that specifies the collation for this sort key. A string value that specifies the collation for this sort key. Gets the that provides the value for this sort key. The that provides the value for this sort key. Represents a sort operation applied to the elements of the specified input set based on the given sort keys. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor visitor is null. Gets the that specifies the input set. The that specifies the input set. Gets a list that defines the sort order. A list that defines the sort order. Represents a type conversion operation applied to a polymorphic argument. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Supports standard aggregate functions, such as MIN, MAX, AVG, SUM, and so on. This class cannot be inherited. Gets a value indicating whether this aggregate is a distinct aggregate. true if the aggregate is a distinct aggregate; otherwise, false. Gets the method metadata that specifies the aggregate function to invoke. The method metadata that specifies the aggregate function to invoke. An abstract base type for types that implement the IExpressionVisitor interface to derive from. An abstract base type for types that implement the IExpressionVisitor interface to derive from. Defines the basic functionality that should be implemented by visitors that do not return a result value. When overridden in a derived class, handles any expression of an unrecognized type. The expression to be handled. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. Visitor pattern method for DbInExpression. The DbInExpression that is being visited. Convenience method to visit the specified . The DbUnaryExpression to visit. is null Convenience method to visit the specified . The DbBinaryExpression to visit. is null Convenience method to visit the specified . The DbExpressionBinding to visit. is null Convenience method for post-processing after a DbExpressionBinding has been visited. The previously visited DbExpressionBinding. Convenience method to visit the specified . The DbGroupExpressionBinding to visit. is null Convenience method indicating that the grouping keys of a have been visited and the aggregates are now about to be visited. The DbGroupExpressionBinding of the DbGroupByExpression Convenience method for post-processing after a DbGroupExpressionBinding has been visited. The previously visited DbGroupExpressionBinding. Convenience method indicating that the body of a Lambda is now about to be visited. The DbLambda that is about to be visited is null Convenience method for post-processing after a DbLambda has been visited. The previously visited DbLambda. Convenience method to visit the specified , if non-null. The expression to visit. is null Convenience method to visit each in the given list, if the list is non-null. The list of expressions to visit. is null Convenience method to visit each in the list, if the list is non-null. The list of aggregates to visit. is null Convenience method to visit the specified . The aggregate to visit. is null Called when an of an otherwise unrecognized type is encountered. The expression is null Always thrown if this method is called, since it indicates that is of an unsupported type Visitor pattern method for . The DbConstantExpression that is being visited. is null Visitor pattern method for . The DbNullExpression that is being visited. is null Visitor pattern method for . The DbVariableReferenceExpression that is being visited. is null Visitor pattern method for . The DbParameterReferenceExpression that is being visited. is null Visitor pattern method for . The DbFunctionExpression that is being visited. is null Visitor pattern method for . The DbLambdaExpression that is being visited. is null Visitor pattern method for . The DbPropertyExpression that is being visited. is null Visitor pattern method for . The DbComparisonExpression that is being visited. is null Visitor pattern method for . The DbLikeExpression that is being visited. is null Visitor pattern method for . The DbLimitExpression that is being visited. is null Visitor pattern method for . The DbIsNullExpression that is being visited. is null Visitor pattern method for . The DbArithmeticExpression that is being visited. is null Visitor pattern method for . The DbAndExpression that is being visited. is null Visitor pattern method for . The DbOrExpression that is being visited. is null Visitor pattern method for . The DbInExpression that is being visited. is null Visitor pattern method for . The DbNotExpression that is being visited. is null Visitor pattern method for . The DbDistinctExpression that is being visited. is null Visitor pattern method for . The DbElementExpression that is being visited. is null Visitor pattern method for . The DbIsEmptyExpression that is being visited. is null Visitor pattern method for . The DbUnionAllExpression that is being visited. is null Visitor pattern method for . The DbIntersectExpression that is being visited. is null Visitor pattern method for . The DbExceptExpression that is being visited. is null Visitor pattern method for . The DbOfTypeExpression that is being visited. is null Visitor pattern method for . The DbTreatExpression that is being visited. is null Visitor pattern method for . The DbCastExpression that is being visited. is null Visitor pattern method for . The DbIsOfExpression that is being visited. is null Visitor pattern method for . The DbCaseExpression that is being visited. is null Visitor pattern method for . The DbNewInstanceExpression that is being visited. is null Visitor pattern method for . The DbRefExpression that is being visited. is null Visitor pattern method for . The DbRelationshipNavigationExpression that is being visited. is null Visitor pattern method for . The DeRefExpression that is being visited. is null Visitor pattern method for . The DbRefKeyExpression that is being visited. is null Visitor pattern method for . The DbEntityRefExpression that is being visited. is null Visitor pattern method for . The DbScanExpression that is being visited. is null Visitor pattern method for . The DbFilterExpression that is being visited. is null Visitor pattern method for . The DbProjectExpression that is being visited. is null Visitor pattern method for . The DbCrossJoinExpression that is being visited. is null Visitor pattern method for . The DbJoinExpression that is being visited. is null Visitor pattern method for . The DbApplyExpression that is being visited. is null Visitor pattern method for . The DbExpression that is being visited. is null Visitor pattern method for . The DbSkipExpression that is being visited. is null Visitor pattern method for . The DbSortExpression that is being visited. is null Visitor pattern method for . The DbQuantifierExpression that is being visited. is null Implements the visitor pattern for the set clause. The set clause. Implements the visitor pattern for the modification clause. The modification clause. Implements the visitor pattern for the collection of modification clauses. The modification clauses. Implements the visitor pattern for the command tree. The command tree. Implements the visitor pattern for the delete command tree. The delete command tree. Implements the visitor pattern for the function command tree. The function command tree. Implements the visitor pattern for the insert command tree. The insert command tree. Implements the visitor pattern for the query command tree. The query command tree. Implements the visitor pattern for the update command tree. The update command tree. An immutable class that implements the basic functionality for the Query, Insert, Update, Delete, and function invocation command tree types. Returns a that represents this command. A that represents this command. Gets a value indicating whether database null semantics are exhibited when comparing two operands, both of which are potentially nullable. The default value is true. For example (operand1 == operand2) will be translated as: (operand1 = operand2) if UseDatabaseNullSemantics is true, respectively (((operand1 = operand2) AND (NOT (operand1 IS NULL OR operand2 IS NULL))) OR ((operand1 IS NULL) AND (operand2 IS NULL))) if UseDatabaseNullSemantics is false. true if database null comparison behavior is enabled, otherwise false . Gets the name and corresponding type of each parameter that can be referenced within this . The name and corresponding type of each parameter that can be referenced within this . Gets the kind of this command tree. Gets the metadata workspace used by this command tree. Gets the data space in which metadata used by this command tree must reside. Represents a single row delete operation expressed as a command tree. This class cannot be inherited. Represents a data manipulation language (DML) operation expressed as a command tree. Gets the that specifies the target table for the data manipulation language (DML) operation. The that specifies the target table for the DML operation. Initializes a new instance of the class. The model this command will operate on. The data space. The target table for the data manipulation language (DML) operation. A predicate used to determine which members of the target collection should be deleted. Gets an that specifies the predicate used to determine which members of the target collection should be deleted. The predicate can include only the following elements: Equality expression Constant expression IsNull expression Property expression Reference expression to the target And expression Or expression Not expression An that specifies the predicate used to determine which members of the target collection should be deleted. Gets the kind of this command tree. The kind of this command tree. Contains values that each expression class uses to denote the operation it represents. The property of an can be retrieved to determine which operation that expression represents. True for all. Logical And. True for any. Conditional case statement. Polymorphic type cast. A constant value. Cross apply Cross join Dereference. Duplicate removal. Division. Set to singleton conversion. Entity ref value retrieval. Equality Set subtraction Restriction. Full outer join Invocation of a stand-alone function Greater than. Greater than or equal. Grouping. Inner join Set intersection. Empty set determination. Null determination. Type comparison (specified Type or Subtype). Type comparison (specified Type only). Left outer join Less than. Less than or equal. String comparison. Result count restriction (TOP n). Subtraction. Modulo. Multiplication. Instance, row, and set construction. Logical Not. Inequality. Null. Set members by type (or subtype). Set members by (exact) type. Logical Or. Outer apply. A reference to a parameter. Addition. Projection. Retrieval of a static or instance property. Reference. Ref key value retrieval. Navigation of a (composition or association) relationship. Entity or relationship set scan. Skip elements of an ordered collection. Sorting. Type conversion. Negation. Set union (with duplicates). A reference to a variable. Application of a lambda function In. Represents the invocation of a database function. Constructs a new DbFunctionCommandTree that uses the specified metadata workspace, data space and function metadata The metadata workspace that the command tree should use. The logical 'space' that metadata in the expressions used in this command tree must belong to. The that represents the function that is being invoked. The expected result type for the function’s first result set. The function's parameters. , or is null does not represent a valid data space or is a composable function Gets the that represents the function that is being invoked. The that represents the function that is being invoked. Gets the expected result type for the function’s first result set. The expected result type for the function’s first result set. Gets or sets the command tree kind. The command tree kind. Represents a single row insert operation expressed as a command tree. This class cannot be inherited. Represents a single row insert operation expressed as a canonical command tree. When the property is set, the command returns a reader; otherwise, it returns a scalar value indicating the number of rows affected. Initializes a new instance of the class. The model this command will operate on. The data space. The target table for the data manipulation language (DML) operation. The list of insert set clauses that define the insert operation. . A that specifies a projection of results to be returned, based on the modified rows. Gets the list of insert set clauses that define the insert operation. The list of insert set clauses that define the insert operation. Gets an that specifies a projection of results to be returned based on the modified rows. An that specifies a projection of results to be returned based on the modified rows. null indicates that no results should be returned from this command. Gets the command tree kind. The command tree kind. Represents a Lambda function that can be invoked to produce a . Creates a with the specified inline Lambda function implementation and formal parameters. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters An expression that defines the logic of the Lambda function A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. is null or contains null, or is null contains more than one element with the same variable name. Creates a with the specified inline Lambda function implementation and formal parameters. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters An expression that defines the logic of the Lambda function A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. is null or contains null, or is null. contains more than one element with the same variable name. Creates a new with a single argument of the specified type, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and single formal parameter. A that defines the EDM type of the argument to the Lambda function A function that defines the logic of the Lambda function as a is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A that defines the EDM type of the sixth argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A that defines the EDM type of the sixth argument to the Lambda function A that defines the EDM type of the seventh argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A that defines the EDM type of the sixth argument to the Lambda function A that defines the EDM type of the seventh argument to the Lambda function A that defines the EDM type of the eighth argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A that defines the EDM type of the sixth argument to the Lambda function A that defines the EDM type of the seventh argument to the Lambda function A that defines the EDM type of the eighth argument to the Lambda function A that defines the EDM type of the ninth argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A that defines the EDM type of the sixth argument to the Lambda function A that defines the EDM type of the seventh argument to the Lambda function A that defines the EDM type of the eighth argument to the Lambda function A that defines the EDM type of the ninth argument to the Lambda function A that defines the EDM type of the tenth argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A that defines the EDM type of the sixth argument to the Lambda function A that defines the EDM type of the seventh argument to the Lambda function A that defines the EDM type of the eighth argument to the Lambda function A that defines the EDM type of the ninth argument to the Lambda function A that defines the EDM type of the tenth argument to the Lambda function A that defines the EDM type of the eleventh argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A that defines the EDM type of the sixth argument to the Lambda function A that defines the EDM type of the seventh argument to the Lambda function A that defines the EDM type of the eighth argument to the Lambda function A that defines the EDM type of the ninth argument to the Lambda function A that defines the EDM type of the tenth argument to the Lambda function A that defines the EDM type of the eleventh argument to the Lambda function A that defines the EDM type of the twelfth argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A that defines the EDM type of the sixth argument to the Lambda function A that defines the EDM type of the seventh argument to the Lambda function A that defines the EDM type of the eighth argument to the Lambda function A that defines the EDM type of the ninth argument to the Lambda function A that defines the EDM type of the tenth argument to the Lambda function A that defines the EDM type of the eleventh argument to the Lambda function A that defines the EDM type of the twelfth argument to the Lambda function A that defines the EDM type of the thirteenth argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A that defines the EDM type of the sixth argument to the Lambda function A that defines the EDM type of the seventh argument to the Lambda function A that defines the EDM type of the eighth argument to the Lambda function A that defines the EDM type of the ninth argument to the Lambda function A that defines the EDM type of the tenth argument to the Lambda function A that defines the EDM type of the eleventh argument to the Lambda function A that defines the EDM type of the twelfth argument to the Lambda function A that defines the EDM type of the thirteenth argument to the Lambda function A that defines the EDM type of the fourteenth argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A that defines the EDM type of the sixth argument to the Lambda function A that defines the EDM type of the seventh argument to the Lambda function A that defines the EDM type of the eighth argument to the Lambda function A that defines the EDM type of the ninth argument to the Lambda function A that defines the EDM type of the tenth argument to the Lambda function A that defines the EDM type of the eleventh argument to the Lambda function A that defines the EDM type of the twelfth argument to the Lambda function A that defines the EDM type of the thirteenth argument to the Lambda function A that defines the EDM type of the fourteenth argument to the Lambda function A that defines the EDM type of the fifteenth argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A that defines the EDM type of the sixth argument to the Lambda function A that defines the EDM type of the seventh argument to the Lambda function A that defines the EDM type of the eighth argument to the Lambda function A that defines the EDM type of the ninth argument to the Lambda function A that defines the EDM type of the tenth argument to the Lambda function A that defines the EDM type of the eleventh argument to the Lambda function A that defines the EDM type of the twelfth argument to the Lambda function A that defines the EDM type of the thirteenth argument to the Lambda function A that defines the EDM type of the fourteenth argument to the Lambda function A that defines the EDM type of the fifteenth argument to the Lambda function A that defines the EDM type of the sixteenth argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, or is null or produces a result of null. Gets the body of the lambda expression. A that represents the body of the lambda function. Gets the parameters of the lambda expression. The list of lambda function parameters represented as DbVariableReferenceExpression objects. Specifies a single clause in an insert or update modification operation, see and An abstract base class allows the possibility of patterns other than Property = Value in future versions, e.g., update SomeTable set ComplexTypeColumn.SomeProperty() where Id = 2 Represents a query operation expressed as a command tree. This class cannot be inherited. Constructs a new DbQueryCommandTree that uses the specified metadata workspace. The metadata workspace that the command tree should use. The logical 'space' that metadata in the expressions used in this command tree must belong to. A that defines the logic of the query. When set to false the validation of the tree is turned off. A boolean that indicates whether database null semantics are exhibited when comparing two operands, both of which are potentially nullable. or is null does not represent a valid data space Constructs a new DbQueryCommandTree that uses the specified metadata workspace, using database null semantics. The metadata workspace that the command tree should use. The logical 'space' that metadata in the expressions used in this command tree must belong to. A that defines the logic of the query. When set to false the validation of the tree is turned off. or is null does not represent a valid data space Constructs a new DbQueryCommandTree that uses the specified metadata workspace, using database null semantics. The metadata workspace that the command tree should use. The logical 'space' that metadata in the expressions used in this command tree must belong to. A that defines the logic of the query. or is null does not represent a valid data space Gets an that defines the logic of the query operation. An that defines the logic of the query operation. The expression is null. The expression is associated with a different command tree. Gets the kind of this command tree. The kind of this command tree. Specifies the clause in a modification operation that sets the value of a property. This class cannot be inherited. Gets an that specifies the property that should be updated. An that specifies the property that should be updated. Gets an that specifies the new value with which to update the property. An that specifies the new value with which to update the property. Represents a single-row update operation expressed as a command tree. This class cannot be inherited. Represents a single-row update operation expressed as a canonical command tree. When the property is set, the command returns a reader; otherwise, it returns a scalar indicating the number of rows affected. Initializes a new instance of the class. The model this command will operate on. The data space. The target table for the data manipulation language (DML) operation. A predicate used to determine which members of the target collection should be updated. The list of update set clauses that define the update operation. A that specifies a projection of results to be returned, based on the modified rows. Gets the list of update set clauses that define the update operation. The list of update set clauses that define the update operation. Gets an that specifies a projection of results to be returned, based on the modified rows. An that specifies a projection of results to be returned based, on the modified rows. null indicates that no results should be returned from this command. Gets an that specifies the predicate used to determine which members of the target collection should be updated. An that specifies the predicate used to determine which members of the target collection should be updated. Gets the kind of this command tree. The kind of this command tree. Represents a reference to a variable that is currently in scope. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the name of the referenced variable. The name of the referenced variable. Defines the binding for the input set to a . In addition to the properties of , DbGroupExpressionBinding also provides access to the group element via the variable reference and to the group aggregate via the property. Gets the that defines the input set. The that defines the input set. The expression is null. The expression is not associated with the command tree of the , or its result type is not equal or promotable to the result type of the current value of the property. Gets the name assigned to the element variable. The name assigned to the element variable. Gets the type metadata of the element variable. The type metadata of the element variable. Gets the that references the element variable. A reference to the element variable. Gets the name assigned to the group element variable. The name assigned to the group element variable. Gets the type metadata of the group element variable. The type metadata of the group element variable. Gets the that references the group element variable. A reference to the group element variable. Gets the that represents the collection of elements in the group. The elements in the group. Provides an API to construct s and allows that API to be accessed as extension methods on the expression type itself. Returns the specified arguments as a key/value pair object. A key/value pair object. The value in the key/value pair. The key in the key/value pair. Returns the specified arguments as a key/value pair object. A key/value pair object. The value in the key/value pair. The key in the key/value pair. Creates a new that uses a generated variable name to bind the given expression. A new expression binding with the specified expression and a generated variable name. The expression to bind. input is null. input does not have a collection result. Creates a new that uses the specified variable name to bind the given expression A new expression binding with the specified expression and variable name. The expression to bind. The variable name that should be used for the binding. input or varName is null. input does not have a collection result. Creates a new group expression binding that uses generated variable and group variable names to bind the given expression. A new group expression binding with the specified expression and a generated variable name and group variable name. The expression to bind. input is null. input does not have a collection result type. Creates a new that uses the specified variable name and group variable names to bind the given expression. A new group expression binding with the specified expression, variable name and group variable name. The expression to bind. The variable name that should be used for the binding. The variable name that should be used to refer to the group when the new group expression binding is used in a group-by expression. input, varName or groupVarName is null. input does not have a collection result type. Creates a new . A new function aggregate with a reference to the given function and argument. The function aggregate's Distinct property will have the value false. The function that defines the aggregate operation. The argument over which the aggregate function should be calculated. function or argument null. function is not an aggregate function or has more than one argument, or the result type of argument is not equal or promotable to the parameter type of function. Creates a new that is applied in a distinct fashion. A new function aggregate with a reference to the given function and argument. The function aggregate's Distinct property will have the value true. The function that defines the aggregate operation. The argument over which the aggregate function should be calculated. function or argument is null. function is not an aggregate function or has more than one argument, or the result type of argument is not equal or promotable to the parameter type of function. Creates a new over the specified argument The argument over which to perform the nest operation A new group aggregate representing the elements of the group referenced by the given argument. is null Creates a with the specified inline Lambda function implementation and formal parameters. A new expression that describes an inline Lambda function with the specified body and formal parameters. An expression that defines the logic of the Lambda function. A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. variables is null or contains null, or body is null. variables contains more than one element with the same variable name. Creates a with the specified inline Lambda function implementation and formal parameters. A new expression that describes an inline Lambda function with the specified body and formal parameters. An expression that defines the logic of the Lambda function. A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. variables is null or contains null, or body is null. variables contains more than one element with the same variable name. Creates a new with an ascending sort order and default collation. A new sort clause with the given sort key and ascending sort order. The expression that defines the sort key. key is null. key does not have an order-comparable result type. Creates a new with a descending sort order and default collation. A new sort clause with the given sort key and descending sort order. The expression that defines the sort key. key is null. key does not have an order-comparable result type. Creates a new with an ascending sort order and the specified collation. A new sort clause with the given sort key and collation, and ascending sort order. The expression that defines the sort key. The collation to sort under. key is null. collation is empty or contains only space characters. key does not have an order-comparable result type. Creates a new with a descending sort order and the specified collation. A new sort clause with the given sort key and collation, and descending sort order. The expression that defines the sort key. The collation to sort under. key is null. collation is empty or contains only space characters. key does not have an order-comparable result type. Creates a new that determines whether the given predicate holds for all elements of the input set. A new DbQuantifierExpression that represents the All operation. An expression binding that specifies the input set. An expression representing a predicate to evaluate for each member of the input set. input or predicate is null. predicate does not have a Boolean result type. Creates a new that determines whether the given predicate holds for any element of the input set. A new DbQuantifierExpression that represents the Any operation. An expression binding that specifies the input set. An expression representing a predicate to evaluate for each member of the input set. input or predicate is null. The expression produced by predicate does not have a Boolean result type. Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. An new DbApplyExpression with the specified input and apply bindings and an of CrossApply. An that specifies the input set. An that specifies logic to evaluate once for each member of the input set. input or apply is null. Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set have an apply column value of null. An new DbApplyExpression with the specified input and apply bindings and an of OuterApply. An that specifies the input set. An that specifies logic to evaluate once for each member of the input set. input or apply is null. Creates a new that unconditionally joins the sets specified by the list of input expression bindings. A new DbCrossJoinExpression, with an of CrossJoin, that represents the unconditional join of the input sets. A list of expression bindings that specifies the input sets. inputs is null or contains null element. inputs contains fewer than 2 expression bindings. Creates a new that joins the sets specified by the left and right expression bindings, on the specified join condition, using InnerJoin as the . A new DbJoinExpression, with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under the given join condition. An that specifies the left set argument. An that specifies the right set argument. An expression that specifies the condition on which to join. left, right or joinCondition is null. joinCondition does not have a Boolean result type. Creates a new that joins the sets specified by the left and right expression bindings, on the specified join condition, using LeftOuterJoin as the . A new DbJoinExpression, with an of LeftOuterJoin, that represents the left outer join operation applied to the left and right input sets under the given join condition. An that specifies the left set argument. An that specifies the right set argument. An expression that specifies the condition on which to join. left, right or joinCondition is null. joinCondition does not have a Boolean result type. Creates a new that joins the sets specified by the left and right expression bindings, on the specified join condition, using FullOuterJoin as the . A new DbJoinExpression, with an of FullOuterJoin, that represents the full outer join operation applied to the left and right input sets under the given join condition. An that specifies the left set argument. An that specifies the right set argument. An expression that specifies the condition on which to join. left, right or joinCondition is null. The expression produced by joinCondition does not have a Boolean result type. Creates a new that filters the elements in the given input set using the specified predicate. A new DbFilterExpression that produces the filtered set. An expression binding that specifies the input set. An expression representing a predicate to evaluate for each member of the input set. input or predicate is null. predicate does not have a Boolean result type. Creates a new that groups the elements of the input set according to the specified group keys and applies the given aggregates. A new DbGroupByExpression with the specified input set, grouping keys and aggregates. A that specifies the input set. A list of string-expression pairs that define the grouping columns. A list of expressions that specify aggregates to apply. input, keys or aggregates is null, keys contains a null column key or expression, or aggregates contains a null aggregate column name or aggregate. Both keys and aggregates are empty, or an invalid or duplicate column name was specified. Creates a new that projects the specified expression over the given input set. A new DbProjectExpression that represents the projection operation. An expression binding that specifies the input set. An expression to project over the set. input or projection is null. Creates a new that sorts the given input set by the given sort specifications before skipping the specified number of elements. A new DbSkipExpression that represents the skip operation. An expression binding that specifies the input set. A list of sort specifications that determine how the elements of the input set should be sorted. An expression the specifies how many elements of the ordered set to skip. input, sortOrder or count is null, or sortOrder contains null. sortOrder is empty, or count is not or or has a result type that is not equal or promotable to a 64-bit integer type. Creates a new that sorts the given input set by the specified sort specifications. A new DbSortExpression that represents the sort operation. An expression binding that specifies the input set. A list of sort specifications that determine how the elements of the input set should be sorted. input or sortOrder is null, or sortOrder contains null. sortOrder is empty. Creates a new , which represents a typed null value. An instance of DbNullExpression. The type of the null value. nullType is null. Creates a new with the given constant value. A new DbConstantExpression with the given value. The constant value to represent. value is null. value is not an instance of a valid constant type. Creates a new of the specified primitive type with the given constant value. A new DbConstantExpression with the given value and a result type of constantType. The type of the constant value. The constant value to represent. value or constantType is null. value is not an instance of a valid constant type, constantType does not represent a primitive type, or value is of a different primitive type than that represented by constantType. Creates a new that references a parameter with the specified name and type. A DbParameterReferenceExpression that represents a reference to a parameter with the specified name and type. The result type of the expression will be the same as type. The type of the referenced parameter. The name of the referenced parameter. Creates a new that references a variable with the specified name and type. A DbVariableReferenceExpression that represents a reference to a variable with the specified name and type. The result type of the expression will be the same as type. The type of the referenced variable. The name of the referenced variable. Creates a new that references the specified entity or relationship set. A new DbScanExpression based on the specified entity or relationship set. Metadata for the entity or relationship set to reference. targetSet is null. Creates an that performs the logical And of the left and right arguments. A new DbAndExpression with the specified arguments. A Boolean expression that specifies the left argument. A Boolean expression that specifies the right argument. left or right is null. left and right does not have a Boolean result type. Creates an that performs the logical Or of the left and right arguments. A new DbOrExpression with the specified arguments. A Boolean expression that specifies the left argument. A Boolean expression that specifies the right argument. left or right is null. left or right does not have a Boolean result type. Creates a that matches the result of the specified expression with the results of the constant expressions in the specified list. A DbExpression to be matched. A list of DbConstantExpression to test for a match. A new DbInExpression with the specified arguments. or is null. The result type of is different than the result type of an expression from . Creates a that performs the logical negation of the given argument. A new DbNotExpression with the specified argument. A Boolean expression that specifies the argument. argument is null. argument does not have a Boolean result type. Creates a new that divides the left argument by the right argument. A new DbArithmeticExpression representing the division operation. An expression that specifies the left argument. An expression that specifies the right argument. left or right is null. No common numeric result type exists between left or right. Creates a new that subtracts the right argument from the left argument. A new DbArithmeticExpression representing the subtraction operation. An expression that specifies the left argument. An expression that specifies the right argument. left or right is null. No common numeric result type exists between left and right. Creates a new that computes the remainder of the left argument divided by the right argument. A new DbArithmeticExpression representing the modulo operation. An expression that specifies the left argument. An expression that specifies the right argument. left or right is null. No common numeric result type exists between left and right. Creates a new that multiplies the left argument by the right argument. A new DbArithmeticExpression representing the multiplication operation. An expression that specifies the left argument. An expression that specifies the right argument. left or right is null. No common numeric result type exists between left and right. Creates a new that adds the left argument to the right argument. A new DbArithmeticExpression representing the addition operation. An expression that specifies the left argument. An expression that specifies the right argument. left or right is null. No common numeric result type exists between left and right. Creates a new that negates the value of the argument. A new DbArithmeticExpression representing the negation operation. An expression that specifies the argument. argument is null. No numeric result type exists for argument. Creates a new that negates the value of the argument. A new DbArithmeticExpression representing the negation operation. An expression that specifies the argument. argument is null. No numeric result type exists for argument. Creates a new that compares the left and right arguments for equality. A new DbComparisonExpression representing the equality comparison. An expression that specifies the left argument. An expression that specifies the right argument. left or right is null. No common equality-comparable result type exists between left and right. Creates a new that compares the left and right arguments for inequality. A new DbComparisonExpression representing the inequality comparison. An expression that specifies the left argument. An expression that specifies the right argument. left or right is null. No common equality-comparable result type exists between left and right. Creates a new that determines whether the left argument is greater than the right argument. A new DbComparisonExpression representing the greater-than comparison. An expression that specifies the left argument. An expression that specifies the right argument. left or right is null. No common order-comparable result type exists between left and right. Creates a new that determines whether the left argument is less than the right argument. A new DbComparisonExpression representing the less-than comparison. An expression that specifies the left argument. An expression that specifies the right argument. left or right is null. No common order-comparable result type exists between left and right. Creates a new that determines whether the left argument is greater than or equal to the right argument. A new DbComparisonExpression representing the greater-than-or-equal-to comparison. An expression that specifies the left argument. An expression that specifies the right argument. left or right is null. No common order-comparable result type exists between left and right. Creates a new that determines whether the left argument is less than or equal to the right argument. A new DbComparisonExpression representing the less-than-or-equal-to comparison. An expression that specifies the left argument. An expression that specifies the right argument. left or right is null. No common result type that is both equality- and order-comparable exists between left and right. Creates a new that determines whether the specified argument is null. A new DbIsNullExpression with the specified argument. An expression that specifies the argument. argument is null. argument has a collection result type. Creates a new that compares the specified input string to the given pattern. A new DbLikeExpression with the specified input, pattern and a null escape. An expression that specifies the input string. An expression that specifies the pattern string. Argument or pattern is null. Argument or pattern does not have a string result type. Creates a new that compares the specified input string to the given pattern using the optional escape. A new DbLikeExpression with the specified input, pattern and escape. An expression that specifies the input string. An expression that specifies the pattern string. An optional expression that specifies the escape string. argument, pattern or escape is null. argument, pattern or escape does not have a string result type. Creates a new that applies a cast operation to a polymorphic argument. A new DbCastExpression with the specified argument and target type. The argument to which the cast should be applied. Type metadata that specifies the type to cast to. Argument or toType is null. The specified cast is not valid. Creates a new . A new DbTreatExpression with the specified argument and type. An expression that specifies the instance. Type metadata for the treat-as type. argument or treatType is null. treatType is not in the same type hierarchy as the result type of argument. Creates a new that produces a set consisting of the elements of the given input set that are of the specified type. A new DbOfTypeExpression with the specified set argument and type, and an ExpressionKind of . A that specifies the input set. Type metadata for the type that elements of the input set must have to be included in the resulting set. argument or type is null. argument does not have a collection result type, or type is not a type in the same type hierarchy as the element type of the collection result type of argument. Creates a new that produces a set consisting of the elements of the given input set that are of exactly the specified type. A new DbOfTypeExpression with the specified set argument and type, and an ExpressionKind of . An that specifies the input set. Type metadata for the type that elements of the input set must match exactly to be included in the resulting set. argument or type is null. argument does not have a collection result type, or type is not a type in the same type hierarchy as the element type of the collection result type of argument. Creates a new that determines whether the given argument is of the specified type or a subtype. A new DbIsOfExpression with the specified instance and type and DbExpressionKind IsOf. An expression that specifies the instance. Type metadata that specifies the type that the instance's result type should be compared to. argument or type is null. type is not in the same type hierarchy as the result type of argument. Creates a new expression that determines whether the given argument is of the specified type, and only that type (not a subtype). A new DbIsOfExpression with the specified instance and type and DbExpressionKind IsOfOnly. An expression that specifies the instance. Type metadata that specifies the type that the instance's result type should be compared to. argument or type is null. type is not in the same type hierarchy as the result type of argument. Creates a new that retrieves a specific Entity given a reference expression. A new DbDerefExpression that retrieves the specified Entity. An that provides the reference. This expression must have a reference Type. argument is null. argument does not have a reference result type. Creates a new that retrieves the ref of the specifed entity in structural form. A new DbEntityRefExpression that retrieves a reference to the specified entity. The expression that provides the entity. This expression must have an entity result type. argument is null. argument does not have an entity result type. Creates a new that encodes a reference to a specific entity based on key values. A new DbRefExpression that references the element with the specified key values in the given entity set. The entity set in which the referenced element resides. A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. entitySet is null, or keyValues is null or contains null. The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. Creates a new that encodes a reference to a specific entity based on key values. A new DbRefExpression that references the element with the specified key values in the given entity set. The entity set in which the referenced element resides. A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. entitySet is null, or keyValues is null or contains null. The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. Creates a new that encodes a reference to a specific entity of a given type based on key values. A new DbRefExpression that references the element with the specified key values in the given entity set. The entity set in which the referenced element resides. The specific type of the referenced entity. This must be an entity type from the same hierarchy as the entity set's element type. A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. entitySet or entityType is null, or keyValues is null or contains null. entityType is not from the same type hierarchy (a subtype, supertype, or the same type) as entitySet's element type. The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. Creates a new that encodes a reference to a specific entity of a given type based on key values. A new DbRefExpression that references the element with the specified key values in the given entity set. The entity set in which the referenced element resides. The specific type of the referenced entity. This must be an entity type from the same hierarchy as the entity set's element type. A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. entitySet or entityType is null, or keyValues is null or contains null. entityType is not from the same type hierarchy (a subtype, supertype, or the same type) as entitySet's element type. The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. Creates a new that encodes a reference to a specific Entity based on key values. A new DbRefExpression that references the element with the specified key values in the given Entity set. The Entity set in which the referenced element resides. A that constructs a record with columns that match (in number, type, and order) the Key properties of the referenced Entity type. entitySet or keyRow is null. keyRow does not have a record result type that matches the key properties of the referenced entity set's entity type. Creates a new that encodes a reference to a specific Entity based on key values. A new DbRefExpression that references the element with the specified key values in the given Entity set. The Entity set in which the referenced element resides. A that constructs a record with columns that match (in number, type, and order) the Key properties of the referenced Entity type. The type of the Entity that the reference should refer to. entitySet, keyRow or entityType is null. entityType is not in the same type hierarchy as the entity set's entity type, or keyRow does not have a record result type that matches the key properties of the referenced entity set's entity type. Creates a new that retrieves the key values of the specifed reference in structural form. A new DbRefKeyExpression that retrieves the key values of the specified reference. The expression that provides the reference. This expression must have a reference Type with an Entity element type. argument is null. argument does not have a reference result type. Creates a new representing the navigation of a composition or association relationship. A new DbRelationshipNavigationExpression representing the navigation of the specified from and to relation ends of the specified relation type from the specified navigation source instance. An expression that specifies the instance from which navigation should occur. Metadata for the property that represents the end of the relationship from which navigation should occur. Metadata for the property that represents the end of the relationship to which navigation should occur. fromEnd, toEnd or navigateFrom is null. fromEnd and toEnd are not declared by the same relationship type, or navigateFrom has a result type that is not compatible with the property type of fromEnd. Creates a new representing the navigation of a composition or association relationship. A new DbRelationshipNavigationExpression representing the navigation of the specified from and to relation ends of the specified relation type from the specified navigation source instance. Metadata for the relation type that represents the relationship. The name of the property of the relation type that represents the end of the relationship from which navigation should occur. The name of the property of the relation type that represents the end of the relationship to which navigation should occur. An expression the specifies the instance from which naviagtion should occur. type, fromEndName, toEndName or navigateFrom is null. type is not associated with this command tree's metadata workspace or navigateFrom is associated with a different command tree, or type does not declare a relation end property with name toEndName or fromEndName, or navigateFrom has a result type that is not compatible with the property type of the relation end property with name fromEndName. Creates a new that removes duplicates from the given set argument. A new DbDistinctExpression that represents the distinct operation applied to the specified set argument. An expression that defines the set over which to perfom the distinct operation. argument is null. argument does not have a collection result type. Creates a new that converts a set into a singleton. A DbElementExpression that represents the conversion of the set argument to a singleton. An expression that specifies the input set. argument is null. argument does not have a collection result type. Creates a new that determines whether the specified set argument is an empty set. A new DbIsEmptyExpression with the specified argument. An expression that specifies the input set. argument is null. argument does not have a collection result type. Creates a new that computes the subtraction of the right set argument from the left set argument. A new DbExceptExpression that represents the difference of the left argument from the right argument. An expression that defines the left set argument. An expression that defines the right set argument. left or right is null. No common collection result type exists between left and right. Creates a new that computes the intersection of the left and right set arguments. A new DbIntersectExpression that represents the intersection of the left and right arguments. An expression that defines the left set argument. An expression that defines the right set argument. left or right is null. No common collection result type exists between left or right. Creates a new that computes the union of the left and right set arguments and does not remove duplicates. A new DbUnionAllExpression that union, including duplicates, of the the left and right arguments. An expression that defines the left set argument. An expression that defines the right set argument. left or right is null. No common collection result type with an equality-comparable element type exists between left and right. Creates a new that restricts the number of elements in the Argument collection to the specified count Limit value. Tied results are not included in the output. A new DbLimitExpression with the specified argument and count limit values that does not include tied results. An expression that specifies the input collection. An expression that specifies the limit value. argument or count is null. argument does not have a collection result type, or count does not have a result type that is equal or promotable to a 64-bit integer type. Creates a new . A new DbCaseExpression with the specified cases and default result. A list of expressions that provide the conditional for of each case. A list of expressions that provide the result of each case. An expression that defines the result when no case is matched. whenExpressions or thenExpressions is null or contains null, or elseExpression is null. whenExpressions or thenExpressions is empty or whenExpressions contains an expression with a non-Boolean result type, or no common result type exists for all expressions in thenExpressions and elseExpression. Creates a new representing the invocation of the specified function with the given arguments. A new DbFunctionExpression representing the function invocation. Metadata for the function to invoke. A list of expressions that provide the arguments to the function. function is null, or arguments is null or contains null. The count of arguments does not equal the number of parameters declared by function, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding function parameter type. Creates a new representing the invocation of the specified function with the given arguments. A new DbFunctionExpression representing the function invocation. Metadata for the function to invoke. Expressions that provide the arguments to the function. function is null, or arguments is null or contains null. The count of arguments does not equal the number of parameters declared by function, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding function parameter type. Creates a new representing the application of the specified Lambda function to the given arguments. A new Expression representing the Lambda function application. A instance representing the Lambda function to apply. A list of expressions that provide the arguments. lambda or arguments is null. The count of arguments does not equal the number of variables declared by lambda, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding variable type. Creates a new representing the application of the specified Lambda function to the given arguments. A new expression representing the Lambda function application. A instance representing the Lambda function to apply. Expressions that provide the arguments. lambda or arguments is null. The count of arguments does not equal the number of variables declared by lambda, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding variable type. Creates a new . If the type argument is a collection type, the arguments specify the elements of the collection. Otherwise the arguments are used as property or column values in the new instance. A new DbNewInstanceExpression with the specified type and arguments. The type of the new instance. Expressions that specify values of the new instances, interpreted according to the instance's type. instanceType or arguments is null, or arguments contains null. arguments is empty or the result types of the contained expressions do not match the requirements of instanceType (as explained in the remarks section). Creates a new . If the type argument is a collection type, the arguments specify the elements of the collection. Otherwise the arguments are used as property or column values in the new instance. A new DbNewInstanceExpression with the specified type and arguments. The type of the new instance. Expressions that specify values of the new instances, interpreted according to the instance's type. instanceType or arguments is null, or arguments contains null. arguments is empty or the result types of the contained expressions do not match the requirements of instanceType (as explained in the remarks section). Creates a new that constructs a collection containing the specified elements. The type of the collection is based on the common type of the elements. If no common element type exists an exception is thrown. A new DbNewInstanceExpression with the specified collection type and arguments. A list of expressions that provide the elements of the collection. elements is null, or contains null. elements is empty or contains expressions for which no common result type exists. Creates a new that constructs a collection containing the specified elements. The type of the collection is based on the common type of the elements. If no common element type exists an exception is thrown. A new DbNewInstanceExpression with the specified collection type and arguments. A list of expressions that provide the elements of the collection. elements is null, or contains null.. elements is empty or contains expressions for which no common result type exists. Creates a new that constructs an empty collection of the specified collection type. A new DbNewInstanceExpression with the specified collection type and an empty Arguments list. The type metadata for the collection to create collectionType is null. collectionType is not a collection type. Creates a new that produces a row with the specified named columns and the given values, specified as expressions. A new DbNewInstanceExpression that represents the construction of the row. A list of string-DbExpression key-value pairs that defines the structure and values of the row. columnValues is null or contains an element with a null column name or expression. columnValues is empty, or contains a duplicate or invalid column name. Creates a new representing the retrieval of the specified property. A new DbPropertyExpression representing the property retrieval. The instance from which to retrieve the property. May be null if the property is static. Metadata for the property to retrieve. propertyMetadata is null or instance is null and the property is not static. Creates a new representing the retrieval of the specified navigation property. A new DbPropertyExpression representing the navigation property retrieval. The instance from which to retrieve the navigation property. Metadata for the navigation property to retrieve. navigationProperty or instance is null. Creates a new representing the retrieval of the specified relationship end member. A new DbPropertyExpression representing the relationship end member retrieval. The instance from which to retrieve the relationship end member. Metadata for the relationship end member to retrieve. relationshipEnd is null or instance is null and the property is not static. Creates a new representing the retrieval of the instance property with the specified name from the given instance. A new DbPropertyExpression that represents the property retrieval. The instance from which to retrieve the property. The name of the property to retrieve. propertyName is null or instance is null and the property is not static. No property with the specified name is declared by the type of instance. Creates a new representing setting a property to a value. The property to be set. The value to set the property to. The newly created set clause. Creates a new that determines whether the given predicate holds for all elements of the input set. A new DbQuantifierExpression that represents the All operation. An expression that specifies the input set. A method representing a predicate to evaluate for each member of the input set. This method must produce an expression with a Boolean result type that provides the predicate logic. source or predicate is null. The expression produced by predicate is null. source does not have a collection result type. The expression produced by Predicate does not have a Boolean result type. Creates a new that determines whether the specified set argument is non-empty. A new applied to a new with the specified argument. An expression that specifies the input set. source is null. source does not have a collection result type. Creates a new that determines whether the specified set argument is non-empty. A new applied to a new with the specified argument. An expression that specifies the input set. argument is null. argument does not have a collection result type. Creates a new that determines whether the given predicate holds for any element of the input set. A new DbQuantifierExpression that represents the Any operation. An expression that specifies the input set. A method representing the predicate to evaluate for each member of the input set. This method must produce an expression with a Boolean result type that provides the predicate logic. source or predicate is null. The expression produced by predicate is null. source does not have a collection result type. The expression produced by predicate does not have a Boolean result type. Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. An new DbApplyExpression with the specified input and apply bindings and an of CrossApply. A that specifies the input set. A method that specifies the logic to evaluate once for each member of the input set. source or apply is null. source does not have a collection result type. The result of apply contains a name or expression that is null. The result of apply contains a name or expression that is not valid in an expression binding. Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set have an apply column value of null. An new DbApplyExpression with the specified input and apply bindings and an of OuterApply. A that specifies the input set. A method that specifies the logic to evaluate once for each member of the input set. source or apply is null. Source does not have a collection result type. The result of apply contains a name or expression that is null. The result of apply contains a name or expression that is not valid in an expression binding. Creates a new that joins the sets specified by the left and right expressions, on the specified join condition, using FullOuterJoin as the . A new DbJoinExpression, with an of FullOuterJoin, that represents the full outer join operation applied to the left and right input sets under the given join condition. A that specifies the left set argument. A that specifies the right set argument. A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition. left, right or joinCondition is null. left or right does not have a collection result type. The expression produced by joinCondition is null. The expression produced by joinCondition does not have a Boolean result type. Creates a new that joins the sets specified by the left and right expressions, on the specified join condition, using InnerJoin as the . A new DbJoinExpression, with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under the given join condition. A that specifies the left set argument. A that specifies the right set argument. A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition. left, right or joinCondition is null. left or right does not have a collection result type. The expression produced by joinCondition is null. The expression produced by joinCondition does not have a Boolean result type. Creates a new that joins the sets specified by the left and right expressions, on the specified join condition, using LeftOuterJoin as the . A new DbJoinExpression, with an of LeftOuterJoin, that represents the left outer join operation applied to the left and right input sets under the given join condition. A that specifies the left set argument. A that specifies the right set argument. A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition. left, right or joinCondition is null. left or right does not have a collection result type. The expression produced by joinCondition is null. The expression produced by joinCondition does not have a Boolean result type. Creates a new that joins the sets specified by the outer and inner expressions, on an equality condition between the specified outer and inner keys, using InnerJoin as the . A new DbJoinExpression, with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under a join condition that compares the outer and inner key values for equality. A that specifies the outer set argument. A that specifies the inner set argument. A method that specifies how the outer key value should be derived from an element of the outer set. A method that specifies how the inner key value should be derived from an element of the inner set. outer, inner, outerKey or innerKey is null. outer or inner does not have a collection result type. The expression produced by outerKey or innerKey is null. The expressions produced by outerKey and innerKey are not comparable for equality. Creates a new that projects the specified selector over the sets specified by the outer and inner expressions, joined on an equality condition between the specified outer and inner keys, using InnerJoin as the . A new DbProjectExpression with the specified selector as its projection, and a new DbJoinExpression as its input. The input DbJoinExpression is created with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under a join condition that compares the outer and inner key values for equality. A that specifies the outer set argument. A that specifies the inner set argument. A method that specifies how the outer key value should be derived from an element of the outer set. A method that specifies how the inner key value should be derived from an element of the inner set. A method that specifies how an element of the result set should be derived from elements of the inner and outer sets. This method must produce an instance of a type that is compatible with Join and can be resolved into a . Compatibility requirements for TSelector are described in remarks. The type of the selector . outer, inner, outerKey, innerKey or selector is null. outer or inner does not have a collection result type. The expression produced by outerKey or innerKey is null. The result of selector is null after conversion to DbExpression. The expressions produced by outerKey and innerKey is not comparable for equality. The result of Selector is not compatible with SelectMany. Creates a new that sorts the given input set by the specified sort key, with ascending sort order and default collation. A new DbSortExpression that represents the order-by operation. An expression that specifies the input set. A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. source or sortKey is null. The expression produced by sortKey is null. source does not have a collection result type. The expression produced by sortKey does not have an order-comparable result type. Creates a new that sorts the given input set by the specified sort key, with ascending sort order and the specified collation. A new DbSortExpression that represents the order-by operation. An expression that specifies the input set. A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. The collation to sort under. source, sortKey or collation is null. The expression produced by sortKey is null. source does not have a collection result type. The expression produced by sortKey does not have an order-comparable string result type. collation is empty or contains only space characters. Creates a new that sorts the given input set by the specified sort key, with descending sort order and default collation. A new DbSortExpression that represents the order-by operation. An expression that specifies the input set. A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. source or sortKey is null. The expression produced by sortKey is null. source does not have a collection result type. The expression produced by sortKey does not have an order-comparable result type. Creates a new that sorts the given input set by the specified sort key, with descending sort order and the specified collation. A new DbSortExpression that represents the order-by operation. An expression that specifies the input set. A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. The collation to sort under. source, sortKey or collation is null. The expression produced by sortKey is null. source does not have a collection result type. The expression produced by sortKey does not have an order-comparable string result type. collation is empty or contains only space characters. Creates a new that selects the specified expression over the given input set. A new DbProjectExpression that represents the select operation. An expression that specifies the input set. A method that specifies how to derive the projected expression given a member of the input set. This method must produce an instance of a type that is compatible with Select and can be resolved into a . Compatibility requirements for TProjection are described in remarks. The method result type of projection. source or projection is null. The result of projection is null. Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. A is then created that selects the apply column from each row, producing the overall collection of apply results. An new DbProjectExpression that selects the apply column from a new DbApplyExpression with the specified input and apply bindings and an of CrossApply. A that specifies the input set. A method that represents the logic to evaluate once for each member of the input set. source or apply is null. The expression produced by apply is null. source does not have a collection result type. The expression produced by apply does not have a collection type. Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. A is then created that selects the specified selector over each row, producing the overall collection of results. An new DbProjectExpression that selects the result of the given selector from a new DbApplyExpression with the specified input and apply bindings and an of CrossApply. A that specifies the input set. A method that represents the logic to evaluate once for each member of the input set. A method that specifies how an element of the result set should be derived given an element of the input and apply sets. This method must produce an instance of a type that is compatible with SelectMany and can be resolved into a . Compatibility requirements for TSelector are described in remarks. The method result type of selector. source, apply or selector is null. The expression produced by apply is null. The result of selector is null on conversion to DbExpression. source does not have a collection result type. The expression produced by apply does not have a collection type. does not have a collection type. Creates a new that skips the specified number of elements from the given sorted input set. A new DbSkipExpression that represents the skip operation. A that specifies the sorted input set. An expression the specifies how many elements of the ordered set to skip. argument or count is null. count is not or or has a result type that is not equal or promotable to a 64-bit integer type. Creates a new that restricts the number of elements in the Argument collection to the specified count Limit value. Tied results are not included in the output. A new DbLimitExpression with the specified argument and count limit values that does not include tied results. An expression that specifies the input collection. An expression that specifies the limit value. argument or count is null. argument does not have a collection result type, count does not have a result type that is equal or promotable to a 64-bit integer type. Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in ascending sort order and with default collation. A new DbSortExpression that represents the new overall order-by operation. A DbSortExpression that specifies the ordered input set. A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. source or sortKey is null. The expression produced by sortKey is null. source does not have a collection result type. sortKey does not have an order-comparable result type. Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in ascending sort order and with the specified collation. A new DbSortExpression that represents the new overall order-by operation. A DbSortExpression that specifies the ordered input set. A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. The collation to sort under. source, sortKey or collation is null. The expression produced by sortKey is null. source does not have a collection result type. The expression produced by sortKey does not have an order-comparable string result type. collation is empty or contains only space characters. Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in descending sort order and with default collation. A new DbSortExpression that represents the new overall order-by operation. A DbSortExpression that specifies the ordered input set. A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. source or sortKey is null. The expression produced by sortKey is null. source does not have a collection result type. The expression produced by sortKey does not have an order-comparable result type. Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in descending sort order and with the specified collation. A new DbSortExpression that represents the new overall order-by operation. A DbSortExpression that specifies the ordered input set. A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. The collation to sort under. source, sortKey or collation is null. The expression produced by sortKey is null. source does not have a collection result type. The expression produced by sortKey does not have an order-comparable string result type. collation is empty or contains only space characters. Creates a new that filters the elements in the given input set using the specified predicate. A new DbQuantifierExpression that represents the Any operation. An expression that specifies the input set. A method representing the predicate to evaluate for each member of the input set. This method must produce an expression with a Boolean result type that provides the predicate logic. source or predicate is null. The expression produced by predicate is null. The expression produced by predicate does not have a Boolean result type. Creates a new that computes the union of the left and right set arguments with duplicates removed. A new DbExpression that computes the union, without duplicates, of the the left and right arguments. An expression that defines the left set argument. An expression that defines the right set argument. left or right is null. No common collection result type with an equality-comparable element type exists between left and right. Gets a with the Boolean value true. A with the Boolean value true. Gets a with the Boolean value false. A with the Boolean value false. Provides an API to construct s that invoke canonical EDM functions, and allows that API to be accessed as extension methods on the expression type itself. Creates a that invokes the canonical 'Avg' function over the specified collection. The result type of the expression is the same as the element type of the collection. A new DbFunctionExpression that produces the average value. An expression that specifies the collection from which the average value should be computed. Creates a that invokes the canonical 'Count' function over the specified collection. The result type of the expression is Edm.Int32. A new DbFunctionExpression that produces the count value. An expression that specifies the collection over which the count value should be computed. Creates a that invokes the canonical 'BigCount' function over the specified collection. The result type of the expression is Edm.Int64. A new DbFunctionExpression that produces the count value. An expression that specifies the collection over which the count value should be computed. Creates a that invokes the canonical 'Max' function over the specified collection. The result type of the expression is the same as the element type of the collection. A new DbFunctionExpression that produces the maximum value. An expression that specifies the collection from which the maximum value should be retrieved Creates a that invokes the canonical 'Min' function over the specified collection. The result type of the expression is the same as the element type of the collection. A new DbFunctionExpression that produces the minimum value. An expression that specifies the collection from which the minimum value should be retrieved. Creates a that invokes the canonical 'Sum' function over the specified collection. The result type of the expression is the same as the element type of the collection. A new DbFunctionExpression that produces the sum. An expression that specifies the collection from which the sum should be computed. Creates a that invokes the canonical 'StDev' function over the non-null members of the specified collection. The result type of the expression is Edm.Double. A new DbFunctionExpression that produces the standard deviation value over non-null members of the collection. An expression that specifies the collection for which the standard deviation should be computed. Creates a that invokes the canonical 'StDevP' function over the population of the specified collection. The result type of the expression is Edm.Double. A new DbFunctionExpression that produces the standard deviation value. An expression that specifies the collection for which the standard deviation should be computed. Creates a that invokes the canonical 'Var' function over the non-null members of the specified collection. The result type of the expression is Edm.Double. A new DbFunctionExpression that produces the statistical variance value for the non-null members of the collection. An expression that specifies the collection for which the statistical variance should be computed. Creates a that invokes the canonical 'VarP' function over the population of the specified collection. The result type of the expression Edm.Double. A new DbFunctionExpression that produces the statistical variance value. An expression that specifies the collection for which the statistical variance should be computed. Creates a that invokes the canonical 'Concat' function with the specified arguments, which must each have a string result type. The result type of the expression is string. A new DbFunctionExpression that produces the concatenated string. An expression that specifies the string that should appear first in the concatenated result string. An expression that specifies the string that should appear second in the concatenated result string. Creates a that invokes the canonical 'Contains' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether or not searchedForString occurs within searchedString. An expression that specifies the string to search for any occurence of searchedForString. An expression that specifies the string to search for in searchedString. Creates a that invokes the canonical 'EndsWith' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether or not stringArgument ends with suffix. An expression that specifies the string that is searched at the end for string suffix. An expression that specifies the target string that is searched for at the end of stringArgument. Creates a that invokes the canonical 'IndexOf' function with the specified arguments, which must each have a string result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the first index of stringToFind in searchString. An expression that specifies the string to search for stringToFind. An expression that specifies the string to locate within searchString should be checked. Creates a that invokes the canonical 'Left' function with the specified arguments, which must have a string and integer numeric result type. The result type of the expression is string. A new DbFunctionExpression that returns the the leftmost substring of length length from stringArgument. An expression that specifies the string from which to extract the leftmost substring. An expression that specifies the length of the leftmost substring to extract from stringArgument. Creates a that invokes the canonical 'Length' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the length of stringArgument. An expression that specifies the string for which the length should be computed. Creates a that invokes the canonical 'Replace' function with the specified arguments, which must each have a string result type. The result type of the expression is also string. A new DbFunctionExpression than returns a new string based on stringArgument where every occurence of toReplace is replaced by replacement. An expression that specifies the string in which to perform the replacement operation. An expression that specifies the string that is replaced. An expression that specifies the replacement string. Creates a that invokes the canonical 'Reverse' function with the specified argument, which must have a string result type. The result type of the expression is also string. A new DbFunctionExpression that produces the reversed value of stringArgument. An expression that specifies the string to reverse. Creates a that invokes the canonical 'Right' function with the specified arguments, which must have a string and integer numeric result type. The result type of the expression is string. A new DbFunctionExpression that returns the the rightmost substring of length length from stringArgument. An expression that specifies the string from which to extract the rightmost substring. An expression that specifies the length of the rightmost substring to extract from stringArgument. Creates a that invokes the canonical 'StartsWith' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether or not stringArgument starts with prefix. An expression that specifies the string that is searched at the start for string prefix. An expression that specifies the target string that is searched for at the start of stringArgument. Creates a that invokes the canonical 'Substring' function with the specified arguments, which must have a string and integer numeric result types. The result type of the expression is string. A new DbFunctionExpression that returns the substring of length length from stringArgument starting at start. An expression that specifies the string from which to extract the substring. An expression that specifies the starting index from which the substring should be taken. An expression that specifies the length of the substring. Creates a that invokes the canonical 'ToLower' function with the specified argument, which must have a string result type. The result type of the expression is also string. A new DbFunctionExpression that returns value of stringArgument converted to lower case. An expression that specifies the string that should be converted to lower case. Creates a that invokes the canonical 'ToUpper' function with the specified argument, which must have a string result type. The result type of the expression is also string. A new DbFunctionExpression that returns value of stringArgument converted to upper case. An expression that specifies the string that should be converted to upper case. Creates a that invokes the canonical 'Trim' function with the specified argument, which must have a string result type. The result type of the expression is also string. A new DbFunctionExpression that returns value of stringArgument with leading and trailing space removed. An expression that specifies the string from which leading and trailing space should be removed. Creates a that invokes the canonical 'RTrim' function with the specified argument, which must have a string result type. The result type of the expression is also string. A new DbFunctionExpression that returns value of stringArgument with trailing space removed. An expression that specifies the string from which trailing space should be removed. Creates a that invokes the canonical 'LTrim' function with the specified argument, which must have a string result type. The result type of the expression is also string. A new DbFunctionExpression that returns value of stringArgument with leading space removed. An expression that specifies the string from which leading space should be removed. Creates a that invokes the canonical 'Year' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the integer year value from dateValue. An expression that specifies the value from which the year should be retrieved. Creates a that invokes the canonical 'Month' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the integer month value from dateValue. An expression that specifies the value from which the month should be retrieved. Creates a that invokes the canonical 'Day' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the integer day value from dateValue. An expression that specifies the value from which the day should be retrieved. Creates a that invokes the canonical 'DayOfYear' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the integer day of year value from dateValue. An expression that specifies the value from which the day within the year should be retrieved. Creates a that invokes the canonical 'Hour' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the integer hour value from timeValue. An expression that specifies the value from which the hour should be retrieved. Creates a that invokes the canonical 'Minute' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the integer minute value from timeValue. An expression that specifies the value from which the minute should be retrieved. Creates a that invokes the canonical 'Second' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the integer second value from timeValue. An expression that specifies the value from which the second should be retrieved. Creates a that invokes the canonical 'Millisecond' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the integer millisecond value from timeValue. An expression that specifies the value from which the millisecond should be retrieved. Creates a that invokes the canonical 'GetTotalOffsetMinutes' function with the specified argument, which must have a DateTimeOffset result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the number of minutes dateTimeOffsetArgument is offset from GMT. An expression that specifies the DateTimeOffset value from which the minute offset from GMT should be retrieved. Creates a that invokes the canonical 'CurrentDateTime' function. A new DbFunctionExpression that returns the current date and time as an Edm.DateTime instance. Creates a that invokes the canonical 'CurrentDateTimeOffset' function. A new DbFunctionExpression that returns the current date and time as an Edm.DateTimeOffset instance. Creates a that invokes the canonical 'CurrentUtcDateTime' function. A new DbFunctionExpression that returns the current UTC date and time as an Edm.DateTime instance. Creates a that invokes the canonical 'TruncateTime' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is the same as the result type of dateValue. A new DbFunctionExpression that returns the value of dateValue with time set to zero. An expression that specifies the value for which the time portion should be truncated. Creates a that invokes the canonical 'CreateDateTime' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.DateTime. A new DbFunctionExpression that returns a new DateTime based on the specified values. An expression that provides the year value for the new DateTime instance. An expression that provides the month value for the new DateTime instance. An expression that provides the day value for the new DateTime instance. An expression that provides the hour value for the new DateTime instance. An expression that provides the minute value for the new DateTime instance. An expression that provides the second value for the new DateTime instance. Creates a that invokes the canonical 'CreateDateTimeOffset' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.DateTimeOffset. A new DbFunctionExpression that returns a new DateTimeOffset based on the specified values. An expression that provides the year value for the new DateTimeOffset instance. An expression that provides the month value for the new DateTimeOffset instance. An expression that provides the day value for the new DateTimeOffset instance. An expression that provides the hour value for the new DateTimeOffset instance. An expression that provides the minute value for the new DateTimeOffset instance. An expression that provides the second value for the new DateTimeOffset instance. An expression that provides the number of minutes in the time zone offset value for the new DateTimeOffset instance. Creates a that invokes the canonical 'CreateTime' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.Time. A new DbFunctionExpression that returns a new Time based on the specified values. An expression that provides the hour value for the new DateTime instance. An expression that provides the minute value for the new DateTime instance. An expression that provides the second value for the new DateTime instance. Creates a that invokes the canonical 'AddYears' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue. A new DbFunctionExpression that adds the number of years specified by addValue to the value specified by dateValue. An expression that specifies the value to which addValueshould be added. An expression that specifies the number of years to add to dateValue. Creates a that invokes the canonical 'AddMonths' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue. A new DbFunctionExpression that adds the number of months specified by addValue to the value specified by dateValue. An expression that specifies the value to which addValueshould be added. An expression that specifies the number of months to add to dateValue. Creates a that invokes the canonical 'AddDays' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue. A new DbFunctionExpression that adds the number of days specified by addValue to the value specified by dateValue. An expression that specifies the value to which addValueshould be added. An expression that specifies the number of days to add to dateValue. Creates a that invokes the canonical 'AddHours' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. A new DbFunctionExpression that adds the number of hours specified by addValue to the value specified by timeValue. An expression that specifies the value to which addValueshould be added. An expression that specifies the number of hours to add to timeValue. Creates a that invokes the canonical 'AddMinutes' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. A new DbFunctionExpression that adds the number of minutes specified by addValue to the value specified by timeValue. An expression that specifies the value to which addValueshould be added. An expression that specifies the number of minutes to add to timeValue. Creates a that invokes the canonical 'AddSeconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. A new DbFunctionExpression that adds the number of seconds specified by addValue to the value specified by timeValue. An expression that specifies the value to which addValueshould be added. An expression that specifies the number of seconds to add to timeValue. Creates a that invokes the canonical 'AddMilliseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. A new DbFunctionExpression that adds the number of milliseconds specified by addValue to the value specified by timeValue. An expression that specifies the value to which addValueshould be added. An expression that specifies the number of milliseconds to add to timeValue. Creates a that invokes the canonical 'AddMicroseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. A new DbFunctionExpression that adds the number of microseconds specified by addValue to the value specified by timeValue. An expression that specifies the value to which addValueshould be added. An expression that specifies the number of microseconds to add to timeValue. Creates a that invokes the canonical 'AddNanoseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. A new DbFunctionExpression that adds the number of nanoseconds specified by addValue to the value specified by timeValue. An expression that specifies the value to which addValueshould be added. An expression that specifies the number of nanoseconds to add to timeValue. Creates a that invokes the canonical 'DiffYears' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the number of years that is the difference between dateValue1 and dateValue2. An expression that specifies the first date value argument. An expression that specifies the second date value argument. Creates a that invokes the canonical 'DiffMonths' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the number of months that is the difference between dateValue1 and dateValue2. An expression that specifies the first date value argument. An expression that specifies the second date value argument. Creates a that invokes the canonical 'DiffDays' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the number of days that is the difference between dateValue1 and dateValue2. An expression that specifies the first date value argument. An expression that specifies the second date value argument. Creates a that invokes the canonical 'DiffHours' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the number of hours that is the difference between timeValue1 and timeValue2. An expression that specifies the first time value argument. An expression that specifies the second time value argument. Creates a that invokes the canonical 'DiffMinutes' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the number of minutes that is the difference between timeValue1 and timeValue2. An expression that specifies the first time value argument. An expression that specifies the second time value argument. Creates a that invokes the canonical 'DiffSeconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the number of seconds that is the difference between timeValue1 and timeValue2. An expression that specifies the first time value argument. An expression that specifies the second time value argument. Creates a that invokes the canonical 'DiffMilliseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the number of milliseconds that is the difference between timeValue1 and timeValue2. An expression that specifies the first time value argument. An expression that specifies the second time value argument. Creates a that invokes the canonical 'DiffMicroseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the number of microseconds that is the difference between timeValue1 and timeValue2. An expression that specifies the first time value argument. An expression that specifies the second time value argument. Creates a that invokes the canonical 'DiffNanoseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the number of nanoseconds that is the difference between timeValue1 and timeValue2. An expression that specifies the first time value argument. An expression that specifies the second time value argument. Creates a that invokes the canonical 'Round' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value. A new DbFunctionExpression that rounds the specified argument to the nearest integer value. An expression that specifies the numeric value to round. Creates a that invokes the canonical 'Round' function with the specified arguments, which must have a single, double or decimal, and integer result types. The result type of the expression is the same as the result type of value. A new DbFunctionExpression that rounds the specified argument to the nearest integer value, with precision as specified by digits. An expression that specifies the numeric value to round. An expression that specifies the number of digits of precision to use when rounding. Creates a that invokes the canonical 'Floor' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value. A new DbFunctionExpression that returns the largest integer value not greater than value. An expression that specifies the numeric value. Creates a that invokes the canonical 'Ceiling' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value. A new DbFunctionExpression that returns the smallest integer value not less than than value. An expression that specifies the numeric value. Creates a that invokes the canonical 'Abs' function with the specified argument, which must each have a numeric result type. The result type of the expression is the same as the result type of value. A new DbFunctionExpression that returns the absolute value of value. An expression that specifies the numeric value. Creates a that invokes the canonical 'Truncate' function with the specified arguments, which must have a single, double or decimal, and integer result types. The result type of the expression is the same as the result type of value. A new DbFunctionExpression that truncates the specified argument to the nearest integer value, with precision as specified by digits. An expression that specifies the numeric value to truncate. An expression that specifies the number of digits of precision to use when truncating. Creates a that invokes the canonical 'Power' function with the specified arguments, which must have numeric result types. The result type of the expression is the same as the result type of baseArgument. A new DbFunctionExpression that returns the value of baseArgument raised to the power specified by exponent. An expression that specifies the numeric value to raise to the given power. An expression that specifies the power to which baseArgument should be raised. Creates a that invokes the canonical 'BitwiseAnd' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments. A new DbFunctionExpression that returns the value produced by performing the bitwise AND of value1 and value2. An expression that specifies the first operand. An expression that specifies the second operand. Creates a that invokes the canonical 'BitwiseOr' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments. A new DbFunctionExpression that returns the value produced by performing the bitwise OR of value1 and value2. An expression that specifies the first operand. An expression that specifies the second operand. Creates a that invokes the canonical 'BitwiseNot' function with the specified argument, which must have an integer numeric result type. The result type of the expression is the same as the type of the arguments. A new DbFunctionExpression that returns the value produced by performing the bitwise NOT of value. An expression that specifies the first operand. Creates a that invokes the canonical 'BitwiseXor' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments. A new DbFunctionExpression that returns the value produced by performing the bitwise XOR (exclusive OR) of value1 and value2. An expression that specifies the first operand. An expression that specifies the second operand. Creates a that invokes the canonical 'NewGuid' function. A new DbFunctionExpression that returns a new GUID value. Provides a constructor-like means of calling . Initializes a new instance of the class with the specified first column value and optional successive column values. A key-value pair that provides the first column in the new row instance. (required) A key-value pairs that provide any subsequent columns in the new row instance. (optional) Creates a new that constructs a new row based on the columns contained in this Row instance. A new DbNewInstanceExpression that constructs a row with the same column names and DbExpression values as this Row instance. Converts the given Row instance into an instance of The Row instance. A DbExpression based on the Row instance is null. Provides an API to construct s that invoke spatial realted canonical EDM functions, and, where appropriate, allows that API to be accessed as extension methods on the expression type itself. Creates a that invokes the canonical 'GeometryFromText' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geometry. Its value has the default coordinate system id (SRID) of the underlying provider. A new DbFunctionExpression that returns a new geometry value based on the specified value. An expression that provides the well known text representation of the geometry value. Creates a that invokes the canonical 'GeometryFromText' function with the specified arguments. wellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry value based on the specified values. An expression that provides the well known text representation of the geometry value. An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system. Creates a that invokes the canonical 'GeometryPointFromText' function with the specified arguments. pointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry point value based on the specified values. An expression that provides the well known text representation of the geometry point value. An expression that provides the coordinate system id (SRID) of the geometry point value's coordinate system. Creates a that invokes the canonical 'GeometryLineFromText' function with the specified arguments. lineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry line value based on the specified values. An expression that provides the well known text representation of the geometry line value. An expression that provides the coordinate system id (SRID) of the geometry line value's coordinate system. Creates a that invokes the canonical 'GeometryPolygonFromText' function with the specified arguments. polygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry polygon value based on the specified values. An expression that provides the well known text representation of the geometry polygon value. An expression that provides the coordinate system id (SRID) of the geometry polygon value's coordinate system. Creates a that invokes the canonical 'GeometryMultiPointFromText' function with the specified arguments. multiPointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry multi-point value based on the specified values. An expression that provides the well known text representation of the geometry multi-point value. An expression that provides the coordinate system id (SRID) of the geometry multi-point value's coordinate system. Creates a that invokes the canonical 'GeometryMultiLineFromText' function with the specified arguments. multiLineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry multi-line value based on the specified values. An expression that provides the well known text representation of the geometry multi-line value. An expression that provides the coordinate system id (SRID) of the geometry multi-line value's coordinate system. Creates a that invokes the canonical 'GeometryMultiPolygonFromText' function with the specified arguments. multiPolygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry multi-polygon value based on the specified values. An expression that provides the well known text representation of the geometry multi-polygon value. An expression that provides the coordinate system id (SRID) of the geometry multi-polygon value's coordinate system. Creates a that invokes the canonical 'GeometryCollectionFromText' function with the specified arguments. geometryCollectionWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry collection value based on the specified values. An expression that provides the well known text representation of the geometry collection value. An expression that provides the coordinate system id (SRID) of the geometry collection value's coordinate system. Creates a that invokes the canonical 'GeometryFromBinary' function with the specified argument, which must have a binary result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry value based on the specified binary value. An expression that provides the well known binary representation of the geometry value. Creates a that invokes the canonical 'GeometryFromBinary' function with the specified arguments. wellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry value based on the specified values. An expression that provides the well known binary representation of the geometry value. An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system. Creates a that invokes the canonical 'GeometryPointFromBinary' function with the specified arguments. pointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry point value based on the specified values. An expression that provides the well known binary representation of the geometry point value. An expression that provides the coordinate system id (SRID) of the geometry point value's coordinate system. Creates a that invokes the canonical 'GeometryLineFromBinary' function with the specified arguments. lineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry line value based on the specified values. An expression that provides the well known binary representation of the geometry line value. An expression that provides the coordinate system id (SRID) of the geometry line value's coordinate system. Creates a that invokes the canonical 'GeometryPolygonFromBinary' function with the specified arguments. polygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry polygon value based on the specified values. An expression that provides the well known binary representation of the geometry polygon value. An expression that provides the coordinate system id (SRID) of the geometry polygon value's coordinate system. Creates a that invokes the canonical 'GeometryMultiPointFromBinary' function with the specified arguments. multiPointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry multi-point value based on the specified values. An expression that provides the well known binary representation of the geometry multi-point value. An expression that provides the coordinate system id (SRID) of the geometry multi-point value's coordinate system. Creates a that invokes the canonical 'GeometryMultiLineFromBinary' function with the specified arguments. multiLineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry multi-line value based on the specified values. An expression that provides the well known binary representation of the geometry multi-line value. An expression that provides the coordinate system id (SRID) of the geometry multi-line value's coordinate system. Creates a that invokes the canonical 'GeometryMultiPolygonFromBinary' function with the specified arguments. multiPolygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry multi-polygon value based on the specified values. An expression that provides the well known binary representation of the geometry multi-polygon value. An expression that provides the coordinate system id (SRID) of the geometry multi-polygon value's coordinate system. Creates a that invokes the canonical 'GeometryCollectionFromBinary' function with the specified arguments. geometryCollectionWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry collection value based on the specified values. An expression that provides the well known binary representation of the geometry collection value. An expression that provides the coordinate system id (SRID) of the geometry collection value's coordinate system. Creates a that invokes the canonical 'GeometryFromGml' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry value based on the specified value with the default coordinate system id (SRID) of the underlying provider. An expression that provides the Geography Markup Language (GML) representation of the geometry value. Creates a that invokes the canonical 'GeometryFromGml' function with the specified arguments. geometryMarkup must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry value based on the specified values. An expression that provides the Geography Markup Language (GML) representation of the geometry value. An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system. Creates a that invokes the canonical 'GeographyFromText' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geography. Its value has the default coordinate system id (SRID) of the underlying provider. A new DbFunctionExpression that returns a new geography value based on the specified value. An expression that provides the well known text representation of the geography value. Creates a that invokes the canonical 'GeographyFromText' function with the specified arguments. wellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography value based on the specified values. An expression that provides the well known text representation of the geography value. An expression that provides the coordinate system id (SRID) of the geography value's coordinate system. Creates a that invokes the canonical 'GeographyPointFromText' function with the specified arguments. The canonical 'GeographyPointFromText' function. An expression that provides the well-known text representation of the geography point value. An expression that provides the coordinate system id (SRID) of the geography point value's coordinate systempointWellKnownTextValue. Creates a that invokes the canonical 'GeographyLineFromText' function with the specified arguments. lineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography line value based on the specified values. An expression that provides the well known text representation of the geography line value. An expression that provides the coordinate system id (SRID) of the geography line value's coordinate system. Creates a that invokes the canonical 'GeographyPolygonFromText' function with the specified arguments. polygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography polygon value based on the specified values. An expression that provides the well known text representation of the geography polygon value. An expression that provides the coordinate system id (SRID) of the geography polygon value's coordinate system. Creates a that invokes the canonical 'GeographyMultiPointFromText' function with the specified arguments. multiPointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography multi-point value based on the specified values. An expression that provides the well known text representation of the geography multi-point value. An expression that provides the coordinate system id (SRID) of the geography multi-point value's coordinate system. Creates a that invokes the canonical 'GeographyMultiLineFromText' function with the specified arguments. multiLineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography multi-line value based on the specified values. An expression that provides the well known text representation of the geography multi-line value. An expression that provides the coordinate system id (SRID) of the geography multi-line value's coordinate system. Creates a that invokes the canonical 'GeographyMultiPolygonFromText' function with the specified arguments. multiPolygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography multi-polygon value based on the specified values. An expression that provides the well known text representation of the geography multi-polygon value. An expression that provides the coordinate system id (SRID) of the geography multi-polygon value's coordinate system. Creates a that invokes the canonical 'GeographyCollectionFromText' function with the specified arguments. geographyCollectionWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography collection value based on the specified values. An expression that provides the well known text representation of the geography collection value. An expression that provides the coordinate system id (SRID) of the geography collection value's coordinate system. Creates a that invokes the canonical 'GeographyFromBinary' function with the specified argument, which must have a binary result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography value based on the specified binary value. An expression that provides the well known binary representation of the geography value. Creates a that invokes the canonical 'GeographyFromBinary' function with the specified arguments. wellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography value based on the specified values. An expression that provides the well known binary representation of the geography value. An expression that provides the coordinate system id (SRID) of the geography value's coordinate system. Creates a that invokes the canonical 'GeographyPointFromBinary' function with the specified arguments. pointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography point value based on the specified values. An expression that provides the well known binary representation of the geography point value. An expression that provides the coordinate system id (SRID) of the geography point value's coordinate systempointWellKnownBinaryValue. Creates a that invokes the canonical 'GeographyLineFromBinary' function with the specified arguments. lineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography line value based on the specified values. An expression that provides the well known binary representation of the geography line value. An expression that provides the coordinate system id (SRID) of the geography line value's coordinate system. Creates a that invokes the canonical 'GeographyPolygonFromBinary' function with the specified arguments. polygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography polygon value based on the specified values. An expression that provides the well known binary representation of the geography polygon value. An expression that provides the coordinate system id (SRID) of the geography polygon value's coordinate system. Creates a that invokes the canonical 'GeographyMultiPointFromBinary' function with the specified arguments. multiPointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography multi-point value based on the specified values. An expression that provides the well known binary representation of the geography multi-point value. An expression that provides the coordinate system id (SRID) of the geography multi-point value's coordinate system. Creates a that invokes the canonical 'GeographyMultiLineFromBinary' function with the specified arguments. multiLineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography multi-line value based on the specified values. An expression that provides the well known binary representation of the geography multi-line value. An expression that provides the coordinate system id (SRID) of the geography multi-line value's coordinate system. Creates a that invokes the canonical 'GeographyMultiPolygonFromBinary' function with the specified arguments. multiPolygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography multi-polygon value based on the specified values. An expression that provides the well known binary representation of the geography multi-polygon value. An expression that provides the coordinate system id (SRID) of the geography multi-polygon value's coordinate system. Creates a that invokes the canonical 'GeographyCollectionFromBinary' function with the specified arguments. geographyCollectionWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography collection value based on the specified values. An expression that provides the well known binary representation of the geography collection value. An expression that provides the coordinate system id (SRID) of the geography collection value's coordinate system. Creates a that invokes the canonical 'GeographyFromGml' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography value based on the specified value with the default coordinate system id (SRID) of the underlying provider. An expression that provides the Geography Markup Language (GML) representation of the geography value. Creates a that invokes the canonical 'GeographyFromGml' function with the specified arguments. geographyMarkup must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography value based on the specified values. An expression that provides the Geography Markup Language (GML) representation of the geography value. An expression that provides the coordinate system id (SRID) of the geography value's coordinate system. Creates a that invokes the canonical 'CoordinateSystemId' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the integer SRID value from spatialValue. An expression that specifies the value from which the coordinate system id (SRID) should be retrieved. Creates a that invokes the canonical 'SpatialTypeName' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String. A new DbFunctionExpression that returns the string Geometry Type name from spatialValue. An expression that specifies the value from which the Geometry Type name should be retrieved. Creates a that invokes the canonical 'SpatialDimension' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the Dimension value from spatialValue. An expression that specifies the value from which the Dimension value should be retrieved. Creates a that invokes the canonical 'SpatialEnvelope' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns the the minimum bounding box for geometryValue. An expression that specifies the value from which the Envelope value should be retrieved. Creates a that invokes the canonical 'AsBinary' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Binary. A new DbFunctionExpression that returns the well known binary representation of spatialValue. An expression that specifies the spatial value from which the well known binary representation should be produced. Creates a that invokes the canonical 'AsGml' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String. A new DbFunctionExpression that returns the Geography Markup Language (GML) representation of spatialValue. An expression that specifies the spatial value from which the Geography Markup Language (GML) representation should be produced. Creates a that invokes the canonical 'AsText' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String. A new DbFunctionExpression that returns the well known text representation of spatialValue. An expression that specifies the spatial value from which the well known text representation should be produced. Creates a that invokes the canonical 'IsEmptySpatial' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue is empty. An expression that specifies the spatial value from which the IsEmptySptiaal value should be retrieved. Creates a that invokes the canonical 'IsSimpleGeometry' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue is a simple geometry. The geometry value. Creates a that invokes the canonical 'SpatialBoundary' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns the the boundary for geometryValue. An expression that specifies the geometry value from which the SpatialBoundary value should be retrieved. Creates a that invokes the canonical 'IsValidGeometry' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue is valid. An expression that specifies the geometry value which should be tested for spatial validity. Creates a that invokes the canonical 'SpatialEquals' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 are equal. An expression that specifies the first spatial value. An expression that specifies the spatial value that should be compared with spatialValue1 for equality. Creates a that invokes the canonical 'SpatialDisjoint' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 are spatially disjoint. An expression that specifies the first spatial value. An expression that specifies the spatial value that should be compared with spatialValue1 for disjointness. Creates a that invokes the canonical 'SpatialIntersects' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 intersect. An expression that specifies the first spatial value. An expression that specifies the spatial value that should be compared with spatialValue1 for intersection. Creates a that invokes the canonical 'SpatialTouches' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 touches geometryValue2. An expression that specifies the first geometry value. An expression that specifies the geometry value that should be compared with geometryValue1. Creates a that invokes the canonical 'SpatialCrosses' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 crosses geometryValue2 intersect. An expression that specifies the first geometry value. An expression that specifies the geometry value that should be compared with geometryValue1. Creates a that invokes the canonical 'SpatialWithin' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 is spatially within geometryValue2. An expression that specifies the first geometry value. An expression that specifies the geometry value that should be compared with geometryValue1. Creates a that invokes the canonical 'SpatialContains' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 spatially contains geometryValue2. An expression that specifies the first geometry value. An expression that specifies the geometry value that should be compared with geometryValue1. Creates a that invokes the canonical 'SpatialOverlaps' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 spatially overlaps geometryValue2. An expression that specifies the first geometry value. An expression that specifies the geometry value that should be compared with geometryValue1. Creates a that invokes the canonical 'SpatialRelate' function with the specified arguments, which must have Edm.Geometry and string result types. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 is spatially related to geometryValue2 according to the spatial relationship designated by intersectionPatternMatrix. An expression that specifies the first geometry value. An expression that specifies the geometry value that should be compared with geometryValue1. An expression that specifies the text representation of the Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern used to compare geometryValue1 and geometryValue2. Creates a that invokes the canonical 'SpatialBuffer' function with the specified arguments, which must have a Edm.Geography or Edm.Geometry and Edm.Double result types. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a geometry value representing all points less than or equal to distance from spatialValue. An expression that specifies the spatial value. An expression that specifies the buffer distance. Creates a that invokes the canonical 'Distance' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Double. A new DbFunctionExpression that returns the distance between the closest points in spatialValue1 and spatialValue1. An expression that specifies the first spatial value. An expression that specifies the spatial value from which the distance from spatialValue1 should be measured. Creates a that invokes the canonical 'SpatialConvexHull' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns the the convex hull for geometryValue. An expression that specifies the geometry value from which the convex hull value should be retrieved. Creates a that invokes the canonical 'SpatialIntersection' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. A new DbFunctionExpression that returns the spatial value representing the intersection of spatialValue1 and spatialValue2. An expression that specifies the first spatial value. An expression that specifies the spatial value for which the intersection with spatialValue1 should be computed. Creates a that invokes the canonical 'SpatialUnion' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. A new DbFunctionExpression that returns the spatial value representing the union of spatialValue1 and spatialValue2. An expression that specifies the first spatial value. An expression that specifies the spatial value for which the union with spatialValue1 should be computed. Creates a that invokes the canonical 'SpatialDifference' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. A new DbFunctionExpression that returns the geometry value representing the difference of spatialValue2 with spatialValue1. An expression that specifies the first spatial value. An expression that specifies the spatial value for which the difference with spatialValue1 should be computed. Creates a that invokes the canonical 'SpatialSymmetricDifference' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. A new DbFunctionExpression that returns the geometry value representing the symmetric difference of spatialValue2 with spatialValue1. An expression that specifies the first spatial value. An expression that specifies the spatial value for which the symmetric difference with spatialValue1 should be computed. Creates a that invokes the canonical 'SpatialElementCount' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns either the number of elements in spatialValue or null if spatialValue is not a collection. An expression that specifies the geography or geometry collection value from which the number of elements should be retrieved. Creates a that invokes the canonical 'SpatialElementAt' function with the specified arguments. The first argument must have an Edm.Geography or Edm.Geometry result type. The second argument must have an integer numeric result type. The result type of the expression is the same as that of spatialValue. A new DbFunctionExpression that returns either the collection element at position indexValue in spatialValue or null if spatialValue is not a collection. An expression that specifies the geography or geometry collection value. An expression that specifies the position of the element to be retrieved from within the geometry or geography collection. Creates a that invokes the canonical 'XCoordinate' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Double. A new DbFunctionExpression that returns either the X co-ordinate value of geometryValue or null if geometryValue is not a point. An expression that specifies the geometry point value from which the X co-ordinate value should be retrieved. Creates a that invokes the canonical 'YCoordinate' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Double. A new DbFunctionExpression that returns either the Y co-ordinate value of geometryValue or null if geometryValue is not a point. An expression that specifies the geometry point value from which the Y co-ordinate value should be retrieved. Creates a that invokes the canonical 'Elevation' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. A new DbFunctionExpression that returns either the elevation value of spatialValue or null if spatialValue is not a point. An expression that specifies the spatial point value from which the elevation (Z co-ordinate) value should be retrieved. Creates a that invokes the canonical 'Measure' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. A new DbFunctionExpression that returns either the Measure of spatialValue or null if spatialValue is not a point. An expression that specifies the spatial point value from which the Measure (M) co-ordinate value should be retrieved. Creates a that invokes the canonical 'Latitude' function with the specified argument, which must have an Edm.Geography result type. The result type of the expression is Edm.Double. A new DbFunctionExpression that returns either the Latitude value of geographyValue or null if geographyValue is not a point. An expression that specifies the geography point value from which the Latitude value should be retrieved. Creates a that invokes the canonical 'Longitude' function with the specified argument, which must have an Edm.Geography result type. The result type of the expression is Edm.Double. A new DbFunctionExpression that returns either the Longitude value of geographyValue or null if geographyValue is not a point. An expression that specifies the geography point value from which the Longitude value should be retrieved. Creates a that invokes the canonical 'SpatialLength' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. A new DbFunctionExpression that returns either the length of spatialValue or null if spatialValue is not a curve. An expression that specifies the spatial curve value from which the length should be retrieved. Creates a that invokes the canonical 'StartPoint' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is the same as that of spatialValue. A new DbFunctionExpression that returns either the start point of spatialValue or null if spatialValue is not a curve. An expression that specifies the spatial curve value from which the start point should be retrieved. Creates a that invokes the canonical 'EndPoint' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is the same as that of spatialValue. A new DbFunctionExpression that returns either the end point of spatialValue or null if spatialValue is not a curve. An expression that specifies the spatial curve value from which the end point should be retrieved. Creates a that invokes the canonical 'IsClosedSpatial' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is Edm.Boolean. A new DbFunctionExpression that returns either a Boolean value indicating whether spatialValue is closed, or null if spatialValue is not a curve. An expression that specifies the spatial curve value from which the IsClosedSpatial value should be retrieved. Creates a that invokes the canonical 'IsRing' function with the specified argument, which must have an Edm.Geometry result type. The result type is Edm.Boolean. A new DbFunctionExpression that returns either a Boolean value indicating whether geometryValue is a ring (both closed and simple), or null if geometryValue is not a curve. An expression that specifies the geometry curve value from which the IsRing value should be retrieved. Creates a that invokes the canonical 'PointCount' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns either the number of points in spatialValue or null if spatialValue is not a line string. An expression that specifies the spatial line string value from which the number of points should be retrieved. Creates a that invokes the canonical 'PointAt' function with the specified arguments. The first argument must have an Edm.Geography or Edm.Geometry result type. The second argument must have an integer numeric result type. The result type of the expression is the same as that of spatialValue. A new DbFunctionExpression that returns either the point at position indexValue in spatialValue or null if spatialValue is not a line string. An expression that specifies the spatial line string value. An expression that specifies the position of the point to be retrieved from within the line string. Creates a that invokes the canonical 'Area' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. A new DbFunctionExpression that returns either the area of spatialValue or null if spatialValue is not a surface. An expression that specifies the spatial surface value for which the area should be calculated. Creates a that invokes the canonical 'Centroid' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns either the centroid point of geometryValue (which may not be on the surface itself) or null if geometryValue is not a surface. An expression that specifies the geometry surface value from which the centroid should be retrieved. Creates a that invokes the canonical 'PointOnSurface' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns either a point guaranteed to be on the surface geometryValue or null if geometryValue is not a surface. An expression that specifies the geometry surface value from which the point should be retrieved. Creates a that invokes the canonical 'ExteriorRing' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns either the exterior ring of the polygon geometryValue or null if geometryValue is not a polygon. The geometry value. Creates a that invokes the canonical 'InteriorRingCount' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns either the number of interior rings in the polygon geometryValue or null if geometryValue is not a polygon. The geometry value. Creates a that invokes the canonical 'InteriorRingAt' function with the specified arguments. The first argument must have an Edm.Geometry result type. The second argument must have an integer numeric result types. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns either the interior ring at position indexValue in geometryValue or null if geometryValue is not a polygon. The geometry value. An expression that specifies the position of the interior ring to be retrieved from within the polygon. Ensures that all metadata in a given expression tree is from the specified metadata workspace, potentially rebinding and rebuilding the expressions to appropriate replacement metadata where necessary. Initializes a new instance of the class. The target workspace. Implements the visitor pattern for the entity set. The implemented visitor pattern. The entity set. Implements the visitor pattern for the function. The implemented visitor pattern. The function metadata. Implements the visitor pattern for the type. The implemented visitor pattern. The type. Implements the visitor pattern for the type usage. The implemented visitor pattern. The type. Implements the visitor pattern for retrieving an instance property. The implemented visitor. The expression. Represents a boolean expression that tests whether a specified item matches any element in a list. The visitor pattern method for expression visitors that do not produce a result value. An instance of DbExpressionVisitor. is null The visitor pattern method for expression visitors that produce a result value of a specific type. An instance of a typed DbExpressionVisitor that produces a result value of type TResultType. The type of the result produced by is null An instance of . Gets a DbExpression that specifies the item to be matched. Gets the list of DbExpression to test for a match. Represents the retrieval of the key value of the specified Reference as a row. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Represents the set union (without duplicate removal) operation between the left and right operands. DbUnionAllExpression requires that its arguments have a common collection result type Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Represents a 'scan' of all elements of a given entity set. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the metadata for the referenced entity or relationship set. The metadata for the referenced entity or relationship set. Extension methods for . Gets the conceptual model from the specified DbModel. An instance of a class that implements IEdmModelAdapter (ex. DbModel). An instance of EdmModel that represents the conceptual model. Gets the store model from the specified DbModel. An instance of a class that implements IEdmModelAdapter (ex. DbModel). An instance of EdmModel that represents the store model. An interface to get the underlying store and conceptual model for a . Gets the conceptual model. Gets the store model. Inherit from this class to create a service that allows for code generation of custom annotations as part of scaffolding Migrations. The derived class should be set onto the . Note that an is not needed if the annotation uses a simple string value, or if calling ToString on the annotation object is sufficient for use in the scaffolded Migration. Override this method to return additional namespaces that should be included in the code generated for the scaffolded migration. The default implementation returns an empty enumeration. The names of the annotations that are being included in the generated code. A list of additional namespaces to include. Implement this method to generate code for the given annotation value. The name of the annotation for which a value is being generated. The annotation value. The writer to which generated code should be written. Represents a pair of annotation values in a scaffolded or hand-coded . Code First allows for custom annotations to be associated with columns and tables in the generated model. This class represents a pair of annotation values in a migration such that when the Code First model changes the old annotation value and the new annotation value can be provided to the migration and used in SQL generation. Creates a new pair of annotation values. The old value of the annotation, which may be null if the annotation has just been created. The new value of the annotation, which may be null if the annotation has been deleted. Returns true if both annotation pairs contain the same values, otherwise false. A pair of annotation values. A pair of annotation values. True if both pairs contain the same values. Returns true if the two annotation pairs contain different values, otherwise false. A pair of annotation values. A pair of annotation values. True if the pairs contain different values. Gets the old value of the annotation, which may be null if the annotation has just been created. Gets the new value of the annotation, which may be null if the annotation has been deleted. Returned by and related methods to indicate whether or not one object does not conflict with another such that the two can be combined into one. If the two objects are not compatible then information about why they are not compatible is contained in the property. Creates a new instance. Indicates whether or not the two tested objects are compatible. An error message indicating how the objects are not compatible. Expected to be null if isCompatible is true. Implicit conversion to a bool to allow the result object to be used directly in checks. The object to convert. True if the result is compatible; false otherwise. True if the two tested objects are compatible; otherwise false. If is true, then returns an error message indicating how the two tested objects are incompatible. Types used as custom annotations can implement this interface to indicate that an attempt to use multiple annotations with the same name on a given table or column may be possible by merging the multiple annotations into one. Normally there can only be one custom annotation with a given name on a given table or column. If a table or column ends up with multiple annotations, for example, because multiple CLR properties map to the same column, then an exception will be thrown. However, if the annotation type implements this interface, then the two annotations will be checked for compatibility using the method and, if compatible, will be merged into one using the method. Returns true if this annotation does not conflict with the given annotation such that the two can be combined together using the method. The annotation to compare. A CompatibilityResult indicating whether or not this annotation is compatible with the other. Merges this annotation with the given annotation and returns a new merged annotation. This method is only expected to succeed if returns true. The annotation to merge with this one. A new merged annotation. Instances of this class are used as custom annotations for representing database indexes in an Entity Framework model. An index annotation is added to a Code First model when an is placed on a mapped property of that model. This is used by Entity Framework Migrations to create indexes on mapped database columns. Note that multiple index attributes on a property will be merged into a single annotation for the column. Similarly, index attributes on multiple properties that map to the same column will be merged into a single annotation for the column. This means that one index annotation can represent multiple indexes. Within an annotation there can be only one index with any given name. The name used when this annotation is stored in Entity Framework metadata or serialized into an SSDL/EDMX file. Creates a new annotation for the given index. An index attributes representing an index. Creates a new annotation for the given collection of indexes. Index attributes representing one or more indexes. Returns true if this annotation does not conflict with the given annotation such that the two can be combined together using the method. Each index annotation contains at most one with a given name. Two annotations are considered compatible if each IndexAttribute with a given name is only contained in one annotation or the other, or if both annotations contain an IndexAttribute with the given name. The annotation to compare. A CompatibilityResult indicating whether or not this annotation is compatible with the other. Merges this annotation with the given annotation and returns a new annotation containing the merged indexes. Each index annotation contains at most one with a given name. The merged annotation will contain IndexAttributes from both this and the other annotation. If both annotations contain an IndexAttribute with the same name, then the merged annotation will contain one IndexAttribute with that name. The annotation to merge with this one. A new annotation with indexes from both annotations merged. The other annotation contains indexes that are not compatible with indexes in this annotation. Gets the indexes represented by this annotation. This class is used to serialize and deserialize objects so that they can be stored in the EDMX form of the Entity Framework model. An example of the serialized format is: { Name: 'MyIndex', Order: 7, IsClustered: True, IsUnique: False } { } { Name: 'MyOtherIndex' }. Note that properties that have not been explicitly set in an index attribute will be excluded from the serialized output. So, in the example above, the first index has all properties specified, the second has none, and the third has just the name set. Implement this interface to allow custom annotations represented by instances to be serialized to and from the EDMX XML. Usually a serializer instance is set using the method. Serializes the given annotation value into a string for storage in the EDMX XML. The name of the annotation that is being serialized. The value to serialize. The serialized value. Deserializes the given string back into the expected annotation value. The name of the annotation that is being deserialized. The string to deserialize. The deserialized annotation value. Serializes the given into a string for storage in the EDMX XML. The name of the annotation that is being serialized. The value to serialize which must be an IndexAnnotation object. The serialized value. Deserializes the given string back into an object. The name of the annotation that is being deserialized. The string to deserialize. The deserialized annotation value. If there is an error reading the serialized value. This interface is implemented by any object that can resolve a dependency, either directly or through use of an external container. The public services currently resolved using IDbDependencyResolver are documented here: http://msdn.microsoft.com/en-us/data/jj680697 Attempts to resolve a dependency for a given contract type and optionally a given key. If the resolver cannot resolve the dependency then it must return null and not throw. This allows resolvers to be used in a Chain of Responsibility pattern such that multiple resolvers can be asked to resolve a dependency until one finally does. The interface or abstract base class that defines the dependency to be resolved. The returned object is expected to be an instance of this type. Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key. The resolved dependency, which must be an instance of the given contract type, or null if the dependency could not be resolved. Attempts to resolve a dependencies for a given contract type and optionally a given key. If the resolver cannot resolve the dependency then it must return an empty enumeration and not throw. This method differs from in that it returns all registered services for the given type and key combination. The interface or abstract base class that defines the dependency to be resolved. Every returned object is expected to be an instance of this type. Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key. All services that resolve the dependency, which must be instances of the given contract type, or an empty enumeration if the dependency could not be resolved. An implementation used for resolving factories. Initializes a new instance of A function that returns a new instance of a transaction handler. The ADO.NET provider invariant name indicating the type of ADO.NET connection for which the transaction handler will be used. null will match anything. A string that will be matched against the server name in the connection string. null will match anything. If the given type is , then this method will attempt to return the service to use, otherwise it will return null. When the given type is , then the key is expected to be a . The service type to resolve. A key used to make a determination of the service to return. An , or null. If the given type is , then this resolver will attempt to return the service to use, otherwise it will return an empty enumeration. When the given type is , then the key is expected to be an . The service type to resolve. A key used to make a determination of the service to return. An enumerable of , or an empty enumeration. Provides utility methods for reading from an App.config or Web.config file. Initializes a new instance of . The configuration to read from. Gets the specified provider services from the configuration. The invariant name of the provider services. The provider services type name, or null if not found. A simple logger for logging SQL and other database operations to the console or a file. A logger can be registered in code or in the application's web.config /app.config file. An object that implements this interface can be registered with to receive notifications when Entity Framework loads the application's . Interceptors can also be registered in the config file of the application. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. This is the base interface for all interfaces that provide interception points for various different types and operations. For example, see . Interceptors are registered on the class. Occurs during EF initialization after the has been constructed but just before it is locked ready for use. Use this event to inspect and/or override services that have been registered before the configuration is locked. Note that an interceptor of this type should be used carefully since it may prevent tooling from discovering the same configuration that is used at runtime. Handlers can only be added before EF starts to use the configuration and so handlers should generally be added as part of application initialization. Do not access the DbConfiguration static methods inside the handler; instead use the the members of to get current services and/or add overrides. Arguments to the event that this interceptor mirrors. Contextual information about the event. Creates a new logger that will send log output to the console. Creates a new logger that will send log output to a file. If the file already exists then it is overwritten. A path to the file to which log output will be written. Creates a new logger that will send log output to a file. A path to the file to which log output will be written. True to append data to the file if it exists; false to overwrite the file. Stops logging and closes the underlying file if output is being written to a file. Stops logging and closes the underlying file if output is being written to a file. True to release both managed and unmanaged resources; False to release only unmanaged resources. Starts logging. This method is a no-op if logging is already started. Stops logging. This method is a no-op if logging is not started. Called to start logging during Entity Framework initialization when this logger is registered. as an . Arguments to the event that this interceptor mirrors. Contextual information about the event. Represents contextual information associated with calls into implementations. Instances of this class are publicly immutable for contextual information. To add contextual information use one of the With... or As... methods to create a new interception context containing the new information. Represents contextual information associated with calls into implementations. Note that specific types/operations that can be intercepted may use a more specific interception context derived from this class. For example, if SQL is being executed by a , then the DbContext will be contained in the instance that is passed to the methods of . Instances of this class are publicly immutable for contextual information. To add contextual information use one of the With... or As... methods to create a new interception context containing the new information. Constructs a new with no state. Creates a new by copying state from the given interception context. See The context from which to copy state. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context the flag set to true. A new interception context associated with the async flag set. Call this method when creating a copy of an interception context in order to add new state to it. Using this method instead of calling the constructor directly ensures virtual dispatch so that the new type will have the same type (and any specialized state) as the context that is being cloned. A new context with all state copied. Gets the of the current instance. The exact runtime type of the current instance. Gets all the instances associated with this interception context. This list usually contains zero or one items. However, it can contain more than one item if a single has been used to construct multiple instances. Gets all the instances associated with this interception context. This list usually contains zero or one items. However, it can contain more than one item when EF has created a new for use in database creation and initialization, or if a single is used with multiple . True if the operation is being executed asynchronously, otherwise false. Constructs a new with no state. Creates a new by copying state from the given interception context. Also see The context from which to copy state. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context the flag set to true. A new interception context associated with the async flag set. Implemented by Entity Framework providers and used to check whether or not tables exist in a given database. This is used by database initializers when determining whether or not to treat an existing database as empty such that tables should be created. When overridden in a derived class checks where the given tables exist in the database for the given connection. The context for which table checking is being performed, usually used to obtain an appropriate . A connection to the database. May be open or closed; should be closed again if opened. Do not dispose. The tables to check for existence. The name of the EdmMetadata table to check for existence. True if any of the model tables or EdmMetadata table exists. Helper method to get the table name for the given s-space . The s-space entity set for the table. The table name. Thrown when an error occurs committing a . Initializes a new instance of Initializes a new instance of The exception message. Initializes a new instance of The exception message. The inner exception. Initializes a new instance of the class. The data necessary to serialize or deserialize an object. Description of the source and destination of the specified serialized stream. Event arguments passed to event handlers. Call this method to add a instance to the Chain of Responsibility of resolvers that are used to resolve dependencies needed by the Entity Framework. Resolvers are asked to resolve dependencies in reverse order from which they are added. This means that a resolver can be added to override resolution of a dependency that would already have been resolved in a different way. The only exception to this is that any dependency registered in the application's config file will always be used in preference to using a dependency resolver added here, unless the overrideConfigFile is set to true in which case the resolver added here will also override config file settings. The resolver to add. If true, then the resolver added will take precedence over settings in the config file. Call this method to add a instance to the Chain of Responsibility of resolvers that are used to resolve dependencies needed by the Entity Framework. Unlike the AddDependencyResolver method, this method puts the resolver at the bottom of the Chain of Responsibility such that it will only be used to resolve a dependency that could not be resolved by any of the other resolvers. The resolver to add. Adds a wrapping resolver to the configuration that is about to be locked. A wrapping resolver is a resolver that incepts a service would have been returned by the resolver chain and wraps or replaces it with another service of the same type. The type of service to wrap or replace. A delegate that takes the unwrapped service and key and returns the wrapped or replaced service. Returns a snapshot of the that is about to be locked. Use the GetService methods on this object to get services that have been registered. An implementation used for resolving factories. This class can be used by to aid in the resolving of factories as a default service for the provider. The type of execution strategy that is resolved. Initializes a new instance of The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. A string that will be matched against the server name in the connection string. null will match anything. A function that returns a new instance of an execution strategy. If the given type is , then this resolver will attempt to return the service to use, otherwise it will return null. When the given type is Func{IExecutionStrategy}, then the key is expected to be an . The service type to resolve. A key used to make a determination of the service to return. An , or null. If the given type is , then this resolver will attempt to return the service to use, otherwise it will return an empty enumeration. When the given type is Func{IExecutionStrategy}, then the key is expected to be an . The service type to resolve. A key used to make a determination of the service to return. An enumerable of , or an empty enumeration. Extension methods to call the method using a generic type parameter and/or no name. Calls passing the generic type of the method and the given name as arguments. The contract type to resolve. The resolver to use. The key of the dependency to resolve. The resolved dependency, or null if the resolver could not resolve it. Calls passing the generic type of the method as the type argument and null for the name argument. The contract type to resolve. The resolver to use. The resolved dependency, or null if the resolver could not resolve it. Calls passing the given type argument and using null for the name argument. The resolver to use. The contract type to resolve. The resolved dependency, or null if the resolver could not resolve it. Calls passing the generic type of the method and the given name as arguments. The contract type to resolve. The resolver to use. The key of the dependency to resolve. All resolved dependencies, or an if no services are resolved. Calls passing the generic type of the method as the type argument and null for the name argument. The contract type to resolve. The resolver to use. All resolved dependencies, or an if no services are resolved. Calls passing the given type argument and using null for the name argument. The resolver to use. The contract type to resolve. All resolved dependencies, or an if no services are resolved. Implements to resolve a dependency such that it always returns the same instance. The type that defines the contract for the dependency that will be resolved. This class is immutable such that instances can be accessed by multiple threads at the same time. Constructs a new resolver that will return the given instance for the contract type regardless of the key passed to the Get method. The instance to return. Constructs a new resolver that will return the given instance for the contract type if the given key matches exactly the key passed to the Get method. The instance to return. Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key. Constructs a new resolver that will return the given instance for the contract type if the given key matches the key passed to the Get method based on the given predicate. The instance to return. A predicate that takes the key object and returns true if and only if it matches. Represents contextual information associated with calls to implementations. Instances of this class are publicly immutable for contextual information. To add contextual information use one of the With... or As... methods to create a new interception context containing the new information. Represents contextual information associated with calls to with return type . The return type of the target method. Represents contextual information associated with calls with return type . The return type of the target method. Constructs a new with no state. Creates a new by copying immutable state from the given interception context. Also see The context from which to copy state. Prevents the operation from being executed if called before the operation has executed. Thrown if this method is called after the operation has already executed. Creates a new that contains all the contextual information in this interception context together with the flag set to true. A new interception context associated with the async flag set. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. If execution of the operation completes without throwing, then this property will contain the result of the operation. If the operation was suppressed or did not fail, then this property will always contain the default value for the generic type. When an operation operation completes without throwing both this property and the property are set. However, the property can be set or changed by interceptors, while this property will always represent the actual result returned by the operation, if any. If this property is set before the operation has executed, then execution of the operation will be suppressed and the set result will be returned instead. Otherwise, if the operation succeeds, then this property will be set to the returned result. In either case, interceptors that run after the operation can change this property to change the result that will be returned. When an operation operation completes without throwing both this property and the property are set. However, this property can be set or changed by interceptors, while the property will always represent the actual result returned by the operation, if any. When true, this flag indicates that that execution of the operation has been suppressed by one of the interceptors. This can be done before the operation has executed by calling , by setting an to be thrown, or by setting the operation result using . Gets or sets a value containing arbitrary user-specified state information associated with the operation. If execution of the operation fails, then this property will contain the exception that was thrown. If the operation was suppressed or did not fail, then this property will always be null. When an operation fails both this property and the property are set to the exception that was thrown. However, the property can be set or changed by interceptors, while this property will always represent the original exception thrown. If this property is set before the operation has executed, then execution of the operation will be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then this property will be set to the exception that was thrown. In either case, interceptors that run after the operation can change this property to change the exception that will be thrown, or set this property to null to cause no exception to be thrown at all. When an operation fails both this property and the property are set to the exception that was thrown. However, the this property can be set or changed by interceptors, while the property will always represent the original exception thrown. Set to the status of the after an async operation has finished. Not used for synchronous operations. Constructs a new with no state. Creates a new by copying immutable state from the given interception context. Also see The context from which to copy state. Creates a new that contains all the contextual information in this interception context together with the flag set to true. A new interception context associated with the async flag set. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Constructs a new with no state. Creates a new by copying immutable state from the given interception context. Also see The context from which to copy state. Creates a new that contains all the contextual information in this interception context together with the flag set to true. A new interception context associated with the async flag set. Creates a new that contains all the contextual information in this interception context together with the given . The isolation level to associate. A new interception context associated with the given isolation level. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. The that will be used or has been used to start a transaction. This is the default log formatter used when some is set onto the property. A different formatter can be used by creating a class that inherits from this class and overrides some or all methods to change behavior. To set the new formatter create a code-based configuration for EF using and then set the formatter class to use with . Note that setting the type of formatter to use with this method does change the way command are logged when is used. It is still necessary to set a onto before any commands will be logged. For more low-level control over logging/interception see and . Interceptors can also be registered in the config file of the application. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. An object that implements this interface can be registered with to receive notifications when Entity Framework executes commands. Interceptors can also be registered in the config file of the application. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. This method is called before a call to or one of its async counterparts is made. The command being executed. Contextual information associated with the call. This method is called after a call to or one of its async counterparts is made. The result used by Entity Framework can be changed by setting . For async operations this method is not called until after the async task has completed or failed. The command being executed. Contextual information associated with the call. This method is called before a call to or one of its async counterparts is made. The command being executed. Contextual information associated with the call. This method is called after a call to or one of its async counterparts is made. The result used by Entity Framework can be changed by setting . For async operations this method is not called until after the async task has completed or failed. The command being executed. Contextual information associated with the call. This method is called before a call to or one of its async counterparts is made. The command being executed. Contextual information associated with the call. This method is called after a call to or one of its async counterparts is made. The result used by Entity Framework can be changed by setting . For async operations this method is not called until after the async task has completed or failed. The command being executed. Contextual information associated with the call. An object that implements this interface can be registered with to receive notifications when Entity Framework performs operations on a . Interceptors can also be registered in the config file of the application. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. Called before is invoked. The connection beginning the transaction. Contextual information associated with the call. Called after is invoked. The transaction used by Entity Framework can be changed by setting . The connection that began the transaction. Contextual information associated with the call. Called before is invoked. The connection being closed. Contextual information associated with the call. Called after is invoked. The connection that was closed. Contextual information associated with the call. Called before is retrieved. The connection. Contextual information associated with the call. Called after is retrieved. The connection. Contextual information associated with the call. Called before is set. The connection. Contextual information associated with the call. Called after is set. The connection. Contextual information associated with the call. Called before is retrieved. The connection. Contextual information associated with the call. Called after is retrieved. The connection. Contextual information associated with the call. Called before is retrieved. The connection. Contextual information associated with the call. Called after is retrieved. The connection. Contextual information associated with the call. Called before is retrieved. The connection. Contextual information associated with the call. Called after is retrieved. The connection. Contextual information associated with the call. Called before is invoked. The connection being disposed. Contextual information associated with the call. Called after is invoked. The connection that was disposed. Contextual information associated with the call. Called before is invoked. The connection. Contextual information associated with the call. Called after is invoked. The connection. Contextual information associated with the call. Called before or its async counterpart is invoked. The connection being opened. Contextual information associated with the call. Called after or its async counterpart is invoked. The connection that was opened. Contextual information associated with the call. Called before is retrieved. The connection. Contextual information associated with the call. Called after is retrieved. The connection. Contextual information associated with the call. Called before is retrieved. The connection. Contextual information associated with the call. Called after is retrieved. The connection. Contextual information associated with the call. An object that implements this interface can be registered with to receive notifications when Entity Framework commits or rollbacks a transaction. Interceptors can also be registered in the config file of the application. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. Called before is retrieved. The transaction. Contextual information associated with the call. Called after is retrieved. The transaction. Contextual information associated with the call. Called before is retrieved. The transaction. Contextual information associated with the call. Called after is retrieved. The transaction. Contextual information associated with the call. This method is called before is invoked. The transaction being commited. Contextual information associated with the call. This method is called after is invoked. The transaction that was commited. Contextual information associated with the call. This method is called before is invoked. The transaction being disposed. Contextual information associated with the call. This method is called after is invoked. The transaction that was disposed. Contextual information associated with the call. This method is called before is invoked. The transaction being rolled back. Contextual information associated with the call. This method is called after is invoked. The transaction that was rolled back. Contextual information associated with the call. Creates a formatter that will not filter by any and will instead log every command from any context and also commands that do not originate from a context. This constructor is not used when a delegate is set on . Instead it can be used by setting the formatter directly using . The delegate to which output will be sent. Creates a formatter that will only log commands the come from the given instance. This constructor must be called by a class that inherits from this class to override the behavior of . The context for which commands should be logged. Pass null to log every command from any context and also commands that do not originate from a context. The delegate to which output will be sent. Writes the given string to the underlying write delegate. The string to write. This method is called before a call to or one of its async counterparts is made. The default implementation calls and starts . The command being executed. Contextual information associated with the call. This method is called after a call to or one of its async counterparts is made. The default implementation stops and calls . The command being executed. Contextual information associated with the call. This method is called before a call to or one of its async counterparts is made. The default implementation calls and starts . The command being executed. Contextual information associated with the call. This method is called after a call to or one of its async counterparts is made. The default implementation stops and calls . The command being executed. Contextual information associated with the call. This method is called before a call to or one of its async counterparts is made. The default implementation calls and starts . The command being executed. Contextual information associated with the call. This method is called after a call to or one of its async counterparts is made. The default implementation stops and calls . The command being executed. Contextual information associated with the call. Called whenever a command is about to be executed. The default implementation of this method filters by set into , if any, and then calls . This method would typically only be overridden to change the context filtering behavior. The type of the operation's results. The command that will be executed. Contextual information associated with the command. Called whenever a command has completed executing. The default implementation of this method filters by set into , if any, and then calls . This method would typically only be overridden to change the context filtering behavior. The type of the operation's results. The command that was executed. Contextual information associated with the command. Called to log a command that is about to be executed. Override this method to change how the command is logged to . The type of the operation's results. The command to be logged. Contextual information associated with the command. Called by to log each parameter. This method can be called from an overridden implementation of to log parameters, and/or can be overridden to change the way that parameters are logged to . The type of the operation's results. The command being logged. Contextual information associated with the command. The parameter to log. Called to log the result of executing a command. Override this method to change how results are logged to . The type of the operation's results. The command being logged. Contextual information associated with the command. Does not write to log unless overridden. The connection beginning the transaction. Contextual information associated with the call. Called after is invoked. The default implementation of this method filters by set into , if any, and then logs the event. The connection that began the transaction. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection being opened. Contextual information associated with the call. Called after or its async counterpart is invoked. The default implementation of this method filters by set into , if any, and then logs the event. The connection that was opened. Contextual information associated with the call. Does not write to log unless overridden. The connection being closed. Contextual information associated with the call. Called after is invoked. The default implementation of this method filters by set into , if any, and then logs the event. The connection that was closed. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Called before is invoked. The default implementation of this method filters by set into , if any, and then logs the event. The connection being disposed. Contextual information associated with the call. Does not write to log unless overridden. The connection that was disposed. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The transaction. Contextual information associated with the call. Does not write to log unless overridden. The transaction. Contextual information associated with the call. Does not write to log unless overridden. The transaction. Contextual information associated with the call. Does not write to log unless overridden. The transaction. Contextual information associated with the call. Does not write to log unless overridden. The transaction being commited. Contextual information associated with the call. This method is called after is invoked. The default implementation of this method filters by set into , if any, and then logs the event. The transaction that was commited. Contextual information associated with the call. This method is called before is invoked. The default implementation of this method filters by set into , if any, and then logs the event. The transaction being disposed. Contextual information associated with the call. Does not write to log unless overridden. The transaction that was disposed. Contextual information associated with the call. Does not write to log unless overridden. The transaction being rolled back. Contextual information associated with the call. This method is called after is invoked. The default implementation of this method filters by set into , if any, and then logs the event. The transaction that was rolled back. Contextual information associated with the call. The context for which commands are being logged, or null if commands from all contexts are being logged. The stop watch used to time executions. This stop watch is started at the end of , , and methods and is stopped at the beginning of the , , and methods. If these methods are overridden and the stop watch is being used then the overrides should either call the base method or start/stop the watch themselves. Represents contextual information associated with calls to that don't return any results. Represents contextual information associated with calls that don't return any results. Constructs a new with no state. Creates a new by copying immutable state from the given interception context. Also see The context from which to copy state. Prevents the operation from being executed if called before the operation has executed. Thrown if this method is called after the operation has already executed. Creates a new that contains all the contextual information in this interception context together with the flag set to true. A new interception context associated with the async flag set. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. When true, this flag indicates that that execution of the operation has been suppressed by one of the interceptors. This can be done before the operation has executed by calling or by setting an to be thrown If execution of the operation fails, then this property will contain the exception that was thrown. If the operation was suppressed or did not fail, then this property will always be null. When an operation fails both this property and the property are set to the exception that was thrown. However, the property can be set or changed by interceptors, while this property will always represent the original exception thrown. If this property is set before the operation has executed, then execution of the operation will be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then this property will be set to the exception that was thrown. In either case, interceptors that run after the operation can change this property to change the exception that will be thrown, or set this property to null to cause no exception to be thrown at all. When an operation fails both this property and the property are set to the exception that was thrown. However, the this property can be set or changed by interceptors, while the property will always represent the original exception thrown. Set to the status of the after an async operation has finished. Not used for synchronous operations. Gets or sets a value containing arbitrary user-specified state information associated with the operation. Constructs a new with no state. Creates a new by copying immutable state from the given interception context. Also see The context from which to copy state. Creates a new that contains all the contextual information in this interception context together with the flag set to true. A new interception context associated with the async flag set. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Represents contextual information associated with calls to property setters of type on a . The type of the target property. Represents contextual information associated with calls to property setters of type . An instance of this class is passed to the dispatch methods and does not contain mutable information such as the result of the operation. This mutable information is obtained from the that is passed to the interceptors. Instances of this class are publicly immutable. To add contextual information use one of the With... or As... methods to create a new interception context containing the new information. The type of the target property. Constructs a new with no state. Creates a new by copying immutable state from the given interception context. Also see The context from which to copy state. Creates a new that contains all the contextual information in this interception context together with the given property value. The value that will be assigned to the target property. A new interception context associated with the given property value. Prevents the operation from being executed if called before the operation has executed. Thrown if this method is called after the operation has already executed. Creates a new that contains all the contextual information in this interception context together with the flag set to true. A new interception context associated with the async flag set. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. The value that will be assigned to the target property. Gets or sets a value containing arbitrary user-specified state information associated with the operation. When true, this flag indicates that that execution of the operation has been suppressed by one of the interceptors. This can be done before the operation has executed by calling or by setting an to be thrown If execution of the operation fails, then this property will contain the exception that was thrown. If the operation was suppressed or did not fail, then this property will always be null. When an operation fails both this property and the property are set to the exception that was thrown. However, the property can be set or changed by interceptors, while this property will always represent the original exception thrown. If this property is set before the operation has executed, then execution of the operation will be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then this property will be set to the exception that was thrown. In either case, interceptors that run after the operation can change this property to change the exception that will be thrown, or set this property to null to cause no exception to be thrown at all. When an operation fails both this property and the property are set to the exception that was thrown. However, the this property can be set or changed by interceptors, while the property will always represent the original exception thrown. Set to the status of the after an async operation has finished. Not used for synchronous operations. Constructs a new with no state. Creates a new by copying immutable state from the given interception context. Also see The context from which to copy state. Creates a new that contains all the contextual information in this interception context together with the given property value. The value that will be assigned to the target property. A new interception context associated with the given property value. Creates a new that contains all the contextual information in this interception context together with the flag set to true. A new interception context associated with the async flag set. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Used for dispatching operations to a such that any registered on will be notified before and after the operation executes. Instances of this class are obtained through the the fluent API. This class is used internally by Entity Framework when executing commands. It is provided publicly so that code that runs outside of the core EF assemblies can opt-in to command interception/tracing. This is typically done by EF providers that are executing commands on behalf of EF. Sends and to any registered on before/after making a call to . Note that the result of executing the command is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The command on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after making a call to . Note that the result of executing the command is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The command on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after making a call to . Note that the result of executing the command is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The command on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Gets the of the current instance. The exact runtime type of the current instance. Represents contextual information associated with calls into implementations. An instance of this class is passed to the dispatch methods of and does not contain mutable information such as the result of the operation. This mutable information is obtained from the that is passed to the interceptors. Instances of this class are publicly immutable. To add contextual information use one of the With... or As... methods to create a new interception context containing the new information. Constructs a new with no state. Creates a new by copying state from the given interception context. Also see The context from which to copy state. Creates a new that contains all the contextual information in this interception context together with the given . The command behavior to associate. A new interception context associated with the given command behavior. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context the flag set to true. A new interception context associated with the async flag set. The that will be used or has been used to execute the command with a . This property is only used for and its async counterparts. Represents contextual information associated with calls into implementations including the result of the operation. The type of the operation's results. Instances of this class are publicly immutable for contextual information. To add contextual information use one of the With... or As... methods to create a new interception context containing the new information. Constructs a new with no state. Creates a new by copying immutable state from the given interception context. Also see The context from which to copy state. Prevents the operation from being executed if called before the operation has executed. Thrown if this method is called after the operation has already executed. Creates a new that contains all the contextual information in this interception context together with the flag set to true. A new interception context associated with the async flag set. Creates a new that contains all the contextual information in this interception context together with the given . The command behavior to associate. A new interception context associated with the given command behavior. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. If execution of the operation completes without throwing, then this property will contain the result of the operation. If the operation was suppressed or did not fail, then this property will always contain the default value for the generic type. When an operation operation completes without throwing both this property and the property are set. However, the property can be set or changed by interceptors, while this property will always represent the actual result returned by the operation, if any. If this property is set before the operation has executed, then execution of the operation will be suppressed and the set result will be returned instead. Otherwise, if the operation succeeds, then this property will be set to the returned result. In either case, interceptors that run after the operation can change this property to change the result that will be returned. When an operation operation completes without throwing both this property and the property are set. However, this property can be set or changed by interceptors, while the property will always represent the actual result returned by the operation, if any. When true, this flag indicates that that execution of the operation has been suppressed by one of the interceptors. This can be done before the operation has executed by calling , by setting an to be thrown, or by setting the operation result using . Gets or sets a value containing arbitrary user-specified state information associated with the operation. If execution of the operation fails, then this property will contain the exception that was thrown. If the operation was suppressed or did not fail, then this property will always be null. When an operation fails both this property and the property are set to the exception that was thrown. However, the property can be set or changed by interceptors, while this property will always represent the original exception thrown. If this property is set before the operation has executed, then execution of the operation will be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then this property will be set to the exception that was thrown. In either case, interceptors that run after the operation can change this property to change the exception that will be thrown, or set this property to null to cause no exception to be thrown at all. When an operation fails both this property and the property are set to the exception that was thrown. However, the this property can be set or changed by interceptors, while the property will always represent the original exception thrown. Set to the status of the after an async operation has finished. Not used for synchronous operations. Base class that implements . This class is a convenience for use when only one or two methods of the interface actually need to have any implementation. Represents contextual information associated with calls into implementations. Instances of this class are publicly immutable for contextual information. To add contextual information use one of the With... or As... methods to create a new interception context containing the new information. Constructs a new with no state. Creates a new by copying state from the given interception context. Also see The context from which to copy state. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context the flag set to true. A new interception context associated with the async flag set. The original tree created by Entity Framework. Interceptors can change the property to change the tree that will be used, but the will always be the tree created by Entity Framework. The command tree that will be used by Entity Framework. This starts as the tree contained in the the property but can be set by interceptors to change the tree that will be used by Entity Framework. Gets or sets a value containing arbitrary user-specified state information associated with the operation. Used for dispatching operations to a such that any registered on will be notified before and after the operation executes. Instances of this class are obtained through the the fluent API. This class is used internally by Entity Framework when interacting with . It is provided publicly so that code that runs outside of the core EF assemblies can opt-in to command interception/tracing. This is typically done by EF providers that are executing commands on behalf of EF. Sends and to any registered on before/after making a call to . Note that the result of executing the command is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The connection on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after making a call to . The connection on which the operation will be executed. Optional information about the context of the call being made. Sends and to any registered on before/after making a call to . The connection on which the operation will be executed. Optional information about the context of the call being made. Sends and to any registered on before/after getting . Note that the value of the property is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The connection on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after setting . The connection on which the operation will be executed. Information about the context of the call being made, including the value to be set. Sends and to any registered on before/after getting . Note that the value of the property is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The connection on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after getting . Note that the value of the property is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The connection on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after getting . Note that the value of the property is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The connection on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after making a call to . The connection on which the operation will be executed. Optional information about the context of the call being made. Sends and to any registered on before/after making a call to . The connection on which the operation will be executed. Optional information about the context of the call being made. Sends and to any registered on before/after getting . Note that the value of the property is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The connection on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after getting . Note that the value of the property is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The connection on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Gets the of the current instance. The exact runtime type of the current instance. Provides access to all dispatchers through the the fluent API. Gets the of the current instance. The exact runtime type of the current instance. Provides methods for dispatching to interceptors for interception of methods on . Provides methods for dispatching to interceptors for interception of methods on . Provides methods for dispatching to interceptors for interception of methods on . This is the registration point for interceptors. Interceptors receive notifications when EF performs certain operations such as executing commands against the database. For example, see . Registers a new to receive notifications. Note that the interceptor must implement some interface that extends from to be useful. The interceptor to add. Removes a registered so that it will no longer receive notifications. If the given interceptor is not registered, then this is a no-op. The interceptor to remove. This is the entry point for dispatching to interceptors. This is usually only used internally by Entity Framework but it is provided publicly so that other code can make sure that registered interceptors are called when operations are performed on behalf of EF. For example, EF providers a may make use of this when executing commands. Used for dispatching operations to a such that any registered on will be notified before and after the operation executes. Instances of this class are obtained through the the fluent API. This class is used internally by Entity Framework when interacting with . It is provided publicly so that code that runs outside of the core EF assemblies can opt-in to command interception/tracing. This is typically done by EF providers that are executing commands on behalf of EF. Sends and to any registered on before/after getting . Note that the value of the property is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The transaction on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after getting . Note that the value of the property is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The transaction on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after making a call to . The transaction on which the operation will be executed. Optional information about the context of the call being made. Sends and to any registered on before/after making a call to . The transaction on which the operation will be executed. Optional information about the context of the call being made. Sends and to any registered on before/after making a call to . The transaction on which the operation will be executed. Optional information about the context of the call being made. Gets the of the current instance. The exact runtime type of the current instance. Represents contextual information associated with calls to that don't return any results. Constructs a new with no state. Creates a new by copying immutable state from the given interception context. Also see The context from which to copy state. Creates a new that contains all the contextual information in this interception context with the addition of the given . The connection on which the transaction was started. A new interception context that also contains the connection on which the transaction was started. Creates a new that contains all the contextual information in this interception context together with the flag set to true. A new interception context associated with the async flag set. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. The connection on which the transaction was started Represents contextual information associated with calls to with return type . The return type of the target method. Constructs a new with no state. Creates a new by copying immutable state from the given interception context. Also see The context from which to copy state. Creates a new that contains all the contextual information in this interception context together with the flag set to true. A new interception context associated with the async flag set. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Represents contextual information associated with calls to implementations. Instances of this class are publicly immutable for contextual information. To add contextual information use one of the With... or As... methods to create a new interception context containing the new information. Constructs a new with no state. Creates a new by copying immutable state from the given interception context. Also see The context from which to copy state. Creates a new that contains all the contextual information in this interception context together with the flag set to true. A new interception context associated with the async flag set. Creates a new that contains all the contextual information in this interception context together with the given . The transaction to be used in the invocation. A new interception context associated with the given isolation level. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. The that will be used or has been used to enlist a connection. An object that implements this interface can be registered with to receive notifications when Entity Framework creates command trees. Interceptors can also be registered in the config file of the application. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. This method is called after a new has been created. The tree that is used after interception can be changed by setting while intercepting. Command trees are created for both queries and insert/update/delete commands. However, query command trees are cached by model which means that command tree creation only happens the first time a query is executed and this notification will only happen at that time Contextual information associated with the call. Represents a mapping view. Creates a instance having the specified entity SQL. A string that specifies the entity SQL. Gets the entity SQL. Base abstract class for mapping view cache implementations. Derived classes must have a parameterless constructor if used with . Gets a view corresponding to the specified extent. An that specifies the extent. A that specifies the mapping view, or null if the extent is not associated with a mapping view. Gets a hash value computed over the mapping closure. Specifies the means to create concrete instances. Creates a generated view cache instance for the container mapping specified by the names of the mapped containers. The name of a container in the conceptual model. The name of a container in the store model. A that specifies the generated view cache. Defines a custom attribute that specifies the mapping view cache type (subclass of ) associated with a context type (subclass of or ). The cache type is instantiated at runtime and used to retrieve pre-generated views in the corresponding context. Creates a instance that associates a context type with a mapping view cache type. A subclass of or . A subclass of . Creates a instance that associates a context type with a mapping view cache type. A subclass of or . The assembly qualified full name of the cache type. The base class for interceptors that handle the transaction operations. Derived classes can be registered using or . Initializes a new instance of the class. One of the Initialize methods needs to be called before this instance can be used. Initializes this instance using the specified context. The context for which transaction operations will be handled. Initializes this instance using the specified context. The context for which transaction operations will be handled. The connection to use for the initialization. This method is called by migrations. It is important that no action is performed on the specified context that causes it to be initialized. Releases the resources used by this transaction handler. true to release both managed and unmanaged resources; false to release only unmanaged resources. Checks whether the supplied interception context contains the target context or the supplied connection is the same as the one used by the target context. A connection. An interception context. true if the supplied interception context contains the target context or the supplied connection is the same as the one used by the target context if the supplied interception context doesn't contain any contexts; false otherwise. Note that calling this method will trigger initialization of any DbContext referenced from the When implemented in a derived class returns the script to prepare the database for this transaction handler. A script to change the database schema for this transaction handler. Can be implemented in a derived class. The connection beginning the transaction. Contextual information associated with the call. Can be implemented in a derived class. The connection that began the transaction. Contextual information associated with the call. Can be implemented in a derived class. The connection being closed. Contextual information associated with the call. Can be implemented in a derived class. The connection that was closed. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection being disposed. Contextual information associated with the call. Can be implemented in a derived class. The connection that was disposed. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection being opened. Contextual information associated with the call. Can be implemented in a derived class. The connection that was opened. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The transaction. Contextual information associated with the call. Can be implemented in a derived class. The transaction. Contextual information associated with the call. Can be implemented in a derived class. The transaction. Contextual information associated with the call. Can be implemented in a derived class. The transaction. Contextual information associated with the call. Can be implemented in a derived class. The transaction being commited. Contextual information associated with the call. Can be implemented in a derived class. The transaction that was commited. Contextual information associated with the call. Can be implemented in a derived class. The transaction being disposed. Contextual information associated with the call. Can be implemented in a derived class. The transaction that was disposed. Contextual information associated with the call. Can be implemented in a derived class. The transaction being rolled back. Contextual information associated with the call. Can be implemented in a derived class. The transaction that was rolled back. Contextual information associated with the call. Gets the context. The for which the transaction operations will be handled. Gets the context. The for which the transaction operations will be handled, could be null. Gets the connection. The for which the transaction operations will be handled. This connection object is only used to determine whether a particular operation needs to be handled in cases where a context is not available. Gets or sets a value indicating whether this transaction handler is disposed. true if disposed; otherwise, false. This class is used by to write and read transaction tracing information from the database. To customize the definition of the transaction table you can derive from this class and override . Derived classes can be registered using . By default EF will poll the resolved to check wether the database schema is compatible and will try to modify it accordingly if it's not. To disable this check call Database.SetInitializer<TTransactionContext>(null) where TTransactionContext is the type of the resolved context. A DbContext instance represents a combination of the Unit Of Work and Repository patterns such that it can be used to query from a database and group together changes that will then be written back to the store as a unit. DbContext is conceptually similar to ObjectContext. DbContext is usually used with a derived type that contains properties for the root entities of the model. These sets are automatically initialized when the instance of the derived class is created. This behavior can be modified by applying the attribute to either the entire derived context class, or to individual properties on the class. The Entity Data Model backing the context can be specified in several ways. When using the Code First approach, the properties on the derived context are used to build a model by convention. The protected OnModelCreating method can be overridden to tweak this model. More control over the model used for the Model First approach can be obtained by creating a explicitly from a and passing this model to one of the DbContext constructors. When using the Database First or Model First approach the Entity Data Model can be created using the Entity Designer (or manually through creation of an EDMX file) and then this model can be specified using entity connection string or an object. The connection to the database (including the name of the database) can be specified in several ways. If the parameterless DbContext constructor is called from a derived context, then the name of the derived context is used to find a connection string in the app.config or web.config file. If no connection string is found, then the name is passed to the DefaultConnectionFactory registered on the class. The connection factory then uses the context name as the database name in a default connection string. (This default connection string points to .\SQLEXPRESS on the local machine unless a different DefaultConnectionFactory is registered.) Instead of using the derived context name, the connection/database name can also be specified explicitly by passing the name to one of the DbContext constructors that takes a string. The name can also be passed in the form "name=myname", in which case the name must be found in the config file or an exception will be thrown. Note that the connection found in the app.config or web.config file can be a normal database connection string (not a special Entity Framework connection string) in which case the DbContext will use Code First. However, if the connection found in the config file is a special Entity Framework connection string, then the DbContext will use Database/Model First and the model specified in the connection string will be used. An existing or explicitly created DbConnection can also be used instead of the database/connection name. A can be applied to a class derived from DbContext to set the version of conventions used by the context when it creates a model. If no attribute is applied then the latest version of conventions will be used. Interface implemented by objects that can provide an instance. The class implements this interface to provide access to the underlying ObjectContext. Gets the object context. The object context. Constructs a new context instance using conventions to create the name of the database to which a connection will be made. The by-convention name is the full name (namespace + class name) of the derived context class. See the class remarks for how this is used to create a connection. Constructs a new context instance using conventions to create the name of the database to which a connection will be made, and initializes it from the given model. The by-convention name is the full name (namespace + class name) of the derived context class. See the class remarks for how this is used to create a connection. The model that will back this context. Constructs a new context instance using the given string as the name or connection string for the database to which a connection will be made. See the class remarks for how this is used to create a connection. Either the database name or a connection string. Constructs a new context instance using the given string as the name or connection string for the database to which a connection will be made, and initializes it from the given model. See the class remarks for how this is used to create a connection. Either the database name or a connection string. The model that will back this context. Constructs a new context instance using the existing connection to connect to a database. The connection will not be disposed when the context is disposed if is false. An existing connection to use for the new context. If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. Constructs a new context instance using the existing connection to connect to a database, and initializes it from the given model. The connection will not be disposed when the context is disposed if is false. An existing connection to use for the new context. The model that will back this context. If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. Constructs a new context instance around an existing ObjectContext. An existing ObjectContext to wrap with the new context. If set to true the ObjectContext is disposed when the DbContext is disposed, otherwise the caller must dispose the connection. This method is called when the model for a derived context has been initialized, but before the model has been locked down and used to initialize the context. The default implementation of this method does nothing, but it can be overridden in a derived class such that the model can be further configured before it is locked down. Typically, this method is called only once when the first instance of a derived context is created. The model for that context is then cached and is for all further instances of the context in the app domain. This caching can be disabled by setting the ModelCaching property on the given ModelBuidler, but note that this can seriously degrade performance. More control over caching is provided through use of the DbModelBuilder and DbContextFactory classes directly. The builder that defines the model for the context being created. Returns a instance for access to entities of the given type in the context and the underlying store. Note that Entity Framework requires that this method return the same instance each time that it is called for a given context instance and entity type. Also, the non-generic returned by the method must wrap the same underlying query and set of entities. These invariants must be maintained if this method is overridden for anything other than creating test doubles for unit testing. See the class for more details. The type entity for which a set should be returned. A set for the given entity type. Returns a non-generic instance for access to entities of the given type in the context and the underlying store. The type of entity for which a set should be returned. A set for the given entity type. Note that Entity Framework requires that this method return the same instance each time that it is called for a given context instance and entity type. Also, the generic returned by the method must wrap the same underlying query and set of entities. These invariants must be maintained if this method is overridden for anything other than creating test doubles for unit testing. See the class for more details. Saves all changes made in this context to the underlying database. The number of state entries written to the underlying database. This can include state entries for entities and/or relationships. Relationship state entries are created for many-to-many relationships and relationships where there is no foreign key property included in the entity class (often referred to as independent associations). An error occurred sending updates to the database. A database command did not affect the expected number of rows. This usually indicates an optimistic concurrency violation; that is, a row has been changed in the database since it was queried. The save was aborted because validation of entity property values failed. An attempt was made to use unsupported behavior such as executing multiple asynchronous commands concurrently on the same context instance. The context or connection have been disposed. Some error occurred attempting to process entities in the context either before or after sending commands to the database. Validates tracked entities and returns a Collection of containing validation results. Collection of validation results for invalid entities. The collection is never null and must not contain null values or results for valid entities. 1. This method calls DetectChanges() to determine states of the tracked entities unless DbContextConfiguration.AutoDetectChangesEnabled is set to false. 2. By default only Added on Modified entities are validated. The user is able to change this behavior by overriding ShouldValidateEntity method. Extension point allowing the user to override the default behavior of validating only added and modified entities. DbEntityEntry instance that is supposed to be validated. true to proceed with validation; false otherwise. Extension point allowing the user to customize validation of an entity or filter out validation results. Called by . DbEntityEntry instance to be validated. User-defined dictionary containing additional info for custom validation. It will be passed to and will be exposed as . This parameter is optional and can be null. Entity validation result. Possibly null when overridden. Gets a object for the given entity providing access to information about the entity and the ability to perform actions on the entity. The type of the entity. The entity. An entry for the entity. Gets a object for the given entity providing access to information about the entity and the ability to perform actions on the entity. The entity. An entry for the entity. Calls the protected Dispose method. Disposes the context. The underlying is also disposed if it was created is by this context or ownership was passed to this context when this context was created. The connection to the database ( object) is also disposed if it was created is by this context or ownership was passed to this context when this context was created. true to release both managed and unmanaged resources; false to release only unmanaged resources. Creates a Database instance for this context that allows for creation/deletion/existence checks for the underlying database. Returns the Entity Framework ObjectContext that is underlying this context. Thrown if the context has been disposed. Provides access to features of the context that deal with change tracking of entities. An object used to access features that deal with change tracking. Provides access to configuration options for the context. An object used to access configuration options. Initializes a new instance of the class. The connection used by the context for which the transactions will be recorded. Gets or sets a that can be used to read and write instances. A transaction handler that allows to gracefully recover from connection failures during transaction commit by storing transaction tracing information in the database. It needs to be registered by using . This transaction handler uses to store the transaction information the schema used can be configured by creating a class derived from that overrides DbContext.OnModelCreating(DbModelBuilder) and passing it to the constructor of this class. Initializes a new instance of the class using the default . One of the Initialize methods needs to be called before this instance can be used. Initializes a new instance of the class. The transaction context factory. One of the Initialize methods needs to be called before this instance can be used. Stores the tracking information for the new transaction to the database in the same transaction. The connection that began the transaction. Contextual information associated with the call. If there was an exception thrown checks the database for this transaction and rethrows it if not found. Otherwise marks the commit as succeeded and queues the transaction information to be deleted. The transaction that was commited. Contextual information associated with the call. Stops tracking the transaction that was rolled back. The transaction that was rolled back. Contextual information associated with the call. Stops tracking the transaction that was disposed. The transaction that was disposed. Contextual information associated with the call. Removes all the transaction history. This method should only be invoked when there are no active transactions to remove any leftover history that was not deleted due to catastrophic failures Adds the specified transaction to the list of transactions that can be removed from the database The transaction to be removed from the database. Removes the transactions marked for deletion. Removes the transactions marked for deletion if their number exceeds . if set to true will remove all the old transactions even if their number does not exceed . if set to true the operation will be executed using the associated execution strategy Gets the associated with the if there is one; otherwise returns null. The context The associated . Gets the associated with the if there is one; otherwise returns null. The context The associated . Gets the transaction context. The transaction context. Gets the number of transactions to be executed on the context before the transaction log will be cleaned. The default value is 20. An implementation of this interface is used to initialize the underlying database when an instance of a derived class is used for the first time. This initialization can conditionally create the database and/or seed it with data. The strategy used is set using the static InitializationStrategy property of the class. The following implementations are provided: , , . The type of the context. Executes the strategy to initialize the database for the given context. The context. Rrepresents a transaction A unique id assigned to a transaction object. The local time when the transaction was started. Helper class that is used to configure a parameter. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Creates a new parameter definition to pass Binary data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The maximum allowable length of the array data. Value indicating whether or not all data should be padded to the maximum length. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass Boolean data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass Byte data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass DateTime data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The precision of the parameter. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass Decimal data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The numeric precision of the parameter. The numeric scale of the parameter. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass Double data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass GUID data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass Single data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass Short data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass Integer data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass Long data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass String data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The maximum allowable length of the string data. Value indicating whether or not all data should be padded to the maximum length. Value indicating whether or not the parameter supports Unicode content. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass Time data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The precision of the parameter. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass DateTimeOffset data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The precision of the parameter. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass geography data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass geometry data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Gets the of the current instance. The exact runtime type of the current instance. Creates a shallow copy of the current . A shallow copy of the current . Represents altering an existing stored procedure. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. A migration operation that affects stored procedures. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Represents an operation to modify a database schema. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the MigrationOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets additional arguments that may be processed by providers. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets an operation that will revert this operation. Gets a value indicating if this operation may result in data loss. Initializes a new instance of the class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the stored procedure. The body of the stored procedure expressed in SQL. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the stored procedure. The name of the stored procedure. Gets the body of the stored procedure expressed in SQL. The body of the stored procedure expressed in SQL. Gets the parameters of the stored procedure. The parameters of the stored procedure. Gets a value indicating if this operation may result in data loss. Always returns false. Initializes a new instance of the class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the stored procedure. The body of the stored procedure expressed in SQL. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation that will revert this operation. Always returns a . Represents changes made to custom annotations on a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the AlterTableOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Name of the table on which annotations have changed. The custom annotations on the table that have changed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table on which annotations have changed. Gets the columns to be included in the table for which annotations have changed. Gets the custom annotations that have changed on the table. Gets an operation that is the inverse of this one such that annotations will be changed back to how they were before this operation was applied. Represents renaming an existing index. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the RenameIndexOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Name of the table the index belongs to. Name of the index to be renamed. New name for the index. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table the index belongs to. Gets the name of the index to be renamed. Gets the new name for the index. Gets an operation that reverts the rename. Used when scripting an update database operation to store the operations that would have been performed against the database. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The queries used to determine if this migration needs to be applied to the database. This is used to generate an idempotent SQL script that can be run against a database at any version. Adds a migration to this update database operation. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The id of the migration. The individual operations applied by the migration. The queries used to determine if this migration needs to be applied to the database. This is used to generate an idempotent SQL script that can be run against a database at any version. Gets the migrations applied during the update database operation. The migrations applied during the update database operation. Gets a value indicating if any of the operations may result in data loss. Represents a migration to be applied to the database. Gets the id of the migration. The id of the migration. Gets the individual operations applied by this migration. The individual operations applied by this migration. Represents moving a stored procedure to a new schema in the database. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the stored procedure to move. The new schema for the stored procedure. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the stored procedure to move. The name of the stored procedure to move. Gets the new schema for the stored procedure. The new schema for the stored procedure. Gets an operation that will revert this operation. Gets a value indicating if this operation may result in data loss. Always returns false. Represents renaming a stored procedure in the database. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the stored procedure to rename. The new name for the stored procedure. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the stored procedure to rename. The name of the stored procedure to rename. Gets the new name for the stored procedure. The new name for the stored procedure. Gets an operation that will revert this operation. Gets a value indicating if this operation may result in data loss. Always returns false. Represents a migration operation that can not be performed, possibly because it is not supported by the targeted database provider. Gets a value indicating if this operation may result in data loss. Always returns false. Represents information about a parameter. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Represents information about a property of an entity. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the PropertyModel class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The data type for this property model. Additional details about the data type. This includes details such as maximum length, nullability etc. Gets the data type for this property model. Gets additional details about the data type of this property model. This includes details such as maximum length, nullability etc. Gets or sets the name of the property model. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets or sets a provider specific data type to use for this property model. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets or sets the maximum length for this property model. Only valid for array data types. Gets or sets the precision for this property model. Only valid for decimal data types. Gets or sets the scale for this property model. Only valid for decimal data types. Gets or sets a constant value to use as the default value for this property model. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets or sets a SQL expression used as the default value for this property model. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets or sets a value indicating if this property model is fixed length. Only valid for array data types. Gets or sets a value indicating if this property model supports Unicode characters. Only valid for textual data types. Initializes a new instance of the ParameterModel class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The data type for this parameter. Initializes a new instance of the ParameterModel class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The data type for this parameter. Additional details about the data type. This includes details such as maximum length, nullability etc. Gets or sets a value indicating whether this instance is out parameter. true if this instance is out parameter; otherwise, false. Drops a stored procedure from the database. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the stored procedure to drop. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the stored procedure to drop. The name of the stored procedure to drop. Gets an operation that will revert this operation. Always returns a . Gets a value indicating if this operation may result in data loss. Always returns false. Allows configuration to be performed for a lightweight convention based on the entity types in a model. Filters the entity types that this convention applies to based on a predicate. A function to test each entity type for a condition. An instance so that multiple calls can be chained. Filters the entity types that this convention applies to based on a predicate while capturing a value to use later during configuration. Type of the captured value. A function to capture a value for each entity type. If the value is null, the entity type will be filtered out. An instance so that multiple calls can be chained. Allows configuration of the entity types that this convention applies to. An action that performs configuration against a . Gets the of the current instance. The exact runtime type of the current instance. Allows configuration to be performed for a lightweight convention based on the entity types in a model that inherit from a common, specified type. The common type of the entity types that this convention applies to. Filters the entity types that this convention applies to based on a predicate. A function to test each entity type for a condition. An instance so that multiple calls can be chained. Filters the entity types that this convention applies to based on a predicate while capturing a value to use later during configuration. Type of the captured value. A function to capture a value for each entity type. If the value is null, the entity type will be filtered out. An instance so that multiple calls can be chained. Allows configuration of the entity types that this convention applies to. An action that performs configuration against a . Gets the of the current instance. The exact runtime type of the current instance. Allows configuration to be performed for a lightweight convention based on the entity types in a model that inherit from a common, specified type and a captured value. The common type of the entity types that this convention applies to. Type of the captured value. Allows configuration of the entity types that this convention applies to. An action that performs configuration against a using a captured value. Gets the of the current instance. The exact runtime type of the current instance. Allows configuration to be performed for a lightweight convention based on the entity types in a model and a captured value. Type of the captured value. Allows configuration of the entity types that this convention applies to. An action that performs configuration against a using a captured value. Gets the of the current instance. The exact runtime type of the current instance. Allows configuration to be performed for an entity type in a model. This configuration functionality is available via lightweight conventions. Configures the entity set name to be used for this entity type. The entity set name can only be configured for the base type in each set. The name of the entity set. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Excludes this entity type from the model so that it will not be mapped to the database. The same instance so that multiple calls can be chained. Changes this entity type to a complex type. The same instance so that multiple calls can be chained. Excludes a property from the model so that it will not be mapped to the database. The name of the property to be configured. The same instance so that multiple calls can be chained. Calling this will have no effect if the property does not exist. Excludes a property from the model so that it will not be mapped to the database. The property to be configured. The same instance so that multiple calls can be chained. Calling this will have no effect if the property does not exist. Configures a property that is defined on this type. The name of the property being configured. A configuration object that can be used to configure the property. Configures a property that is defined on this type. The property being configured. A configuration object that can be used to configure the property. Configures the primary key property for this entity type. The name of the property to be used as the primary key. The same instance so that multiple calls can be chained. Configures the primary key property for this entity type. The property to be used as the primary key. The same instance so that multiple calls can be chained. Configures the primary key property(s) for this entity type. The names of the properties to be used as the primary key. The same instance so that multiple calls can be chained. Configures the primary key property(s) for this entity type. The properties to be used as the primary key. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured or if any property does not exist. Configures the table name that this entity type is mapped to. The name of the table. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Configures the table name that this entity type is mapped to. The name of the table. The database schema of the table. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Sets an annotation in the model for the table to which this entity is mapped. The annotation value can later be used when processing the table such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Calling this method will have no effect if the annotation with the given name has already been configured. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same configuration instance so that multiple calls can be chained. Configures this type to use stored procedures for insert, update and delete. The default conventions for procedure and parameter names will be used. The same configuration instance so that multiple calls can be chained. Configures this type to use stored procedures for insert, update and delete. Configuration to override the default conventions for procedure and parameter names. The same configuration instance so that multiple calls can be chained. Gets the of the current instance. The exact runtime type of the current instance. Gets the of this entity type. Allows configuration to be performed for an entity type in a model. This configuration functionality is available via lightweight conventions. A type inherited by the entity type. Configures the entity set name to be used for this entity type. The entity set name can only be configured for the base type in each set. The name of the entity set. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Excludes this entity type from the model so that it will not be mapped to the database. The same instance so that multiple calls can be chained. Changes this entity type to a complex type. The same instance so that multiple calls can be chained. Excludes a property from the model so that it will not be mapped to the database. The type of the property to be ignored. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The same instance so that multiple calls can be chained. Configures a property that is defined on this type. The type of the property being configured. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures the primary key property(s) for this entity type. The type of the key. A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Configures the table name that this entity type is mapped to. The name of the table. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Configures the table name that this entity type is mapped to. The name of the table. The database schema of the table. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Sets an annotation in the model for the table to which this entity is mapped. The annotation value can later be used when processing the table such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Calling this method will have no effect if the annotation with the given name has already been configured. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same configuration instance so that multiple calls can be chained. Configures this type to use stored procedures for insert, update and delete. The default conventions for procedure and parameter names will be used. The same configuration instance so that multiple calls can be chained. Configures this type to use stored procedures for insert, update and delete. Configuration to override the default conventions for procedure and parameter names. The same configuration instance so that multiple calls can be chained. Gets the of the current instance. The exact runtime type of the current instance. Gets the of this entity type. Identifies conventions that can be added to or removed from a instance. Note that implementations of this interface must be immutable. A general purpose class for Code First conventions that read attributes from .NET properties and generate column annotations based on those attributes. The type of attribute to discover. The type of annotation that will be created. A convention that doesn't override configuration. The derived class can use the default constructor to apply a set rule of that change the model configuration. Begins configuration of a lightweight convention that applies to all mapped types in the model. A configuration object for the convention. Begins configuration of a lightweight convention that applies to all mapped types in the model that derive from or implement the specified type. The type of the entities that this convention will apply to. A configuration object for the convention. This method does not add new types to the model. Begins configuration of a lightweight convention that applies to all properties in the model. A configuration object for the convention. Begins configuration of a lightweight convention that applies to all primitive properties of the specified type in the model. The type of the properties that the convention will apply to. A configuration object for the convention. The convention will apply to both nullable and non-nullable properties of the specified type. Constructs a convention that will create column annotations with the given name and using the given factory delegate. The name of the annotations to create. A factory for creating the annotation on each column. A general purpose class for Code First conventions that read attributes from .NET types and generate table annotations based on those attributes. The type of attribute to discover. The type of annotation that will be created. Constructs a convention that will create table annotations with the given name and using the given factory delegate. The name of the annotations to create. A factory for creating the annotation on each table. A convention for discovering attributes on properties and generating column annotations in the model. Constructs a new instance of the convention. Base class for conventions that process CLR attributes found on primitive properties in the model. The type of the attribute to look for. Initializes a new instance of the class. Applies this convention to a property that has an attribute of type TAttribute applied. The configuration for the property that has the attribute. The attribute. Base class for conventions that process CLR attributes found on properties of types in the model. Note that the derived convention will be applied for any non-static property on the mapped type that has the specified attribute, even if it wasn't included in the model. The type of the attribute to look for. Initializes a new instance of the class. Applies this convention to a property that has an attribute of type TAttribute applied. The member info for the property that has the attribute. The configuration for the class that contains the property. The attribute. Base class for conventions that process CLR attributes found in the model. The type of the attribute to look for. Initializes a new instance of the class. Applies this convention to a class that has an attribute of type TAttribute applied. The configuration for the class that contains the property. The attribute. Used to configure a property in a mapping fragment. This configuration functionality is available via the Code First Fluent API, see . Configures the name of the database column used to store the property, in a mapping fragment. The name of the column. The same PropertyMappingConfiguration instance so that multiple calls can be chained. Sets an annotation in the model for the database column used to store the property. The annotation value can later be used when processing the column such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Passing a null value clears any annotation with the given name on the column that had been previously set. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same PropertyMappingConfiguration instance so that multiple calls can be chained. Convention to introduce indexes for foreign keys. A convention that operates on the database section of the model after the model is created. The type of metadata item that this convention operates on. Applies this convention to an item in the model. The item to apply the convention to. The model. A convention that operates on the conceptual section of the model after the model is created. The type of metadata item that this convention operates on. Applies this convention to an item in the model. The item to apply the convention to. The model. Useful extension methods for use with Entity Framework LINQ queries. Specifies the related objects to include in the query results. This extension method calls the Include(String) method of the source object, if such a method exists. If the source does not have a matching method, then this method does nothing. The , , and types all have an appropriate Include method to call. Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on the returned instance of the . Other instances of and the object context itself are not affected. Because the Include method returns the query object, you can call this method multiple times on an to specify multiple paths for the query. The type of entity being queried. The source on which to call Include. The dot-separated list of related objects to return in the query results. A new with the defined query path. Specifies the related objects to include in the query results. This extension method calls the Include(String) method of the source object, if such a method exists. If the source does not have a matching method, then this method does nothing. The , , and types all have an appropriate Include method to call. Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on the returned instance of the . Other instances of and the object context itself are not affected. Because the Include method returns the query object, you can call this method multiple times on an to specify multiple paths for the query. The source on which to call Include. The dot-separated list of related objects to return in the query results. A new with the defined query path. Specifies the related objects to include in the query results. The path expression must be composed of simple property access expressions together with calls to Select for composing additional includes after including a collection proprty. Examples of possible include paths are: To include a single reference: query.Include(e => e.Level1Reference) To include a single collection: query.Include(e => e.Level1Collection) To include a reference and then a reference one level down: query.Include(e => e.Level1Reference.Level2Reference) To include a reference and then a collection one level down: query.Include(e => e.Level1Reference.Level2Collection) To include a collection and then a reference one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference)) To include a collection and then a collection one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection)) To include a collection and then a reference one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference)) To include a collection and then a collection one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection)) To include a collection, a reference, and a reference two levels down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference.Level3Reference)) To include a collection, a collection, and a reference two levels down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection.Select(l2 => l2.Level3Reference))) This extension method calls the Include(String) method of the source IQueryable object, if such a method exists. If the source IQueryable does not have a matching method, then this method does nothing. The Entity Framework ObjectQuery, ObjectSet, DbQuery, and DbSet types all have an appropriate Include method to call. When you call the Include method, the query path is only valid on the returned instance of the IQueryable<T>. Other instances of IQueryable<T> and the object context itself are not affected. Because the Include method returns the query object, you can call this method multiple times on an IQueryable<T> to specify multiple paths for the query. The type of entity being queried. The type of navigation property being included. The source IQueryable on which to call Include. A lambda expression representing the path to include. A new IQueryable<T> with the defined query path. Returns a new query where the entities returned will not be cached in the or . This method works by calling the AsNoTracking method of the underlying query object. If the underlying query object does not have an AsNoTracking method, then calling this method will have no affect. The element type. The source query. A new query with NoTracking applied, or the source query if NoTracking is not supported. Returns a new query where the entities returned will not be cached in the or . This method works by calling the AsNoTracking method of the underlying query object. If the underlying query object does not have an AsNoTracking method, then calling this method will have no affect. The source query. A new query with NoTracking applied, or the source query if NoTracking is not supported. Returns a new query that will stream the results instead of buffering. This method works by calling the AsStreaming method of the underlying query object. If the underlying query object does not have an AsStreaming method, then calling this method will have no affect. The type of the elements of . An to apply AsStreaming to. A new query with AsStreaming applied, or the source query if AsStreaming is not supported. Returns a new query that will stream the results instead of buffering. This method works by calling the AsStreaming method of the underlying query object. If the underlying query object does not have an AsStreaming method, then calling this method will have no affect. An to apply AsStreaming to. A new query with AsStreaming applied, or the source query if AsStreaming is not supported. Enumerates the query such that for server queries such as those of , , , and others the results of the query will be loaded into the associated , or other cache on the client. This is equivalent to calling ToList and then throwing away the list without the overhead of actually creating the list. The source query. Bypasses a specified number of elements in a sequence and then returns the remaining elements. The type of the elements of source. A sequence to return elements from. An expression that evaluates to the number of elements to skip. A sequence that contains elements that occur after the specified index in the input sequence. Returns a specified number of contiguous elements from the start of a sequence. The type of the elements of source. The sequence to return elements from. An expression that evaluates to the number of elements to return. A sequence that contains the specified number of elements from the start of the input sequence. Controls the transaction creation behavior while executing a database command or query. If no transaction is present then a new transaction will be used for the operation. If an existing transaction is present then use it, otherwise execute the command or query without a transaction. Specifies a structural type mapping. Adds a property mapping. The property mapping to be added. Removes a property mapping. The property mapping to be removed. Adds a property mapping condition. The property mapping condition to be added. Removes a property mapping condition. The property mapping condition to be removed. Gets a read-only collection of property mappings. Gets a read-only collection of property mapping conditions. Represents the base item class for all the metadata Represents the base item class for all the metadata Adds or updates an annotation with the specified name and value. If an annotation with the given name already exists then the value of that annotation is updated to the given value. If the given value is null then the annotation will be removed. The name of the annotation property. The value of the annotation property. Removes an annotation with the specified name. The name of the annotation property. true if an annotation was removed; otherwise, false. Returns a conceptual model built-in type that matches one of the values. An object that represents the built-in type in the EDM. One of the values. Returns the list of the general facet descriptions for a specified type. A object that represents the list of the general facet descriptions for a specified type. Gets the built-in type kind for this type. A object that represents the built-in type kind for this type. Gets the list of properties of the current type. A collection of type that contains the list of properties of the current type. Gets or sets the documentation associated with this type. A object that represents the documentation on this type. Indicates that the given method is a proxy for an EDM function. Note that this attribute has been replaced by the starting with EF6. Indicates that the given method is a proxy for an EDM function. Note that this class was called EdmFunctionAttribute in some previous versions of Entity Framework. Initializes a new instance of the class. The namespace of the mapped-to function. The name of the mapped-to function. The namespace of the mapped-to function. The namespace of the mapped-to function. The name of the mapped-to function. The name of the mapped-to function. Creates a new DbFunctionAttribute instance. The namespace name of the EDM function represented by the attributed method. The function name of the EDM function represented by the attributed method. Provides common language runtime (CLR) methods that expose EDM canonical functions for use in or LINQ to Entities queries. Note that these functions have been moved to the class starting with EF6. The functions are retained here only to help in the migration of older EF apps to EF6. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical Left EDM function to return a given number of the leftmost characters in a string. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input string. The number of characters to return A string containing the number of characters asked for from the left of the input string. When used as part of a LINQ to Entities query, this method invokes the canonical Right EDM function to return a given number of the rightmost characters in a string. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input string. The number of characters to return A string containing the number of characters asked for from the right of the input string. When used as part of a LINQ to Entities query, this method invokes the canonical Reverse EDM function to return a given string with the order of the characters reversed. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input string. The input string with the order of the characters reversed. When used as part of a LINQ to Entities query, this method invokes the canonical GetTotalOffsetMinutes EDM function to return the number of minutes that the given date/time is offset from UTC. This is generally between +780 and -780 (+ or - 13 hrs). You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The date/time value to use. The offset of the input from UTC. When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return the given date with the time portion cleared. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The date/time value to use. The input date with the time portion cleared. When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return the given date with the time portion cleared. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The date/time value to use. The input date with the time portion cleared. When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTime EDM function to create a new object. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The year. The month (1-based). The day (1-based). The hours. The minutes. The seconds, including fractional parts of the seconds if desired. The new date/time. When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTimeOffset EDM function to create a new object. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The year. The month (1-based). The day (1-based). The hours. The minutes. The seconds, including fractional parts of the seconds if desired. The time zone offset part of the new date. The new date/time. When used as part of a LINQ to Entities query, this method invokes the canonical CreateTime EDM function to create a new object. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The hours. The minutes. The seconds, including fractional parts of the seconds if desired. The new time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to add the given number of years to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of years to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to add the given number of years to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of years to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to add the given number of months to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of months to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to add the given number of months to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of months to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to add the given number of days to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of days to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to add the given number of days to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of days to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to add the given number of hours to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of hours to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to add the given number of hours to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of hours to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to add the given number of hours to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of hours to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to add the given number of minutes to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of minutes to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to add the given number of minutes to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of minutes to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to add the given number of minutes to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of minutes to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to add the given number of seconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of seconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to add the given number of seconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of seconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to add the given number of seconds to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of seconds to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to add the given number of milliseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of milliseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to add the given number of milliseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of milliseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to add the given number of milliseconds to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of milliseconds to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to add the given number of microseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of microseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to add the given number of microseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of microseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to add the given number of microseconds to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of microseconds to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to add the given number of nanoseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of nanoseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to add the given number of nanoseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of nanoseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to add the given number of nanoseconds to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of nanoseconds to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to calculate the number of years between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of years between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to calculate the number of years between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of years between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to calculate the number of months between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of months between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to calculate the number of months between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of months between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to calculate the number of days between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of days between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to calculate the number of days between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of days between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to calculate the number of hours between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of hours between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to calculate the number of hours between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of hours between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to calculate the number of hours between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of hours between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to calculate the number of minutes between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of minutes between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to calculate the number of minutes between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of minutes between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to calculate the number of minutes between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of minutes between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to calculate the number of seconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of seconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to calculate the number of seconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of seconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to calculate the number of seconds between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of seconds between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to calculate the number of milliseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of milliseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to calculate the number of milliseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of milliseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to calculate the number of milliseconds between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of milliseconds between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to calculate the number of microseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of microseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to calculate the number of microseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of microseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to calculate the number of microseconds between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of microseconds between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to calculate the number of nanoseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of nanoseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to calculate the number of nanoseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of nanoseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to calculate the number of nanoseconds between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of nanoseconds between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to truncate the given value to the number of specified digits. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The value to truncate. The number of digits to preserve. The truncated value. When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to truncate the given value to the number of specified digits. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The value to truncate. The number of digits to preserve. The truncated value. When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input is treated as a Unicode string. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function impacts the way the LINQ query is translated to a query that can be run in the database. The input string. The input string treated as a Unicode string. When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input is treated as a non-Unicode string. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function impacts the way the LINQ query is translated to a query that can be run in the database. The input string. The input string treated as a non-Unicode string. Options for query execution. Creates a new instance of . Merge option to use for entity results. Creates a new instance of . Merge option to use for entity results. Whether the query is streaming or buffering. Determines whether the specified objects are equal. true if the two objects are equal; otherwise, false. The left object to compare. The right object to compare. Determines whether the specified objects are not equal. The left object to compare. The right object to compare. true if the two objects are not equal; otherwise, false. Merge option to use for entity results. Whether the query is streaming or buffering. DataRecord interface supporting structured types and rich metadata information. Gets a object with the specified index. A object. The index of the row. Returns nested readers as objects. Nested readers as objects. The ordinal of the column. Gets for this . A object. DataRecordInfo class providing a simple way to access both the type information and the column information. Initializes a new object for a specific type with an enumerable collection of data fields. The metadata for the type represented by this object, supplied by . An enumerable collection of objects that represent column information. Gets for this object. A object. Gets type info for this object as a object. A value. A prepared command definition, can be cached and reused to avoid repreparing a command. Initializes a new instance of the class using the supplied . The supplied . method used to clone the Initializes a new instance of the class. Creates and returns a object that can be executed. The command for database. Metadata Interface for all CLR types types Value to pass to GetInformation to get the StoreSchemaDefinition Value to pass to GetInformation to get the StoreSchemaMapping Value to pass to GetInformation to get the ConceptualSchemaDefinition Value to pass to GetInformation to get the StoreSchemaDefinitionVersion3 Value to pass to GetInformation to get the StoreSchemaMappingVersion3 Value to pass to GetInformation to get the ConceptualSchemaDefinitionVersion3 Name of the MaxLength Facet Name of the Unicode Facet Name of the FixedLength Facet Name of the Precision Facet Name of the Scale Facet Name of the Nullable Facet Name of the DefaultValue Facet Name of the Collation Facet Name of the SRID Facet Name of the IsStrict Facet When overridden in a derived class, returns the set of primitive types supported by the data source. The set of types supported by the data source. When overridden in a derived class, returns a collection of EDM functions supported by the provider manifest. A collection of EDM functions. Returns the FacetDescription objects for a particular type. The FacetDescription objects for the specified EDM type. The EDM type to return the facet description for. When overridden in a derived class, this method maps the specified storage type and a set of facets for that type to an EDM type. The instance that describes an EDM type and a set of facets for that type. The TypeUsage instance that describes a storage type and a set of facets for that type to be mapped to the EDM type. When overridden in a derived class, this method maps the specified EDM type and a set of facets for that type to a storage type. The TypeUsage instance that describes a storage type and a set of facets for that type. The TypeUsage instance that describes the EDM type and a set of facets for that type to be mapped to a storage type. When overridden in a derived class, this method returns provider-specific information. The XmlReader object that represents the mapping to the underlying data store catalog. The type of the information to return. Gets the provider-specific information. The provider-specific information. The type of the information to return. Indicates if the provider supports escaping strings to be used as patterns in a Like expression. True if this provider supports escaping strings to be used as patterns in a Like expression; otherwise, false. If the provider supports escaping, the character that would be used as the escape character. Provider writers should override this method to return the argument with the wildcards and the escape character escaped. This method is only used if SupportsEscapingLikeArgument returns true. The argument with the wildcards and the escape character escaped. The argument to be escaped. Returns a boolean that specifies whether the provider can handle expression trees containing instances of DbInExpression. The default implementation returns false for backwards compatibility. Derived classes can override this method. false Returns a boolean that specifies whether the provider can process expression trees not having DbProjectExpression nodes directly under both Left and Right sides of DbUnionAllExpression and DbIntersectExpression false Gets the namespace used by this provider manifest. The namespace used by this provider manifest. The factory for building command definitions; use the type of this object as the argument to the IServiceProvider.GetService method on the provider factory; Constructs an EF provider that will use the obtained from the app domain Singleton for resolving EF dependencies such as the instance to use. Registers a handler to process non-error messages coming from the database provider. The connection to receive information for. The handler to process messages. Create a Command Definition object given a command tree. command tree for the statement an executable command definition object This method simply delegates to the provider's implementation of CreateDbCommandDefinition. Creates command definition from specified manifest and command tree. The created command definition. The manifest. The command tree. Creates a command definition object for the specified provider manifest and command tree. An executable command definition object. Provider manifest previously retrieved from the store provider. Command tree for the statement. Create the default DbCommandDefinition object based on the prototype command This method is intended for provider writers to build a default command definition from a command. Note: This will clone the prototype the prototype command an executable command definition object See issue 2390 - cloning the DesignTimeVisible property on the DbCommand can cause deadlocks. So here allow sub-classes to override. the object to clone a clone of the Returns provider manifest token given a connection. The provider manifest token. Connection to provider. Returns provider manifest token for a given connection. Connection to find manifest token from. The provider manifest token for the specified connection. Returns the provider manifest by using the specified version information. The provider manifest by using the specified version information. The token information associated with the provider manifest. When overridden in a derived class, returns an instance of a class that derives from the DbProviderManifest. A DbProviderManifest object that represents the provider manifest. The token information associated with the provider manifest. Gets the that will be used to execute methods that use the specified connection. The database connection A new instance of Gets the that will be used to execute methods that use the specified connection. This overload should be used by the derived classes for compatability with wrapping providers. The database connection The provider invariant name A new instance of Gets the spatial data reader for the . The spatial data reader. The reader where the spatial data came from. The manifest token associated with the provider manifest. Gets the spatial services for the . The spatial services. The token information associated with the provider manifest. Gets the spatial services for the . The spatial services. Information about the database that the spatial services will be used for. Gets the spatial data reader for the . The spatial data reader. The reader where the spatial data came from. The token information associated with the provider manifest. Gets the spatial services for the . The spatial services. The token information associated with the provider manifest. Sets the parameter value and appropriate facets for the given . The parameter. The type of the parameter. The value of the parameter. Sets the parameter value and appropriate facets for the given . The parameter. The type of the parameter. The value of the parameter. Returns providers given a connection. The instanced based on the specified connection. Connection to provider. Retrieves the DbProviderFactory based on the specified DbConnection. The retrieved DbProviderFactory. The connection to use. Return an XML reader which represents the CSDL description The name of the CSDL description. An XmlReader that represents the CSDL description Generates a data definition language (DDL script that creates schema objects (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token. Individual statements should be separated using database-specific DDL command separator. It is expected that the generated script would be executed in the context of existing database with sufficient permissions, and it should not include commands to create the database, but it may include commands to create schemas and other auxiliary objects such as sequences, etc. A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token. The provider manifest token identifying the target version. The structure of the database. Generates a data definition language (DDL) script that creates schema objects (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token. Individual statements should be separated using database-specific DDL command separator. It is expected that the generated script would be executed in the context of existing database with sufficient permissions, and it should not include commands to create the database, but it may include commands to create schemas and other auxiliary objects such as sequences, etc. The provider manifest token identifying the target version. The structure of the database. A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token. Creates a database indicated by connection and creates schema objects (tables, primary keys, foreign keys) based on the contents of storeItemCollection. Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter. Execution timeout for any commands needed to create the database. The collection of all store items based on which the script should be created. Creates a database indicated by connection and creates schema objects (tables, primary keys, foreign keys) based on the contents of a StoreItemCollection. Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter. Execution timeout for any commands needed to create the database. The collection of all store items based on which the script should be created. Returns a value indicating whether a given database exists on the server. True if the provider can deduce the database only based on the connection. Connection to a database whose existence is checked by this method. Execution timeout for any commands needed to determine the existence of the database. The collection of all store items from the model. This parameter is no longer used for determining database existence. Returns a value indicating whether a given database exists on the server. True if the provider can deduce the database only based on the connection. Connection to a database whose existence is checked by this method. Execution timeout for any commands needed to determine the existence of the database. The collection of all store items from the model. This parameter is no longer used for determining database existence. Returns a value indicating whether a given database exists on the server. True if the provider can deduce the database only based on the connection. Connection to a database whose existence is checked by this method. Execution timeout for any commands needed to determine the existence of the database. The collection of all store items from the model. This parameter is no longer used for determining database existence. Returns a value indicating whether a given database exists on the server. True if the provider can deduce the database only based on the connection. Connection to a database whose existence is checked by this method. Execution timeout for any commands needed to determine the existence of the database. The collection of all store items from the model. This parameter is no longer used for determining database existence. Override this method to avoid creating the store item collection if it is not needed. The default implementation evaluates the Lazy and calls the other overload of this method. Deletes the specified database. Connection to an existing database that needs to be deleted. Execution timeout for any commands needed to delete the database. The collection of all store items from the model. This parameter is no longer used for database deletion. Deletes the specified database. Connection to an existing database that needs to be deleted. Execution timeout for any commands needed to delete the database. The collection of all store items from the model. This parameter is no longer used for database deletion. Expands |DataDirectory| in the given path if it begins with |DataDirectory| and returns the expanded path, or returns the given string if it does not start with |DataDirectory|. The path to expand. The expanded path. Adds an that will be used to resolve additional default provider services when a derived type is registered as an EF provider either using an entry in the application's config file or through code-based registration in . The resolver to add. Called to resolve additional default provider services when a derived type is registered as an EF provider either using an entry in the application's config file or through code-based registration in . The implementation of this method in this class uses the resolvers added with the AddDependencyResolver method to resolve dependencies. Use this method to set, add, or change other provider-related services. Note that this method will only be called for such services if they are not already explicitly configured in some other way by the application. This allows providers to set default services while the application is still able to override and explicitly configure each service if required. See and for more details. The type of the service to be resolved. An optional key providing additional information for resolving the service. An instance of the given type, or null if the service could not be resolved. Called to resolve additional default provider services when a derived type is registered as an EF provider either using an entry in the application's config file or through code-based registration in . The implementation of this method in this class uses the resolvers added with the AddDependencyResolver method to resolve dependencies. The type of the service to be resolved. An optional key providing additional information for resolving the service. All registered services that satisfy the given type and key, or an empty enumeration if there are none. A specialization of the ProviderManifest that accepts an XmlReader Initializes a new instance of the class. An object that provides access to the XML data in the provider manifest file. Returns the list of facet descriptions for the specified Entity Data Model (EDM) type. A collection of type that contains the list of facet descriptions for the specified EDM type. An for which the facet descriptions are to be retrieved. Returns the list of primitive types supported by the storage provider. A collection of type that contains the list of primitive types supported by the storage provider. Returns the list of provider-supported functions. A collection of type that contains the list of provider-supported functions. Gets the namespace name supported by this provider manifest. The namespace name supported by this provider manifest. Gets the best mapped equivalent Entity Data Model (EDM) type for a specified storage type name. The best mapped equivalent EDM type for a specified storage type name. Gets the best mapped equivalent storage primitive type for a specified storage type name. The best mapped equivalent storage primitive type for a specified storage type name. Class for representing a collection of items. Most of the implementation for actual maintenance of the collection is done by MetadataCollection Class representing a read-only wrapper around MetadataCollection The type of items in this collection Retrieves an item from this collection by using the specified identity. An item from this collection. The identity of the item to be searched for. true to perform the case-insensitive search; otherwise, false. Determines whether the collection contains an item with the specified identity. true if the collection contains the item to be searched for; otherwise, false. The default is false. The identity of the item. Retrieves an item from this collection by using the specified identity. true if there is an item that matches the search criteria; otherwise, false. The identity of the item to be searched for. true to perform the case-insensitive search; otherwise, false. When this method returns, this output parameter contains an item from the collection. If there is no matched item, this output parameter contains null. Returns an enumerator that can iterate through this collection. A that can be used to iterate through this . Returns the index of the specified value in this collection. The index of the specified value in this collection. A value to seek. Gets a value indicating whether this collection is read-only. true if this collection is read-only; otherwise, false. Gets an item from this collection by using the specified identity. An item from this collection. The identity of the item to be searched for. The enumerator for MetadataCollection Disposes of this enumerator. Moves to the next member in the collection of type . true if the enumerator is moved in the collection of type ; otherwise, false. Positions the enumerator before the first position in the collection of type . Gets the member at the current position. The member at the current position. Gets the member at the current position Returns a strongly typed object by using the specified identity. The item that is specified by the identity. The identity of the item. The type returned by the method. Returns a strongly typed object by using the specified identity from this item collection. true if there is an item that matches the search criteria; otherwise, false. The identity of the item. When this method returns, the output parameter contains a object. If there is no global item with the specified identity in the item collection, this output parameter contains null. The type returned by the method. Returns a strongly typed object by using the specified identity from this item collection. true if there is an item that matches the search criteria; otherwise, false. The identity of the item. true to perform the case-insensitive search; otherwise, false. When this method returns, the output parameter contains a object. If there is no global item with the specified identity in the item collection, this output parameter contains null. The type returned by the method. Returns a strongly typed object by using the specified identity with either case-sensitive or case-insensitive search. The item that is specified by the identity. The identity of the item. true to perform the case-insensitive search; otherwise, false. The type returned by the method. Returns all the items of the specified type from this item collection. A collection of type that contains all the items of the specified type. The type returned by the method. Returns an object by using the specified type name and the namespace name in this item collection. An object that represents the type that matches the specified type name and the namespace name in this item collection. If there is no matched type, this method returns null. The name of the type. The namespace of the type. Returns an object by using the specified type name and the namespace name from this item collection. true if there is a type that matches the search criteria; otherwise, false. The name of the type. The namespace of the type. When this method returns, this output parameter contains an object. If there is no type with the specified name and namespace name in this item collection, this output parameter contains null. Returns an object by using the specified type name and the namespace name from this item collection. An object that represents the type that matches the specified type name and the namespace name in this item collection. If there is no matched type, this method returns null. The name of the type. The namespace of the type. true to perform the case-insensitive search; otherwise, false. Returns an object by using the specified type name and the namespace name from this item collection. true if there is a type that matches the search criteria; otherwise, false. The name of the type. The namespace of the type. true to perform the case-insensitive search; otherwise, false. When this method returns, this output parameter contains an object. If there is no type with the specified name and namespace name in this item collection, this output parameter contains null. Returns all the overloads of the functions by using the specified name from this item collection. A collection of type that contains all the functions that have the specified name. The full name of the function. Returns all the overloads of the functions by using the specified name from this item collection. A collection of type that contains all the functions that have the specified name. The full name of the function. true to perform the case-insensitive search; otherwise, false. Returns all the overloads of the functions by using the specified name from this item collection. A collection of type ReadOnlyCollection that contains all the functions that have the specified name. A dictionary of functions. The full name of the function. true to perform the case-insensitive search; otherwise, false. Returns an object by using the specified entity container name. If there is no entity container, this method returns null; otherwise, it returns the first one. The name of the entity container. Returns an object by using the specified entity container name. If there is no entity container, the output parameter contains null; otherwise, it contains the first entity container. true if there is an entity container that matches the search criteria; otherwise, false. The name of the entity container. When this method returns, it contains an object. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container. Returns an object by using the specified entity container name. If there is no entity container, this method returns null; otherwise, it returns the first entity container. The name of the entity container. true to perform the case-insensitive search; otherwise, false. Returns an object by using the specified entity container name. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container. true if there is an entity container that matches the search criteria; otherwise, false. The name of the entity container. true to perform the case-insensitive search; otherwise, false. When this method returns, it contains an object. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container. Gets the data model associated with this item collection. The data model associated with this item collection. EntityRecordInfo class providing a simple way to access both the type information and the column information. Initializes a new instance of the class of a specific entity type with an enumerable collection of data fields and with specific key and entity set information. The of the entity represented by the described by this object. An enumerable collection of objects that represent column information. The key for the entity. The entity set to which the entity belongs. Gets the for the entity. The key for the entity. Public Entity SQL Parser class. Parse the specified query with the specified parameters. The containing and information describing inline function definitions if any. The EntitySQL query to be parsed. The optional query parameters. Parse a specific query with a specific set variables and produce a . The containing and information describing inline function definitions if any. The query to be parsed. The optional query variables. Entity SQL query inline function definition, returned as a part of . Function name. Function body and parameters. Start position of the function definition in the eSQL query text. End position of the function definition in the eSQL query text. Entity SQL Parser result information. A command tree produced during parsing. List of objects describing query inline function definitions. Compares objects using reference equality. Gets the default instance. Specifies the maximum length of array/string data allowed in a property. Initializes a new instance of the class. The maximum allowable length of array/string data. Value must be greater than zero. Initializes a new instance of the class. The maximum allowable length supported by the database will be used. Determines whether a specified object is valid. (Overrides ) This method returns true if the is null. It is assumed the is used if the value may not be null. The object to validate. true if the value is null or less than or equal to the specified maximum length, otherwise false Length is zero or less than negative one. Applies formatting to a specified error message. (Overrides ) The name to include in the formatted string. A localized string to describe the maximum acceptable length. Checks that Length has a legal value. Throws InvalidOperationException if not. Gets the maximum allowable length of the array/string data. Specifies the minimum length of array/string data allowed in a property. Initializes a new instance of the class. The minimum allowable length of array/string data. Value must be greater than or equal to zero. Determines whether a specified object is valid. (Overrides ) This method returns true if the is null. It is assumed the is used if the value may not be null. The object to validate. true if the value is null or greater than or equal to the specified minimum length, otherwise false Length is less than zero. Applies formatting to a specified error message. (Overrides ) The name to include in the formatted string. A localized string to describe the minimum acceptable length. Checks that Length has a legal value. Throws InvalidOperationException if not. Gets the minimum allowable length of the array/string data. Specifies the database column that a property is mapped to. Initializes a new instance of the class. Initializes a new instance of the class. The name of the column the property is mapped to. The name of the column the property is mapped to. The zero-based order of the column the property is mapped to. The database provider specific data type of the column the property is mapped to. Denotes that the class is a complex type. Complex types are non-scalar properties of entity types that enable scalar properties to be organized within entities. Complex types do not have keys and cannot be managed by the Entity Framework apart from the parent object. Specifies how the database generates values for a property. Initializes a new instance of the class. The pattern used to generate values for the property in the database. The pattern used to generate values for the property in the database. The pattern used to generate values for a property in the database. The database does not generate values. The database generates a value when a row is inserted. The database generates a value when a row is inserted or updated. Denotes a property used as a foreign key in a relationship. The annotation may be placed on the foreign key property and specify the associated navigation property name, or placed on a navigation property and specify the associated foreign key name. Initializes a new instance of the class. If placed on a foreign key property, the name of the associated navigation property. If placed on a navigation property, the name of the associated foreign key(s). If a navigation property has multiple foreign keys, a comma separated list should be supplied. If placed on a foreign key property, the name of the associated navigation property. If placed on a navigation property, the name of the associated foreign key(s). Specifies the inverse of a navigation property that represents the other end of the same relationship. Initializes a new instance of the class. The navigation property representing the other end of the same relationship. The navigation property representing the other end of the same relationship. Denotes that a property or class should be excluded from database mapping. Specifies the database table that a class is mapped to. Initializes a new instance of the class. The name of the table the class is mapped to. The name of the table the class is mapped to. The schema of the table the class is mapped to. Wraps access to the transaction object on the underlying store connection and ensures that the Entity Framework executes commands on the database within the context of that transaction. An instance of this class is retrieved by calling BeginTransaction() on the object. Commits the underlying store transaction Rolls back the underlying store transaction Cleans up this transaction object and ensures the Entity Framework is no longer using that transaction. Releases the resources used by this transaction object true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the database (store) transaction that is underlying this context transaction. A service for obtaining the correct from a given . On .NET 4.5 the provider is publicly accessible from the connection. On .NET 4 the default implementation of this service uses some heuristics to find the matching provider. If these fail then a new implementation of this service can be registered on to provide an appropriate resolution. Returns the for the given connection. The connection. The provider factory for the connection. Explicitly implemented by to prevent certain members from showing up in the IntelliSense of scaffolded migrations. Adds a custom to the migration. Custom operation implementors are encouraged to create extension methods on that provide a fluent-style API for adding new operations. The operation to add. A default implementation of that uses the underlying provider to get the manifest token. Note that to avoid multiple queries, this implementation using caching based on the actual type of instance, the property, and the property. A service for getting a provider manifest token given a connection. The class is used by default and makes use of the underlying provider to get the token which often involves opening the connection. A different implementation can be used instead by adding an to that may use any information in the connection to return the token. For example, if the connection is known to point to a SQL Server 2008 database then "2008" can be returned without opening the connection. Returns the manifest token to use for the given connection. The connection for which a manifest token is required. The manifest token to use. A strategy that is used to execute a command or query against the database, possibly with logic to retry when a failure occurs. Executes the specified operation. A delegate representing an executable operation that doesn't return any results. Executes the specified operation and returns the result. The return type of . A delegate representing an executable operation that returns the result of type . The result from the operation. Indicates whether this might retry the execution after a failure. Provides the base implementation of the retry mechanism for unreliable operations and transient conditions that uses exponentially increasing delays between retries. A new instance will be created each time an operation is executed. The following formula is used to calculate the delay after retryCount number of attempts: min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay) The retryCount starts at 0. The random factor distributes uniformly the retry attempts from multiple simultaneous operations failing simultaneously. Creates a new instance of . The default retry limit is 5, which means that the total amount of time spent between retries is 26 seconds plus the random factor. Creates a new instance of with the specified limits for number of retries and the delay between retries. The maximum number of retry attempts. The maximum delay in milliseconds between retries. Repetitively executes the specified operation while it satisfies the current retry policy. A delegate representing an executable operation that doesn't return any results. if the retry delay strategy determines the operation shouldn't be retried anymore if an existing transaction is detected and the execution strategy doesn't support it if this instance was already used to execute an operation Repetitively executes the specified operation while it satisfies the current retry policy. The type of result expected from the executable operation. A delegate representing an executable operation that returns the result of type . The result from the operation. if the retry delay strategy determines the operation shouldn't be retried anymore if an existing transaction is detected and the execution strategy doesn't support it if this instance was already used to execute an operation Determines whether the operation should be retried and the delay before the next attempt. The exception thrown during the last execution attempt. Returns the delay indicating how long to wait for before the next execution attempt if the operation should be retried; null otherwise Recursively gets InnerException from as long as it's an , or and passes it to The type of the unwrapped exception. The exception to be unwrapped. A delegate that will be called with the unwrapped exception. The result from . Determines whether the specified exception represents a transient failure that can be compensated by a retry. The exception object to be verified. true if the specified exception is considered as transient, otherwise false. Returns true to indicate that might retry the execution after a failure. A key used for resolving . It consists of the ADO.NET provider invariant name and the database server name as specified in the connection string. Initializes a new instance of The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. A string that will be matched against the server name in the connection string. The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. A string that will be matched against the server name in the connection string. Implement this interface on your context to use custom logic to calculate the key used to lookup an already created model in the cache. This interface allows you to have a single context type that can be used with different models in the same AppDomain, or multiple context types that use the same model. Gets the cached key associated with the provider. The cached key associated with the provider. Used by and when resolving a provider invariant name from a . Gets the name of the provider. The name of the provider. Represents a custom pluralization term to be used by the Create a new instance A non null or empty string representing the singular. A non null or empty string representing the plural. Get the singular. Get the plural. Default pluralization service implementation to be used by Entity Framework. This pluralization service is based on English locale. Pluralization services to be used by the EF runtime implement this interface. By default the is used, but the pluralization service to use can be set in a class derived from . Pluralize a word using the service. The word to pluralize. The pluralized word Singularize a word using the service. The word to singularize. The singularized word. Constructs a new instance of default pluralization service used in Entity Framework. Constructs a new instance of default pluralization service used in Entity Framework. A collection of user dictionary entries to be used by this service.These inputs can customize the service according the user needs. Returns the plural form of the specified word. The plural form of the input parameter. The word to be made plural. Returns the singular form of the specified word. The singular form of the input parameter. The word to be made singular. The exception that is thrown when the action failed again after being retried the configured number of times. Provider exception - Used by the entity client. Initializes a new instance of the class. Initializes a new instance of the class. The message that describes the error. Initializes a new instance of the class. The error message that explains the reason for the exception. The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. Initializes a new instance of the class with no error message. Initializes a new instance of the class with a specified error message. The message that describes the error. Initializes a new instance of the class. The message that describes the error. The exception that is the cause of the current exception. An that doesn't retry operations if they fail. Executes the specified operation once. A delegate representing an executable operation that doesn't return any results. Executes the specified operation once and returns the result. The return type of . A delegate representing an executable operation that returns the result of type . The result from the operation. Returns false to indicate that will not retry the execution after a failure. Represents a SQL query for entities that is created from a and is executed using the connection from that context. Instances of this class are obtained from the instance for the entity type. The query is not executed when this object is created; it is executed each time it is enumerated, for example by using foreach. SQL queries for non-entities are created using . See for a generic version of this class. Represents a SQL query for non-entities that is created from a and is executed using the connection from that context. Instances of this class are obtained from the instance. The query is not executed when this object is created; it is executed each time it is enumerated, for example by using foreach. SQL queries for entities are created using . See for a generic version of this class. Returns a new query that will stream the results instead of buffering. A new query with AsStreaming applied. Returns an which when enumerated will execute the SQL query against the database. An object that can be used to iterate through the elements. Returns a that contains the SQL string that was set when the query was created. The parameters are not included. A that represents this instance. Throws an exception indicating that binding directly to a store query is not supported. Never returns; always throws. Returns false. false . Creates an instance of a when called from the constructor of a derived type that will be used as a test double for . Methods and properties that will be used by the test double must be implemented by the test double except AsNoTracking and AsStreaming where the default implementation is a no-op. Returns a new query where the results of the query will not be tracked by the associated . A new query with NoTracking applied. Returns a new query that will stream the results instead of buffering. A new query with AsStreaming applied. Represents a SQL query for entities that is created from a and is executed using the connection from that context. Instances of this class are obtained from the instance for the entity type. The query is not executed when this object is created; it is executed each time it is enumerated, for example by using foreach. SQL queries for non-entities are created using . See for a non-generic version of this class. The type of entities returned by the query. Represents a SQL query for non-entities that is created from a and is executed using the connection from that context. Instances of this class are obtained from the instance. The query is not executed when this object is created; it is executed each time it is enumerated, for example by using foreach. SQL queries for entities are created using . See for a non-generic version of this class. The type of elements returned by the query. Returns a new query that will stream the results instead of buffering. A new query with AsStreaming applied. Returns an which when enumerated will execute the SQL query against the database. An object that can be used to iterate through the elements. Returns an which when enumerated will execute the SQL query against the database. An object that can be used to iterate through the elements. Returns a that contains the SQL string that was set when the query was created. The parameters are not included. A that represents this instance. Throws an exception indicating that binding directly to a store query is not supported. Never returns; always throws. Returns false. false . Creates an instance of a when called from the constructor of a derived type that will be used as a test double for . Methods and properties that will be used by the test double must be implemented by the test double except AsNoTracking and AsStreaming where the default implementation is a no-op. Returns a new query where the entities returned will not be cached in the . A new query with NoTracking applied. Returns a new query that will stream the results instead of buffering. A new query with AsStreaming applied. Represents a key value that uniquely identifies an Entity Framework model that has been loaded into memory. Determines whether the current cached model key is equal to the specified cached model key. true if the current cached model key is equal to the specified cached model key; otherwise, false. The cached model key to compare to the current cached model key. Returns the hash function for this cached model key. The hash function for this cached model key. Thrown when an operation can't be performed because there are existing migrations that have not been applied to the database. Represents errors that occur inside the Code First Migrations pipeline. Initializes a new instance of the MigrationsException class. Initializes a new instance of the MigrationsException class. The message that describes the error. Initializes a new instance of the MigrationsException class. The message that describes the error. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the MigrationsException class with serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. Initializes a new instance of the MigrationsPendingException class. Initializes a new instance of the MigrationsPendingException class. The message that describes the error. Initializes a new instance of the MigrationsPendingException class. The message that describes the error. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. A migration operation to add a new stored procedure to the database. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the stored procedure. The body of the stored procedure expressed in SQL. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation to drop the stored procedure. Allows configuration to be performed for a lightweight convention based on the properties in a model. Filters the properties that this convention applies to based on a predicate. A function to test each property for a condition. A instance so that multiple calls can be chained. Filters the properties that this convention applies to based on a predicate while capturing a value to use later during configuration. Type of the captured value. A function to capture a value for each property. If the value is null, the property will be filtered out. A instance so that multiple calls can be chained. Allows configuration of the properties that this convention applies to. An action that performs configuration against a . Gets the of the current instance. The exact runtime type of the current instance. Allows configuration to be performed for a lightweight convention based on the properties of entity types in a model and a captured value. The type of the captured value. Allows configuration of the properties that this convention applies to. An action that performs configuration against a using a captured value. Gets the of the current instance. The exact runtime type of the current instance. Allows configuration to be performed for a stored procedure that is used to modify a relationship. The type of the entity that the relationship is being configured from. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. The type of the property. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. The type of the property. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Creates a convention that configures stored procedures to be used to delete entities in the database. Creates a convention that configures stored procedures to be used to modify entities in the database. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. The schema name. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. The name of the property to configure the parameter for. The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. The property to configure the parameter for. The name of the parameter. Configures the output parameter that returns the rows affected by this stored procedure. The same configuration instance so that multiple calls can be chained. The name of the parameter. Creates a convention that configures stored procedures to be used to insert entities in the database. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. The schema name. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. The name of the property to configure the parameter for. The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. The property to configure the parameter for. The name of the parameter. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. The name of the property to configure the result for. The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. The property to configure the result for. The name of the result column. Creates a convention that configures stored procedures to be used to modify entities in the database. Configures stored procedure used to insert entities. The same configuration instance so that multiple calls can be chained. A lambda expression that performs configuration for the stored procedure. Configures stored procedure used to update entities. The same configuration instance so that multiple calls can be chained. A lambda expression that performs configuration for the stored procedure. Configures stored procedure used to delete entities. The same configuration instance so that multiple calls can be chained. A lambda expression that performs configuration for the stored procedure. Gets the of the current instance. The exact runtime type of the current instance. Creates a convention that configures stored procedures to be used to update entities in the database. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. The schema name. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. The name of the property to configure the parameter for. The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. The property to configure the parameter for. The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. The name of the property to configure the parameter for. The current value parameter name. The original value parameter name. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. The property to configure the parameter for. The current value parameter name. The original value parameter name. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. The name of the property to configure the result for. The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. The property to configure the result for. The name of the result column. Configures the output parameter that returns the rows affected by this stored procedure. The same configuration instance so that multiple calls can be chained. The name of the parameter. Allows configuration to be performed for a stored procedure that is used to modify a many to many relationship. The type of the entity that the relationship is being configured from. The type of the entity that the other end of the relationship targets. Performs configuration of a stored procedure uses to modify an entity in the database. Sets the name of the stored procedure. Name of the procedure. The same configuration instance so that multiple calls can be chained. Sets the name of the stored procedure. Name of the procedure. Name of the schema. The same configuration instance so that multiple calls can be chained. Configures the parameter for the left key value(s). The type of the property to configure. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty Name of the parameter. The same configuration instance so that multiple calls can be chained. Configures the parameter for the left key value(s). The type of the property to configure. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty Name of the parameter. The same configuration instance so that multiple calls can be chained. Configures the parameter for the left key value(s). A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty Name of the parameter. The same configuration instance so that multiple calls can be chained. Configures the parameter for the left key value(s). A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty Name of the parameter. The same configuration instance so that multiple calls can be chained. Configures the parameter for the right key value(s). The type of the property to configure. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty Name of the parameter. The same configuration instance so that multiple calls can be chained. Configures the parameter for the right key value(s). The type of the property to configure. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty Name of the parameter. The same configuration instance so that multiple calls can be chained. Configures the parameter for the right key value(s). A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty Name of the parameter. The same configuration instance so that multiple calls can be chained. Configures the parameter for the right key value(s). A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty Name of the parameter. The same configuration instance so that multiple calls can be chained. Allows configuration to be performed for a stored procedure that is used to modify a many to many relationship. The type of the entity that the relationship is being configured from. The type of the entity that the other end of the relationship targets. Configures stored procedure used to insert relationships. The same configuration instance so that multiple calls can be chained. A lambda expression that performs configuration for the stored procedure. Configures stored procedure used to delete relationships. The same configuration instance so that multiple calls can be chained. A lambda expression that performs configuration for the stored procedure. Gets the of the current instance. The exact runtime type of the current instance. Allows configuration to be performed for a stored procedure that is used to delete entities. The type of the entity that the stored procedure can be used to delete. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. The schema name. Configures a parameter for this stored procedure. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures the output parameter that returns the rows affected by this stored procedure. The same configuration instance so that multiple calls can be chained. The name of the parameter. Configures parameters for a relationship where the foreign key property is not included in the class. The same configuration instance so that multiple calls can be chained. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A lambda expression that performs the configuration. The type of the principal entity in the relationship. Configures parameters for a relationship where the foreign key property is not included in the class. The same configuration instance so that multiple calls can be chained. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A lambda expression that performs the configuration. The type of the principal entity in the relationship. Allows configuration to be performed for a stored procedure that is used to insert entities. The type of the entity that the stored procedure can be used to insert. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. The schema name. Configures a parameter for this stored procedure. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures parameters for a relationship where the foreign key property is not included in the class. The same configuration instance so that multiple calls can be chained. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A lambda expression that performs the configuration. The type of the principal entity in the relationship. Configures parameters for a relationship where the foreign key property is not included in the class. The same configuration instance so that multiple calls can be chained. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A lambda expression that performs the configuration. The type of the principal entity in the relationship. Allows configuration to be performed for a stored procedure that is used to update entities. The type of the entity that the stored procedure can be used to update. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. The schema name. Configures a parameter for this stored procedure. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The current value parameter name. The original value parameter name. Configures a parameter for this stored procedure. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The current value parameter name. The original value parameter name. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The current value parameter name. The original value parameter name. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The current value parameter name. The original value parameter name. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The current value parameter name. The original value parameter name. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The current value parameter name. The original value parameter name. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures the output parameter that returns the rows affected by this stored procedure. The same configuration instance so that multiple calls can be chained. The name of the parameter. Configures parameters for a relationship where the foreign key property is not included in the class. The same configuration instance so that multiple calls can be chained. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A lambda expression that performs the configuration. The type of the principal entity in the relationship. Configures parameters for a relationship where the foreign key property is not included in the class. The same configuration instance so that multiple calls can be chained. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A lambda expression that performs the configuration. The type of the principal entity in the relationship. Allows configuration to be performed for a stored procedure that is used to modify entities. The type of the entity that the stored procedure can be used to modify. Configures stored procedure used to insert entities. The same configuration instance so that multiple calls can be chained. A lambda expression that performs configuration for the stored procedure. Configures stored procedure used to update entities. The same configuration instance so that multiple calls can be chained. A lambda expression that performs configuration for the stored procedure. Configures stored procedure used to delete entities. The same configuration instance so that multiple calls can be chained. A lambda expression that performs configuration for the stored procedure. Gets the of the current instance. The exact runtime type of the current instance. Used to configure a primitive property of an entity type or complex type. This configuration functionality is available via lightweight conventions. Configures the name of the database column used to store the property. The name of the column. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Sets an annotation in the model for the database column used to store the property. The annotation value can later be used when processing the column such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Calling this method will have no effect if the annotation with the given name has already been configured. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same configuration instance so that multiple calls can be chained. Configures the name of the parameter used in stored procedures for this property. Name of the parameter. The same instance so that multiple calls can be chained. Configures the order of the database column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The order that this column should appear in the database table. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Configures the data type of the database column used to store the property. Name of the database provider specific data type. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Configures the property to be used as an optimistic concurrency token. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Configures whether or not the property is to be used as an optimistic concurrency token. Value indicating if the property is a concurrency token or not. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Configures how values for the property are generated by the database. The pattern used to generate values for the property in the database. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Configures the property to be optional. The database column used to store this property will be nullable. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Configures the property to be required. The database column used to store this property will be non-nullable. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Configures the property to support Unicode string content. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. This method throws if the property is not a . Configures whether or not the property supports Unicode string content. Value indicating if the property supports Unicode string content or not. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. This method throws if the property is not a . Configures the property to be fixed length. Use HasMaxLength to set the length that the property is fixed to. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. This method throws if the property does not have length facets. Configures the property to be variable length. Properties are variable length by default. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. This method throws if the property does not have length facets. Configures the property to have the specified maximum length. The maximum length for the property. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. This method throws if the property does not have length facets. Configures the property to allow the maximum length supported by the database provider. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. This method throws if the property does not have length facets. Configures the precision of the property. If the database provider does not support precision for the data type of the column then the value is ignored. Precision of the property. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. This method will throw if the property is not a . Configures the precision and scale of the property. The precision of the property. The scale of the property. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. This method will throw if the property is not a . Configures the property to be a row version in the database. The actual data type will vary depending on the database provider being used. Setting the property to be a row version will automatically configure it to be an optimistic concurrency token. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. This method throws if the property is not a . Configures this property to be part of the entity type's primary key. The same instance so that multiple calls can be chained. Gets the of the current instance. The exact runtime type of the current instance. Gets the for this property. An implementation of that does nothing. Using this initializer disables database initialization for the given context type. Passing an instance of this class to is equivalent to passing null. When is being used to resolve initializers an instance of this class must be used to disable initialization. The type of the context. FieldMetadata class providing the correlation between the column ordinals and MemberMetadata. Initializes a new object with the specified ordinal value and field type. An integer specified the location of the metadata. The field type. Gets the type of field for this object. The type of field for this object. Gets the ordinal for this object. An integer representing the ordinal value. Class representing a parameter collection used in EntityCommand Adds the specified object to the . The index of the new object. An . Adds an array of values to the end of the . The values to add. Removes all the objects from the . Determines whether the specified is in this . true if the contains the value; otherwise false. The value. Copies all the elements of the current to the specified one-dimensional starting at the specified destination index. The one-dimensional that is the destination of the elements copied from the current . A 32-bit integer that represents the index in the at which copying starts. Returns an enumerator that iterates through the . An for the . Gets the location of the specified with the specified name. The zero-based location of the specified with the specified case-sensitive name. Returns -1 when the object does not exist in the . The case-sensitive name of the to find. Gets the location of the specified in the collection. The zero-based location of the specified that is a in the collection. Returns -1 when the object does not exist in the . The to find. Inserts an into the at the specified index. The zero-based index at which value should be inserted. An to be inserted in the . Removes the specified parameter from the collection. A object to remove from the collection. Removes the from the at the specified index. The zero-based index of the object to remove. Removes the from the at the specified parameter name. The name of the to remove. Adds the specified object to the . A new object. The to add to the collection. The specified in the value parameter is already added to this or another . The parameter passed was not a . The value parameter is null. Adds a value to the end of the . A object. The name of the parameter. The value to be added. Adds a to the given the parameter name and the data type. A new object. The name of the parameter. One of the values. Adds a to the with the parameter name, the data type, and the column length. A new object. The name of the parameter. One of the values. The column length. Adds an array of values to the end of the . The values to add. Determines whether the specified is in this . true if the contains the value; otherwise false. The value. Copies all the elements of the current to the specified starting at the specified destination index. The that is the destination of the elements copied from the current . A 32-bit integer that represents the index in the at which copying starts. Gets the location of the specified in the collection. The zero-based location of the specified that is a in the collection. Returns -1 when the object does not exist in the . The to find. Inserts a object into the at the specified index. The zero-based index at which value should be inserted. A object to be inserted in the . Removes the specified from the collection. A object to remove from the collection. The parameter is not a . The parameter does not exist in the collection. Gets an Integer that contains the number of elements in the . The number of elements in the as an Integer. Gets a value that indicates whether the has a fixed size. Returns true if the has a fixed size; otherwise false. Gets a value that indicates whether the is read-only. Returns true if the is read only; otherwise false. Gets a value that indicates whether the is synchronized. Returns true if the is synchronized; otherwise false. Gets an object that can be used to synchronize access to the . An object that can be used to synchronize access to the . Gets the at the specified index. The at the specified index. The zero-based index of the parameter to retrieve. The specified index does not exist. Gets the with the specified name. The with the specified name. The name of the parameter to retrieve. The specified name does not exist. Class representing a command for the conceptual layer Initializes a new instance of the class using the specified values. Initializes a new instance of the class with the specified statement. The text of the command. Constructs the EntityCommand object with the given eSQL statement and the connection object to use The eSQL command text to execute The connection object Resolver used to resolve DbProviderServices Initializes a new instance of the class with the specified statement and connection. The text of the command. A connection to the data source. Initializes a new instance of the class with the specified statement, connection and transaction. The text of the command. A connection to the data source. The transaction in which the command executes. Cancels the execution of an . Creates a new instance of an object. A new instance of an object. Create and return a new parameter object representing a parameter in the eSQL statement The parameter object. Executes the command and returns a data reader. The that contains the results. Compiles the into a command tree and passes it to the underlying store provider for execution, then builds an out of the produced result set using the specified . The that contains the results. One of the values. Executes the command and returns a data reader for reading the results The behavior to use when executing the command A DbDataReader object Executes the current command. The number of rows affected. Executes the command, and returns the first column of the first row in the result set. Additional columns or rows are ignored. The first column of the first row in the result set, or a null reference (Nothing in Visual Basic) if the result set is empty. Compiles the entity-level command and creates a prepared version of the command. Compiles the entity-level command and returns the store command text. The store command text. Gets or sets the used by the . The connection used by the entity command. The connection object used for executing the command Gets or sets an Entity SQL statement that specifies a command or stored procedure to execute. The Entity SQL statement that specifies a command or stored procedure to execute. Gets or sets the command tree to execute; only one of the command tree or the command text can be set, not both. The command tree to execute. Gets or sets the amount of time to wait before timing out. The time in seconds to wait for the command to execute. Gets or sets a value that indicates how the property is to be interpreted. One of the enumeration values. Gets the parameters of the Entity SQL statement or stored procedure. The parameters of the Entity SQL statement or stored procedure. The collection of parameters for this command Gets or sets the transaction within which the executes. The transaction within which the executes. The transaction that this command executes in Gets or sets how command results are applied to rows being updated. One of the values. Gets or sets a value that indicates whether the command object should be visible in a Windows Form Designer control. true if the command object should be visible in a Windows Form Designer control; otherwise, false. Gets or sets a value that indicates whether the query plan caching is enabled. true if the query plan caching is enabled; otherwise, false. Class representing a connection for the conceptual layer. An entity connection may only be initialized once (by opening the connection). It is subsequently not possible to change the connection string, attach a new store connection, or change the store connection string. Initializes a new instance of the class. Initializes a new instance of the class, based on the connection string. The provider-specific connection string. An invalid connection string keyword has been provided, or a required connection string keyword has not been provided. Initializes a new instance of the class with a specified and . A to be associated with this . The underlying data source connection for this object. The workspace or connection parameter is null. The conceptual model is missing from the workspace.-or-The mapping file is missing from the workspace.-or-The storage model is missing from the workspace.-or-The connection is not in a closed state. The connection is not from an ADO.NET Entity Framework-compatible provider. Constructs the EntityConnection from Metadata loaded in memory Workspace containing metadata information. Store connection. If set to true the store connection is disposed when the entity connection is disposed, otherwise the caller must dispose the store connection. Returns the associated with this . The associated with this . The inline connection string contains an invalid Metadata keyword value. Establishes a connection to the data source by calling the underlying data provider's Open method. An error occurs when you open the connection, or the name of the underlying data provider is not known. The inline connection string contains an invalid Metadata keyword value. Creates a new instance of an , with the set to this . An object. The name of the underlying data provider is not known. Create a new command object that uses this connection object The command object. Closes the connection to the database. An error occurred when closing the connection. Not supported. Not supported. When the method is called. Begins a transaction by using the underlying provider. A new . The returned instance can later be associated with the to execute the command under that transaction. The underlying provider is not known.-or-The call to was made on an that already has a current transaction.-or-The state of the is not . Begins a transaction with the specified isolation level by using the underlying provider. A new . The returned instance can later be associated with the to execute the command under that transaction. The isolation level of the transaction. The underlying provider is not known.-or-The call to was made on an that already has a current transaction.-or-The state of the is not . Begins a database transaction The isolation level of the transaction An object representing the new transaction Enlists this in the specified transaction. The transaction object to enlist into. The state of the is not . Cleans up this connection object true to release both managed and unmanaged resources; false to release only unmanaged resources Gets or sets the connection string. The connection string required to establish the initial connection to a data source. The default value is an empty string. On a closed connection, the currently set value is returned. If no value has been set, an empty string is returned. An attempt was made to set the property after the ’s was initialized. The is initialized either when the instance is constructed through the overload that takes a as a parameter, or when the instance has been opened. An invalid connection string keyword has been provided or a required connection string keyword has not been provided. Gets the number of seconds to wait when attempting to establish a connection before ending the attempt and generating an error. The time (in seconds) to wait for a connection to open. The default value is the underlying data provider's default time-out. The value set is less than 0. Gets the name of the current database, or the database that will be used after a connection is opened. The value of the Database property of the underlying data provider. The underlying data provider is not known. Gets the state of the EntityConnection, which is set up to track the state of the underlying database connection that is wrapped by this EntityConnection. Gets the name or network address of the data source to connect to. The name of the data source. The default value is an empty string. The underlying data provider is not known. Gets a string that contains the version of the data source to which the client is connected. The version of the data source that is contained in the provider connection string. The connection is closed. Gets the provider factory associated with EntityConnection Provides access to the underlying data source connection that is used by the object. The for the data source connection. Gets the current transaction that this connection is enlisted in. May be null. Class representing a connection string builder for the entity client provider Initializes a new instance of the class. Initializes a new instance of the class using the supplied connection string. A provider-specific connection string to the underlying data source. Clears the contents of the instance. Determines whether the contains a specific key. Returns true if the contains an element that has the specified key; otherwise, false. The key to locate in the . Retrieves a value corresponding to the supplied key from this . Returns true if keyword was found in the connection string; otherwise, false. The key of the item to retrieve. The value corresponding to keyword. keyword contains a null value (Nothing in Visual Basic). Removes the entry with the specified key from the instance. Returns true if the key existed in the connection string and was removed; false if the key did not exist. The key of the keyword/value pair to be removed from the connection string in this . keyword is null (Nothing in Visual Basic) Gets or sets the name of a section as defined in a configuration file. The name of a section in a configuration file. Gets or sets the name of the underlying .NET Framework data provider in the connection string. The invariant name of the underlying .NET Framework data provider. Gets or sets the metadata locations in the connection string. Gets or sets the metadata locations in the connection string. Gets or sets the inner, provider-specific connection string. The inner, provider-specific connection string. Gets a value that indicates whether the has a fixed size. Returns true in every case, because the supplies a fixed-size collection of keyword/value pairs. Gets an that contains the keys in the . An that contains the keys in the . Gets or sets the value associated with the specified key. In C#, this property is the indexer. The value associated with the specified key. The key of the item to get or set. keyword is a null reference (Nothing in Visual Basic). Tried to add a key that does not exist in the available keys. Invalid value in the connection string (specifically, a Boolean or numeric value was expected but not supplied). A data reader class for the entity client provider Closes the object. Releases the resources consumed by this and calls . true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the value of the specified column as a Boolean. The value of the specified column. The zero-based column ordinal. Gets the value of the specified column as a byte. The value of the specified column. The zero-based column ordinal. Reads a stream of bytes from the specified column, starting at location indicated by dataIndex , into the buffer, starting at the location indicated by bufferIndex . The actual number of bytes read. The zero-based column ordinal. The index within the row from which to begin the read operation. The buffer into which to copy the data. The index with the buffer to which the data will be copied. The maximum number of characters to read. Gets the value of the specified column as a single character. The value of the specified column. The zero-based column ordinal. Reads a stream of characters from the specified column, starting at location indicated by dataIndex , into the buffer, starting at the location indicated by bufferIndex . The actual number of characters read. The zero-based column ordinal. The index within the row from which to begin the read operation. The buffer into which to copy the data. The index with the buffer to which the data will be copied. The maximum number of characters to read. Gets the name of the data type of the specified column. The name of the data type. The zero-based column ordinal. Gets the value of the specified column as a object. The value of the specified column. The zero-based column ordinal. Returns a object for the requested column ordinal that can be overridden with a provider-specific implementation. A data reader. The zero-based column ordinal. Gets the value of the specified column as a object. The value of the specified column. The zero-based column ordinal. Gets the value of the specified column as a double-precision floating point number. The value of the specified column. The zero-based column ordinal. Gets the data type of the specified column. The data type of the specified column. The zero-based column ordinal. Gets the value of the specified column as a single-precision floating point number. The value of the specified column. The zero-based column ordinal. Gets the value of the specified column as a globally-unique identifier (GUID). The value of the specified column. The zero-based column ordinal. Gets the value of the specified column as a 16-bit signed integer. The value of the specified column. The zero-based column ordinal. Gets the value of the specified column as a 32-bit signed integer. The value of the specified column. The zero-based column ordinal. Gets the value of the specified column as a 64-bit signed integer. The value of the specified column. The zero-based column ordinal. Gets the name of the column, given the zero-based column ordinal. The name of the specified column. The zero-based column ordinal. Gets the column ordinal given the name of the column. The zero-based column ordinal. The name of the column. The name specified is not a valid column name. Returns the provider-specific field type of the specified column. The object that describes the data type of the specified column. The zero-based column ordinal. Gets the value of the specified column as an instance of . The value of the specified column. The zero-based column ordinal. Gets all provider-specific attribute columns in the collection for the current row. The number of instances of in the array. An array of into which to copy the attribute columns. Returns a that describes the column metadata of the . A that describes the column metadata. Gets the value of the specified column as an instance of . The value of the specified column. The zero-based column ordinal. Gets the value of the specified column as an instance of . The value of the specified column. The zero-based column ordinal. Populates an array of objects with the column values of the current row. The number of instances of in the array. An array of into which to copy the attribute columns. Gets a value that indicates whether the column contains nonexistent or missing values. true if the specified column is equivalent to ; otherwise, false. The zero-based column ordinal. Advances the reader to the next result when reading the results of a batch of statements. true if there are more result sets; otherwise, false. Advances the reader to the next record in a result set. true if there are more rows; otherwise, false. Returns an that can be used to iterate through the rows in the data reader. An that can be used to iterate through the rows in the data reader. Returns a nested . The nested data record. The number of the DbDataRecord to return. Returns nested readers as objects. The nested readers as objects. The ordinal of the column. Gets a value indicating the depth of nesting for the current row. The depth of nesting for the current row. Gets the number of columns in the current row. The number of columns in the current row. Gets a value that indicates whether this contains one or more rows. true if the contains one or more rows; otherwise, false. Gets a value indicating whether the is closed. true if the is closed; otherwise, false. Gets the number of rows changed, inserted, or deleted by execution of the SQL statement. The number of rows changed, inserted, or deleted. Returns -1 for SELECT statements; 0 if no rows were affected or the statement failed. Gets the value of the specified column as an instance of . The value of the specified column. The zero-based column ordinal Gets the value of the specified column as an instance of . The value of the specified column. The name of the column. Gets the number of fields in the that are not hidden. The number of fields that are not hidden. Gets for this . The information of a data record. Class representing a parameter used in EntityCommand Initializes a new instance of the class using the default values. Initializes a new instance of the class using the specified parameter name and data type. The name of the parameter. One of the values. Initializes a new instance of the class using the specified parameter name, data type and size. The name of the parameter. One of the values. The size of the parameter. Initializes a new instance of the class using the specified properties. The name of the parameter. One of the values. The size of the parameter. The name of the source column. Initializes a new instance of the class using the specified properties. The name of the parameter. One of the values. The size of the parameter. One of the values. true to indicate that the parameter accepts null values; otherwise, false. The number of digits used to represent the value. The number of decimal places to which value is resolved. The name of the source column. One of the values. The value of the parameter. Resets the type associated with the . Returns a string representation of the parameter. A string representation of the parameter. Gets or sets the name of the entity parameter. The name of the entity parameter. Gets or sets the of the parameter. One of the values. Gets or sets the type of the parameter, expressed as an EdmType. The type of the parameter, expressed as an EdmType. Gets or sets the number of digits used to represent the property. The number of digits used to represent the value. Gets or sets the number of decimal places to which is resolved. The number of decimal places to which value is resolved. Gets or sets the value of the parameter. The value of the parameter. Gets or sets the direction of the parameter. One of the values. Gets or sets a value that indicates whether the parameter accepts null values. true if null values are accepted; otherwise, false. Gets or sets the maximum size of the data within the column. The maximum size of the data within the column. Gets or sets the name of the source column mapped to the and used for loading or returning the . The name of the source column mapped to the dataset and used for loading or returning the value. Gets or sets a value that indicates whether source column is nullable. true if source column is nullable; otherwise, false. Gets or sets the to use when loading the value. One of the values. Class representing a provider factory for the entity client provider A singleton object for the entity client provider factory object. This remains a public field (not property) because DbProviderFactory expects a field. Returns a new instance of the provider's class that implements the class. A new instance of . Throws a . This method is currently not supported. This method is currently not supported. Returns a new instance of the provider's class that implements the class. A new instance of . Returns a new instance of the provider's class that implements the class. A new instance of . Throws a . This method is currently not supported. This method is currently not supported. Returns a new instance of the provider's class that implements the class. A new instance of . Throws a . This method is currently not supported. This method is currently not supported. This method is currently not supported. Returns the requested class. A new instance of . The supported types are , , and . Returns null (or Nothing in Visual Basic) for every other type. The to return. Class representing a transaction for the conceptual layer Commits the underlying transaction. Rolls back the underlying transaction. Cleans up this transaction object true to release both managed and unmanaged resources; false to release only unmanaged resources Gets for this . An to the underlying data source. The connection object owning this transaction object Gets the isolation level of this . An enumeration value that represents the isolation level of the underlying transaction. Gets the DbTransaction for the underlying provider transaction. Represents a failure while trying to prepare or execute a CommandCompilation This exception is intended to provide a common exception that people can catch to hold provider exceptions (SqlException, OracleException) when using the EntityCommand to execute statements. Initializes a new instance of . Initializes a new instance of . The message that describes the error. Initializes a new instance of . The error message that explains the reason for the exception. The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Represents a failure while trying to prepare or execute a CommandExecution This exception is intended to provide a common exception that people can catch to hold provider exceptions (SqlException, OracleException) when using the EntityCommand to execute statements. Initializes a new instance of . Initializes a new instance of . The message that describes the error. Initializes a new instance of . The error message that explains the reason for the exception. The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. An identifier for an entity. Initializes a new instance of the class. Initializes a new instance of the class with an entity set name and a generic collection. A that is the entity set name qualified by the entity container name. A generic collection.Each key/value pair has a property name as the key and the value of that property as the value. There should be one pair for each property that is part of the . The order of the key/value pairs is not important, but each key property should be included. The property names are simple names that are not qualified with an entity type name or the schema name. Initializes a new instance of the class with an entity set name and an collection of objects. A that is the entity set name qualified by the entity container name. An collection of objects with which to initialize the key. Initializes a new instance of the class with an entity set name and specific entity key pair. A that is the entity set name qualified by the entity container name. A that is the name of the key. An that is the key value. Gets the entity set for this entity key from the given metadata workspace. The for the entity key. The metadata workspace that contains the entity. The entity set could not be located in the specified metadata workspace. Returns a value that indicates whether this instance is equal to a specified object. true if this instance and obj have equal values; otherwise, false. An to compare with this instance. Returns a value that indicates whether this instance is equal to a specified . true if this instance and other have equal values; otherwise, false. An object to compare with this instance. Serves as a hash function for the current object. is suitable for hashing algorithms and data structures such as a hash table. A hash code for the current . Compares two objects. true if the key1 and key2 values are equal; otherwise, false. A to compare. A to compare. Compares two objects. true if the key1 and key2 values are not equal; otherwise, false. A to compare. A to compare. Helper method that is used to deserialize an . Describes the source and destination of a given serialized stream, and provides an additional caller-defined context. Helper method that is used to deserialize an . Describes the source and destination of a given serialized stream and provides an additional caller-defined context. Gets a singleton EntityKey by which a read-only entity is identified. Gets a singleton EntityKey identifying an entity resulted from a failed TREAT. Gets or sets the name of the entity set. A value that is the name of the entity set for the entity to which the belongs. Gets or sets the name of the entity container. A value that is the name of the entity container for the entity to which the belongs. Gets or sets the key values associated with this . A of key values for this . Gets a value that indicates whether the is temporary. true if the is temporary; otherwise, false. Information about a key that is part of an EntityKey. A key member contains the key name and value. Initializes a new instance of the class. Initializes a new instance of the class with the specified entity key pair. The name of the key. The key value. Returns a string representation of the entity key. A string representation of the entity key. Gets or sets the name of the entity key. The key name. Gets or sets the value of the entity key. The key value. Kind of collection (applied to Properties) Property is not a Collection Collection has Bag semantics( unordered and duplicates ok) Collection has List semantics (Order is deterministic and duplicates ok) The concurrency mode for properties. Default concurrency mode: the property is never validated at write time Fixed concurrency mode: the property is always validated at write time The pattern for Server Generated Properties. Not a Server Generated Property. This is the default. A value is generated on INSERT, and remains unchanged on update. A value is generated on both INSERT and UPDATE. Represents an eSQL Query compilation exception; The class of exceptional conditions that may cause this exception to be raised are mainly: 1) Syntax Errors: raised during query text parsing and when a given query does not conform to eSQL formal grammar; 2) Semantic Errors: raised when semantic rules of eSQL language are not met such as metadata or schema information not accurate or not present, type validation errors, scoping rule violations, user of undefined variables, etc. For more information, see eSQL Language Spec. Initializes a new instance of . Initializes a new instance of with a specialized error message. The message that describes the error. Initializes a new instance of the class that uses a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Gets a description of the error. A string that describes the error. Gets the approximate context where the error occurred, if available. A string that describes the approximate context where the error occurred, if available. Gets the approximate line number where the error occurred. An integer that describes the line number where the error occurred. Gets the approximate column number where the error occurred. An integer that describes the column number where the error occurred. Thrown to indicate that a command tree is invalid. Initializes a new instance of the class with a default message. Initializes a new instance of the class with the specified message. The exception message. Initializes a new instance of the class with the specified message and inner exception. The exception message. The exception that is the cause of this . Mapping exception class. Note that this class has state - so if you change even its internals, it can be a breaking change Initializes a new instance of . Initializes a new instance of with a specialized error message. The message that describes the error. Initializes a new instance of that uses a specified error message and a reference to the inner exception. The message that describes the error. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Class for representing a collection of mapping items in Edm space. Base class for the type created at design time to store the generated views. Returns the key/value pair at the specified index, which contains the view and its key. The key/value pair at index , which contains the view and its key. The index of the view. Gets or sets the name of . The container name. Gets or sets in storage schema. Container name. Hash value. Hash value. Hash value of views. Hash value. Gets or sets view count. View count. Attribute to mark the assemblies that contain the generated views type. Initializes a new instance of the class. The view type. Gets the T:System.Type of the view. The T:System.Type of the view. Represents a complex type mapping for a function import result. Specifies a function import structural type mapping. Gets the property mappings for the result type of a function import. Initializes a new FunctionImportComplexTypeMapping instance. The return type. The property mappings for the result type of a function import. Ges the return type. Represents a function import entity type mapping. Initializes a new FunctionImportEntityTypeMapping instance. The entity types at the base of the type hierarchies to be mapped. The entity types to be mapped. The property mappings for the result types of a function import. The mapping conditions. Gets the entity types being mapped. Gets the entity types at the base of the hierarchies being mapped. Gets the mapping conditions. Represents a mapping condition for a function import result. Gets the name of the column used to evaluate the condition. Represents a mapping condition for the result of a function import evaluated by checking null or not null. Initializes a new FunctionImportEntityTypeMappingConditionIsNull instance. The name of the column used to evaluate the condition. Flag that indicates whether a null or not null check is performed. Gets a flag that indicates whether a null or not null check is performed. Represents a mapping condition for the result of a function import, evaluated by comparison with a specified value. Initializes a new FunctionImportEntityTypeMappingConditionValue instance. The name of the column used to evaluate the condition. The value to compare with. Gets the value used for comparison. Represents a mapping from a model function import to a store composable or non-composable function. Gets model function (or source of the mapping) Gets store function (or target of the mapping) Represents a mapping from a model function import to a store composable function. Initializes a new FunctionImportMappingComposable instance. The model function import. The store composable function. The result mapping for the function import. The parent container mapping. Gets the result mapping for the function import. Represents a mapping from a model function import to a store non-composable function. Initializes a new FunctionImportMappingNonComposable instance. The model function import. The store non-composable function. The function import result mappings. The parent container mapping. Gets the function import result mappings. Base class for mapping a property of a function import return type. Maps a function import return type property to a table column. Initializes a new FunctionImportReturnTypeScalarPropertyMapping instance. The mapped property name. The mapped column name. Gets the mapped property name. Gets the mapped column name. Represents the base item class for all the mapping metadata Represents the base item class for all the metadata Describes modification function mappings for an association set. Initalizes a new AssociationSetModificationFunctionMapping instance. An association set. A delete function mapping. An insert function mapping. Gets the association set. Gets the delete function mapping. Gets the insert function mapping. Describes modification function mappings for an entity type within an entity set. Initializes a new EntityTypeModificationFunctionMapping instance. An entity type. A delete function mapping. An insert function mapping. An updated function mapping. Gets the entity type. Gets the delete function mapping. Gets the insert function mapping. Gets hte update function mapping. Describes the location of a member within an entity or association type structure. Initializes a new ModificationFunctionMemberPath instance. Gets the members in the path from the leaf (the member being bound) to the root of the structure. Gets the association set to which we are navigating via this member. If the value is null, this is not a navigation member path. Gets the members in the path from the leaf (the member being bound) to the Root of the structure. Gets the association set to which we are navigating via this member. If the value is null, this is not a navigation member path. Binds a modification function parameter to a member of the entity or association being modified. Initializes a new ModificationFunctionParameterBinding instance. The parameter taking the value. The path to the entity or association member defining the value. A flag indicating whether the current or original member value is being bound. Gets the parameter taking the value. Gets the path to the entity or association member defining the value. Gets a flag indicating whether the current or original member value is being bound. Defines a binding from a named result set column to a member taking the value. Initializes a new ModificationFunctionResultBinding instance. The name of the column to bind from the function result set. The property to be set on the entity. Gets the name of the column to bind from the function result set. Gets the property to be set on the entity. Represents the Mapping metadata for an AssociationSet in CS space. For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityTypeMapping --MappingFragment --AssociationSetMapping --AssociationTypeMapping --MappingFragment This class represents the metadata for the AssociationSetMapping elements in the above example. And it is possible to access the AssociationTypeMap underneath it. There will be only one TypeMap under AssociationSetMap. Represents the Mapping metadata for an Extent in CS space. For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityTypeMapping --MappingFragment --AssociationSetMapping --AssociationTypeMapping --MappingFragment This class represents the metadata for all the extent map elements in the above example namely EntitySetMapping, AssociationSetMapping and CompositionSetMapping. The EntitySetBaseMapping elements that are children of the EntityContainerMapping element can be accessed through the properties on this type. Gets the parent container mapping. Gets or sets the query view associated with this mapping. Initializes a new AssociationSetMapping instance. The association set to be mapped. The store entity set to be mapped. The parent container mapping. Adds a property mapping condition. The condition to add. Removes a property mapping condition. The property mapping condition to remove. Gets the association set that is mapped. Gets the contained association type mapping. Gets or sets the corresponding function mapping. Can be null. Gets the store entity set that is mapped. Gets or sets the source end property mapping. Gets or sets the target end property mapping. Gets the property mapping conditions. Represents the Mapping metadata for an association type map in CS space. For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap --ScalarPropertyMap --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap --ComplexPropertyMap --ComplexTypeMap --ScalarPropertyMap --ScalarProperyMap --ScalarPropertyMap --AssociationSetMapping --AssociationTypeMapping --MappingFragment --EndPropertyMap --ScalarPropertyMap --ScalarProperyMap --EndPropertyMap --ScalarPropertyMap This class represents the metadata for all association Type map elements in the above example. Users can access the table mapping fragments under the association type mapping through this class. Represents the Mapping metadata for a type map in CS space. For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap --ScalarPropertyMap --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap --ComplexPropertyMap --ScalarPropertyMap --ScalarProperyMap --ScalarPropertyMap --AssociationSetMapping --AssociationTypeMapping --MappingFragment --EndPropertyMap --ScalarPropertyMap --ScalarProperyMap --EndPropertyMap --ScalarPropertyMap This class represents the metadata for all the Type map elements in the above example namely EntityTypeMapping, AssociationTypeMapping and CompositionTypeMapping. The TypeMapping elements contain TableMappingFragments which in turn contain the property maps. Creates an AssociationTypeMapping instance. The AssociationSetMapping that the contains this AssociationTypeMapping. Gets the AssociationSetMapping that contains this AssociationTypeMapping. Gets the association type being mapped. Gets the single mapping fragment. Mapping metadata for Complex properties. For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ComplexPropertyMap --ComplexTypeMapping --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) --ComplexTypeMapping --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --AssociationSetMapping --AssociationTypeMapping --MappingFragment --EndPropertyMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --EndPropertyMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) This class represents the metadata for all the complex property map elements in the above example. ComplexPropertyMaps contain ComplexTypeMaps which define mapping based on the type of the ComplexProperty in case of inheritance. Construct a new Complex Property mapping object The MemberMetadata object that represents this Complex member Adds a type mapping corresponding to a nested complex type. The complex type mapping to be added. Removes a type mapping corresponding to a nested complex type. The complex type mapping to be removed. Gets a read only collections of type mappings corresponding to the nested complex types. Mapping metadata for Complex Types. Creates a ComplexTypeMapping instance. The ComplexType being mapped. Adds a property mapping. The property mapping to be added. Removes a property mapping. The property mapping to be removed. Adds a property mapping condition. The property mapping condition to be added. Removes a property mapping condition. The property mapping condition to be removed. Gets the ComplexType being mapped. Gets a read-only collection of property mappings. Gets a read-only collection of property mapping conditions. Mapping metadata for End property of an association. For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ComplexPropertyMap --ComplexTypeMapping --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) --ComplexTypeMapping --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --AssociationSetMapping --AssociationTypeMapping --MappingFragment --EndPropertyMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --EndPropertyMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) This class represents the metadata for all the end property map elements in the above example. EndPropertyMaps provide mapping for each end of the association. Creates an association end property mapping. An AssociationEndMember that specifies the association end to be mapped. Adds a child property-column mapping. A ScalarPropertyMapping that specifies the property-column mapping to be added. Removes a child property-column mapping. A ScalarPropertyMapping that specifies the property-column mapping to be removed. Gets an AssociationEndMember that specifies the mapped association end. Gets a ReadOnlyCollection of ScalarPropertyMapping that specifies the children of this association end property mapping. Represents the Mapping metadata for the EntityContainer map in CS space. Only one EntityContainerMapping element is allowed in the MSL file for CS mapping. For Example if conceptually you could represent the CS MSL file as following ---Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --AssociationSetMapping The type represents the metadata for EntityContainerMapping element in the above example. The EntitySetBaseMapping elements that are children of the EntityContainerMapping element can be accessed through the properties on this type. We currently assume that an Entity Container on the C side is mapped to a single Entity Container in the S - space. Initializes a new EntityContainerMapping instance. The conceptual entity container to be mapped. The store entity container to be mapped. The parent mapping item collection. Flag indicating whether to generate update views. Adds an entity set mapping. The entity set mapping to add. Removes an association set mapping. The association set mapping to remove. Adds an association set mapping. The association set mapping to add. Removes an association set mapping. The association set mapping to remove. Adds a function import mapping. The function import mapping to add. Removes a function import mapping. The function import mapping to remove. Gets the parent mapping item collection. Gets the type kind for this item Gets the conceptual entity container. Gets the store entity container. Gets the entity set mappings. Gets the association set mappings. Gets the function import mappings. Gets a flag that indicates whether to generate the update views or not. Represents the Mapping metadata for an EnitytSet in CS space. For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityTypeMapping --MappingFragment --AssociationSetMapping --AssociationTypeMapping --MappingFragment This class represents the metadata for the EntitySetMapping elements in the above example. And it is possible to access the EntityTypeMaps underneath it. Initialiazes a new EntitySetMapping instance. The entity set to be mapped. The parent container mapping. Adds a type mapping. The type mapping to add. Removes a type mapping. The type mapping to remove. Adds a function mapping. The function mapping to add. Removes a function mapping. The function mapping to remove. Gets the entity set that is mapped. Gets the contained entity type mappings. Gets the corresponding function mappings. Mapping metadata for Entity type. If an EntitySet represents entities of more than one type, than we will have more than one EntityTypeMapping for an EntitySet( For ex : if PersonSet Entity extent represents entities of types Person and Customer, than we will have two EntityType Mappings under mapping for PersonSet). For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap --ScalarPropertyMap --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap --ComplexPropertyMap --ScalarPropertyMap --ScalarProperyMap --ScalarPropertyMap --AssociationSetMapping --AssociationTypeMapping --MappingFragment --EndPropertyMap --ScalarPropertyMap --ScalarProperyMap --EndPropertyMap --ScalarPropertyMap This class represents the metadata for all entity Type map elements in the above example. Users can access the table mapping fragments under the entity type mapping through this class. Creates an EntityTypeMapping instance. The EntitySetMapping that contains this EntityTypeMapping. Adds an entity type to the mapping. The EntityType to be added. Removes an entity type from the mapping. The EntityType to be removed. Adds an entity type hierarchy to the mapping. The hierarchy is represented by the specified root entity type. The root EntityType of the hierarchy to be added. Removes an entity type hierarchy from the mapping. The hierarchy is represented by the specified root entity type. The root EntityType of the hierarchy to be removed. Adds a mapping fragment. The mapping fragment to be added. Removes a mapping fragment. The mapping fragment to be removed. Gets the EntitySetMapping that contains this EntityTypeMapping. Gets the single EntityType being mapped. Throws exception in case of hierarchy type mapping. Gets a flag that indicates whether this is a type hierarchy mapping. Gets a read-only collection of mapping fragments. Gets the mapped entity types. Gets the mapped base types for a hierarchy mapping. Represents the metadata for mapping fragment. A set of mapping fragments makes up the Set mappings( EntitySet, AssociationSet or CompositionSet ) Each MappingFragment provides mapping for those properties of a type that map to a single table. For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ComplexPropertyMap --ComplexTypeMapping --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) --ComplexTypeMapping --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --AssociationSetMapping --AssociationTypeMapping --MappingFragment --EndPropertyMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --EndPropertyMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) This class represents the metadata for all the mapping fragment elements in the above example. Users can access all the top level constructs of MappingFragment element like EntityKey map, Property Maps, Discriminator property through this mapping fragment class. Creates a MappingFragment instance. The EntitySet corresponding to the table of view being mapped. The TypeMapping that contains this MappingFragment. Flag that indicates whether to include 'DISTINCT' when generating queries. Adds a property mapping. The property mapping to be added. Removes a property mapping. The property mapping to be removed. Adds a property mapping condition. The property mapping condition to be added. Removes a property mapping condition. The property mapping condition to be removed. Gets the EntitySet corresponding to the table or view being mapped. Gets the TypeMapping that contains this MappingFragment. Gets a flag that indicates whether to include 'DISTINCT' when generating queries. Gets a read-only collection of property mappings. Gets a read-only collection of property mapping conditions. Represents a collection of items in Storage Mapping (CS Mapping) space. Initializes a new instance of the class using the specified , and a collection of string indicating the metadata file paths. The that this mapping is to use. The that this mapping is to use. The file paths that this mapping is to use. Initializes a new instance of the class using the specified , and XML readers. The that this mapping is to use. The that this mapping is to use. The XML readers that this mapping is to use. Computes a hash value for the container mapping specified by the names of the mapped containers. The name of a container in the conceptual model. The name of a container in the store model. A string that specifies the computed hash value. Computes a hash value for the single container mapping in the collection. A string that specifies the computed hash value. Creates a dictionary of (extent, generated view) for a container mapping specified by the names of the mapped containers. The name of a container in the conceptual model. The name of a container in the store model. A list that accumulates potential errors. A dictionary of (, ) that specifies the generated views. Creates a dictionary of (extent, generated view) for the single container mapping in the collection. A list that accumulates potential errors. A dictionary of (, ) that specifies the generated views. Factory method that creates a . The edm metadata collection to map. Must not be null. The store metadata collection to map. Must not be null. MSL artifacts to load. Must not be null. Paths to MSL artifacts. Used in error messages. Can be null in which case the base Uri of the XmlReader will be used as a path. The collection of errors encountered while loading. instance if no errors encountered. Otherwise null. Gets or sets a for creating instances that are used to retrieve pre-generated mapping views. Gets the version of this represents. The version of this represents. Describes modification function binding for change processing of entities or associations. Initializes a new ModificationFunctionMapping instance. The entity or association set. The entity or association type. The metadata of function to which we should bind. Bindings for function parameters. The output parameter producing number of rows affected. Bindings for the results of function evaluation Gets output parameter producing number of rows affected. May be null. Gets Metadata of function to which we should bind. Gets bindings for function parameters. Gets bindings for the results of function evaluation. Mapping metadata for scalar properties. For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ComplexPropertyMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --AssociationSetMapping --AssociationTypeMapping --MappingFragment --EndPropertyMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --EndPropertyMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) This class represents the metadata for all the scalar property map elements in the above example. Creates a mapping between a simple property and a column. The property to be mapped. The column to be mapped. Gets an EdmProperty that specifies the mapped column. metadata exception class Initializes a new instance of the class with a default message. Initializes a new instance of the class with the specified message. The exception message. Initializes a new instance of the class with the specified message and inner exception. The exception message. The exception that is the cause of this . DataSpace OSpace indicates the item in the clr space CSpace indicates the item in the CSpace - edm primitive types + types defined in csdl SSpace indicates the item in the SSpace Mapping between OSpace and CSpace Mapping between CSpace and SSpace This class encapsulates the error information for a generic EDM error. Gets the error message. The error message. Class for representing a collection of items in Edm space. Initializes a new instance of the class by using the collection of the XMLReader objects where the conceptual schema definition language (CSDL) files exist. The collection of the XMLReader objects where the conceptual schema definition language (CSDL) files exist. Initializes a new instance of the class. The entity data model. Initializes a new instance of the class by using the paths where the conceptual schema definition language (CSDL) files exist. The paths where the conceptual schema definition language (CSDL) files exist. Returns a collection of the objects. A ReadOnlyCollection object that represents a collection of the objects. Returns a collection of the objects with the specified conceptual model version. A ReadOnlyCollection object that represents a collection of the objects. The conceptual model version. Factory method that creates an . CSDL artifacts to load. Must not be null. Paths to CSDL artifacts. Used in error messages. Can be null in which case the base Uri of the XmlReader will be used as a path. The collection of errors encountered while loading. instance if no errors encountered. Otherwise null. Gets the conceptual model version for this collection. The conceptual model version for this collection. This class encapsulates the error information for a schema error that was encountered. Constructs a EdmSchemaError object. The explanation of the error. The code associated with this error. The severity of the error. Returns the error message. The error message. Gets the error code. The error code. Gets the severity level of the error. One of the values. The default is . Gets the line number where the error occurred. The line number where the error occurred. Gets the column where the error occurred. The column where the error occurred. Gets the location of the schema that contains the error. This string also includes the name of the schema at the end. The location of the schema that contains the error. Gets the name of the schema that contains the error. The name of the schema that contains the error. Gets a string representation of the stack trace at the time the error occurred. A string representation of the stack trace at the time the error occurred. Defines the different severities of errors that can occur when validating an Entity Framework model. A warning that does not prevent the model from being used. An error that prevents the model from being used. Represents a end of a Association Type Initializes a new instance of the RelationshipEndMember class Represents the edm member class Returns the name of this member. The name of this member. Gets or sets the name of the property. Setting this from a store-space model-convention will change the name of the database column for this property. In the conceptual model, this should align with the corresponding property from the entity class and should not be changed. The name of this member. Gets the type on which this member is declared. A object that represents the type on which this member is declared. Gets the instance of the class that contains both the type of the member and facets for the type. A object that contains both the type of the member and facets for the type. Tells whether this member is marked as a Computed member in the EDM definition Tells whether this member's Store generated pattern is marked as Identity in the EDM definition Access the EntityType of the EndMember in an association. The EntityType of the EndMember in an association. Gets the operational behavior of this relationship end member. One of the values. The default is . Gets the multiplicity of this relationship end member. One of the values. Creates a read-only AssociationEndMember instance. The name of the association end member. The reference type for the end. The multiplicity of the end. Flag that indicates the delete behavior of the end. Metadata properties to be associated with the instance. The newly created AssociationEndMember instance. The specified name is null or empty. The specified reference type is null. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Class for representing an Association set Class for representing a relationship set Class for representing a entity set Returns the name of the current entity or relationship set. The name of the current entity or relationship set. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets escaped provider specific SQL describing this entity set. Gets or sets the name of the current entity or relationship set. If this property is changed from store-space, the mapping layer must also be updated to reflect the new name. To change the table name of a store space use the Table property. The name of the current entity or relationship set. Thrown if the setter is called when EntitySetBase instance is in ReadOnly state Gets the entity container of the current entity or relationship set. An object that represents the entity container of the current entity or relationship set. Thrown if the setter is called when the EntitySetBase instance or the EntityContainer passed into the setter is in ReadOnly state Gets the entity type of this . An object that represents the entity type of this . Thrown if the setter is called when EntitySetBase instance is in ReadOnly state Gets or sets the database table name for this entity set. if value passed into setter is null Thrown if the setter is called when EntitySetBase instance is in ReadOnly state Gets or sets the database schema for this entity set. if value passed into setter is null Thrown if the setter is called when EntitySetBase instance is in ReadOnly state Gets the relationship type of this . An object that represents the relationship type of this . Gets the built-in type kind for this . A object that represents the built-in type kind for this . Creates a read-only AssociationSet instance from the specified parameters. The name of the association set. The association type of the elements in the association set. The entity set for the source association set end. The entity set for the target association set end. Metadata properties to be associated with the instance. The newly created AssociationSet instance. The specified name is null or empty. The specified association type is null. The entity type of one of the ends of the specified association type does not match the entity type of the corresponding entity set end. Gets the association related to this . An object that represents the association related to this . Gets the ends of this . A collection of type that contains the ends of this . Gets the built-in type kind for this . A object that represents built-in type kind for this . Class representing a AssociationSet End Returns the name of the End role for this . The name of the End role for this . Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the parent association set of this . An object that represents the parent association set of this . Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state Gets the End member that this object corresponds to. An object that represents the End member that this object corresponds to. Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state Gets the name of the End for this . The name of the End for this . Gets the name of the End role for this . The name of the End role for this . Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state Gets the entity set referenced by this End role. An object that represents the entity set referred by this End role. Describes an association/relationship between two entities in the conceptual model or a foreign key relationship between two tables in the store model. In the conceptual model the dependant class may or may not define a foreign key property. If a foreign key is defined the property will be true and the property will contain details of the foreign keys Represents the Relationship type Represents the Entity Type Represents the Structural Type Base EdmType class for all the model types Returns the full name of this type. The full name of this type. Returns an instance of the whose element type is this type. The object whose element type is this type. Gets the name of this type. The name of this type. Gets the namespace of this type. The namespace of this type. Gets a value indicating whether this type is abstract or not. true if this type is abstract; otherwise, false. Thrown if the setter is called on instance that is in ReadOnly state Gets the base type of this type. The base type of this type. Thrown if the setter is called on instance that is in ReadOnly state Thrown if the value passed in for setter will create a loop in the inheritance chain Gets the full name of this type. The full name of this type. Adds a member to this type The member to add Removes a member from this type. The member to remove. Gets the list of members on this type. A collection of type that contains a set of members on this type. Adds the specified property to the list of keys for the current entity. The property to add. if member argument is null Thrown if the EntityType has a base type of another EntityTypeBase. In this case KeyMembers should be added to the base type If the EntityType instance is in ReadOnly state Removes the specified key member from the collection. The key member to remove. Gets the list of all the key members for the current entity or relationship type. A object that represents the list of key members for the current entity or relationship type. Gets the list of all the key properties for this entity type. The list of all the key properties for this entity type. Gets the list of ends for this relationship type. A collection of type that contains the list of Ends for this relationship type. Creates a read-only AssociationType instance from the specified parameters. The name of the association type. The namespace of the association type. Flag that indicates a foreign key (FK) relationship. The data space for the association type. The source association end member. The target association end member. A referential constraint. Metadata properties to be associated with the instance. The newly created AssociationType instance. The specified name is null or empty. The specified namespace is null or empty. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the list of ends for this . A collection of type that contains the list of ends for this . Gets or sets the referential constraint. The referential constraint. Gets the list of constraints for this . A collection of type that contains the list of constraints for this . Gets the Boolean property value that specifies whether the column is a foreign key. A Boolean value that specifies whether the column is a foreign key. If true, the column is a foreign key. If false (default), the column is not a foreign key. Represents the structure of an . In the conceptual-model this represents the shape and structure of an entity. In the store model this represents the structure of a table. To change the Schema and Table name use EntitySet. Returns a object that references this . A object that references this . The factory method for constructing the EntityType object. The name of the entity type. The namespace of the entity type. The dataspace in which the EntityType belongs to. Name of key members for the type. Members of the entity type (primitive and navigation properties). Metadata properties to be associated with the instance. The EntityType object. Thrown if either name, namespace arguments are null. The newly created EntityType will be read only. The factory method for constructing the EntityType object. The name of the entity type. The namespace of the entity type. The dataspace in which the EntityType belongs to. The base type. Name of key members for the type. Members of the entity type (primitive and navigation properties). Metadata properties to be associated with the instance. The EntityType object. Thrown if either name, namespace arguments are null. The newly created EntityType will be read only. Adds the specified navigation property to the members of this type. The navigation property is added regardless of the read-only flag. The navigation property to be added. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the declared navigation properties associated with the entity type. The declared navigation properties associated with the entity type. Gets the navigation properties of this . A collection of type that contains the list of navigation properties on this . Gets the list of declared properties for the entity type. The declared properties for the entity type. Gets the collection of declared members for the entity type. The collection of declared members for the entity type. Gets the list of properties for this . A collection of type that contains the list of properties for this . Represents an enumeration type. Class representing a simple type Creates a read-only EnumType instance. The name of the enumeration type. The namespace of the enumeration type. The underlying type of the enumeration type. Indicates whether the enumeration type can be treated as a bit field; that is, a set of flags. The members of the enumeration type. Metadata properties to be associated with the enumeration type. The newly created EnumType instance. underlyingType is null. name is null or empty. -or- namespaceName is null or empty. -or- underlyingType is not a supported underlying type. -or- The specified members do not have unique names. -or- The value of a specified member is not in the range of the underlying type. Returns the kind of the type Gets a collection of enumeration members for this enumeration type. Gets a value indicating whether the enum type is defined as flags (i.e. can be treated as a bit field) Gets the underlying type for this enumeration type. Specifies the kinds of item attributes in the conceptual model. An enumeration member indicating that an item attribute is System An enumeration member indicating that an item attribute is Extended. List of all the built in types Association Type Kind AssociationSetEnd Kind AssociationSet Kind Association Type Kind EntitySetBase Kind Entity Type Base Kind Collection Type Kind Collection Kind Complex Type Kind Documentation Kind DeleteAction Type Kind Edm Type Kind Entity Container Kind Entity Set Kind Entity Type Kind Enumeration Type Kind Enum Member Kind Facet Kind EdmFunction Kind Function Parameter Kind Global Item Type Kind Metadata Property Kind Navigation Property Kind Metadata Item Type Kind EdmMember Type Kind Parameter Mode Kind Primitive Type Kind Primitive Type Kind Kind EdmProperty Type Kind ProviderManifest Type Kind Referential Constraint Type Kind Ref Type Kind RelationshipEnd Type Kind Relationship Multiplicity Type Kind Relationship Set Type Kind Relationship Type Row Type Kind Simple Type Kind Structural Type Kind Type Information Kind Represents the Edm Collection Type Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the instance of the class that contains the type of the element that this current object includes and facets for that type. The instance of the class that contains the type of the element that this current object includes and facets for that type. Represents the Edm Complex Type. This can be used to configure complex types from a conceptual-space model-based convention. Complex types are not supported in the store model. Creates a new instance of the type. The name of the complex type. The namespace of the complex type. The dataspace to which the complex type belongs to. Members of the complex type. Metadata properties to be associated with the instance. Thrown if either name, namespace or members argument is null. A new instance a the type. The newly created will be read only. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the list of properties for this . A collection of type that contains the list of properties for this . Class representing the Documentation associated with an item Initializes a new Documentation instance. A summary string. A long description string. Returns the summary for this . The summary for this . Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the summary for this . The summary for this . Gets the long description for this . The long description for this . Gets a value indicating whether this object contains only a null or an empty and a . true if this object contains only a null or an empty and a ; otherwise, false. Class for representing a function Adds a parameter to this function. The parameter to be added. The factory method for constructing the object. The name of the function. The namespace of the function. The namespace the function belongs to. Additional function attributes and properties. Metadata properties that will be added to the function. Can be null. A new, read-only instance of the type. Gets the built-in type kind for this . One of the enumeration values of the enumeration. Returns the full name (namespace plus name) of this type. The full name of the type. Gets the parameters of this . A collection of type that contains the parameters of this . Gets the return parameter of this . A object that represents the return parameter of this . Gets the return parameters of this . A collection of type that represents the return parameters of this . Gets the store function name attribute of this function. Gets the parameter type semantics attribute of this function. Gets the aggregate attribute of this function. Gets a value indicating whether built in attribute is present on this function. true if the attribute is present; otherwise, false. Gets a value indicating whether this instance is from the provider manifest. true if this instance is from the provider manifest; otherwise, false. Gets a value indicating whether the is a niladic function (a function that accepts no arguments). true if the function is niladic; otherwise, false. Gets whether this instance is mapped to a function or to a stored procedure. true if this instance is mapped to a function; false if this instance is mapped to a stored procedure. Gets a query in the language that is used by the database management system or storage model. A string value in the syntax used by the database management system or storage model that contains the query or update statement of the . Gets or sets the schema associated with the function. The schema associated with the function. In conceptual-space, EdmProperty represents a property on an Entity. In store-space, EdmProperty represents a column in a table. Creates a new primitive property. The newly created property. The name of the property. The type of the property. Creates a new enum property. The newly created property. The name of the property. The type of the property. Creates a new complex property. The newly created property. The name of the property. The type of the property. Creates a new instance of EdmProperty type. Name of the property. Property A new instance of EdmProperty type Sets the metadata properties. The metadata properties to be set. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets a value indicating whether this can have a null value. Nullability in the conceptual model and store model is a simple indication of whether or not the property is considered nullable. Nullability in the object model is more complex. When using convention based mapping (as usually happens with POCO entities), a property in the object model is considered nullable if and only if the underlying CLR type is nullable and the property is not part of the primary key. When using attribute based mapping (usually used with entities that derive from the EntityObject base class), a property is considered nullable if the IsNullable flag is set to true in the attribute. This flag can be set to true even if the underlying type is not nullable, and can be set to false even if the underlying type is nullable. The latter case happens as part of default code generation when a non-nullable property in the conceptual model is mapped to a nullable CLR type such as a string. In such a case, the Entity Framework treats the property as non-nullable even though the CLR would allow null to be set. There is no good reason to set a non-nullable CLR type as nullable in the object model and this should not be done even though the attribute allows it. true if this can have a null value; otherwise, false. Thrown if the setter is called when the EdmProperty instance is in ReadOnly state Gets the type name of the property. The type name of the property. Gets the default value for this . The default value for this . Thrown if the setter is called when the EdmProperty instance is in ReadOnly state Gets whether the property is a collection type property. true if the property is a collection type property; otherwise, false. Gets whether this property is a complex type property. true if this property is a complex type property; otherwise, false. Gets whether this property is a primitive type. true if this property is a primitive type; otherwise, false. Gets whether this property is an enumeration type property. true if this property is an enumeration type property; otherwise, false. Gets whether this property is an underlying primitive type. true if this property is an underlying primitive type; otherwise, false. Gets the complex type information for this property. The complex type information for this property. Gets the primitive type information for this property. The primitive type information for this property. Gets the enumeration type information for this property. The enumeration type information for this property. Gets the underlying primitive type information for this property. The underlying primitive type information for this property. Gets or sets the concurrency mode for the property. The concurrency mode for the property. Gets or sets the database generation method for the database column associated with this property The store generated pattern for the property. Gets or sets the kind of collection for this model. The kind of collection for this model. Gets whether the maximum length facet is constant for the database provider. true if the facet is constant; otherwise, false. Gets or sets the maximum length of the property. The maximum length of the property. Gets or sets whether this property uses the maximum length supported by the provider. true if this property uses the maximum length supported by the provider; otherwise, false. Gets whether the fixed length facet is constant for the database provider. true if the facet is constant; otherwise, false. Gets or sets whether the length of this property is fixed. true if the length of this property is fixed; otherwise, false. Gets whether the Unicode facet is constant for the database provider. true if the facet is constant; otherwise, false. Gets or sets whether this property is a Unicode property. true if this property is a Unicode property; otherwise, false. Gets whether the precision facet is constant for the database provider. true if the facet is constant; otherwise, false. Gets or sets the precision of this property. The precision of this property. Gets whether the scale facet is constant for the database provider. true if the facet is constant; otherwise, false. Gets or sets the scale of this property. The scale of this property. Class for representing an entity container Creates an entity container with the specified name and data space. The entity container name. The entity container data space. Thrown if the name argument is null. Thrown if the name argument is empty string. Returns an object by using the specified name for the entity set. An object that represents the entity set that has the specified name. The name of the entity set that is searched for. true to perform the case-insensitive search; otherwise, false. Returns an object by using the specified name for the entity set. true if there is an entity set that matches the search criteria; otherwise, false. The name of the entity set that is searched for. true to perform the case-insensitive search; otherwise, false. When this method returns, contains an object. If there is no entity set, this output parameter contains null. Returns a object by using the specified name for the relationship set. An object that represents the relationship set that has the specified name. The name of the relationship set that is searched for. true to perform the case-insensitive search; otherwise, false. Returns a object by using the specified name for the relationship set. true if there is a relationship set that matches the search criteria; otherwise, false. The name of the relationship set that is searched for. true to perform the case-insensitive search; otherwise, false. When this method returns, contains a object. Returns the name of this . The name of this . Adds the specified entity set to the container. The entity set to add. Removes a specific entity set from the container. The entity set to remove. Adds a function import to the container. The function import to add. The factory method for constructing the EntityContainer object. The name of the entity container to be created. DataSpace in which this entity container belongs to. Entity sets that will be included in the new container. Can be null. Functions that will be included in the new container. Can be null. Metadata properties to be associated with the instance. The EntityContainer object. Thrown if the name argument is null or empty string. The newly created EntityContainer will be read only. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the name of this . The name of this . Gets a list of entity sets and association sets that this includes. A object that contains a list of entity sets and association sets that this includes. Gets the association sets for this entity container. The association sets for this entity container . Gets the entity sets for this entity container. The entity sets for this entity container . Specifies a collection of elements. Each function contains the details of a stored procedure that exists in the database or equivalent CommandText that is mapped to an entity and its properties. A that contains elements. Represents a particular usage of a structure defined in EntityType. In the conceptual-model, this represents a set that can query and persist entities. In the store-model it represents a table. From a store-space model-convention it can be used to configure table name with property and table schema with property. The factory method for constructing the EntitySet object. The name of the EntitySet. The db schema. Can be null. The db table. Can be null. The provider specific query that should be used to retrieve data for this EntitySet. Can be null. The entity type of the entities that this entity set type contains. Metadata properties that will be added to the newly created EntitySet. Can be null. The EntitySet object. Thrown if the name argument is null or empty string. The newly created EntitySet will be read only. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the entity type of this . An object that represents the entity type of this . Represents an enumeration member. Overriding System.Object.ToString to provide better String representation for this type. The name of this enumeration member. Creates a read-only EnumMember instance. The name of the enumeration member. The value of the enumeration member. Metadata properties to be associated with the enumeration member. The newly created EnumMember instance. name is null or empty. Creates a read-only EnumMember instance. The name of the enumeration member. The value of the enumeration member. Metadata properties to be associated with the enumeration member. The newly created EnumMember instance. name is null or empty. Creates a read-only EnumMember instance. The name of the enumeration member. The value of the enumeration member. Metadata properties to be associated with the enumeration member. The newly created EnumMember instance. name is null or empty. Creates a read-only EnumMember instance. The name of the enumeration member. The value of the enumeration member. Metadata properties to be associated with the enumeration member. The newly created EnumMember instance. name is null or empty. Creates a read-only EnumMember instance. The name of the enumeration member. The value of the enumeration member. Metadata properties to be associated with the enumeration member. The newly created EnumMember instance. name is null or empty. Gets the kind of this type. Gets the name of this enumeration member. Gets the value of this enumeration member. Class for representing a Facet object This object is Immutable (not just set to readonly) and some parts of the system are depending on that behavior Returns the name of this . The name of this . Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the description of this . The object that represents the description of this . Gets the name of this . The name of this . Gets the type of this . The object that represents the type of this . Gets the value of this . The value of this . Thrown if the Facet instance is in ReadOnly state Gets a value indicating whether the value of the facet is unbounded. true if the value of the facet is unbounded; otherwise, false. Class for representing a FacetDescription object Returns the name of this facet. The name of this facet. Gets the name of this facet. The name of this facet. Gets the type of this facet. An object that represents the type of this facet. Gets the minimum value for this facet. The minimum value for this facet. Gets the maximum value for this facet. The maximum value for this facet. Gets the default value of a facet with this facet description. The default value of a facet with this facet description. Gets a value indicating whether the value of this facet is a constant. true if this facet is a constant; otherwise, false. Gets a value indicating whether this facet is a required facet. true if this facet is a required facet; otherwise, false. Class representing a function parameter Returns the name of this . The name of this . The factory method for constructing the object. The name of the parameter. The EdmType of the parameter. The of the parameter. A new, read-only instance of the type. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the mode of this . One of the values. Thrown if the FunctionParameter instance is in ReadOnly state Gets the name of this . The name of this . Gets the instance of the class that contains both the type of the parameter and facets for the type. A object that contains both the type of the parameter and facets for the type. Gets the type name of this parameter. The type name of this parameter. Gets whether the max length facet is constant for the database provider. true if the facet is constant; otherwise, false. Gets the maximum length of the parameter. The maximum length of the parameter. Gets whether the parameter uses the maximum length supported by the database provider. true if parameter uses the maximum length supported by the database provider; otherwise, false. Gets whether the precision facet is constant for the database provider. true if the facet is constant; otherwise, false. Gets the precision value of the parameter. The precision value of the parameter. Gets whether the scale facet is constant for the database provider. true if the facet is constant; otherwise, false. Gets the scale value of the parameter. The scale value of the parameter. Gets the on which this parameter is declared. A object that represents the function on which this parameter is declared. Class representing a metadata attribute for an item The factory method for constructing the MetadataProperty object. The name of the metadata property. The type usage of the metadata property. The value of the metadata property. The MetadataProperty object. Thrown is null. The newly created MetadataProperty will be read only. Creates a metadata annotation having the specified name and value. The annotation name. The annotation value. A MetadataProperty instance representing the created annotation. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the name of this . The name of this . Gets the value of this . The value of this . Thrown if the MetadataProperty instance is in readonly state Gets the instance of the class that contains both the type of this and facets for the type. A object that contains both the type of this and facets for the type. Thrown if the MetadataProperty instance is in readonly state Gets the value of this . The value of this . Gets a boolean that indicates whether the metadata property is an annotation. Represent the edm navigation property class Where the given navigation property is on the dependent end of a referential constraint, returns the foreign key properties. Otherwise, returns an empty set. We will return the members in the order of the principal end key properties. A collection of the foreign key properties. Creates a NavigationProperty instance from the specified parameters. The name of the navigation property. Specifies the navigation property type and its facets. The relationship type for the navigation. The source end member in the navigation. The target end member in the navigation. The metadata properties of the navigation property. The newly created NavigationProperty instance. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the relationship type that this navigation property operates on. The relationship type that this navigation property operates on. Thrown if the NavigationProperty instance is in ReadOnly state Gets the "to" relationship end member of this navigation. The "to" relationship end member of this navigation. Thrown if the NavigationProperty instance is in ReadOnly state Gets the "from" relationship end member in this navigation. The "from" relationship end member in this navigation. Thrown if the NavigationProperty instance is in ReadOnly state Represents the list of possible actions for delete operation no action Cascade to other ends The enumeration defining the mode of a parameter In parameter Out parameter Both in and out parameter Return Parameter Class representing a primitive type Returns the equivalent of this . For example if this instance is nvarchar and it's base type is Edm String then the return type is Edm String. If the type is actually already a model type then the return type is "this". An object that is an equivalent of this . Returns the list of primitive types. A collection of type that contains the list of primitive types. Returns the equivalent of a . An object that is an equivalent of a specified . A value of type . Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets a enumeration value that indicates a primitive type of this . A enumeration value that indicates a primitive type of this . Gets the list of facet descriptions for this . A collection of type that contains the list of facet descriptions for this . Returns an equivalent common language runtime (CLR) type of this . Note that the property always returns a non-nullable type value. A object that represents an equivalent common language runtime (CLR) type of this . Primitive Types as defined by EDM Binary Type Kind Boolean Type Kind Byte Type Kind DateTime Type Kind Decimal Type Kind Double Type Kind Guid Type Kind Single Type Kind SByte Type Kind Int16 Type Kind Int32 Type Kind Int64 Type Kind String Type Kind Time Type Kind DateTimeOffset Type Kind Geometry Type Kind Geography Type Kind Geometric point type kind Geometric linestring type kind Geometric polygon type kind Geometric multi-point type kind Geometric multi-linestring type kind Geometric multi-polygon type kind Geometric collection type kind Geographic point type kind Geographic linestring type kind Geographic polygon type kind Geographic multi-point type kind Geographic multi-linestring type kind Geographic multi-polygon type kind Geographic collection type kind This class represents a referential constraint between two entities specifying the "to" and "from" ends of the relationship. Constructs a new constraint on the relationship role from which the relationship originates role to which the relationship is linked/targeted to properties on entity type of to role which take part in the constraint properties on entity type of from role which take part in the constraint Argument Null exception if any of the arguments is null Returns the combination of the names of the and the . The combination of the names of the and the . Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the "from role" that takes part in this . A object that represents the "from role" that takes part in this . Thrown if value passed into setter is null Thrown if the ReferentialConstraint instance is in ReadOnly state Gets the "to role" that takes part in this . A object that represents the "to role" that takes part in this . Thrown if value passed into setter is null Thrown if the ReferentialConstraint instance is in ReadOnly state Gets the list of properties for the "from role" on which this is defined. A collection of type that contains the list of properties for "from role" on which this is defined. Gets the list of properties for the "to role" on which this is defined. A collection of type that contains the list of properties for the "to role" on which this is defined. Class representing a ref type Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the entity type referenced by this . An object that represents the entity type referenced by this . Represents the multiplicity information about the end of a relationship type Lower Bound is Zero and Upper Bound is One Both lower bound and upper bound is one Lower bound is zero and upper bound is null Represents the Edm Row Type The factory method for constructing the object. Properties of the row type object. Metadata properties that will be added to the function. Can be null. A new, read-only instance of the object. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the list of properties on this . A collection of type that contains the list of properties on this . Gets a collection of the properties defined by the current type. A collection of the properties defined by the current type. Class representing a type information for an item Factory method for creating a TypeUsage with specified EdmType and facets EdmType for which to create a type usage facets to be copied into the new TypeUsage new TypeUsage instance Creates a object with the specified conceptual model type. A object with the default facet values for the specified . A for which the object is created. Creates a object to describe a string type by using the specified facet values. A object describing a string type by using the specified facet values. A for which the object is created. true to set the character-encoding standard of the string type to Unicode; otherwise, false. true to set the character-encoding standard of the string type to Unicode; otherwise, false. true to set the length of the string type to fixed; otherwise, false. Creates a object to describe a string type by using the specified facet values and unbounded MaxLength. A object describing a string type by using the specified facet values and unbounded MaxLength. A for which the object is created. true to set the character-encoding standard of the string type to Unicode; otherwise, false. true to set the length of the string type to fixed; otherwise, false Creates a object to describe a binary type by using the specified facet values. A object describing a binary type by using the specified facet values. A for which the object is created. true to set the length of the binary type to fixed; otherwise, false. The maximum length of the binary type. Creates a object to describe a binary type by using the specified facet values. A object describing a binary type by using the specified facet values. A for which the object is created. true to set the length of the binary type to fixed; otherwise, false. Creates a object of the type that the parameters describe. A object. The simple type that defines the units of measurement of the DateTime object. The degree of granularity of the DateTimeOffset in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds. Creates a object of the type that the parameters describe. A object. The simple type that defines the units of measurement of the offset. The degree of granularity of the DateTimeOffset in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds. Creates a object of the type that the parameters describe. A object. The simple type that defines the units of measurement of the DateTime object. The degree of granularity of the DateTimeOffset in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds. Creates a object to describe a decimal type by using the specified facet values. A object describing a decimal type by using the specified facet values. A for which the object is created. The precision of the decimal type as type . The scale of the decimal type as type . Creates a object to describe a decimal type with unbounded precision and scale facet values. A object describing a decimal type with unbounded precision and scale facet values. A for which the object is created. Checks whether this is a subtype of the specified . true if this is a subtype of the specified ; otherwise, false. The object to be checked. Returns the full name of the type described by this . The full name of the type described by this as string. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the type information described by this . An object that represents the type information described by this . Gets the list of facets for the type that is described by this . A collection of type that contains the list of facets for the type that is described by this . Returns a Model type usage for a provider type Model (CSpace) type usage Do not perform any extension check Check the extension against a specific value Check the extension against the set of acceptable extensions Runtime Metadata Workspace Initializes a new instance of the class. Constructs a with loaders for all item collections () needed by EF except the o/c mapping which will be created automatically based on the given o-space and c-space loaders. The item collection delegates are executed lazily when a given collection is used for the first time. It is acceptable to pass a delegate that returns null if the collection will never be used, but this is rarely done, and any attempt by EF to use the collection in such cases will result in an exception. Delegate to return the c-space (CSDL) item collection. Delegate to return the s-space (SSDL) item collection. Delegate to return the c/s mapping (MSL) item collection. Delegate to return the o-space item collection. Constructs a with loaders for all item collections () that come from traditional EDMX mapping. Default o-space and o/c mapping collections will be used. The item collection delegates are executed lazily when a given collection is used for the first time. It is acceptable to pass a delegate that returns null if the collection will never be used, but this is rarely done, and any attempt by EF to use the collection in such cases will result in an exception. Delegate to return the c-space (CSDL) item collection. Delegate to return the s-space (SSDL) item collection. Delegate to return the c/s mapping (MSL) item collection. Initializes a new instance of the class using the specified paths and assemblies. The paths to workspace metadata. The names of assemblies used to construct workspace. Creates an configured to use the data space. The created parser object. Creates a new bound to this metadata workspace based on the specified query expression. A new with the specified expression as it's property. A that defines the query. If is null If contains metadata that cannot be resolved in this metadata workspace If is not structurally valid because it contains unresolvable variable references Gets items. The items. The from which to retrieve items. Registers the item collection with each associated data model. The output parameter collection that needs to be filled up. Loads metadata from the given assembly. The assembly from which the metadata will be loaded. Loads metadata from the given assembly. The assembly from which the metadata will be loaded. The delegate for logging the load messages. Returns an item by using the specified identity and the data model. The item that matches the given identity in the specified data model. The identity of the item. The conceptual model in which the item is searched. The type returned by the method. Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace Returns an item by using the specified identity and the data model. true if there is an item that matches the search criteria; otherwise, false. The conceptual model on which the item is searched. The conceptual model on which the item is searched. When this method returns, contains a object. This parameter is passed uninitialized. The type returned by the method. Returns an item by using the specified identity and the data model. The item that matches the given identity in the specified data model. The identity of the item. true to perform the case-insensitive search; otherwise, false. The conceptual model on which the item is searched. The type returned by the method. Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace Returns an item by using the specified identity and the data model. true if there is an item that matches the search criteria; otherwise, false. The conceptual model on which the item is searched. true to perform the case-insensitive search; otherwise, false. The conceptual model on which the item is searched. When this method returns, contains a object. This parameter is passed uninitialized. The type returned by the method. Gets all the items in the specified data model. A collection of type that contains all the items in the specified data model. The conceptual model for which the list of items is needed. The type returned by the method. Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace Returns an object by using the specified type name, namespace name, and data model. An object that represents the type that matches the given type name and the namespace name in the specified data model. If there is no matched type, this method returns null. The name of the type. The namespace of the type. The conceptual model on which the type is searched. Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace Returns an object by using the specified type name, namespace name, and data model. true if there is a type that matches the search criteria; otherwise, false. The name of the type. The namespace of the type. The conceptual model on which the type is searched. When this method returns, contains an object. This parameter is passed uninitialized. Returns an object by using the specified type name, namespace name, and data model. An object. The name of the type. The namespace of the type. true to perform the case-insensitive search; otherwise, false. The conceptual model on which the type is searched. Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace Returns an object by using the specified type name, namespace name, and data model. true if there is a type that matches the search criteria; otherwise, false. The name of the type. The namespace of the type. true to perform the case-insensitive search; otherwise, false. The conceptual model on which the type is searched. When this method returns, contains an object. This parameter is passed uninitialized. Returns an object by using the specified entity container name and the data model. If there is no entity container, this method returns null; otherwise, it returns the first entity container. The name of the entity container. The conceptual model on which the entity container is searched. Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace Returns an object by using the specified entity container name and the data model. true if there is an entity container that matches the search criteria; otherwise, false. The name of the entity container. The conceptual model on which the entity container is searched. When this method returns, contains an object. If there is no entity container, this output parameter contains null; otherwise, it returns the first entity container. This parameter is passed uninitialized. Returns an object by using the specified entity container name and the data model. If there is no entity container, this method returns null; otherwise, it returns the first entity container. The name of the entity container. true to perform the case-insensitive search; otherwise, false. The conceptual model on which the entity container is searched. Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace Returns an object by using the specified entity container name and the data model. true if there is an entity container that matches the search criteria; otherwise, false. The name of the entity container. true to perform the case-insensitive search; otherwise, false. The conceptual model on which the entity container is searched. When this method returns, contains an object. If there is no entity container, this output parameter contains null; otherwise, it returns the first entity container. This parameter is passed uninitialized. Returns all the overloads of the functions by using the specified name, namespace name, and data model. A collection of type that contains all the functions that match the specified name in a given namespace and a data model. The name of the function. The namespace of the function. The conceptual model in which the functions are searched. Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace Returns all the overloads of the functions by using the specified name, namespace name, and data model. A collection of type that contains all the functions that match the specified name in a given namespace and a data model. The name of the function. The namespace of the function. The conceptual model in which the functions are searched. true to perform the case-insensitive search; otherwise, false. Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace Returns the list of primitive types in the specified data model. A collection of type that contains all the primitive types in the specified data model. The data model for which you need the list of primitive types. Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace Gets all the items in the specified data model. A collection of type that contains all the items in the specified data model. The conceptual model for which the list of items is needed. Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace Tests the retrieval of . true if the retrieval was successful; otherwise, false. The from which to attempt retrieval of . When this method returns, contains the item collection. This parameter is passed uninitialized. Returns a object that represents the object space type that matches the type supplied by the parameter edmSpaceType . A object that represents the Object space type. If there is no matched type, this method returns null. A object that represents the . Returns a object via the out parameter objectSpaceType that represents the type that matches the supplied by the parameter edmSpaceType . true if there is a type that matches the search criteria; otherwise, false. A object that represents the . When this method returns, contains a object that represents the Object space type. This parameter is passed uninitialized. Returns a object that represents the object space type that matches the type supplied by the parameter edmSpaceType . A object that represents the Object space type. If there is no matched type, this method returns null. A object that represents the . Returns a object via the out parameter objectSpaceType that represents the type that matches the supplied by the parameter edmSpaceType . true if there is a type that matches the search criteria; otherwise, false. A object that represents the . When this method returns, contains a object that represents the Object space type. This parameter is passed uninitialized. Returns a object that represents the that matches the type supplied by the parameter objectSpaceType . A object that represents the . If there is no matched type, this method returns null. A that supplies the type in the object space. Returns a object via the out parameter edmSpaceType that represents the that matches the type supplied by the parameter objectSpaceType . true if there is a type that matches the search criteria; otherwise, false. A object that represents the object space type. When this method returns, contains a object that represents the . This parameter is passed uninitialized. Returns a object that represents the that matches the type supplied by the parameter objectSpaceType . A object that represents the . If there is no matched type, this method returns null. A that supplies the type in the object space. Returns a object via the out parameter edmSpaceType that represents the that matches the type supplied by the parameter objectSpaceType . true on success, false on failure. A object that represents the object space type. When this method returns, contains a object that represents the . This parameter is passed uninitialized. Clears all the metadata cache entries. Gets original value members from an entity set and entity type. The original value members from an entity set and entity type. The entity set from which to retrieve original values. The entity type of which to retrieve original values. Returns members of a given / for which original values are needed when modifying an entity. The s for which original value is required. An belonging to the C-Space. An that participates in the given . true if entities may be updated partially; otherwise, false. The Max EDM version thats going to be supported by the runtime. Class for representing a collection of items for the object layer. Most of the implementation for actual maintenance of the collection is done by ItemCollection Initializes a new instance of the class. Loads metadata from the given assembly. The assembly from which the metadata will be loaded. Loads metadata from the given assembly. The assembly from which the metadata will be loaded. The EDM metadata source for the O space metadata. The delegate to which log messages are sent. Loads metadata from the specified assembly. The assembly from which the metadata will be loaded. The EDM metadata source for the O space metadata. Returns a collection of primitive type objects. A collection of primitive type objects. Returns the CLR type that corresponds to the supplied by the objectSpaceType parameter. The CLR type of the OSpace argument. A that represents the object space type. Returns a CLR type corresponding to the supplied by the objectSpaceType parameter. true if there is a type that matches the search criteria; otherwise, false. A that represents the object space type. The CLR type. The method returns the underlying CLR type for the specified OSpace type argument. If the DataSpace of the parameter is not OSpace, an ArgumentException is thrown. The CLR type of the OSpace argument. The OSpace type to look up. Returns the underlying CLR type for the specified OSpace enum type argument. If the DataSpace of the parameter is not OSpace, the method returns false and sets the out parameter to null. true on success, false on failure The OSpace enum type to look up The CLR enum type of the OSpace argument Returns all the items of the specified type from this item collection. A collection of type that contains all items of the specified type. The type returned by the method. The enumeration defining the type semantics used to resolve function overloads. These flags are defined in the provider manifest per function definition. Allow Implicit Conversion between given and formal argument types (default). Allow Type Promotion between given and formal argument types. Use strict Equivalence only. Class for representing a collection of items in Store space. Initializes a new instance of the class using the specified XMLReader. The XMLReader used to create metadata. Initializes a new instances of the class. The model of the . Initializes a new instance of the class using the specified file paths. The file paths used to create metadata. Returns a collection of the objects. A object that represents the collection of the objects. Factory method that creates a . SSDL artifacts to load. Must not be null. Paths to SSDL artifacts. Used in error messages. Can be null in which case the base Uri of the XmlReader will be used as a path. Custom resolver. Currently used to resolve DbProviderServices implementation. If null the default resolver will be used. The collection of errors encountered while loading. instance if no errors encountered. Otherwise null. Gets the provider factory of the StoreItemCollection. The provider factory of the StoreItemCollection. Gets the provider manifest of the StoreItemCollection. The provider manifest of the StoreItemCollection. Gets the manifest token of the StoreItemCollection. The manifest token of the StoreItemCollection. Gets the invariant name of the StoreItemCollection. The invariant name of the StoreItemCollection. Gets the version of the store schema for this collection. The version of the store schema for this collection. This exception is thrown when a requested object is not found in the store. Initializes a new instance of . Initializes a new instance of with a specialized error message. The message that describes the error. Initializes a new instance of class that uses a specified error message and a reference to the inner exception. The message that describes the error. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Caches an ELinq query Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg13 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg14 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg15 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg13 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg14 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg13 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . The type T of the query results returned by executing the delegate returned by the method. The values currently assigned to the properties of an entity. Provides access to the original values of object data. The DbUpdatableDataRecord implements methods that allow updates to the original values of an object. Retrieves the field value as a Boolean. The field value as a Boolean. The ordinal of the field. Retrieves the field value as a byte. The field value as a byte. The ordinal of the field. Retrieves the field value as a byte array. The number of bytes copied. The ordinal of the field. The index at which to start copying data. The destination buffer where data is copied. The index in the destination buffer where copying will begin. The number of bytes to copy. Retrieves the field value as a char. The field value as a char. The ordinal of the field. Retrieves the field value as a char array. The number of characters copied. The ordinal of the field. The index at which to start copying data. The destination buffer where data is copied. The index in the destination buffer where copying will begin. The number of characters to copy. Retrieves the field value as an . The field value as an . The ordinal of the field. Retrieves the field value as a The field value as a . The ordinal of the field. Retrieves the name of the field data type. The name of the field data type. The ordinal of the field. Retrieves the field value as a . The field value as a . The ordinal of the field. Retrieves the field value as a decimal. The field value as a decimal. The ordinal of the field. Retrieves the field value as a double. The field value as a double. The ordinal of the field. Retrieves the type of a field. The field type. The ordinal of the field. Retrieves the field value as a float. The field value as a float. The ordinal of the field. Retrieves the field value as a . The field value as a . The ordinal of the field. Retrieves the field value as an . The field value as an . The ordinal of the field. Retrieves the field value as an . The field value as an . The ordinal of the field. Retrieves the field value as an . The field value as an . The ordinal of the field. Retrieves the name of a field. The name of the field. The ordinal of the field. Retrieves the ordinal of a field by using the name of the field. The ordinal of the field. The name of the field. Retrieves the field value as a string. The field value. The ordinal of the field. Retrieves the value of a field. The field value. The ordinal of the field. Retrieves the value of a field. The field value. The ordinal of the field. Populates an array of objects with the field values of the current record. The number of field values returned. An array of objects to store the field values. Returns whether the specified field is set to . true if the field is set to ; otherwise false. The ordinal of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets field values in a record. The number of the fields that were set. The values of the field. Sets a field to the value. The ordinal of the field. Retrieves a field value as a . A field value as a . The ordinal of the field. Retrieves the field value as a . The field value as a . The ordinal of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Gets the number of fields in the record. An integer value that is the field count. Returns a value that has the given field ordinal. The value that has the given field ordinal. The ordinal of the field. Gets a value that has the given field name. The field value. The name of the field. Gets data record information. A object. This is the interface that represent the minimum interface required to be an entity in ADO.NET. This class contains the common methods need for an date object. Public constant name used for change tracking Providing this definition allows users to use this constant instead of hard-coding the string. This helps to ensure the property name is correct and allows faster comparisons in places where we are looking for this specific string. Users can still use the case-sensitive string directly instead of the constant, it will just be slightly slower on comparison. Including the dash (-) character around the name ensures that this will not conflict with a real data property, because -EntityKey- is not a valid identifier name Raises the event. The name of the changed property. Raises the event. The name of the property changing. Returns the minimum date time value supported by the data source. A value that is the minimum date time that is supported by the data source. Raises an event that is used to report that a property change is pending. The name of the changing property. Raises an event that is used to report that a property change has occurred. The name for the changed property. Returns a complex type for the specified property. Unlike most of the other helper methods in this class, this one is not static because it references the SetValidValue for complex objects, which is also not static because it needs a reference to this. A complex type object for the property. A complex object that inherits from complex object. The name of the complex property that is the complex object. Indicates whether the type supports null values. Indicates whether the type is initialized. The type of the complex object being requested. Determines whether the specified byte arrays contain identical values. true if both arrays are of the same length and contain the same byte values or if both arrays are null; otherwise, false. The first byte array value to compare. The second byte array to compare. Returns a copy of the current byte value. A copy of the current value. The current byte array value. Makes sure the value being set for a property is valid. The value being validated. The value passed into the property setter. Flag indicating if this property is allowed to be null. The name of the property that is being validated. If value is null for a non nullable value. Makes sure the value being set for a property is valid. A value being set. The value being set. Indicates whether the property is nullable. Makes sure the value being set for a property is valid. The value being set. The Boolean value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The Boolean value. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. A that is set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value that is set. The value that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. A value being set. The value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the Single value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the Single value being set for a property is valid. The value being set. The value. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. The value being set. The value. Name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the UInt16 value being set for a property is valid. The nullable UInt16 value being set. The nullable UInt16 value. The name of the property that is being validated. Makes sure the UInt16 value being set for a property is valid. The nullable UInt16 value being set. The nullable UInt16 value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the UInt32 value being set for a property is valid. The nullable UInt32 value being set. The nullable UInt32 value. The name of the property that is being validated. Makes sure the UInt32 value being set for a property is valid. The nullable UInt32 value being set. The nullable UInt32 value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the value being set for a property is valid. The nullable UInt64 value being set. The nullable UInt64 value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable UInt64 value being set. The nullable UInt64 value. Validates that the property is not null, and throws if it is. The validated property. The string value to be checked. Flag indicating if this property is allowed to be null. The name of the property that is being validated. The string value is null for a non-nullable string. Validates that the property is not null, and throws if it is. The validated value. The string value to be checked. Flag indicating if this property is allowed to be null. Validates that the property is not null, and throws if it is. The value being set. The value to be checked. Flag indicating if this property is allowed to be null. Name of the property that is being validated. The value is null for a non-nullable property. Validates that the property is not null, and throws if it is. The value being set. value to be checked. Flag indicating if this property is allowed to be null. The value is null for a non-nullable property. Validates that the property is not null, and throws if it is. The value being set. value to be checked. Flag indicating if this property is allowed to be null. The name of the property that is being validated. The value is null for a non-nullable property. Validates that the property is not null, and throws if it is. The value being set. The value to be checked. Flag indicating if this property is allowed to be null. The value is null for a non-nullable property. Sets a complex object for the specified property. A complex type that derives from complex object. The original complex object for the property, if any. The complex object is being set. The complex property that is being set to the complex object. The type of the object being replaced. Verifies that a complex object is not null. The complex object being validated. The complex object that is being validated. The complex property on the parent object that is associated with complexObject . The type of the complex object being verified. Notification that a property has been changed. The PropertyChanged event can indicate all properties on the object have changed by using either a null reference (Nothing in Visual Basic) or String.Empty as the property name in the PropertyChangedEventArgs. Notification that a property is about to be changed. The PropertyChanging event can indicate all properties on the object are changing by using either a null reference (Nothing in Visual Basic) or String.Empty as the property name in the PropertyChangingEventArgs. Notifies the change tracker that a property change is pending on a complex object. The name of the changing property. property is null. Notifies the change tracker that a property of a complex object has changed. The name of the changed property. property is null. Attribute for complex properties Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, The metadata system expects this and will only look at the first of each of these attributes, even if there are more. Base attribute for properties mapped to store elements. Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, The metadata system expects this and will only look at the first of each of these attributes, even if there are more. attribute for complex types Base attribute for schematized types The name of the type in the conceptual schema that maps to the class to which this attribute is applied. A that is the name. The namespace name of the entity object type or complex type in the conceptual schema that maps to this type. A that is the namespace name. Attribute identifying the Edm base class Attribute indicating an enum type. Attribute identifying the Ends defined for a RelationshipSet Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, The metadata system expects this and will only look at the first of each of these attributes, even if there are more. Initializes a new instance of the class. The namespace name of the relationship property. The name of the relationship. The relationship name is not namespace qualified. The role name at the other end of the relationship. The namespace name of the navigation property. A that is the namespace name. Gets the unqualified relationship name. The relationship name. Gets the role name at the other end of the relationship. The target role name is specified by the Role attribute of the other End element in the association that defines this relationship in the conceptual model. For more information, see Association (EDM). Defines a relationship between two entity types based on an association in the conceptual model. Creates an instance of the class. The name of the namespace for the association in which this entity participates. The name of a relationship in which this entity participates. Name of the role for the type at one end of the association. A value of that indicates the multiplicity at one end of the association, such as one or many. The type of the entity at one end of the association. Name of the role for the type at the other end of the association. A value of that indicates the multiplicity at the other end of the association, such as one or many. The type of the entity at the other end of the association. Initializes a new instance of the class. The name of the namespace for the association in which this entity participates. The name of a relationship in which this entity participates. Name of the role for the type at one end of the association. A value of that indicates the multiplicity at one end of the association, such as one or many. The type of the entity at one end of the association. Name of the role for the type at the other end of the association. A value of that indicates the multiplicity at the other end of the association, such as one or many. The type of the entity at the other end of the association. A value that indicates whether the relationship is based on the foreign key value. The namespace for the relationship. A that is the namespace for the relationship. Name of the relationship. A that is the name of a relationship that is defined by this . Name of the role at one end of the relationship. A that is the name of the role. Multiplicity at one end of the relationship. A value that indicates the multiplicity. Type of the entity at one end of the relationship. A that is the type of the object at this end of the association. Name of the role at the other end of the relationship. A that is the name of the role. Multiplicity at the other end of the relationship. A value that indicates the multiplicity. Type of the entity at the other end of the relationship. A that is the type of the object t the other end of the association. Gets a Boolean value that indicates whether the relationship is based on the foreign key value. true if the relationship is based on the foreign key value; otherwise false. Attribute for scalar properties in an IEntity. Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, The metadata system expects this and will only look at the first of each of these attributes, even if there are more. Gets or sets the value that indicates whether the property can have a null value. The value that indicates whether the property can have a null value. Gets or sets the value that indicates whether the property is part of the entity key. The value that indicates whether the property is part of the entity key. Attribute for static types Initializes a new instance of the class. Initializes a new instance of the class with a unique value for each model referenced by the assembly. Setting this parameter to a unique value for each model file in a Visual Basic assembly will prevent the following error: "'System.Data.Entity.Core.Objects.DataClasses.EdmSchemaAttribute' cannot be specified more than once in this project, even with identical parameter values." A string that is a unique GUID value for the model in the assembly. Collection of entities modeling a particular EDM construct which can either be all entities of a particular type or entities participating in a particular relationship. The type of entities in this collection. Base class for EntityCollection and EntityReference Represents one end of a relationship. Loads the related object or objects into this related end with the default merge option. Loads the related object or objects into the related end with the specified merge option. The to use when merging objects into an existing . Adds an object to the related end. An object to add to the collection. entity must implement . Adds an object to the related end. An object to add to the collection. Removes an object from the collection of objects at the related end. true if entity was successfully removed, false if entity was not part of the . The object to remove from the collection. entity must implement . Removes an object from the collection of objects at the related end. true if entity was successfully removed; false if entity was not part of the . An object to remove from the collection. Defines a relationship between two attached objects. The object being attached. entity must implement . Defines a relationship between two attached objects. The object being attached. Returns an that represents the objects that belong to the related end. An that represents the objects that belong to the related end. Returns an that iterates through the collection of related objects. An that iterates through the collection of related objects. Gets or sets a value indicating whether the entity (for an or all entities in the collection (for an have been loaded from the database. Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly with one of the Load methods will set the IsLoaded flag to true. IsLoaded can be explicitly set to true to prevent the related entities from being lazy-loaded. This can be useful if the application has caused a subset of related entities to be loaded and wants to prevent any other entities from being loaded automatically. Note that explicit loading using will load all related entities from the database regardless of whether or not IsLoaded is true. When any related entity is detached the IsLoaded flag is reset to false indicating that not all related entities are now loaded. True if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise false. Gets the name of the relationship in which this related end participates. The name of the relationship in which this is participating. The relationship name is not namespace qualified. Gets the role name at the source end of the relationship. The role name at the source end of the relationship. Gets the role name at the target end of the relationship. The role name at the target end of the relationship. Returns a reference to the metadata for the related end. A object that contains metadata for the end of a relationship. Returns an that represents the objects that belong to the related end. An that represents the objects that belong to the related end. Loads the related object or objects into the related end with the default merge option. When the source object was retrieved by using a query and the is not or the related objects are already loaded or when the source object is not attached to the or when the source object is being tracked but is in the or state or the used for is . Loads an object or objects from the related end with the specified merge option. The to use when merging objects into an existing . When the source object was retrieved by using a query and the is not or the related objects are already loaded or when the source object is not attached to the or when the source object is being tracked but is in the or state or the used for is . Attaches an entity to the related end. This method works in exactly the same way as Attach(object). It is maintained for backward compatibility with previous versions of IRelatedEnd. The entity to attach to the related end Thrown when is null. Thrown when the entity cannot be related via the current relationship end. Attaches an entity to the related end. If the related end is already filled or partially filled, this merges the existing entities with the given entity. The given entity is not assumed to be the complete set of related entities. Owner and all entities passed in must be in Unchanged or Modified state. Deleted elements are allowed only when the state manager is already tracking the relationship instance. The entity to attach to the related end Thrown when is null. Thrown when the entity cannot be related via the current relationship end. Adds an entity to the related end. This method works in exactly the same way as Add(object). It is maintained for backward compatibility with previous versions of IRelatedEnd. Entity instance to add to the related end Adds an entity to the related end. If the owner is attached to a cache then the all the connected ends are added to the object cache and their corresponding relationships are also added to the ObjectStateManager. The RelatedEnd of the relationship is also fixed. Entity instance to add to the related end Removes an entity from the related end. This method works in exactly the same way as Remove(object). It is maintained for backward compatibility with previous versions of IRelatedEnd. Entity instance to remove from the related end Returns true if the entity was successfully removed, false if the entity was not part of the RelatedEnd. Removes an entity from the related end. If owner is attached to a cache, marks relationship for deletion and if the relationship is composition also marks the entity for deletion. Entity instance to remove from the related end Returns true if the entity was successfully removed, false if the entity was not part of the RelatedEnd. Returns an that iterates through the collection of related objects. An that iterates through the collection of related objects. Used internally to deserialize entity objects along with the instances. The serialized stream. Occurs when a change is made to a related end. Gets the name of the relationship in which this related end participates. The name of the relationship in which this participates. The relationship name is not namespace qualified. Gets the role name at the source end of the relationship. A that is the role name. Gets the role name at the target end of the relationship. A that is the role name. Gets a reference to the metadata for the related end. A object that contains metadata for the end of a relationship. Initializes a new instance of the class. Returns the collection as an used for data binding. An of entity objects. Loads related objects into the collection, using the specified merge option. Specifies how the objects in this collection should be merged with the objects that might have been returned from previous queries against the same . Defines relationships between an object and a collection of related objects in an object context. Loads related entities into the local collection. If the collection is already filled or partially filled, merges existing entities with the given entities. The given entities are not assumed to be the complete set of related entities. Owner and all entities passed in must be in Unchanged or Modified state. We allow deleted elements only when the state manager is already tracking the relationship instance. Collection of objects in the object context that are related to the source object. entities collection is null. The source object or an object in the entities collection is null or is not in an or state.-or-The relationship cannot be defined based on the EDM metadata. This can occur when the association in the conceptual schema does not support a relationship between the two types. Defines a relationship between two attached objects in an object context. The object being attached. When the entity is null. When the entity cannot be related to the source object. This can occur when the association in the conceptual schema does not support a relationship between the two types.-or-When either object is null or is not in an or state. Adds an object to the collection. An object to add to the collection. entity must implement . entity is null. Removes an object from the collection and marks the relationship for deletion. true if item was successfully removed; otherwise, false. The object to remove from the collection. entity object is null. The entity object is not attached to the same object context.-or-The entity object does not have a valid relationship manager. Returns an enumerator that is used to iterate through the objects in the collection. An that iterates through the set of values cached by . Returns an enumerator that is used to iterate through the set of values cached by . An that iterates through the set of values cached by . Removes all entities from the collection. Determines whether a specific object exists in the collection. true if the object is found in the ; otherwise, false. The object to locate in the . Copies all the contents of the collection to an array, starting at the specified index of the target array. The array to copy to. The zero-based index in the array at which copying begins. Used internally to serialize entity objects. The streaming context. Used internally to deserialize entity objects. The streaming context. Returns an object query that, when it is executed, returns the same set of objects that exists in the current collection. An that represents the entity collection. When the object is in an state or when the object is in a state with a other than . Gets the number of objects that are contained in the collection. The number of elements that are contained in the . Gets a value that indicates whether the is read-only. Always returns false. IListSource.ContainsListCollection implementation. Always returns false. This means that the IList we return is the one which contains our actual data, it is not a list of collections. This is the class is the basis for all perscribed EntityObject classes. Interface that defines an entity containing a key. Gets or sets the for instances of entity types that implement this interface. If an object is being managed by a change tracker, it is expected that IEntityChangeTracker methods EntityMemberChanging and EntityMemberChanged will be used to report changes on EntityKey. This allows the change tracker to validate the EntityKey's new value and to verify if the change tracker is in a state where it can allow updates to the EntityKey. The for instances of entity types that implement this interface. Minimum interface that a data class must implement in order to be managed by a change tracker. Gets or sets the used to report changes. The used to report changes. Interface that a data class must implement if exposes relationships Returns the relationship manager that manages relationships for an instance of an entity type. Classes that expose relationships must implement this property by constructing and setting RelationshipManager in their constructor. The implementation of this property should use the static method RelationshipManager.Create to create a new RelationshipManager when needed. Once created, it is expected that this object will be stored on the entity and will be provided through this property. The for this entity. Used by the ObjectStateManager to attach or detach this EntityObject to the cache. Reference to the ObjectStateEntry that contains this entity Notifies the change tracker that a property change is pending. The name of the changing property. property is null. Notifies the change tracker that a property has changed. The name of the changed property. property is null. Gets the entity state of the object. The of this object. Gets or sets the key for this object. The for this object. Returns the container for the lazily created relationship navigation property objects, collections and refs. This interface is implemented by a change tracker and is used by data classes to report changes Notifies the change tracker of a pending change to a property of an entity type. The name of the property that is changing. Notifies the change tracker that a property of an entity type has changed. The name of the property that has changed. Notifies the change tracker of a pending change to a complex property. The name of the top-level entity property that is changing. The complex type that contains the property that is changing. The name of the property that is changing on complex type. Notifies the change tracker that a property of a complex type has changed. The name of the complex property of the entity type that has changed. The complex type that contains the property that changed. The name of the property that changed on complex type. Gets current state of a tracked object. An that is the state of the tracked object.For more information, see Identity Resolution, State Managment, and Change Tracking and Tracking Changes in POCO Entities. Models a relationship end with multiplicity 1. Returns the key for the related object. Returns the EntityKey of the target entity associated with this EntityReference. Is non-null in the following scenarios: (a) Entities are tracked by a context and an Unchanged or Added client-side relationships exists for this EntityReference's owner with the same RelationshipName and source role. This relationship could have been created explicitly by the user (e.g. by setting the EntityReference.Value, setting this property directly, or by calling EntityCollection.Add) or automatically through span queries. (b) If the EntityKey was non-null before detaching an entity from the context, it will still be non-null after detaching, until any operation occurs that would set it to null, as described below. (c) Entities are detached and the EntityKey is explicitly set to non-null by the user. (d) Entity graph was created using a NoTracking query with full span Is null in the following scenarios: (a) Entities are tracked by a context but there is no Unchanged or Added client-side relationship for this EntityReference's owner with the same RelationshipName and source role. (b) Entities are tracked by a context and a relationship exists, but the target entity has a temporary key (i.e. it is Added) or the key is one of the special keys (c) Entities are detached and the relationship was explicitly created by the user. An that is the key of the related object. Models a relationship end with multiplicity 1. The type of the entity being referenced. Creates a new instance of . The default constructor is required for some serialization scenarios. It should not be used to create new EntityReferences. Use the GetRelatedReference or GetRelatedEnd methods on the RelationshipManager class instead. Loads the related object for this with the specified merge option. Specifies how the object should be returned if it already exists in the . The source of the is null or a query returned more than one related end or a query returned zero related ends, and one related end was expected. Creates a many-to-one or one-to-one relationship between two objects in the object context. The object being attached. When the entity is null. When the entity cannot be related to the current related end. This can occur when the association in the conceptual schema does not support a relationship between the two types. Creates an equivalent object query that returns the related object. An that returns the related object. When the object is in an state or when the object is in a state with a other than . This method is used internally to serialize related entity objects. The serialized stream. This method is used internally to serialize related entity objects. The serialized stream. Gets or sets the related object returned by this . The object returned by this . Identifies the kind of a relationship The relationship is an Association Container for the lazily created relationship navigation property objects (collections and refs). Creates a new object. Used by data classes that support relationships. If the change tracker requests the RelationshipManager property and the data class does not already have a reference to one of these objects, it calls this method to create one, then saves a reference to that object. On subsequent accesses to that property, the data class should return the saved reference. The reason for using a factory method instead of a public constructor is to emphasize that this is not something you would normally call outside of a data class. By requiring that these objects are created via this method, developers should give more thought to the operation, and will generally only use it when they explicitly need to get an object of this type. It helps define the intended usage. The requested . Reference to the entity that is calling this method. Returns either an or of the correct type for the specified target role in a relationship. representing the or that was retrieved. Name of the relationship in which targetRoleName is defined. The relationship name is not namespace qualified. Target role to use to retrieve the other end of relationshipName . relationshipName or targetRoleName is null. The source type does not match the type of the owner. targetRoleName is invalid or unable to find the relationship type in the metadata. Takes an existing EntityReference that was created with the default constructor and initializes it using the provided relationship and target role names. This method is designed to be used during deserialization only, and will throw an exception if the provided EntityReference has already been initialized, if the relationship manager already contains a relationship with this name and target role, or if the relationship manager is already attached to a ObjectContext.W The relationship name. The role name of the related end. The to initialize. The type of the being initialized. When the provided is already initialized.-or-When the relationship manager is already attached to an or when the relationship manager already contains a relationship with this name and target role. Takes an existing EntityCollection that was created with the default constructor and initializes it using the provided relationship and target role names. This method is designed to be used during deserialization only, and will throw an exception if the provided EntityCollection has already been initialized, or if the relationship manager is already attached to a ObjectContext. The relationship name. The target role name. An existing EntityCollection. Type of the entity represented by targetRoleName Gets an of related objects with the specified relationship name and target role name. The of related objects. Name of the relationship to navigate. The relationship name is not namespace qualified. Name of the target role for the navigation. Indicates the direction of navigation across the relationship. The type of the returned . The specified role returned an instead of an . Gets the for a related object by using the specified combination of relationship name and target role name. The of a related object. Name of the relationship to navigate. The relationship name is not namespace qualified. Name of the target role for the navigation. Indicates the direction of navigation across the relationship. The type of the returned . The specified role returned an instead of an . Returns an enumeration of all the related ends managed by the relationship manager. An of objects that implement . An empty enumeration is returned when the relationships have not yet been populated. Called by Object Services to prepare an for binary serialization with a serialized relationship. Describes the source and destination of a given serialized stream, and provides an additional caller-defined context. Used internally to deserialize entity objects along with the instances. The serialized stream. Represents either a entity, entity stub or relationship Gets the updatable version of original values of the object associated with this . The updatable original values of object data. Accepts the current values as original values. Marks an entity as deleted. Returns the names of an object’s properties that have changed since the last time was called. An collection of names as string. Sets the state of the object or relationship to modify. If State is not Modified or Unchanged Marks the specified property as modified. The name of the property. If State is not Modified or Unchanged Rejects any changes made to the property with the given name since the property was last loaded, attached, saved, or changes were accepted. The orginal value of the property is stored and the property will no longer be marked as modified. The name of the property to change. Uses DetectChanges to determine whether or not the current value of the property with the given name is different from its original value. Note that this may be different from the property being marked as modified since a property which has not changed can still be marked as modified. Note that this property always returns the same result as the modified state of the property for change tracking proxies and entities that derive from the EntityObject base class. This is because original values are not tracked for these entity types and hence there is no way to know if the current value is really different from the original value. true if the property has changed; otherwise, false. The name of the property. Changes state of the entry to the specified value. The value to set for the property of the entry. Sets the current values of the entry to match the property values of a supplied object. The detached object that has updated values to apply to the object. currentEntity can also be the object’s entity key. Sets the original values of the entry to match the property values of a supplied object. The detached object that has original values to apply to the object. originalEntity can also be the object’s entity key. Used to report that a scalar entity property is about to change The current value of the specified property is cached when this method is called. The name of the entity property that is changing Used to report that a scalar entity property has been changed The property value that was cached during EntityMemberChanging is now added to OriginalValues The name of the entity property that has changing Used to report that a complex property is about to change The current value of the specified property is cached when this method is called. The name of the top-level entity property that is changing The complex object that contains the property that is changing The name of the property that is changing on complexObject Used to report that a complex property has been changed The property value that was cached during EntityMemberChanging is now added to OriginalValues The name of the top-level entity property that has changed The complex object that contains the property that changed The name of the property that changed on complexObject Gets the for the . The for the . Gets the for the object or relationship. The for the object or relationship. Gets the state of the . The state of the . Gets the entity object. The entity object. Gets the entity key. The entity key. Gets a value that indicates whether the represents a relationship. true if the represents a relationship; otherwise, false. Gets the read-only version of original values of the object or relationship. The read-only version of original values of the relationship set entry or entity. Gets the current property values of the object or relationship associated with this . A that contains the current values of the object or relationship associated with this . Gets the instance for the object represented by entry. The object. The entry is a stub or represents a relationship Returns the EntityState from the ObjectStateEntry Defines behavior for implementations of IQueryable that allow modifications to the membership of the resulting set. Type of entities returned from the queryable. Notifies the set that an object that represents a new entity must be added to the set. Depending on the implementation, the change to the set may not be visible in an enumeration of the set until changes to that set have been persisted in some manner. The new object to add to the set. Notifies the set that an object that represents an existing entity must be added to the set. Depending on the implementation, the change to the set may not be visible in an enumeration of the set until changes to that set have been persisted in some manner. The existing object to add to the set. Notifies the set that an object that represents an existing entity must be deleted from the set. Depending on the implementation, the change to the set may not be visible in an enumeration of the set until changes to that set have been persisted in some manner. The existing object to delete from the set. Notifies the set that an object that represents an existing entity must be detached from the set. Depending on the implementation, the change to the set may not be visible in an enumeration of the set until changes to that set have been persisted in some manner. The object to detach from the set. The different ways that new objects loaded from the database can be merged with existing objects already in memory. Will only append new (top level-unique) rows. This is the default behavior. Same behavior as LoadOption.OverwriteChanges. Same behavior as LoadOption.PreserveChanges. Will not modify cache. ObjectContext is the top-level object that encapsulates a connection between the CLR and the database, serving as a gateway for Create, Read, Update, and Delete operations. Initializes a new instance of the class with the given connection. During construction, the metadata workspace is extracted from the object. An that contains references to the model and to the data source connection. The connection is null. The connection is invalid or the metadata workspace is invalid. Creates an ObjectContext with the given connection and metadata workspace. connection to the store If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. Initializes a new instance of the class with the given connection string and default entity container name. The connection string, which also provides access to the metadata information. The connectionString is null. The connectionString is invalid or the metadata workspace is not valid. Initializes a new instance of the class with a given connection string and entity container name. The connection string, which also provides access to the metadata information. The name of the default entity container. When the defaultContainerName is set through this method, the property becomes read-only. The connectionString is null. The connectionString , defaultContainerName , or metadata workspace is not valid. Initializes a new instance of the class with a given connection and entity container name. An that contains references to the model and to the data source connection. The name of the default entity container. When the defaultContainerName is set through this method, the property becomes read-only. The connection is null. The connection , defaultContainerName , or metadata workspace is not valid. Accepts all changes made to objects in the object context. Adds an object to the object context. Represents the entity set name, which may optionally be qualified by the entity container name. The to add. The entity parameter is null or the entitySetName does not qualify. Explicitly loads an object related to the supplied object by the specified navigation property and using the default merge option. The entity for which related objects are to be loaded. The name of the navigation property that returns the related objects to be loaded. The entity is in a , or state or the entity is attached to another instance of . Explicitly loads an object that is related to the supplied object by the specified navigation property and using the specified merge option. The entity for which related objects are to be loaded. The name of the navigation property that returns the related objects to be loaded. The value to use when you load the related objects. The entity is in a , or state or the entity is attached to another instance of . Explicitly loads an object that is related to the supplied object by the specified LINQ query and by using the default merge option. The type of the entity. The source object for which related objects are to be loaded. A LINQ expression that defines the related objects to be loaded. selector does not supply a valid input parameter. selector is null. The entity is in a , or state or the entity is attached to another instance of . Explicitly loads an object that is related to the supplied object by the specified LINQ query and by using the specified merge option. The type of the entity. The source object for which related objects are to be loaded. A LINQ expression that defines the related objects to be loaded. The value to use when you load the related objects. selector does not supply a valid input parameter. selector is null. The entity is in a , or state or the entity is attached to another instance of . Applies property changes from a detached object to an object already attached to the object context. The name of the entity set to which the object belongs. The detached object that has property updates to apply to the original object. When entitySetName is null or an empty string or when changed is null. When the from entitySetName does not match the of the object or when the entity is in a state other than or or the original object is not attached to the context. When the type of the changed object is not the same type as the original object. Copies the scalar values from the supplied object into the object in the that has the same key. The updated object. The name of the entity set to which the object belongs. The detached object that has property updates to apply to the original object. The entity key of currentEntity must match the property of an entry in the . The entity type of the object. entitySetName or current is null. The from entitySetName does not match the of the object or the object is not in the or it is in a state or the entity key of the supplied object is invalid. entitySetName is an empty string. Copies the scalar values from the supplied object into set of original values for the object in the that has the same key. The updated object. The name of the entity set to which the object belongs. The detached object that has original values to apply to the object. The entity key of originalEntity must match the property of an entry in the . The type of the entity object. entitySetName or original is null. The from entitySetName does not match the of the object or an for the object cannot be found in the or the object is in an or a state or the entity key of the supplied object is invalid or has property changes. entitySetName is an empty string. Attaches an object or object graph to the object context in a specific entity set. Represents the entity set name, which may optionally be qualified by the entity container name. The to attach. The entity is null. Invalid entity set or the object has a temporary key or the object has an and the does not match with the entity set passed in as an argument of the method or the object does not have an and no entity set is provided or any object from the object graph has a temporary or any object from the object graph has an invalid (for example, values in the key do not match values in the object) or the entity set could not be found from a given entitySetName name and entity container name or any object from the object graph already exists in another state manager. Attaches an object or object graph to the object context when the object has an entity key. The object to attach. The entity is null. Invalid entity key. Creates the entity key for a specific object, or returns the entity key if it already exists. The of the object. The fully qualified name of the entity set to which the entity object belongs. The object for which the entity key is being retrieved. When either parameter is null. When entitySetName is empty or when the type of the entity object does not exist in the entity set or when the entitySetName is not fully qualified. When the entity key cannot be constructed successfully based on the supplied parameters. Creates a new instance that is used to query, add, modify, and delete objects of the specified entity type. The new instance. Entity type of the requested . The property is not set on the or the specified type belongs to more than one entity set. Creates a new instance that is used to query, add, modify, and delete objects of the specified type and with the specified entity set name. The new instance. Name of the entity set for the returned . The string must be qualified by the default container name if the property is not set on the . Entity type of the requested . The from entitySetName does not match the of the object or the property is not set on the and the name is not qualified as part of the entitySetName parameter or the specified type belongs to more than one entity set. Creates an in the current object context by using the specified query string. An of the specified type. The query string to be executed. Parameters to pass to the query. The entity type of the returned . The queryString or parameters parameter is null. Marks an object for deletion. An object that specifies the entity to delete. The object can be in any state except . Removes the object from the object context. Object to be detached. Only the entity is removed; if there are any related objects that are being tracked by the same , those will not be detached automatically. The entity is null. The entity is not associated with this (for example, was newly created and not associated with any context yet, or was obtained through some other context, or was already detached). Finalizes an instance of the class. Releases the resources used by the object context. Releases the resources used by the object context. true to release both managed and unmanaged resources; false to release only unmanaged resources. Returns an object that has the specified entity key. An that is an instance of an entity type. The key of the object to be found. The key parameter is null. The object is not found in either the or the data source. Updates a collection of objects in the object context with data from the database. A value that indicates whether property changes in the object context are overwritten with property values from the database. An collection of objects to refresh. collection is null. refreshMode is not valid. collection is empty or an object is not attached to the context. Updates an object in the object context with data from the database. A value that indicates whether property changes in the object context are overwritten with property values from the database. The object to be refreshed. entity is null. refreshMode is not valid. entity is not attached to the context. Persists all updates to the database and resets change tracking in the object context. The number of state entries written to the underlying database. This can include state entries for entities and/or relationships. Relationship state entries are created for many-to-many relationships and relationships where there is no foreign key property included in the entity class (often referred to as independent associations). An optimistic concurrency violation has occurred while saving changes. Persists all updates to the database and optionally resets change tracking in the object context. This parameter is needed for client-side transaction support. If true, the change tracking on all objects is reset after finishes. If false, you must call the method after . The number of state entries written to the underlying database. This can include state entries for entities and/or relationships. Relationship state entries are created for many-to-many relationships and relationships where there is no foreign key property included in the entity class (often referred to as independent associations). An optimistic concurrency violation has occurred while saving changes. Persists all updates to the database and optionally resets change tracking in the object context. A value that determines the behavior of the operation. The number of state entries written to the underlying database. This can include state entries for entities and/or relationships. Relationship state entries are created for many-to-many relationships and relationships where there is no foreign key property included in the entity class (often referred to as independent associations). An optimistic concurrency violation has occurred while saving changes. Ensures that changes are synchronized with changes in all objects that are tracked by the . Returns an object that has the specified entity key. true if the object was retrieved successfully. false if the key is temporary, the connection is null, or the value is null. The key of the object to be found. When this method returns, contains the object. Incompatible metadata for key . key is null. Executes a stored procedure or function that is defined in the data source and mapped in the conceptual model, with the specified parameters. Returns a typed . An for the data that is returned by the stored procedure. The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required. An array of objects. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. The entity type of the returned when the function is executed against the data source. This type must implement . function is null or empty or function is not found. The entity reader does not support this function or there is a type mismatch on the reader and the function . Executes the given stored procedure or function that is defined in the data source and expressed in the conceptual model, with the specified parameters, and merge option. Returns a typed . An for the data that is returned by the stored procedure. The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required. The to use when executing the query. An array of objects. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. The entity type of the returned when the function is executed against the data source. This type must implement . function is null or empty or function is not found. The entity reader does not support this function or there is a type mismatch on the reader and the function . Executes the given function on the default container. Element type for function results. Name of function. May include container (e.g. ContainerName.FunctionName) or just function name when DefaultContainerName is known. The options for executing this function. The parameter values to use for the function. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. An object representing the result of executing this function. If function is null or empty If function is invalid (syntax, does not exist, refers to a function with return type incompatible with T) Executes a stored procedure or function that is defined in the data source and expressed in the conceptual model; discards any results returned from the function; and returns the number of rows affected by the execution. The number of rows affected. The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required. An array of objects. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. function is null or empty or function is not found. The entity reader does not support this function or there is a type mismatch on the reader and the function . Generates an equivalent type that can be used with the Entity Framework for each type in the supplied enumeration. An enumeration of objects that represent custom data classes that map to the conceptual model. Returns all the existing proxy types. An of all the existing proxy types. Returns the entity type of the POCO entity associated with a proxy object of a specified type. The of the associated POCO entity. The of the proxy object. Creates and returns an instance of the requested type . An instance of the requested type T , or an instance of a derived type that enables T to be used with the Entity Framework. The returned object is either an instance of the requested type or an instance of a derived type that enables the requested type to be used with the Entity Framework. Type of object to be returned. Executes an arbitrary command directly against the data source using the existing connection. The command is specified using the server's native query language, such as SQL. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); If there isn't an existing local transaction a new transaction will be used to execute the command. The command specified in the server's native query language. The parameter values to use for the query. The number of rows affected. Executes an arbitrary command directly against the data source using the existing connection. The command is specified using the server's native query language, such as SQL. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); Controls the creation of a transaction for this command. The command specified in the server's native query language. The parameter values to use for the query. The number of rows affected. Executes a query directly against the data source and returns a sequence of typed results. The query is specified using the server's native query language, such as SQL. Results are not tracked by the context, use the overload that specifies an entity set name to track results. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); The element type of the result sequence. The query specified in the server's native query language. The parameter values to use for the query. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. An enumeration of objects of type . Executes a query directly against the data source and returns a sequence of typed results. The query is specified using the server's native query language, such as SQL. Results are not tracked by the context, use the overload that specifies an entity set name to track results. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); The element type of the result sequence. The query specified in the server's native query language. The options for executing this query. The parameter values to use for the query. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. An enumeration of objects of type . Executes a query directly against the data source and returns a sequence of typed results. The query is specified using the server's native query language, such as SQL. If an entity set name is specified, results are tracked by the context. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); The element type of the result sequence. The query specified in the server's native query language. The entity set of the TResult type. If an entity set name is not provided, the results are not going to be tracked. The to use when executing the query. The default is . The parameter values to use for the query. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. An enumeration of objects of type . Executes a query directly against the data source and returns a sequence of typed results. The query is specified using the server's native query language, such as SQL. If an entity set name is specified, results are tracked by the context. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); The element type of the result sequence. The query specified in the server's native query language. The entity set of the TResult type. If an entity set name is not provided, the results are not going to be tracked. The options for executing this query. The parameter values to use for the query. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. An enumeration of objects of type . Translates a that contains rows of entity data to objects of the requested entity type. The entity type. An enumeration of objects of type TResult . The that contains entity data to translate into entity objects. When reader is null. Translates a that contains rows of entity data to objects of the requested entity type, in a specific entity set, and with the specified merge option. The entity type. An enumeration of objects of type TResult . The that contains entity data to translate into entity objects. The entity set of the TResult type. The to use when translated objects are added to the object context. The default is . When reader is null. When the supplied mergeOption is not a valid value. When the supplied entitySetName is not a valid entity set for the TResult type. Creates the database by using the current data source connection and the metadata in the . Deletes the database that is specified as the database in the current data source connection. Checks if the database that is specified as the database in the current store connection exists on the store. Most of the actual work is done by the DbProviderServices implementation for the current store connection. true if the database exists; otherwise, false. Generates a data definition language (DDL) script that creates schema objects (tables, primary keys, foreign keys) for the metadata in the . The loads metadata from store schema definition language (SSDL) files. A DDL script that creates schema objects for the metadata in the . Gets the connection used by the object context. A object that is the connection. When the instance has been disposed. Gets or sets the default container name. A that is the default container name. Gets the metadata workspace used by the object context. The object associated with this . Gets the object state manager used by the object context to track object changes. The used by this . Gets or sets the timeout value, in seconds, for all object context operations. A null value indicates that the default value of the underlying provider will be used. An value that is the timeout value, in seconds. The timeout value is less than 0. Gets the LINQ query provider associated with this object context. The instance used by this object context. Gets the instance that contains options that affect the behavior of the . The instance that contains options that affect the behavior of the . Returns itself. ObjectContext implements to provide a common interface for and ObjectContext both of which will return the underlying ObjectContext. Gets the transaction handler in use by this context. May be null if no transaction have been started. The transaction handler. Returns the being used for this context. Occurs when changes are saved to the data source. Occurs when a new entity object is created from data in the data source as part of a query or load operation. Defines options that affect the behavior of the ObjectContext. Gets or sets the value that determines whether SQL functions and commands should be always executed in a transaction. This flag determines whether a new transaction will be started when methods such as and are executed outside of a transaction. Note that this does not change the behavior of . The default transactional behavior. Gets or sets a Boolean value that determines whether related objects are loaded automatically when a navigation property is accessed. true if lazy loading is enabled; otherwise, false. Gets or sets a Boolean value that determines whether proxy instances are created for custom data classes that are persistence ignorant. true if proxies are created; otherwise, false. The default value is true. Gets or sets a Boolean value that determines whether to use the legacy PreserveChanges behavior. true if the legacy PreserveChanges behavior should be used; otherwise, false. Gets or sets a Boolean value that determines whether to use the consistent NullReference behavior. If this flag is set to false then setting the Value property of the for an FK relationship to null when it is already null will have no effect. When this flag is set to true, then setting the value to null will always cause the FK to be nulled and the relationship to be deleted even if the value is currently null. The default value is false when using ObjectContext and true when using DbContext. true if the consistent NullReference behavior should be used; otherwise, false. Gets or sets a Boolean value that determines whether to use the C# NullComparison behavior. This flag determines whether C# behavior should be exhibited when comparing null values in LinqToEntities. If this flag is set, then any equality comparison between two operands, both of which are potentially nullable, will be rewritten to show C# null comparison semantics. As an example: (operand1 = operand2) will be rewritten as (((operand1 = operand2) AND NOT (operand1 IS NULL OR operand2 IS NULL)) || (operand1 IS NULL && operand2 IS NULL)) The default value is false when using . true if the C# NullComparison behavior should be used; otherwise, false. EventArgs for the ObjectMaterialized event. Gets the entity object that was created. The entity object that was created. Delegate for the ObjectMaterialized event. The ObjectContext responsable for materializing the object. EventArgs containing a reference to the materialized object. This class represents a query parameter at the object layer, which consists of a Name, a Type and a Value. Initializes a new instance of the class with the specified name and type. The parameter name. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name. The first character of the expression must be a letter. Any successive characters in the expression must be either letters, numbers, or an underscore (_) character. The common language runtime (CLR) type of the parameter. If the value of either argument is null. If the value of the name argument is invalid. Parameter names must start with a letter and can only contain letters, numbers, and underscores. Initializes a new instance of the class with the specified name and value. The parameter name. This name should not include the "@" parameter marker that is used in Entity SQL statements, only the actual name. The first character of the expression must be a letter. Any successive characters in the expression must be either letters, numbers, or an underscore (_) character. The initial value (and inherently, the type) of the parameter. If the value of either argument is null. If the value of the name argument is not valid. Parameter names must start with a letter and can only contain letters, numbers, and underscores. Gets the parameter name, which can only be set through a constructor. The parameter name, which can only be set through a constructor. Gets the parameter type. The of the parameter. Gets or sets the parameter value. The parameter value. This class represents a collection of query parameters at the object layer. Adds the specified to the collection. The parameter to add to the collection. The parameter argument is null. The parameter argument already exists in the collection. This behavior differs from that of most collections that allow duplicate entries. -or-Another parameter with the same name as the parameter argument already exists in the collection. Note that the lookup is case-insensitive. This behavior differs from that of most collections, and is more like that of a . The type of the parameter is not valid. Deletes all instances from the collection. Checks for the existence of a specified in the collection by reference. Returns true if the parameter object was found in the collection; otherwise, false. The to find in the collection. The parameter argument is null. Determines whether an with the specified name is in the collection. Returns true if a parameter with the specified name was found in the collection; otherwise, false. The name of the parameter to look for in the collection. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name. The name parameter is null. Allows the parameters in the collection to be copied into a supplied array, starting with the object at the specified index. The array into which to copy the parameters. The index in the array at which to start copying the parameters. Removes an instance of an from the collection by reference if it exists in the collection. Returns true if the parameter object was found and removed from the collection; otherwise, false. An object to remove from the collection. The parameter argument is null. These methods return enumerator instances, which allow the collection to be iterated through and traversed. An object that can be used to iterate through the collection. Returns an untyped enumerator over the collection. An instance. Gets the number of parameters currently in the collection. The number of objects that are currently in the collection. This collection is read-write - parameters may be added, removed and [somewhat] modified at will (value only) - provided that the implementation the collection belongs to has not locked its parameters because it's command definition has been prepared. Provides an indexer that allows callers to retrieve parameters by name. The instance. The name of the parameter to find. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name. No parameter with the specified name is found in the collection. This class implements untyped queries at the object-layer. Returns the commands to execute against the data source. A string that represents the commands that the query executes against the data source. Returns information about the result type of the query. A value that contains information about the result type of the query. Executes the untyped object query with the specified merge option. The to use when executing the query. The default is . An that contains a collection of entity objects returned by the query. Returns the collection as an used for data binding. An of entity objects. Returns an enumerator that iterates through a collection. An that can be used to iterate through the collection. Returns the command text for the query. A string value. Gets the object context associated with this object query. The associated with this instance. Gets or sets how objects returned from a query are added to the object context. The query . Whether the query is streaming or buffering Gets the parameter collection for this object query. The parameter collection for this . Gets or sets a value that indicates whether the query plan should be cached. A value that indicates whether the query plan should be cached. Gets the result element type for this query instance. Gets the expression describing this query. For queries built using LINQ builder patterns, returns a full LINQ expression tree; otherwise, returns a constant expression wrapping this query. Note that the default expression is not cached. This allows us to differentiate between LINQ and Entity-SQL queries. Gets the associated with this query instance. ObjectQuery implements strongly-typed queries at the object-layer. Queries are specified using Entity-SQL strings and may be created by calling the Entity-SQL-based query builder methods declared by ObjectQuery. The result type of this ObjectQuery Creates a new instance using the specified Entity SQL command as the initial query. The Entity SQL query. The on which to execute the query. Creates a new instance using the specified Entity SQL command as the initial query and the specified merge option. The Entity SQL query. The on which to execute the query. Specifies how the entities that are retrieved through this query should be merged with the entities that have been returned from previous queries against the same . Executes the object query with the specified merge option. The to use when executing the query. The default is . An that contains a collection of entity objects returned by the query. Specifies the related objects to include in the query results. A new with the defined query path. Dot-separated list of related objects to return in the query results. path is null. path is empty. Limits the query to unique results. A new instance that is equivalent to the original instance with SELECT DISTINCT applied. This query-builder method creates a new query whose results are all of the results of this query, except those that are also part of the other query specified. A query representing the results to exclude. a new ObjectQuery instance. If the query parameter is null. Groups the query results by the specified criteria. A new instance of type that is equivalent to the original instance with GROUP BY applied. The key columns by which to group the results. The list of selected properties that defines the projection. Zero or more parameters that are used in this method. The query parameter is null or an empty string or the projection parameter is null or an empty string. This query-builder method creates a new query whose results are those that are both in this query and the other query specified. A query representing the results to intersect with. a new ObjectQuery instance. If the query parameter is null. Limits the query to only results of a specific type. A new instance that is equivalent to the original instance with OFTYPE applied. The type of the returned when the query is executed with the applied filter. The type specified is not valid. Orders the query results by the specified criteria. A new instance that is equivalent to the original instance with ORDER BY applied. The key columns by which to order the results. Zero or more parameters that are used in this method. The keys or parameters parameter is null. The key is an empty string. Limits the query results to only the properties that are defined in the specified projection. A new instance of type that is equivalent to the original instance with SELECT applied. The list of selected properties that defines the projection. Zero or more parameters that are used in this method. projection is null or parameters is null. The projection is an empty string. Limits the query results to only the property specified in the projection. A new instance of a type compatible with the specific projection. The returned is equivalent to the original instance with SELECT VALUE applied. The projection list. An optional set of query parameters that should be in scope when parsing. The type of the returned by the method. projection is null or parameters is null. The projection is an empty string. Orders the query results by the specified criteria and skips a specified number of results. A new instance that is equivalent to the original instance with both ORDER BY and SKIP applied. The key columns by which to order the results. The number of results to skip. This must be either a constant or a parameter reference. An optional set of query parameters that should be in scope when parsing. Any argument is null. keys is an empty string or count is an empty string. Limits the query results to a specified number of items. A new instance that is equivalent to the original instance with TOP applied. The number of items in the results as a string. An optional set of query parameters that should be in scope when parsing. count is null. count is an empty string. This query-builder method creates a new query whose results are all of the results of this query, plus all of the results of the other query, without duplicates (i.e., results are unique). A query representing the results to add. a new ObjectQuery instance. If the query parameter is null. This query-builder method creates a new query whose results are all of the results of this query, plus all of the results of the other query, including any duplicates (i.e., results are not necessarily unique). A query representing the results to add. a new ObjectQuery instance. If the query parameter is null. Limits the query to results that match specified filtering criteria. A new instance that is equivalent to the original instance with WHERE applied. The filter predicate. Zero or more parameters that are used in this method. predicate is null or parameters is null. The predicate is an empty string. Returns an which when enumerated will execute the given SQL query against the database. The query results. Gets or sets the name of this object query. A string value that is the name of this . The value specified on set is not valid. This class implements IEnumerable and IDisposable. Instance of this class is returned from ObjectQuery.Execute method. This constructor is intended only for use when creating test doubles that will override members with mocked or faked behavior. Use of this constructor for other purposes may result in unexpected behavior including but not limited to throwing . Returns an enumerator that iterates through the query results. An enumerator that iterates through the query results. Returns the results in a format useful for data binding. An of entity objects. Performs tasks associated with freeing, releasing, or resetting resources. Releases the resources used by the object result. true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the next result set of a stored procedure. An ObjectResult that enumerates the values of the next result set. Null, if there are no more, or if the ObjectResult is not the result of a stored procedure call. The type of the element. IListSource.ContainsListCollection implementation. Always returns false. When overridden in a derived class, gets the type of the generic . The type of the generic . This class represents the result of the method. The type of the result. This constructor is intended only for use when creating test doubles that will override members with mocked or faked behavior. Use of this constructor for other purposes may result in unexpected behavior including but not limited to throwing . Returns an enumerator that iterates through the query results. An enumerator that iterates through the query results. Releases the unmanaged resources used by the and optionally releases the managed resources. true to release managed and unmanaged resources; false to release only unmanaged resources. Gets the type of the . A that is the type of the . Represents a typed entity set that is used to perform create, read, update, and delete operations. The type of the entity. Adds an object to the object context in the current entity set. The object to add. Attaches an object or object graph to the object context in the current entity set. The object to attach. Marks an object for deletion. An object that represents the entity to delete. The object can be in any state except . Removes the object from the object context. Object to be detached. Only the entity is removed; if there are any related objects that are being tracked by the same , those will not be detached automatically. Copies the scalar values from the supplied object into the object in the that has the same key. The updated object. The detached object that has property updates to apply to the original object. The entity key of currentEntity must match the property of an entry in the . Sets the property of an to match the property values of a supplied object. The updated object. The detached object that has property updates to apply to the original object. The entity key of originalEntity must match the property of an entry in the . Creates a new entity type object. The new entity type object, or an instance of a proxy type that corresponds to the entity type. Creates an instance of the specified type. An instance of the requested type T , or an instance of a proxy type that corresponds to the type T . Type of object to be returned. Gets the metadata of the entity set represented by this instance. An object. The original values of the properties of an entity when it was retrieved from the database. Maintains object state and identity management for entity type instances and relationship instances. Initializes a new instance of the class. The , which supplies mapping and metadata information. Returns a collection of objects for objects or relationships with the given state. A collection of objects in the given . An used to filter the returned objects. When state is . Changes state of the for a specific object to the specified entityState . The for the supplied entity . The object for which the state must be changed. The new state of the object. When entity is null. When the object is not detached and does not have an entry in the state manager or when you try to change the state to from any other or when state is not a valid value. Changes the state of the relationship between two entity objects that is specified based on the two related objects and the name of the navigation property. The for the relationship that was changed. The object instance or of the source entity at one end of the relationship. The object instance or of the target entity at the other end of the relationship. The name of the navigation property on source that returns the specified target . The requested of the specified relationship. When source or target is null. When trying to change the state of the relationship to a state other than or when either source or target is in a state or when you try to change the state of the relationship to a state other than or when either source or target is in an state or when state is not a valid value Changes the state of the relationship between two entity objects that is specified based on the two related objects and a LINQ expression that defines the navigation property. The for the relationship that was changed. The object instance or of the source entity at one end of the relationship. The object instance or of the target entity at the other end of the relationship. A LINQ expression that selects the navigation property on source that returns the specified target . The requested of the specified relationship. The entity type of the source object. When source , target , or selector is null. selector is malformed or cannot return a navigation property. When you try to change the state of the relationship to a state other than or when either source or target is in a state or when you try to change the state of the relationship to a state other than or when either source or target is in an state or when state is not a valid value. Changes the state of the relationship between two entity objects that is specified based on the two related objects and the properties of the relationship. The for the relationship that was changed. The object instance or of the source entity at one end of the relationship. The object instance or of the target entity at the other end of the relationship. The name of the relationship. The role name at the target end of the relationship. The requested of the specified relationship. When source or target is null. When you try to change the state of the relationship to a state other than or when either source or target is in a state or when you try to change the state of the relationship to a state other than or when either source or target is in an state or when state is not a valid value. Returns an for the object or relationship entry with the specified key. The corresponding for the given . The . When key is null. When the specified key cannot be found in the state manager. No entity with the specified exists in the . Returns an for the specified object. The corresponding for the given . The to which the retrieved belongs. No entity for the specified exists in the . Tries to retrieve the corresponding for the specified . A Boolean value that is true if there is a corresponding for the given object; otherwise, false. The to which the retrieved belongs. When this method returns, contains the for the given This parameter is passed uninitialized. Tries to retrieve the corresponding for the object or relationship with the specified . A Boolean value that is true if there is a corresponding for the given ; otherwise, false. The given . When this method returns, contains an for the given This parameter is passed uninitialized. A null (Nothing in Visual Basic) value is provided for key . Returns the that is used by the specified object. The for the specified object. The object for which to return the . The entity does not implement IEntityWithRelationships and is not tracked by this ObjectStateManager Returns the that is used by the specified object. true if a instance was returned for the supplied entity ; otherwise false. The object for which to return the . When this method returns, contains the for the entity . Gets the associated with this state manager. The associated with this . Occurs when entities are added to or removed from the state manager. A DataContractResolver that knows how to resolve proxy types created for persistent ignorant classes to their base types. This is used with the DataContractSerializer. During deserialization, maps any xsi:type information to the actual type of the persistence-ignorant object. Returns the type that the xsi:type is mapped to. Returns null if no known type was found that matches the xsi:type. The xsi:type information to map. The namespace of the xsi:type. The declared type. An instance of . During serialization, maps actual types to xsi:type information. true if the type was resolved; otherwise, false. The actual type of the persistence-ignorant object. The declared type. An instance of . When this method returns, contains a list of xsi:type declarations. When this method returns, contains a list of namespaces used. Defines the different ways to handle modified properties when refreshing in-memory data from the database. For unmodified client objects, same behavior as StoreWins. For modified client objects, Refresh original values with store value, keeping all values on client object. The next time an update happens, all the client change units will be considered modified and require updating. Discard all changes on the client and refresh values with store values. Client original values is updated to match the store. Flags used to modify behavior of ObjectContext.SaveChanges() Changes are saved without the DetectChanges or the AcceptAllChangesAfterSave methods being called. After changes are saved, the AcceptAllChangesAfterSave method is called, which resets change tracking in the ObjectStateManager. Before changes are saved, the DetectChanges method is called to synchronize the property values of objects that are attached to the object context with data in the ObjectStateManager. This exception is thrown when a update operation violates the concurrency constraint. Exception during save changes to store Initializes a new instance of . Initializes a new instance of with a specialized error message. The message that describes the error. Initializes a new instance of the class that uses a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the class that uses a specified error message, a reference to the inner exception, and an enumerable collection of objects. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. The collection of objects. Initializes a new instance of with serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. Gets the objects for this . A collection of objects comprised of either a single entity and 0 or more relationships, or 0 entities and 1 or more relationships. Initializes a new instance of . Initializes a new instance of with a specialized error message. The message that describes the error. Initializes a new instance of that uses a specified error message and a reference to the inner exception. The message that describes the error. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of that uses a specified error message, a reference to the inner exception, and an enumerable collection of objects. The message that describes the error. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. The enumerable collection of objects. Property constraint exception class. Note that this class has state - so if you change even its internals, it can be a breaking change Initializes a new instance of the class with default message. Initializes a new instance of the class with supplied message. A localized error message. Initializes a new instance of the class with supplied message and inner exception. A localized error message. The inner exception. Initializes a new instance of the class. A localized error message. The name of the property. Initializes a new instance of the class. A localized error message. The name of the property. The inner exception. Gets the name of the property that violated the constraint. The name of the property that violated the constraint. This exception is thrown when the store provider exhibits a behavior incompatible with the entity client provider Initializes a new instance of . Initializes a new instance of with a specialized error message. The message that describes the error. Initializes a new instance of that uses a specified error message. The message that describes the error. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Provides common language runtime (CLR) methods that expose EDM canonical functions for use in or LINQ to Entities queries. Note that this class was called EntityFunctions in some previous versions of Entity Framework. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical Left EDM function to return a given number of the leftmost characters in a string. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input string. The number of characters to return A string containing the number of characters asked for from the left of the input string. When used as part of a LINQ to Entities query, this method invokes the canonical Right EDM function to return a given number of the rightmost characters in a string. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input string. The number of characters to return A string containing the number of characters asked for from the right of the input string. When used as part of a LINQ to Entities query, this method invokes the canonical Reverse EDM function to return a given string with the order of the characters reversed. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input string. The input string with the order of the characters reversed. When used as part of a LINQ to Entities query, this method invokes the canonical GetTotalOffsetMinutes EDM function to return the number of minutes that the given date/time is offset from UTC. This is generally between +780 and -780 (+ or - 13 hrs). You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The date/time value to use. The offset of the input from UTC. When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return the given date with the time portion cleared. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The date/time value to use. The input date with the time portion cleared. When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return the given date with the time portion cleared. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The date/time value to use. The input date with the time portion cleared. When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTime EDM function to create a new object. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The year. The month (1-based). The day (1-based). The hours. The minutes. The seconds, including fractional parts of the seconds if desired. The new date/time. When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTimeOffset EDM function to create a new object. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The year. The month (1-based). The day (1-based). The hours. The minutes. The seconds, including fractional parts of the seconds if desired. The time zone offset part of the new date. The new date/time. When used as part of a LINQ to Entities query, this method invokes the canonical CreateTime EDM function to create a new object. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The hours. The minutes. The seconds, including fractional parts of the seconds if desired. The new time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to add the given number of years to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of years to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to add the given number of years to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of years to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to add the given number of months to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of months to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to add the given number of months to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of months to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to add the given number of days to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of days to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to add the given number of days to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of days to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to add the given number of hours to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of hours to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to add the given number of hours to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of hours to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to add the given number of hours to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of hours to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to add the given number of minutes to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of minutes to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to add the given number of minutes to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of minutes to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to add the given number of minutes to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of minutes to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to add the given number of seconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of seconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to add the given number of seconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of seconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to add the given number of seconds to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of seconds to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to add the given number of milliseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of milliseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to add the given number of milliseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of milliseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to add the given number of milliseconds to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of milliseconds to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to add the given number of microseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of microseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to add the given number of microseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of microseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to add the given number of microseconds to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of microseconds to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to add the given number of nanoseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of nanoseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to add the given number of nanoseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of nanoseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to add the given number of nanoseconds to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of nanoseconds to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to calculate the number of years between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of years between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to calculate the number of years between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of years between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to calculate the number of months between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of months between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to calculate the number of months between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of months between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to calculate the number of days between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of days between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to calculate the number of days between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of days between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to calculate the number of hours between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of hours between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to calculate the number of hours between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of hours between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to calculate the number of hours between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of hours between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to calculate the number of minutes between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of minutes between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to calculate the number of minutes between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of minutes between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to calculate the number of minutes between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of minutes between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to calculate the number of seconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of seconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to calculate the number of seconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of seconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to calculate the number of seconds between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of seconds between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to calculate the number of milliseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of milliseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to calculate the number of milliseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of milliseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to calculate the number of milliseconds between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of milliseconds between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to calculate the number of microseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of microseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to calculate the number of microseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of microseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to calculate the number of microseconds between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of microseconds between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to calculate the number of nanoseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of nanoseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to calculate the number of nanoseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of nanoseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to calculate the number of nanoseconds between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of nanoseconds between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to truncate the given value to the number of specified digits. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The value to truncate. The number of digits to preserve. The truncated value. When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to truncate the given value to the number of specified digits. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The value to truncate. The number of digits to preserve. The truncated value. When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input is treated as a Unicode string. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function impacts the way the LINQ query is translated to a query that can be run in the database. The input string. The input string treated as a Unicode string. When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input is treated as a non-Unicode string. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function impacts the way the LINQ query is translated to a query that can be run in the database. The input string. The input string treated as a non-Unicode string. Describes the state of an entity. The entity is not being tracked by the context. An entity is in this state immediately after it has been created with the new operator or with one of the Create methods. The entity is being tracked by the context and exists in the database, and its property values have not changed from the values in the database. The entity is being tracked by the context but does not yet exist in the database. The entity is being tracked by the context and exists in the database, but has been marked for deletion from the database the next time SaveChanges is called. The entity is being tracked by the context and exists in the database, and some or all of its property values have been modified. Represents information about a database connection. Creates a new instance of DbConnectionInfo representing a connection that is specified in the application configuration file. The name of the connection string in the application configuration. Creates a new instance of DbConnectionInfo based on a connection string. The connection string to use for the connection. The name of the provider to use for the connection. Use 'System.Data.SqlClient' for SQL Server. Gets the of the current instance. The exact runtime type of the current instance. Instances of this class are used to create DbConnection objects for SQL Server LocalDb based on a given database name or connection string. An instance of this class can be set on the class or in the app.config/web.config for the application to cause all DbContexts created with no connection information or just a database name to use SQL Server LocalDb by default. This class is immutable since multiple threads may access instances simultaneously when creating connections. Implementations of this interface are used to create DbConnection objects for a type of database server based on a given database name. An Instance is set on the class to cause all DbContexts created with no connection information or just a database name or connection string to use a certain type of database server by default. Two implementations of this interface are provided: is used to create connections to Microsoft SQL Server, including EXPRESS editions. is used to create connections to Microsoft SQL Server Compact Editions. Other implementations for other database servers can be added as needed. Note that implementations should be thread safe or immutable since they may be accessed by multiple threads at the same time. Creates a connection based on the given database name or connection string. The database name or connection string. An initialized DbConnection. Creates a new instance of the connection factory for the given version of LocalDb. For SQL Server 2012 LocalDb use "v11.0". For SQL Server 2014 and later LocalDb use "mssqllocaldb". The LocalDb version to use. Creates a new instance of the connection factory for the given version of LocalDb. For SQL Server 2012 LocalDb use "v11.0". For SQL Server 2014 and later LocalDb use "mssqllocaldb". The LocalDb version to use. The connection string to use for options to the database other than the 'Initial Catalog', 'Data Source', and 'AttachDbFilename'. The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the database name when CreateConnection is called. The 'Data Source' will be set based on the LocalDbVersion argument. Creates a connection for SQL Server LocalDb based on the given database name or connection string. If the given string contains an '=' character then it is treated as a full connection string, otherwise it is treated as a database name only. The database name or connection string. An initialized DbConnection. The connection string to use for options to the database other than the 'Initial Catalog', 'Data Source', and 'AttachDbFilename'. The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the database name when CreateConnection is called. The 'Data Source' will be set based on the LocalDbVersion argument. The default is 'Integrated Security=True;'. An implementation of that will use Code First Migrations to update the database to the latest version. The type of the context. The type of the migrations configuration to use during initialization. Initializes a new instance of the MigrateDatabaseToLatestVersion class that will use the connection information from a context constructed using the default constructor or registered factory if applicable Initializes a new instance of the MigrateDatabaseToLatestVersion class specifying whether to use the connection information from the context that triggered initialization to perform the migration. If set to true the initializer is run using the connection information from the context that triggered initialization. Otherwise, the connection information will be taken from a context constructed using the default constructor or registered factory if applicable. Initializes a new instance of the MigrateDatabaseToLatestVersion class specifying whether to use the connection information from the context that triggered initialization to perform the migration. Also allows specifying migrations configuration to use during initialization. If set to true the initializer is run using the connection information from the context that triggered initialization. Otherwise, the connection information will be taken from a context constructed using the default constructor or registered factory if applicable. Migrations configuration to use during initialization. Initializes a new instance of the MigrateDatabaseToLatestVersion class that will use a specific connection string from the configuration file to connect to the database to perform the migration. The name of the connection string to use for migration. Helper class that is used to configure a column. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Creates a new column definition to store Binary data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. The maximum allowable length of the array data. Value indicating whether or not all data should be padded to the maximum length. Constant value to use as the default value for this column. SQL expression used as the default value for this column. Value indicating whether or not this column should be configured as a timestamp. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store Boolean data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store Byte data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. Value indicating whether or not the database will generate values for this column during insert. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store DateTime data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. The precision of the column. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store Decimal data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. The numeric precision of the column. The numeric scale of the column. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Value indicating whether or not the database will generate values for this column during insert. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store Double data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store GUID data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. Value indicating whether or not the database will generate values for this column during insert. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store Single data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store Short data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. Value indicating whether or not the database will generate values for this column during insert. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store Integer data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. Value indicating whether or not the database will generate values for this column during insert. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store Long data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. Value indicating whether or not the database will generate values for this column during insert. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store String data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. The maximum allowable length of the string data. Value indicating whether or not all data should be padded to the maximum length. Value indicating whether or not the column supports Unicode content. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store Time data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. The precision of the column. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store DateTimeOffset data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. The precision of the column. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store geography data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store geometry data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Gets the of the current instance. The exact runtime type of the current instance. Creates a shallow copy of the current . A shallow copy of the current . Helper class that is used to further configure a table being created from a CreateTable call on . Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The type that represents the table's columns. Initializes a new instance of the TableBuilder class. The table creation operation to be further configured. The migration the table is created in. Specifies a primary key for the table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } The name of the primary key. If null is supplied, a default name will be generated. A value indicating whether or not this is a clustered primary key. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Itself, so that multiple calls can be chained. Specifies an index to be created on the table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. A lambda expression representing the property to be indexed. C#: t => t.PropertyOne VB.Net: Function(t) t.PropertyOne If multiple properties are to be indexed then specify an anonymous type including the properties. C#: t => new { t.PropertyOne, t.PropertyTwo } VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } The name of the index. A value indicating whether or not this is a unique index. A value indicating whether or not this is a clustered index. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Itself, so that multiple calls can be chained. Specifies a foreign key constraint to be created on the table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Name of the table that the foreign key constraint targets. A lambda expression representing the properties of the foreign key. C#: t => t.PropertyOne VB.Net: Function(t) t.PropertyOne If multiple properties make up the foreign key then specify an anonymous type including the properties. C#: t => new { t.PropertyOne, t.PropertyTwo } VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } A value indicating whether or not cascade delete should be configured on the foreign key constraint. The name of this foreign key constraint. If no name is supplied, a default name will be calculated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Itself, so that multiple calls can be chained. Gets the of the current instance. The exact runtime type of the current instance. Creates a shallow copy of the current . A shallow copy of the current . Base class for code-based migrations. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Operations to be performed during the upgrade process. Operations to be performed during the downgrade process. Adds an operation to create a new stored procedure. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is assumed. The body of the stored procedure. The additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. Adds an operation to create a new stored procedure. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is assumed. The action that specifies the parameters of the stored procedure. The body of the stored procedure. The additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. The parameters in this create stored procedure operation. You do not need to specify this type, it will be inferred from the parameter you supply. Adds an operation to alter a stored procedure. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is assumed. The body of the stored procedure. The additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. Adds an operation to alter a stored procedure. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The parameters in this alter stored procedure operation. You do not need to specify this type, it will be inferred from the parameter you supply. The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is assumed. The action that specifies the parameters of the stored procedure. The body of the stored procedure. The additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an existing stored procedure with the specified name. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the procedure to drop. Schema name is optional, if no schema is specified then dbo is assumed. The additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. Adds an operation to create a new table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The columns in this create table operation. You do not need to specify this type, it will be inferred from the columnsAction parameter you supply. The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. An action that specifies the columns to be included in the table. i.e. t => new { Id = t.Int(identity: true), Name = t.String() } Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. An object that allows further configuration of the table creation operation. Adds an operation to create a new table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The columns in this create table operation. You do not need to specify this type, it will be inferred from the columnsAction parameter you supply. The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. An action that specifies the columns to be included in the table. i.e. t => new { Id = t.Int(identity: true), Name = t.String() } Custom annotations that exist on the table to be created. May be null or empty. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. An object that allows further configuration of the table creation operation. Adds an operation to handle changes in the annotations defined on tables. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The columns in this operation. You do not need to specify this type, it will be inferred from the columnsAction parameter you supply. The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. An action that specifies the columns to be included in the table. i.e. t => new { Id = t.Int(identity: true), Name = t.String() } The custom annotations on the table that have changed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to create a new foreign key constraint. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The table that contains the foreign key column. Schema name is optional, if no schema is specified then dbo is assumed. The foreign key column. The table that contains the column this foreign key references. Schema name is optional, if no schema is specified then dbo is assumed. The column this foreign key references. If no value is supplied the primary key of the principal table will be referenced. A value indicating if cascade delete should be configured for the foreign key relationship. If no value is supplied, cascade delete will be off. The name of the foreign key constraint in the database. If no value is supplied a unique name will be generated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to create a new foreign key constraint. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The table that contains the foreign key columns. Schema name is optional, if no schema is specified then dbo is assumed. The foreign key columns. The table that contains the columns this foreign key references. Schema name is optional, if no schema is specified then dbo is assumed. The columns this foreign key references. If no value is supplied the primary key of the principal table will be referenced. A value indicating if cascade delete should be configured for the foreign key relationship. If no value is supplied, cascade delete will be off. The name of the foreign key constraint in the database. If no value is supplied a unique name will be generated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a foreign key constraint based on its name. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The table that contains the foreign key column. Schema name is optional, if no schema is specified then dbo is assumed. The name of the foreign key constraint in the database. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a foreign key constraint based on the column it targets. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The table that contains the foreign key column. Schema name is optional, if no schema is specified then dbo is assumed. The foreign key column. The table that contains the column this foreign key references. Schema name is optional, if no schema is specified then dbo is assumed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a foreign key constraint based on the column it targets. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The table that contains the foreign key column. Schema name is optional, if no schema is specified then dbo is assumed. The foreign key column. The table that contains the column this foreign key references. Schema name is optional, if no schema is specified then dbo is assumed. The columns this foreign key references. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a foreign key constraint based on the columns it targets. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The table that contains the foreign key columns. Schema name is optional, if no schema is specified then dbo is assumed. The foreign key columns. The table that contains the columns this foreign key references. Schema name is optional, if no schema is specified then dbo is assumed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is assumed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is assumed. Custom annotations that exist on columns of the table that is being dropped. May be null or empty. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is assumed. Custom annotations that exist on the table that is being dropped. May be null or empty. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is assumed. Custom annotations that exist on the table that is being dropped. May be null or empty. Custom annotations that exist on columns of the table that is being dropped. May be null or empty. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to move a table to a new schema. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to be moved. Schema name is optional, if no schema is specified then dbo is assumed. The schema the table is to be moved to. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to move a stored procedure to a new schema. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the stored procedure to be moved. Schema name is optional, if no schema is specified then dbo is assumed. The schema the stored procedure is to be moved to. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to rename a table. To change the schema of a table use MoveTable. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to be renamed. Schema name is optional, if no schema is specified then dbo is assumed. The new name for the table. Schema name is optional, if no schema is specified then dbo is assumed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to rename a stored procedure. To change the schema of a stored procedure use MoveStoredProcedure Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the stored procedure to be renamed. Schema name is optional, if no schema is specified then dbo is assumed. The new name for the stored procedure. Schema name is optional, if no schema is specified then dbo is assumed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to rename a column. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table that contains the column to be renamed. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column to be renamed. The new name for the column. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to add a column to an existing table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to add the column to. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column to be added. An action that specifies the column to be added. i.e. c => c.Int(nullable: false, defaultValue: 3) Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an existing column. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to drop the column from. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column to be dropped. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an existing column. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to drop the column from. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column to be dropped. Custom annotations that exist on the column that is being dropped. May be null or empty. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to alter the definition of an existing column. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table the column exists in. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column to be changed. An action that specifies the new definition for the column. i.e. c => c.String(nullable: false, defaultValue: "none") Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to create a new primary key. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The table that contains the primary key column. Schema name is optional, if no schema is specified then dbo is assumed. The primary key column. The name of the primary key in the database. If no value is supplied a unique name will be generated. A value indicating whether or not this is a clustered primary key. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to create a new primary key based on multiple columns. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The table that contains the primary key columns. Schema name is optional, if no schema is specified then dbo is assumed. The primary key columns. The name of the primary key in the database. If no value is supplied a unique name will be generated. A value indicating whether or not this is a clustered primary key. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an existing primary key that does not have the default name. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The table that contains the primary key column. Schema name is optional, if no schema is specified then dbo is assumed. The name of the primary key to be dropped. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an existing primary key that was created with the default name. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The table that contains the primary key column. Schema name is optional, if no schema is specified then dbo is assumed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to create an index on a single column. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to create the index on. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column to create the index on. A value indicating if this is a unique index. If no value is supplied a non-unique index will be created. The name to use for the index in the database. If no value is supplied a unique name will be generated. A value indicating whether or not this is a clustered index. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to create an index on multiple columns. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to create the index on. Schema name is optional, if no schema is specified then dbo is assumed. The name of the columns to create the index on. A value indicating if this is a unique index. If no value is supplied a non-unique index will be created. The name to use for the index in the database. If no value is supplied a unique name will be generated. A value indicating whether or not this is a clustered index. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an index based on its name. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to drop the index from. Schema name is optional, if no schema is specified then dbo is assumed. The name of the index to be dropped. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an index based on the columns it targets. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to drop the index from. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column(s) the index targets. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to rename an index. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table that contains the index to be renamed. Schema name is optional, if no schema is specified then dbo is assumed. The name of the index to be renamed. The new name for the index. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to execute a SQL command or set of SQL commands. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The SQL to be executed. A value indicating if the SQL should be executed outside of the transaction being used for the migration process. If no value is supplied the SQL will be executed within the transaction. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to execute a SQL file. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The SQL file to be executed. Relative paths are assumed to be relative to the current AppDomain's BaseDirectory. A value indicating if the SQL should be executed outside of the transaction being used for the migration process. If no value is supplied the SQL will be executed within the transaction. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to execute a SQL resource file. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The manifest resource name of the SQL resource file to be executed. The assembly containing the resource file. The calling assembly is assumed if not provided. A value indicating if the SQL should be executed outside of the transaction being used for the migration process. If no value is supplied the SQL will be executed within the transaction. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Configuration relating to the use of migrations for a given model. You will typically create a configuration class that derives from rather than using this class. The default directory that migrations are stored in. Initializes a new instance of the DbMigrationsConfiguration class. Adds a new SQL generator to be used for a given database provider. Name of the database provider to set the SQL generator for. The SQL generator to be used. Gets the SQL generator that is set to be used with a given database provider. Name of the database provider to get the SQL generator for. The SQL generator that is set for the database provider. Adds a new factory for creating instances to be used for a given database provider. Name of the database provider to set the SQL generator for. A factory for creating instances for a given and representing the default schema. Gets the history context factory that is set to be used with a given database provider. Name of the database provider to get thefactory for. The history context factory that is set for the database provider. Gets or sets a value indicating if automatic migrations can be used when migrating the database. Gets or sets the string used to distinguish migrations belonging to this configuration from migrations belonging to other configurations using the same database. This property enables migrations from multiple different models to be applied to applied to a single database. Gets or sets a value indicating if data loss is acceptable during automatic migration. If set to false an exception will be thrown if data loss may occur as part of an automatic migration. Gets or sets the derived DbContext representing the model to be migrated. Gets or sets the namespace used for code-based migrations. Gets or sets the sub-directory that code-based migrations are stored in. Note that this property must be set to a relative path for a sub-directory under the Visual Studio project root; it cannot be set to an absolute path. Gets or sets the code generator to be used when scaffolding migrations. Gets or sets the assembly containing code-based migrations. Gets or sets a value to override the connection of the database to be migrated. Gets or sets the timeout value used for the individual commands within a migration. A null value indicates that the default value of the underlying provider will be used. Configuration relating to the use of migrations for a given model. The context representing the model that this configuration applies to. Initializes a new instance of the DbMigrationsConfiguration class. Runs after upgrading to the latest migration to allow seed data to be updated. Note that the database may already contain seed data when this method runs. This means that implementations of this method must check whether or not seed data is present and/or up-to-date and then only make changes if necessary and in a non-destructive way. The can be used to help with this, but for seeding large amounts of data it may be necessary to do less granular checks if performance is an issue. If the database initializer is being used, then this method will be called each time that the initializer runs. If one of the , , or initializers is being used, then this method will not be called and the Seed method defined in the initializer should be used instead. Context to be used for updating seed data. DbMigrator is used to apply existing migrations to a database. DbMigrator can be used to upgrade and downgrade to any given migration. To scaffold migrations based on changes to your model use Base class for decorators that wrap the core Initializes a new instance of the MigratorBase class. The migrator that this decorator is wrapping. Gets a list of the pending migrations that have not been applied to the database. List of migration Ids Updates the target database to the latest migration. Updates the target database to a given migration. The migration to upgrade/downgrade to. Gets a list of the migrations that are defined in the assembly. List of migration Ids Gets a list of the migrations that have been applied to the database. List of migration Ids Gets the configuration being used for the migrations process. Migration Id representing the state of the database before any migrations are applied. Initializes a new instance of the DbMigrator class. Configuration to be used for the migration process. Gets all migrations that are defined in the configured migrations assembly. The list of migrations. Gets all migrations that have been applied to the target database. The list of migrations. Gets all migrations that are defined in the assembly but haven't been applied to the target database. The list of migrations. Updates the target database to a given migration. The migration to upgrade/downgrade to. Gets the configuration that is being used for the migration process. A set of extension methods for Adds or updates entities by key when SaveChanges is called. Equivalent to an "upsert" operation from database terminology. This method can useful when seeding data using Migrations. The type of entities to add or update. The set to which the entities belong. The entities to add or update. When the parameter is a custom or fake IDbSet implementation, this method will attempt to locate and invoke a public, instance method with the same signature as this extension method. Adds or updates entities by a custom identification expression when SaveChanges is called. Equivalent to an "upsert" operation from database terminology. This method can useful when seeding data using Migrations. The type of entities to add or update. The set to which the entities belong. An expression specifying the properties that should be used when determining whether an Add or Update operation should be performed. The entities to add or update. When the parameter is a custom or fake IDbSet implementation, this method will attempt to locate and invoke a public, instance method with the same signature as this extension method. Generates C# code for a code-based migration. Base class for providers that generate code for code-based migrations. Generates the code that should be added to the users project. Unique identifier of the migration. Operations to be performed by the migration. Source model to be stored in the migration metadata. Target model to be stored in the migration metadata. Namespace that code should be generated in. Name of the class that should be generated. The generated code. Gets the namespaces that must be output as "using" or "Imports" directives to handle the code generated by the given operations. The operations for which code is going to be generated. An ordered list of namespace names. Gets the default namespaces that must be output as "using" or "Imports" directives for any code generated. A value indicating if this class is being generated for a code-behind file. An ordered list of namespace names. Gets the instances that are being used. Generates the primary code file that the user can view and edit. Operations to be performed by the migration. Namespace that code should be generated in. Name of the class that should be generated. The generated code. Generates the code behind file with migration metadata. Unique identifier of the migration. Source model to be stored in the migration metadata. Target model to be stored in the migration metadata. Namespace that code should be generated in. Name of the class that should be generated. The generated code. Generates a property to return the source or target model in the code behind file. Name of the property. Value to be returned. Text writer to add the generated code to. Generates class attributes. Text writer to add the generated code to. A value indicating if this class is being generated for a code-behind file. Generates a namespace, using statements and class definition. Namespace that code should be generated in. Name of the class that should be generated. Text writer to add the generated code to. Base class for the generated class. A value indicating if this class is being generated for a code-behind file. Namespaces for which using directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. Generates the closing code for a class that was started with WriteClassStart. Namespace that code should be generated in. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code for to re-create the given dictionary of annotations for use when passing these annotations as a parameter of a . call. The annotations to generate. The writer to which generated code should be written. Generates code for to re-create the given dictionary of annotations for use when passing these annotations as a parameter of a . call. The annotations to generate. The writer to which generated code should be written. Generates code for the given annotation value, which may be null. The default behavior is to use an if one is registered, otherwise call ToString on the annotation value. Note that a can be registered to generate code for custom annotations without the need to override the entire code generator. The name of the annotation for which code is needed. The annotation value to generate. The writer to which generated code should be written. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to specify the definition for a . The parameter definition to generate code for. Text writer to add the generated code to. A value indicating whether to include the column name in the definition. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code for an . The operation for which code should be generated. The writer to which generated code should be written. Generates code to perform an as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to specify a set of column names using a lambda expression. The columns to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to specify the definition for a . The column definition to generate code for. Text writer to add the generated code to. A value indicating whether to include the column name in the definition. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column of unknown data type. The value to be used as the default. Code representing the default value. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Removes any invalid characters from the name of an database artifact. The name to be scrubbed. The scrubbed name. Gets the type name to use for a column of the given data type. The data type to translate. The type name to use in the generated migration. Quotes an identifier using appropriate escaping to allow it to be stored in a string. The identifier to be quoted. The quoted identifier. Scaffolds code-based migrations to apply pending model changes to the database. Initializes a new instance of the MigrationScaffolder class. Configuration to be used for scaffolding. Scaffolds a code based migration to apply any pending model changes to the database. The name to use for the scaffolded migration. The scaffolded migration. Scaffolds a code based migration to apply any pending model changes to the database. The name to use for the scaffolded migration. Whether or not to include model changes. The scaffolded migration. Scaffolds the initial code-based migration corresponding to a previously run database initializer. The scaffolded migration. Gets or sets the namespace used in the migration's generated code. By default, this is the same as MigrationsNamespace on the migrations configuration object passed into the constructor. For VB.NET projects, this will need to be updated to take into account the project's root namespace. Represents a code-based migration that has been scaffolded and is ready to be written to a file. Gets or sets the unique identifier for this migration. Typically used for the file name of the generated code. Gets or sets the scaffolded migration code that the user can edit. Gets or sets the scaffolded migration code that should be stored in a code behind file. Gets or sets the programming language used for this migration. Typically used for the file extension of the generated code. Gets or sets the subdirectory in the user's project that this migration should be saved in. Gets a dictionary of string resources to add to the migration resource file. Gets or sets whether the migration was re-scaffolded. Helper class that is used by design time tools to run migrations related commands that need to interact with an application that is being edited in Visual Studio. Because the application is being edited the assemblies need to be loaded in a separate AppDomain to ensure the latest version is always loaded. The App/Web.config file from the startup project is also copied to ensure that any configuration is applied. Initializes a new instance of the ToolingFacade class. The name of the assembly that contains the migrations configuration to be used. The name of the assembly that contains the DbContext to be used. The namespace qualified name of migrations configuration to be used. The working directory containing the compiled assemblies. The path of the config file from the startup project. The path of the application data directory from the startup project. Typically the App_Data directory for web applications or the working directory for executables. The connection to the database to be migrated. If null is supplied, the default connection for the context will be used. Releases all unmanaged resources used by the facade. Gets the fully qualified name of all types deriving from . All context types found. Gets the fully qualified name of a type deriving from . The name of the context type. If null, the single context type found in the assembly will be returned. The context type found. Gets a list of all migrations that have been applied to the database. Ids of applied migrations. Gets a list of all migrations that have not been applied to the database. Ids of pending migrations. Updates the database to the specified migration. The Id of the migration to migrate to. If null is supplied, the database will be updated to the latest migration. Value indicating if data loss during automatic migration is acceptable. Generates a SQL script to migrate between two migrations. The migration to update from. If null is supplied, a script to update the current database will be produced. The migration to update to. If null is supplied, a script to update to the latest migration will be produced. Value indicating if data loss during automatic migration is acceptable. The generated SQL script. Scaffolds a code-based migration to apply any pending model changes. The name for the generated migration. The programming language of the generated migration. The root namespace of the project the migration will be added to. Whether or not to include model changes. The scaffolded migration. Scaffolds the initial code-based migration corresponding to a previously run database initializer. The programming language of the generated migration. The root namespace of the project the migration will be added to. The scaffolded migration. Releases all resources used by the facade. true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets or sets an action to be run to log information. Gets or sets an action to be run to log warnings. Gets or sets an action to be run to log verbose information. Base class for loggers that can be used for the migrations process. Logs an informational message. The message to be logged. Logs a warning that the user should be made aware of. The message to be logged. Logs some additional information that should only be presented to the user if they request verbose output. The message to be logged. Generates VB.Net code for a code-based migration. Generates the primary code file that the user can view and edit. Operations to be performed by the migration. Namespace that code should be generated in. Name of the class that should be generated. The generated code. Generates the code behind file with migration metadata. Unique identifier of the migration. Source model to be stored in the migration metadata. Target model to be stored in the migration metadata. Namespace that code should be generated in. Name of the class that should be generated. The generated code. Generates a property to return the source or target model in the code behind file. Name of the property. Value to be returned. Text writer to add the generated code to. Generates class attributes. Text writer to add the generated code to. A value indicating if this class is being generated for a code-behind file. Generates a namespace, using statements and class definition. Namespace that code should be generated in. Name of the class that should be generated. Text writer to add the generated code to. Base class for the generated class. A value indicating if this class is being generated for a code-behind file. Namespaces for which Imports directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. Generates the closing code for a class that was started with WriteClassStart. Namespace that code should be generated in. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code for to re-create the given dictionary of annotations for use when passing these annotations as a parameter of a . call. The annotations to generate. The writer to which generated code should be written. Generates code for to re-create the given dictionary of annotations for use when passing these annotations as a parameter of a . call. The annotations to generate. The writer to which generated code should be written. Generates code for the given annotation value, which may be null. The default behavior is to use an if one is registered, otherwise call ToString on the annotation value. Note that a can be registered to generate code for custom annotations without the need to override the entire code generator. The name of the annotation for which code is needed. The annotation value to generate. The writer to which generated code should be written. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The parameter model definition to generate code for. Text writer to add the generated code to. true to include the column name in the definition; otherwise, false. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code for an . The operation for which code should be generated. The writer to which generated code should be written. Generates code to perform an as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to specify a set of column names using a lambda expression. The columns to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to specify the definition for a . The column definition to generate code for. Text writer to add the generated code to. A value indicating whether to include the column name in the definition. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column of unknown data type. The value to be used as the default. Code representing the default value. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Removes any invalid characters from the name of an database artifact. The name to be scrubbed. The scrubbed name. Gets the type name to use for a column of the given data type. The data type to translate. The type name to use in the generated migration. Quotes an identifier using appropriate escaping to allow it to be stored in a string. The identifier to be quoted. The quoted identifier. This class is used by Code First Migrations to read and write migration history from the database. To customize the definition of the migrations history table you can derive from this class and override OnModelCreating. Derived instances can either be registered on a per migrations configuration basis using , or globally using . The default name used for the migrations history table. Initializes a new instance of the HistoryContext class. If you are creating a derived history context you will generally expose a constructor that accepts these same parameters and passes them to this base constructor. An existing connection to use for the new context. The default schema of the model being migrated. This schema will be used for the migrations history table unless a different schema is configured in OnModelCreating. Applies the default configuration for the migrations history table. If you override this method it is recommended that you call this base implementation before applying your custom configuration. The builder that defines the model for the context being created. Gets the key used to locate a model that was previously built for this context. This is used to avoid processing OnModelCreating and calculating the model every time a new context instance is created. By default this property returns the default schema. In most cases you will not need to override this property. However, if your implementation of OnModelCreating contains conditional logic that results in a different model being built for the same database provider and default schema you should override this property and calculate an appropriate key. Gets the default schema of the model being migrated. This schema will be used for the migrations history table unless a different schema is configured in OnModelCreating. Gets or sets a that can be used to read and write instances. This class is used by Code First Migrations to read and write migration history from the database. Gets or sets the Id of the migration this row represents. Gets or sets a key representing to which context the row applies. Gets or sets the state of the model after this migration was applied. Gets or sets the version of Entity Framework that created this entry. Represents an error that occurs when an automatic migration would result in data loss. Initializes a new instance of the AutomaticDataLossException class. Initializes a new instance of the AutomaticDataLossException class. The message that describes the error. Initializes a new instance of the MigrationsException class. The message that describes the error. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Represents an error that occurs when there are pending model changes after applying the last migration and automatic migration is disabled. Initializes a new instance of the AutomaticMigrationsDisabledException class. Initializes a new instance of the AutomaticMigrationsDisabledException class. The message that describes the error. Initializes a new instance of the MigrationsException class. The message that describes the error. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Provides additional metadata about a code-based migration. Gets the unique identifier for the migration. Gets the state of the model before this migration is run. Gets the state of the model after this migration is run. Decorator to provide logging during migrations operations.. Initializes a new instance of the MigratorLoggingDecorator class. The migrator that this decorator is wrapping. The logger to write messages to. Decorator to produce a SQL script instead of applying changes to the database. Using this decorator to wrap will prevent from applying any changes to the target database. Initializes a new instance of the MigratorScriptingDecorator class. The migrator that this decorator is wrapping. Produces a script to update the database. The migration to update from. If null is supplied, a script to update the current database will be produced. The migration to update to. If null is supplied, a script to update to the latest migration will be produced. The generated SQL script. Represents a column being added to a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the AddColumnOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table the column should be added to. Details of the column being added. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table the column should be added to. Gets the details of the column being added. Gets an operation that represents dropping the added column. Represents a foreign key constraint being added to a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Base class for changes that affect foreign key constraints. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the ForeignKeyOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets or sets the name of the table that the foreign key constraint targets. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets or sets the name of the table that the foreign key columns exist in. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The names of the foreign key column(s). Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets a value indicating if a specific name has been supplied for this foreign key constraint. Gets or sets the name of this foreign key constraint. If no name is supplied, a default name will be calculated. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the AddForeignKeyOperation class. The PrincipalTable, PrincipalColumns, DependentTable and DependentColumns properties should also be populated. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation to create an index on the foreign key column(s). An operation to add the index. The names of the column(s) that the foreign key constraint should target. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets or sets a value indicating if cascade delete should be configured on the foreign key constraint. Gets an operation to drop the foreign key constraint. Represents adding a primary key to a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Common base class to represent operations affecting primary keys. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Returns the default name for the primary key. The target table name. The default primary key name. Initializes a new instance of the PrimaryKeyOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets or sets the name of the table that contains the primary key. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets the column(s) that make up the primary key. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets a value indicating if a specific name has been supplied for this primary key. Gets or sets the name of this primary key. If no name is supplied, a default name will be calculated. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the AddPrimaryKeyOperation class. The Table and Columns properties should also be populated. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation to drop the primary key. Gets or sets whether this is a clustered primary key. Represents altering an existing column. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the AlterColumnOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table that the column belongs to. Details of what the column should be altered to. Value indicating if this change will result in data loss. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the AlterColumnOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table that the column belongs to. Details of what the column should be altered to. Value indicating if this change will result in data loss. An operation to revert this alteration of the column. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table that the column belongs to. Gets the new definition for the column. Gets an operation that represents reverting the alteration. The inverse cannot be automatically calculated, if it was not supplied to the constructor this property will return null. Represents information about a column. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the ColumnModel class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The data type for this column. Initializes a new instance of the ColumnModel class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The data type for this column. Additional details about the data type. This includes details such as maximum length, nullability etc. Determines if this column is a narrower data type than another column. Used to determine if altering the supplied column definition to this definition will result in data loss. The column to compare to. Details of the database provider being used. True if this column is of a narrower data type. Gets the CLR type corresponding to the database type of this column. Gets the default value for the CLR type corresponding to the database type of this column. Gets or sets a value indicating if this column can store null values. Gets or sets a value indicating if values for this column will be generated by the database using the identity pattern. Gets or sets a value indicating if this property model should be configured as a timestamp. Gets or sets the custom annotations that have changed on the column. Represents creating a database index. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Common base class for operations affecting indexes. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Creates a default index name based on the supplied column names. The column names used to create a default index name. A default index name. Initializes a new instance of the IndexOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets or sets the table the index belongs to. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets the columns that are indexed. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets a value indicating if a specific name has been supplied for this index. Gets or sets the name of this index. If no name is supplied, a default name will be calculated. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the CreateIndexOperation class. The Table and Columns properties should also be populated. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets or sets a value indicating if this is a unique index. Gets an operation to drop this index. Gets or sets whether this is a clustered index. Represents creating a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the CreateTableOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Name of the table to be created. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the CreateTableOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Name of the table to be created. Custom annotations that exist on the table to be created. May be null or empty. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table to be created. Gets the columns to be included in the new table. Gets or sets the primary key for the new table. Gets custom annotations that exist on the table to be created. Gets an operation to drop the table. Represents a column being dropped from a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the DropColumnOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table the column should be dropped from. The name of the column to be dropped. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropColumnOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table the column should be dropped from. The name of the column to be dropped. Custom annotations that exist on the column that is being dropped. May be null or empty. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropColumnOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table the column should be dropped from. The name of the column to be dropped. The operation that represents reverting the drop operation. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropColumnOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table the column should be dropped from. The name of the column to be dropped. Custom annotations that exist on the column that is being dropped. May be null or empty. The operation that represents reverting the drop operation. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table the column should be dropped from. Gets the name of the column to be dropped. Gets custom annotations that exist on the column that is being dropped. Gets an operation that represents reverting dropping the column. The inverse cannot be automatically calculated, if it was not supplied to the constructor this property will return null. Represents a foreign key constraint being dropped from a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the DropForeignKeyOperation class. The PrincipalTable, DependentTable and DependentColumns properties should also be populated. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropForeignKeyOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc.. The operation that represents reverting dropping the foreign key constraint. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation to drop the associated index on the foreign key column(s). An operation to drop the index. Gets an operation that represents reverting dropping the foreign key constraint. The inverse cannot be automatically calculated, if it was not supplied to the constructor this property will return null. Represents dropping an existing index. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the DropIndexOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropIndexOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The operation that represents reverting dropping the index. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation that represents reverting dropping the index. The inverse cannot be automatically calculated, if it was not supplied to the constructor this property will return null. Represents dropping a primary key from a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the DropPrimaryKeyOperation class. The Table and Columns properties should also be populated. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation to add the primary key. Used when altering the migrations history table so that the table can be rebuilt rather than just dropping and adding the primary key. The create table operation for the migrations history table. Represents dropping an existing table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the DropTableOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to be dropped. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropTableOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to be dropped. Custom annotations that exist on the table that is being dropped. May be null or empty. Custom annotations that exist on columns of the table that is being dropped. May be null or empty. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropTableOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to be dropped. An operation that represents reverting dropping the table. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropTableOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to be dropped. Custom annotations that exist on the table that is being dropped. May be null or empty. Custom annotations that exist on columns of the table that is being dropped. May be null or empty. An operation that represents reverting dropping the table. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table to be dropped. Gets custom annotations that exist on the table that is being dropped. Gets custom annotations that exist on columns of the table that is being dropped. Gets an operation that represents reverting dropping the table. The inverse cannot be automatically calculated, if it was not supplied to the constructor this property will return null. Operation representing DML changes to the migrations history table. The migrations history table is used to store a log of the migrations that have been applied to the database. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the HistoryOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. A sequence of command trees representing the operations being applied to the history table. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. A sequence of commands representing the operations being applied to the history table. Represents moving a table from one schema to another. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the MoveTableOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Name of the table to be moved. Name of the schema to move the table to. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table to be moved. Gets the name of the schema to move the table to. Gets an operation that moves the table back to its original schema. Used when altering the migrations history table so that data can be moved to the new table. The context key for the model. Gets a value that indicates whether this is a system table. true if the table is a system table; otherwise, false. Used when altering the migrations history table so that the table can be rebuilt rather than just dropping and adding the primary key. The create table operation for the migrations history table. Represents renaming an existing column. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the RenameColumnOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Name of the table the column belongs to. Name of the column to be renamed. New name for the column. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table the column belongs to. Gets the name of the column to be renamed. Gets the new name for the column. Gets an operation that reverts the rename. Represents renaming an existing table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the RenameTableOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Name of the table to be renamed. New name for the table. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table to be renamed. Gets the new name for the table. Gets an operation that reverts the rename. Represents a provider specific SQL statement to be executed directly against the target database. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the SqlOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The SQL to be executed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the SQL to be executed. Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails. Common base class for providers that convert provider agnostic migration operations into database provider specific SQL commands. Converts a set of migration operations into database provider specific SQL. The operations to be converted. Token representing the version of the database being targeted. A list of SQL statements to be executed to perform the migration operations. Generates the SQL body for a stored procedure. The command trees representing the commands for an insert, update or delete operation. The rows affected parameter name. The provider manifest token. The SQL body for the stored procedure. Builds the store type usage for the specified using the facets from the specified . Name of the store type. The target property. A store-specific TypeUsage Gets or sets the provider manifest. The provider manifest. Represents a migration operation that has been translated into a SQL statement. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets or sets the SQL to be executed to perform this migration operation. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails. Gets or sets the batch terminator for the database provider. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The batch terminator for the database provider. Extension methods for . Returns an implementation that stays in sync with the given . The element type. The collection that the binding list will stay in sync with. The binding list. Represents data in a geodetic (round earth) coordinate system. Creates a new value based on the specified well known binary value. A new DbGeography value as defined by the well known binary value with the default geography coordinate system identifier (SRID)( ). A byte array that contains a well known binary representation of the geography value. Creates a new value based on the specified well known binary value and coordinate system identifier (SRID). A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. A byte array that contains a well known binary representation of the geography value. The identifier of the coordinate system that the new DbGeography value should use. Creates a new line value based on the specified well known binary value and coordinate system identifier (SRID). A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. A byte array that contains a well known binary representation of the geography value. The identifier of the coordinate system that the new DbGeography value should use. Creates a new point value based on the specified well known binary value and coordinate system identifier (SRID). A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. A byte array that contains a well known binary representation of the geography value. The identifier of the coordinate system that the new DbGeography value should use. Creates a new polygon value based on the specified well known binary value and coordinate system identifier (SRID). A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. A byte array that contains a well known binary representation of the geography value. The identifier of the coordinate system that the new DbGeography value should use. Returns the multiline value from a binary value. The multiline value from a binary value. The well-known binary value. The coordinate system identifier. Returns the multipoint value from a well-known binary value. The multipoint value from a well-known binary value. The well-known binary value. The coordinate system identifier. Returns the multi polygon value from a well-known binary value. The multi polygon value from a well-known binary value. The multi polygon well-known binary value. The coordinate system identifier. Creates a new collection value based on the specified well known binary value and coordinate system identifier (SRID). A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. A byte array that contains a well known binary representation of the geography value. The identifier of the coordinate system that the new DbGeography value should use. Creates a new value based on the specified Geography Markup Language (GML) value. A new DbGeography value as defined by the GML value with the default geography coordinate system identifier (SRID) ( ). A string that contains a Geography Markup Language (GML) representation of the geography value. Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). A new DbGeography value as defined by the GML value with the specified coordinate system identifier. A string that contains a Geography Markup Language (GML) representation of the geography value. The identifier of the coordinate system that the new DbGeography value should use. Creates a new value based on the specified well known text value. A new DbGeography value as defined by the well known text value with the default geography coordinate system identifier (SRID) ( ). A string that contains a well known text representation of the geography value. Creates a new value based on the specified well known text value and coordinate system identifier (SRID). A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. A string that contains a well known text representation of the geography value. The identifier of the coordinate system that the new DbGeography value should use. Creates a new line value based on the specified well known text value and coordinate system identifier (SRID). A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. A string that contains a well known text representation of the geography value. The identifier of the coordinate system that the new DbGeography value should use. Creates a new point value based on the specified well known text value and coordinate system identifier (SRID). A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. A string that contains a well known text representation of the geography value. The identifier of the coordinate system that the new DbGeography value should use. Creates a new polygon value based on the specified well known text value and coordinate system identifier (SRID). A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. A string that contains a well known text representation of the geography value. The identifier of the coordinate system that the new DbGeography value should use. Returns the multiline value from a well-known text value. The multiline value from a well-known text value. The well-known text. The coordinate system identifier. Returns the multipoint value from a well-known text value. The multipoint value from a well-known text value. The well-known text value. The coordinate system identifier. Returns the multi polygon value from a well-known text value. The multi polygon value from a well-known text value. The multi polygon well-known text value. The coordinate system identifier. Creates a new collection value based on the specified well known text value and coordinate system identifier (SRID). A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. A string that contains a well known text representation of the geography value. The identifier of the coordinate system that the new DbGeography value should use. Generates the well known text representation of this DbGeography value. Includes only Longitude and Latitude for points. A string containing the well known text representation of this DbGeography value. Generates the well known binary representation of this DbGeography value. The well-known binary representation of this DbGeography value. Generates the Geography Markup Language (GML) representation of this DbGeography value. A string containing the GML representation of this DbGeography value. Determines whether this DbGeography is spatially equal to the specified DbGeography argument. true if other is spatially equal to this geography value; otherwise false. The geography value that should be compared with this geography value for equality. Determines whether this DbGeography is spatially disjoint from the specified DbGeography argument. true if other is disjoint from this geography value; otherwise false. The geography value that should be compared with this geography value for disjointness. Determines whether this DbGeography value spatially intersects the specified DbGeography argument. true if other intersects this geography value; otherwise false. The geography value that should be compared with this geography value for intersection. Returns a geography object that represents the union of all points whose distance from a geography instance is less than or equal to a specified value. A geography object that represents the union of all points The distance. Computes the distance between the closest points in this DbGeography value and another DbGeography value. A double value that specifies the distance between the two closest points in this geography value and other. The geography value for which the distance from this value should be computed. Computes the intersection of this DbGeography value and another DbGeography value. A new DbGeography value representing the intersection between this geography value and other. The geography value for which the intersection with this value should be computed. Computes the union of this DbGeography value and another DbGeography value. A new DbGeography value representing the union between this geography value and other. The geography value for which the union with this value should be computed. Computes the difference of this DbGeography value and another DbGeography value. A new DbGeography value representing the difference between this geography value and other. The geography value for which the difference with this value should be computed. Computes the symmetric difference of this DbGeography value and another DbGeography value. A new DbGeography value representing the symmetric difference between this geography value and other. The geography value for which the symmetric difference with this value should be computed. Returns an element of this DbGeography value from a specific position, if it represents a geography collection. <param name="index">The position within this geography value from which the element should be taken.</param><returns>The element in this geography value at the specified position, if it represents a collection of other geography values; otherwise null.</returns> An element of this DbGeography value from a specific position The index. Returns an element of this DbGeography value from a specific position, if it represents a linestring or linear ring. <param name="index">The position within this geography value from which the element should be taken.</param><returns>The element in this geography value at the specified position, if it represents a linestring or linear ring; otherwise null.</returns> An element of this DbGeography value from a specific position The index. Returns a string representation of the geography value. A string representation of the geography value. Gets the default coordinate system id (SRID) for geography values (WGS 84) The default coordinate system id (SRID) for geography values (WGS 84) Gets a representation of this DbGeography value that is specific to the underlying provider that constructed it. A representation of this DbGeography value. Gets the spatial provider that will be used for operations on this spatial type. Gets or sets a data contract serializable well known representation of this DbGeography value. A data contract serializable well known representation of this DbGeography value. Gets the identifier associated with the coordinate system. The identifier associated with the coordinate system. Gets the dimension of the given value or, if the value is a collections, the largest element dimension. The dimension of the given value. Gets the spatial type name of the DBGeography. The spatial type name of the DBGeography. Gets a nullable Boolean value indicating whether this DbGeography value is empty. True if this DbGeography value is empty; otherwise, false. Gets the number of elements in this DbGeography value, if it represents a geography collection. <returns>The number of elements in this geography value, if it represents a collection of other geography values; otherwise null.</returns> The number of elements in this DbGeography value. Gets the Latitude coordinate of this DbGeography value, if it represents a point. <returns>The Latitude coordinate value of this geography value, if it represents a point; otherwise null.</returns> The Latitude coordinate of this DbGeography value. Gets the Longitude coordinate of this DbGeography value, if it represents a point. <returns>The Longitude coordinate value of this geography value, if it represents a point; otherwise null.</returns> The Longitude coordinate of this DbGeography value. Gets the elevation (Z coordinate) of this DbGeography value, if it represents a point. <returns>The elevation (Z coordinate) value of this geography value, if it represents a point; otherwise null.</returns> The elevation (Z coordinate) of this DbGeography value. Gets the M (Measure) coordinate of this DbGeography value, if it represents a point. <returns>The M (Measure) coordinate value of this geography value, if it represents a point; otherwise null.</returns> The M (Measure) coordinate of this DbGeography value. Gets a nullable double value that indicates the length of this DbGeography value, which may be null if this value does not represent a curve. A nullable double value that indicates the length of this DbGeography value. Gets a DbGeography value representing the start point of this value, which may be null if this DbGeography value does not represent a curve. A DbGeography value representing the start point of this value. Gets a DbGeography value representing the start point of this value, which may be null if this DbGeography value does not represent a curve. A DbGeography value representing the start point of this value. Gets a nullable Boolean value indicating whether this DbGeography value is closed, which may be null if this value does not represent a curve. True if this DbGeography value is closed; otherwise, false. Gets the number of points in this DbGeography value, if it represents a linestring or linear ring. <returns>The number of elements in this geography value, if it represents a linestring or linear ring; otherwise null.</returns> The number of points in this DbGeography value. Gets a nullable double value that indicates the area of this DbGeography value, which may be null if this value does not represent a surface. A nullable double value that indicates the area of this DbGeography value. A data contract serializable representation of a value. Gets or sets the coordinate system identifier (SRID) of this value. Gets or sets the well known text representation of this value. Gets or sets the well known binary representation of this value. Represents geometric shapes. Creates a new value based on the specified well known binary value. A new DbGeometry value as defined by the well known binary value with the default geometry coordinate system identifier ( ). A byte array that contains a well known binary representation of the geometry value. wellKnownBinary Creates a new value based on the specified well known binary value and coordinate system identifier (SRID). A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. A byte array that contains a well known binary representation of the geometry value. The identifier of the coordinate system that the new DbGeometry value should use. wellKnownBinary coordinateSystemId Creates a new line value based on the specified well known binary value and coordinate system identifier (SRID). A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. A byte array that contains a well known binary representation of the geometry value. The identifier of the coordinate system that the new DbGeometry value should use. lineWellKnownBinary coordinateSystemId Creates a new point value based on the specified well known binary value and coordinate system identifier (SRID). A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. A byte array that contains a well known binary representation of the geometry value. The identifier of the coordinate system that the new DbGeometry value should use. pointWellKnownBinary coordinateSystemId Creates a new polygon value based on the specified well known binary value and coordinate system identifier (SRID). A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. A byte array that contains a well known binary representation of the geometry value. The identifier of the coordinate system that the new DbGeometry value should use. polygonWellKnownBinary coordinateSystemId Returns the multiline value from a binary value. The multiline value from a binary value. The well-known binary value. The coordinate system identifier. Returns the multipoint value from a well-known binary value. The multipoint value from a well-known binary value. The well-known binary value. The coordinate system identifier. Returns the multi polygon value from a well-known binary value. The multipoint value from a well-known text value. The multi polygon well-known text value. The coordinate system identifier. Creates a new collection value based on the specified well known binary value and coordinate system identifier (SRID). A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. A byte array that contains a well known binary representation of the geometry value. The identifier of the coordinate system that the new DbGeometry value should use. geometryCollectionWellKnownBinary coordinateSystemId Creates a new value based on the specified Geography Markup Language (GML) value. A new DbGeometry value as defined by the GML value with the default geometry coordinate system identifier (SRID) ( ). A string that contains a Geography Markup Language (GML) representation of the geometry value. geometryMarkup Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). A new DbGeometry value as defined by the GML value with the specified coordinate system identifier. A string that contains a Geography Markup Language (GML) representation of the geometry value. The identifier of the coordinate system that the new DbGeometry value should use. geometryMarkup coordinateSystemId Creates a new value based on the specified well known text value. A new DbGeometry value as defined by the well known text value with the default geometry coordinate system identifier (SRID) ( ). A string that contains a well known text representation of the geometry value. wellKnownText Creates a new value based on the specified well known text value and coordinate system identifier (SRID). A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. A string that contains a well known text representation of the geometry value. The identifier of the coordinate system that the new DbGeometry value should use. wellKnownText coordinateSystemId Creates a new line value based on the specified well known text value and coordinate system identifier (SRID). A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. A string that contains a well known text representation of the geometry value. The identifier of the coordinate system that the new DbGeometry value should use. lineWellKnownText coordinateSystemId Creates a new point value based on the specified well known text value and coordinate system identifier (SRID). A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. A string that contains a well known text representation of the geometry value. The identifier of the coordinate system that the new DbGeometry value should use. pointWellKnownText coordinateSystemId Creates a new polygon value based on the specified well known text value and coordinate system identifier (SRID). A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. A string that contains a well known text representation of the geometry value. The identifier of the coordinate system that the new DbGeometry value should use. polygonWellKnownText coordinateSystemId Returns the multiline value from a well-known text value. The multiline value from a well-known text value. The well-known text. The coordinate system identifier. Returns the multipoint value from a well-known text value. The multipoint value from a well-known text value. The well-known text value. The coordinate system identifier. Returns the multi polygon value from a well-known binary value. The multi polygon value from a well-known binary value. The multi polygon well-known text value. The coordinate system identifier. Creates a new collection value based on the specified well known text value and coordinate system identifier (SRID). A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. A string that contains a well known text representation of the geometry value. The identifier of the coordinate system that the new DbGeometry value should use. geometryCollectionWellKnownText coordinateSystemId Generates the well known text representation of this DbGeometry value. Includes only X and Y coordinates for points. A string containing the well known text representation of this DbGeometry value. Generates the well known binary representation of this DbGeometry value. The well-known binary representation of this DbGeometry value. Generates the Geography Markup Language (GML) representation of this DbGeometry value. A string containing the GML representation of this DbGeometry value. Determines whether this DbGeometry is spatially equal to the specified DbGeometry argument. true if other is spatially equal to this geometry value; otherwise false. The geometry value that should be compared with this geometry value for equality. other Determines whether this DbGeometry is spatially disjoint from the specified DbGeometry argument. true if other is disjoint from this geometry value; otherwise false. The geometry value that should be compared with this geometry value for disjointness. other Determines whether this DbGeometry value spatially intersects the specified DbGeometry argument. true if other intersects this geometry value; otherwise false. The geometry value that should be compared with this geometry value for intersection. other Determines whether this DbGeometry value spatially touches the specified DbGeometry argument. true if other touches this geometry value; otherwise false. The geometry value that should be compared with this geometry value. other Determines whether this DbGeometry value spatially crosses the specified DbGeometry argument. true if other crosses this geometry value; otherwise false. The geometry value that should be compared with this geometry value. other Determines whether this DbGeometry value is spatially within the specified DbGeometry argument. true if this geometry value is within other; otherwise false. The geometry value that should be compared with this geometry value for containment. other Determines whether this DbGeometry value spatially contains the specified DbGeometry argument. true if this geometry value contains other; otherwise false. The geometry value that should be compared with this geometry value for containment. other Determines whether this DbGeometry value spatially overlaps the specified DbGeometry argument. true if this geometry value overlaps other; otherwise false. The geometry value that should be compared with this geometry value for overlap. other Determines whether this DbGeometry value spatially relates to the specified DbGeometry argument according to the given Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern. true if this geometry value relates to other according to the specified intersection pattern matrix; otherwise false. The geometry value that should be compared with this geometry value for relation. A string that contains the text representation of the (DE-9IM) intersection pattern that defines the relation. othermatrix Returns a geometry object that represents the union of all points whose distance from a geometry instance is less than or equal to a specified value. A geometry object that represents the union of all points. The distance. Computes the distance between the closest points in this DbGeometry value and another DbGeometry value. A double value that specifies the distance between the two closest points in this geometry value and other. The geometry value for which the distance from this value should be computed. other Computes the intersection of this DbGeometry value and another DbGeometry value. A new DbGeometry value representing the intersection between this geometry value and other. The geometry value for which the intersection with this value should be computed. other Computes the union of this DbGeometry value and another DbGeometry value. A new DbGeometry value representing the union between this geometry value and other. The geometry value for which the union with this value should be computed. other Computes the difference between this DbGeometry value and another DbGeometry value. A new DbGeometry value representing the difference between this geometry value and other. The geometry value for which the difference with this value should be computed. other Computes the symmetric difference between this DbGeometry value and another DbGeometry value. A new DbGeometry value representing the symmetric difference between this geometry value and other. The geometry value for which the symmetric difference with this value should be computed. other Returns an element of this DbGeometry value from a specific position, if it represents a geometry collection. <param name="index">The position within this geometry value from which the element should be taken.</param><returns>The element in this geometry value at the specified position, if it represents a collection of other geometry values; otherwise null.</returns> An element of this DbGeometry value from a specific position. The index. Returns an element of this DbGeometry value from a specific position, if it represents a linestring or linear ring. <param name="index">The position within this geometry value from which the element should be taken.</param><returns>The element in this geometry value at the specified position, if it represents a linestring or linear ring; otherwise null.</returns> An element of this DbGeometry value from a specific position. The index. Returns an interior ring from this DbGeometry value at a specific position, if it represents a polygon. <param name="index">The position within this geometry value from which the interior ring should be taken.</param><returns>The interior ring in this geometry value at the specified position, if it represents a polygon; otherwise null.</returns> An interior ring from this DbGeometry value at a specific position. The index. Returns a string representation of the geometry value. A string representation of the geometry value. Gets the default coordinate system id (SRID) for geometry values. The default coordinate system id (SRID) for geometry values. Gets a representation of this DbGeometry value that is specific to the underlying provider that constructed it. A representation of this DbGeometry value. Gets the spatial provider that will be used for operations on this spatial type. Gets or sets a data contract serializable well known representation of this DbGeometry value. A data contract serializable well known representation of this DbGeometry value. Gets the coordinate system identifier of the DbGeometry object. The coordinate system identifier of the DbGeometry object. Gets the boundary of the DbGeometry objects. The boundary of the DbGeometry objects. Gets the dimension of the given value or, if the value is a collection, the dimension of its largest element. The dimension of the given value. Gets the envelope (minimum bounding box) of this DbGeometry value, as a geometry value. The envelope (minimum bounding box) of this DbGeometry value. Gets a spatial type name representation of this DbGeometry value. A spatial type name representation of this DbGeometry value. Gets a nullable Boolean value indicating whether this DbGeometry value is empty, which may be null if this value does not represent a curve. True if this DbGeometry value is empty; otherwise, false. Gets a nullable Boolean value indicating whether this DbGeometry value is simple. True if this DbGeometry value is simple; otherwise, false. Gets a nullable Boolean value indicating whether this DbGeometry value is valid. True if this DbGeometry value is valid; otherwise, false. Gets the convex hull of this DbGeometry value as another DbGeometry value. The convex hull of this DbGeometry value as another DbGeometry value. Gets the number of elements in this DbGeometry value, if it represents a geometry collection. <returns>The number of elements in this geometry value, if it represents a collection of other geometry values; otherwise null.</returns> The number of elements in this DbGeometry value. Gets the X coordinate of this DbGeometry value, if it represents a point. <returns>The X coordinate value of this geometry value, if it represents a point; otherwise null.</returns> The X coordinate of this DbGeometry value. Gets the Y coordinate of this DbGeometry value, if it represents a point. <returns>The Y coordinate value of this geometry value, if it represents a point; otherwise null.</returns> The Y coordinate of this DbGeometry value. Gets the elevation (Z coordinate) of this DbGeometry value, if it represents a point. <returns>The elevation (Z coordinate) of this geometry value, if it represents a point; otherwise null.</returns> The elevation (Z coordinate) of this DbGeometry value. Gets the Measure (M coordinate) of this DbGeometry value, if it represents a point. <returns>The Measure (M coordinate) value of this geometry value, if it represents a point; otherwise null.</returns> The Measure (M coordinate) of this DbGeometry value. Gets a nullable double value that indicates the length of this DbGeometry value, which may be null if this value does not represent a curve. The length of this DbGeometry value. Gets a DbGeometry value representing the start point of this value, which may be null if this DbGeometry value does not represent a curve. A DbGeometry value representing the start point of this value. Gets a DbGeometry value representing the start point of this value, which may be null if this DbGeometry value does not represent a curve. A DbGeometry value representing the start point of this value. Gets a nullable Boolean value indicating whether this DbGeometry value is closed, which may be null if this value does not represent a curve. True if this DbGeometry value is closed; otherwise, false. Gets a nullable Boolean value indicating whether this DbGeometry value is a ring, which may be null if this value does not represent a curve. True if this DbGeometry value is a ring; otherwise, false. Gets the number of points in this DbGeometry value, if it represents a linestring or linear ring. <returns>The number of elements in this geometry value, if it represents a linestring or linear ring; otherwise null.</returns> The number of points in this DbGeometry value. Gets a nullable double value that indicates the area of this DbGeometry value, which may be null if this value does not represent a surface. A nullable double value that indicates the area of this DbGeometry value. Gets the DbGeometry value that represents the centroid of this DbGeometry value, which may be null if this value does not represent a surface. The DbGeometry value that represents the centroid of this DbGeometry value. Gets a point on the surface of this DbGeometry value, which may be null if this value does not represent a surface. A point on the surface of this DbGeometry value. Gets the DbGeometry value that represents the exterior ring of this DbGeometry value, which may be null if this value does not represent a polygon. The DbGeometry value that represents the exterior ring of this DbGeometry value. Gets the number of interior rings in this DbGeometry value, if it represents a polygon. <returns>The number of elements in this geometry value, if it represents a polygon; otherwise null.</returns> The number of interior rings in this DbGeometry value. A data contract serializable representation of a value. Gets or sets the coordinate system identifier (SRID) of this value. Gets or sets the well known text representation of this value. Gets or sets the well known binary representation of this value. A provider-independent service API for geospatial (Geometry/Geography) type support. When implemented in derived types, reads an instance of from the column at the specified column ordinal. The instance of DbGeography at the specified column value The ordinal of the column that contains the geography value When implemented in derived types, reads an instance of from the column at the specified column ordinal. The instance of DbGeometry at the specified column value The ordinal of the data record column that contains the provider-specific geometry data Returns whether the column at the specified column ordinal is of geography type The column ordinal. true if the column at the specified column ordinal is of geography type; false otherwise. Returns whether the column at the specified column ordinal is of geometry type The column ordinal. true if the column at the specified column ordinal is of geometry type; false otherwise. A provider-independent service API for geospatial (Geometry/Geography) type support. This method is intended for use by derived implementations of after suitable validation of the specified provider value to ensure it is suitable for use with the derived implementation. A new instance that contains the specified providerValue and uses the specified spatialServices as its spatial implementation. The spatial services instance that the returned value will depend on for its implementation of spatial functionality. The provider value. Creates a new value based on a provider-specific value that is compatible with this spatial services implementation. A new value backed by this spatial services implementation and the specified provider value. A provider-specific value that this spatial services implementation is capable of interpreting as a geography value. A new DbGeography value backed by this spatial services implementation and the specified provider value. is null. is not compatible with this spatial services implementation. Creates a provider-specific value compatible with this spatial services implementation based on the specified well-known representation. A provider-specific value that encodes the information contained in wellKnownValue in a fashion compatible with this spatial services implementation. An instance of that contains the well-known representation of a geography value. Creates an instance of that represents the specified value using one or both of the standard well-known spatial formats. The well-known representation of geographyValue, as a new . The geography value. is null. is not compatible with this spatial services implementation. Creates a new value based on the specified well-known binary value. A new value as defined by the well-known binary value with the default coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geography value. Creates a new value based on the specified well-known binary value and coordinate system identifier (SRID). A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geography value. The identifier of the coordinate system that the new value should use. Creates a new line value based on the specified well-known binary value and coordinate system identifier (SRID). A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geography value. The identifier of the coordinate system that the new value should use. Creates a new point value based on the specified well-known binary value and coordinate system identifier (SRID). A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geography value. The identifier of the coordinate system that the new value should use. Creates a new polygon value based on the specified well-known binary value and coordinate system identifier (SRID). A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geography value. The identifier of the coordinate system that the new value should use. Creates a new multiline value based on the specified well-known binary value and coordinate system identifier. The new multiline value. The well-known binary value. The coordinate system identifier. Creates a new multipoint value based on the specified well-known binary value and coordinate system identifier. A new multipoint value. The well-known binary value. The coordinate system identifier. Creates a new multi polygon value based on the specified well-known binary value and coordinate system identifier. A new multi polygon value. The well-known binary value. The coordinate system identifier. Creates a new collection value based on the specified well-known binary value and coordinate system identifier (SRID). A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geography value. The identifier of the coordinate system that the new value should use. Creates a new value based on the specified well-known text value. A new value as defined by the well-known text value with the default coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geography value. Creates a new value based on the specified well-known text value and coordinate system identifier (SRID). A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geography value. The identifier of the coordinate system that the new value should use. Creates a new line value based on the specified well-known text value and coordinate system identifier (SRID). A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geography value. The identifier of the coordinate system that the new value should use. Creates a new point value based on the specified well-known text value and coordinate system identifier (SRID). A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geography value. The identifier of the coordinate system that the new value should use. Creates a new polygon value based on the specified well-known text value and coordinate system identifier (SRID). A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geography value. The identifier of the coordinate system that the new value should use. Creates a new multiline value based on the specified well-known text value and coordinate system identifier. A new multiline value. The well-known text value. The coordinate system identifier. Creates a new multipoint value based on the specified well-known text value and coordinate system identifier. A new multipoint value. The well-known text value. The coordinate system identifier. Creates a new multi polygon value based on the specified well-known text value and coordinate system identifier. A new multi polygon value. The well-known text value. The coordinate system identifier. Creates a new collection value based on the specified well-known text value and coordinate system identifier (SRID). A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geography value. The identifier of the coordinate system that the new value should use. Creates a new value based on the specified Geography Markup Language (GML) value. A new value as defined by the GML value with the default coordinate system identifier (SRID) ( ). A string that contains a Geometry Markup Language (GML) representation of the geography value. Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). A new value as defined by the GML value with the specified coordinate system identifier (SRID). A string that contains a Geometry Markup Language (GML) representation of the geography value. The identifier of the coordinate system that the new value should use. Returns the coordinate system identifier of the given value. The coordinate system identifier of the given value. The geography value. is null. is not compatible with this spatial services implementation. Gets the dimension of the given value or, if the value is a collections, the largest element dimension. The dimension of geographyValue, or the largest element dimension if is a collection. The geography value for which the dimension value should be retrieved. is null. is not compatible with this spatial services implementation. Returns a value that indicates the spatial type name of the given value. The spatial type name of the given value. The geography value. is null. is not compatible with this spatial services implementation. Returns a nullable Boolean value that whether the given value is empty. True if the given value is empty; otherwise, false. The geography value. is null. is not compatible with this spatial services implementation. Gets the well-known text representation of the given value. This value should include only the Longitude and Latitude of points. A string containing the well-known text representation of geographyValue. The geography value for which the well-known text should be generated. is null. is not compatible with this spatial services implementation. Returns a text representation of with elevation and measure. A text representation of . The geography value. is null. is not compatible with this spatial services implementation. Gets the well-known binary representation of the given value. The well-known binary representation of the given value. The geography value for which the well-known binary should be generated. is null. is not compatible with this spatial services implementation. Generates the Geography Markup Language (GML) representation of this value. A string containing the GML representation of this DbGeography value. The geography value for which the GML should be generated. is null. is not compatible with this spatial services implementation. Determines whether the two given values are spatially equal. true if geographyValue is spatially equal to otherGeography; otherwise false. The first geography value to compare for equality. The second geography value to compare for equality. or is null. or is not compatible with this spatial services implementation. Determines whether the two given values are spatially disjoint. true if geographyValue is disjoint from otherGeography; otherwise false. The first geography value to compare for disjointness. The second geography value to compare for disjointness. or is null. or is not compatible with this spatial services implementation. Determines whether the two given values spatially intersect. true if geographyValue intersects otherGeography; otherwise false. The first geography value to compare for intersection. The second geography value to compare for intersection. or is null. or is not compatible with this spatial services implementation. Creates a geography value representing all points less than or equal to distance from the given value. A new DbGeography value representing all points less than or equal to distance from geographyValue. The geography value. A double value specifying how far from geographyValue to buffer. is null. is not compatible with this spatial services implementation. Computes the distance between the closest points in two values. A double value that specifies the distance between the two closest points in geographyValue and otherGeography. The first geography value. The second geography value. or is null. or is not compatible with this spatial services implementation. Computes the intersection of two values. A new value representing the intersection of geographyValue and otherGeography. The first geography value. The second geography value. or is null. or is not compatible with this spatial services implementation. Computes the union of two values. A new value representing the union of geographyValue and otherGeography. The first geography value. The second geography value. or is null. or is not compatible with this spatial services implementation. Computes the difference of two values. A new DbGeography value representing the difference of geographyValue and otherGeography. The first geography value. The second geography value. or is null. or is not compatible with this spatial services implementation. Computes the symmetric difference of two values. A new value representing the symmetric difference of geographyValue and otherGeography. The first geography value. The second geography value. or is null. or is not compatible with this spatial services implementation. Returns the number of elements in the given value, if it represents a geography collection. The number of elements in geographyValue, if it represents a collection of other geography values; otherwise null. The geography value, which need not represent a geography collection. is null. is not compatible with this spatial services implementation. Returns an element of the given value, if it represents a geography collection. The element in geographyValue at position index, if it represents a collection of other geography values; otherwise null. The geography value, which need not represent a geography collection. The position within the geography value from which the element should be taken. is null. is not compatible with this spatial services implementation. Returns the Latitude coordinate of the given value, if it represents a point. The Latitude coordinate of the given value. The geography value, which need not represent a point. is null. is not compatible with this spatial services implementation. Returns the Longitude coordinate of the given value, if it represents a point. The Longitude coordinate of the given value. The geography value, which need not represent a point. is null. is not compatible with this spatial services implementation. Returns the elevation (Z coordinate) of the given value, if it represents a point. The elevation (Z coordinate) of geographyValue, if it represents a point; otherwise null. The geography value, which need not represent a point. is null. is not compatible with this spatial services implementation. Returns the M (Measure) coordinate of the given value, if it represents a point. The M (Measure) coordinate of the given value. The geography value, which need not represent a point. is null. is not compatible with this spatial services implementation. Returns a nullable double value that indicates the length of the given value, which may be null if the value does not represent a curve. The length of the given value. The geography value, which need not represent a curve. is null. is not compatible with this spatial services implementation. Returns a value that represents the start point of the given DbGeography value, which may be null if the value does not represent a curve. The start point of the given value. The geography value, which need not represent a curve. is null. is not compatible with this spatial services implementation. Returns a value that represents the end point of the given DbGeography value, which may be null if the value does not represent a curve. The end point of geographyValue, if it represents a curve; otherwise null. The geography value, which need not represent a curve. is null. is not compatible with this spatial services implementation. Returns a nullable Boolean value that whether the given value is closed, which may be null if the value does not represent a curve. True if the given value is closed; otherwise, false. The geography value, which need not represent a curve. is null. is not compatible with this spatial services implementation. Returns the number of points in the given value, if it represents a linestring or linear ring. The number of points in the given value. The geography value, which need not represent a linestring or linear ring. is null. is not compatible with this spatial services implementation. Returns a point element of the given value, if it represents a linestring or linear ring. The point in geographyValue at position index, if it represents a linestring or linear ring; otherwise null. The geography value, which need not represent a linestring or linear ring. The position within the geography value from which the element should be taken. is null. is not compatible with this spatial services implementation. Returns a nullable double value that indicates the area of the given value, which may be null if the value does not represent a surface. A nullable double value that indicates the area of the given value. The geography value, which need not represent a surface. is null. is not compatible with this spatial services implementation. This method is intended for use by derived implementations of after suitable validation of the specified provider value to ensure it is suitable for use with the derived implementation. A new instance that contains the specified providerValue and uses the specified spatialServices as its spatial implementation. The spatial services instance that the returned value will depend on for its implementation of spatial functionality. A provider value. Creates a provider-specific value compatible with this spatial services implementation based on the specified well-known representation. A provider-specific value that encodes the information contained in wellKnownValue in a fashion compatible with this spatial services implementation. An instance of that contains the well-known representation of a geometry value. Creates an instance of that represents the specified value using one or both of the standard well-known spatial formats. The well-known representation of geometryValue, as a new . The geometry value. is null. is not compatible with this spatial services implementation. Creates a new value based on a provider-specific value that is compatible with this spatial services implementation. A new value backed by this spatial services implementation and the specified provider value. A provider-specific value that this spatial services implementation is capable of interpreting as a geometry value. is null. is not compatible with this spatial services implementation. Creates a new value based on the specified well-known binary value. A new value as defined by the well-known binary value with the default coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geometry value. Creates a new value based on the specified well-known binary value and coordinate system identifier (SRID). A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geometry value. The identifier of the coordinate system that the new value should use. Creates a new line value based on the specified well-known binary value and coordinate system identifier (SRID). A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geometry value. The identifier of the coordinate system that the new value should use. Creates a new point value based on the specified well-known binary value and coordinate system identifier (SRID). A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geometry value. The identifier of the coordinate system that the new value should use. Creates a new polygon value based on the specified well-known binary value and coordinate system identifier (SRID). A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geometry value. The identifier of the coordinate system that the new value should use. Creates a new multiline value based on the specified well-known binary value and coordinate system identifier. The new multiline value The well-known binary value. The coordinate system identifier. Creates a new multipoint value based on the specified well-known binary value and coordinate system identifier. A new multipoint value. The well-known binary value. The coordinate system identifier. Creates a new multi polygon value based on the specified well-known binary value and coordinate system identifier. A new multi polygon value. The well-known binary value. The coordinate system identifier. Creates a new collection value based on the specified well-known binary value and coordinate system identifier (SRID). A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geometry value. The identifier of the coordinate system that the new value should use. Creates a new value based on the specified well-known text value. A new value as defined by the well-known text value with the default coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geometry value. Creates a new value based on the specified well-known text value and coordinate system identifier (SRID). A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geometry value. The identifier of the coordinate system that the new value should use. Creates a new line value based on the specified well-known text value and coordinate system identifier (SRID). A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geometry value. The identifier of the coordinate system that the new value should use. Creates a new point value based on the specified well-known text value and coordinate system identifier (SRID). A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geometry value. The identifier of the coordinate system that the new value should use. Creates a new polygon value based on the specified well-known text value and coordinate system identifier (SRID). A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geometry value. The identifier of the coordinate system that the new value should use. Creates a new multiline value based on the specified well-known text value and coordinate system identifier. A new multiline value The well-known text value. The coordinate system identifier. Creates a new multipoint value based on the specified well-known text value and coordinate system identifier. A new multipoint value. The well-known text value. The coordinate system identifier. Creates a new multi polygon value based on the specified well-known text value and coordinate system identifier. A new multi polygon value. The well-known text value. The coordinate system identifier. Creates a new collection value based on the specified well-known text value and coordinate system identifier (SRID). A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geometry value. The identifier of the coordinate system that the new value should use. Creates a new value based on the specified Geography Markup Language (GML) value. A new value as defined by the GML value with the default coordinate system identifier (SRID) ( ). A string that contains a Geography Markup Language (GML) representation of the geometry value. Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). A new value as defined by the GML value with the specified coordinate system identifier (SRID). A string that contains a Geography Markup Language (GML) representation of the geometry value. The identifier of the coordinate system that the new value should use. Returns the coordinate system identifier of the given value. The coordinate system identifier of the given value. The geometry value. is null. is not compatible with this spatial services implementation. Returns a nullable double value that indicates the boundary of the given value. The boundary of the given value. The geometry value. is null. is not compatible with this spatial services implementation. Gets the dimension of the given value or, if the value is a collections, the largest element dimension. The dimension of geometryValue, or the largest element dimension if is a collection. The geometry value for which the dimension value should be retrieved. Gets the envelope (minimum bounding box) of the given value, as a geometry value. The envelope of geometryValue, as a value. The geometry value for which the envelope value should be retrieved. is null. is not compatible with this spatial services implementation. Returns a value that indicates the spatial type name of the given value. The spatial type name of the given value. The geometry value. is null. is not compatible with this spatial services implementation. Returns a nullable Boolean value that whether the given value is empty. True if the given value is empty; otherwise, false. The geometry value. is null. is not compatible with this spatial services implementation. Returns a nullable Boolean value that whether the given value is simple. True if the given value is simple; otherwise, false. The geometry value. is null. is not compatible with this spatial services implementation. Returns a nullable Boolean value that whether the given value is valid. True if the given value is valid; otherwise, false. The geometry value. is null. is not compatible with this spatial services implementation. Gets the well-known text representation of the given value, including only X and Y coordinates for points. A string containing the well-known text representation of geometryValue. The geometry value for which the well-known text should be generated. is null. is not compatible with this spatial services implementation. Returns a text representation of with elevation and measure. A text representation of with elevation and measure. The geometry value. is null. is not compatible with this spatial services implementation. Gets the well-known binary representation of the given value. The well-known binary representation of the given value. The geometry value for which the well-known binary should be generated. is null. is not compatible with this spatial services implementation. Generates the Geography Markup Language (GML) representation of this value. A string containing the GML representation of this DbGeometry value. The geometry value for which the GML should be generated. is null. is not compatible with this spatial services implementation. Determines whether the two given values are spatially equal. true if geometryValue is spatially equal to otherGeometry; otherwise false. The first geometry value to compare for equality. The second geometry value to compare for equality. or is null. or is not compatible with this spatial services implementation. Determines whether the two given values are spatially disjoint. true if geometryValue is disjoint from otherGeometry; otherwise false. The first geometry value to compare for disjointness. The second geometry value to compare for disjointness. or is null. or is not compatible with this spatial services implementation. Determines whether the two given values spatially intersect. true if geometryValue intersects otherGeometry; otherwise false. The first geometry value to compare for intersection. The second geometry value to compare for intersection. or is null. or is not compatible with this spatial services implementation. Determines whether the two given values spatially touch. true if geometryValue touches otherGeometry; otherwise false. The first geometry value. The second geometry value. or is null. or is not compatible with this spatial services implementation. Determines whether the two given values spatially cross. true if geometryValue crosses otherGeometry; otherwise false. The first geometry value. The second geometry value. or is null. or is not compatible with this spatial services implementation. Determines whether one value is spatially within the other. true if geometryValue is within otherGeometry; otherwise false. The first geometry value. The second geometry value. or is null. or is not compatible with this spatial services implementation. Determines whether one value spatially contains the other. true if geometryValue contains otherGeometry; otherwise false. The first geometry value. The second geometry value. or is null. or is not compatible with this spatial services implementation. Determines whether the two given values spatially overlap. true if geometryValue overlaps otherGeometry; otherwise false. The first geometry value. The second geometry value. or is null. or is not compatible with this spatial services implementation. Determines whether the two given values are spatially related according to the given Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern. true if this geometryValue value relates to otherGeometry according to the specified intersection pattern matrix; otherwise false. The first geometry value. The geometry value that should be compared with the first geometry value for relation. A string that contains the text representation of the (DE-9IM) intersection pattern that defines the relation. , or is null. or is not compatible with this spatial services implementation. Creates a geometry value representing all points less than or equal to distance from the given value. A new DbGeometry value representing all points less than or equal to distance from geometryValue. The geometry value. A double value specifying how far from geometryValue to buffer. is null. is not compatible with this spatial services implementation. Computes the distance between the closest points in two values. A double value that specifies the distance between the two closest points in geometryValue and otherGeometry. The first geometry value. The second geometry value. or is null. or is not compatible with this spatial services implementation. Returns a nullable double value that indicates the convex hull of the given value. The convex hull of the given value. The geometry value. is null. is not compatible with this spatial services implementation. Computes the intersection of two values. A new value representing the intersection of geometryValue and otherGeometry. The first geometry value. The second geometry value. or is null. or is not compatible with this spatial services implementation. Computes the union of two values. A new value representing the union of geometryValue and otherGeometry. The first geometry value. The second geometry value. or is null. or is not compatible with this spatial services implementation. Computes the difference between two values. A new DbGeometry value representing the difference between geometryValue and otherGeometry. The first geometry value. The second geometry value. or is null. or is not compatible with this spatial services implementation. Computes the symmetric difference between two values. A new value representing the symmetric difference between geometryValue and otherGeometry. The first geometry value. The second geometry value. or is null. or is not compatible with this spatial services implementation. Returns the number of elements in the given value, if it represents a geometry collection. The number of elements in geometryValue, if it represents a collection of other geometry values; otherwise null. The geometry value, which need not represent a geometry collection. is null. is not compatible with this spatial services implementation. Returns an element of the given value, if it represents a geometry collection. The element in geometryValue at position index, if it represents a collection of other geometry values; otherwise null. The geometry value, which need not represent a geometry collection. The position within the geometry value from which the element should be taken. is null. is not compatible with this spatial services implementation. Returns the X coordinate of the given value, if it represents a point. The X coordinate of the given value. The geometry value, which need not represent a point. is null. is not compatible with this spatial services implementation. Returns the Y coordinate of the given value, if it represents a point. The Y coordinate of the given value. The geometry value, which need not represent a point. is null. is not compatible with this spatial services implementation. Returns the elevation (Z) of the given value, if it represents a point. The elevation (Z) of geometryValue, if it represents a point; otherwise null. The geometry value, which need not represent a point. is null. is not compatible with this spatial services implementation. Returns the M (Measure) coordinate of the given value, if it represents a point. The M (Measure) coordinate of the given value. The geometry value, which need not represent a point. is null. is not compatible with this spatial services implementation. Returns a nullable double value that indicates the length of the given value, which may be null if the value does not represent a curve. The length of the given value. The geometry value, which need not represent a curve. is null. is not compatible with this spatial services implementation. Returns a value that represents the start point of the given DbGeometry value, which may be null if the value does not represent a curve. The start point of the given value. The geometry value, which need not represent a curve. is null. is not compatible with this spatial services implementation. Returns a value that represents the end point of the given DbGeometry value, which may be null if the value does not represent a curve. The end point of geometryValue, if it represents a curve; otherwise null. The geometry value, which need not represent a curve. is null. is not compatible with this spatial services implementation. Returns a nullable Boolean value that whether the given value is closed, which may be null if the value does not represent a curve. True if the given value is closed; otherwise, false. The geometry value, which need not represent a curve. is null. is not compatible with this spatial services implementation. Returns a nullable Boolean value that whether the given value is a ring, which may be null if the value does not represent a curve. True if the given value is a ring; otherwise, false. The geometry value, which need not represent a curve. is null. is not compatible with this spatial services implementation. Returns the number of points in the given value, if it represents a linestring or linear ring. The number of points in the given value. The geometry value, which need not represent a linestring or linear ring. is null. is not compatible with this spatial services implementation. Returns a point element of the given value, if it represents a linestring or linear ring. The point in geometryValue at position index, if it represents a linestring or linear ring; otherwise null. The geometry value, which need not represent a linestring or linear ring. The position within the geometry value from which the element should be taken. is null. is not compatible with this spatial services implementation. Returns a nullable double value that indicates the area of the given value, which may be null if the value does not represent a surface. A nullable double value that indicates the area of the given value. The geometry value, which need not represent a surface. is null. is not compatible with this spatial services implementation. Returns a value that represents the centroid of the given DbGeometry value, which may be null if the value does not represent a surface. The centroid of geometryValue, if it represents a surface; otherwise null. The geometry value, which need not represent a surface. is null. is not compatible with this spatial services implementation. Returns a value that represents a point on the surface of the given DbGeometry value, which may be null if the value does not represent a surface. A value that represents a point on the surface of the given DbGeometry value. The geometry value, which need not represent a surface. is null. is not compatible with this spatial services implementation. Returns a value that represents the exterior ring of the given DbGeometry value, which may be null if the value does not represent a polygon. A DbGeometry value representing the exterior ring on geometryValue, if it represents a polygon; otherwise null. The geometry value, which need not represent a polygon. is null. is not compatible with this spatial services implementation. Returns the number of interior rings in the given value, if it represents a polygon. The number of elements in geometryValue, if it represents a polygon; otherwise null. The geometry value, which need not represent a polygon. is null. is not compatible with this spatial services implementation. Returns an interior ring from the given value, if it represents a polygon. The interior ring in geometryValue at position index, if it represents a polygon; otherwise null. The geometry value, which need not represent a polygon. The position within the geometry value from which the element should be taken. is null. is not compatible with this spatial services implementation. Gets the default services for the . The default services. Override this property to allow the spatial provider to fail fast when native types or other resources needed for the spatial provider to function correctly are not available. The default value is true which means that EF will continue with the assumption that the provider has the necessary types/resources rather than failing fast. The same as but works in partial trust and adds explicit caching of generated indentation string and also recognizes writing a string that contains just \r\n or \n as a write-line to ensure we indent the next line properly. Specifies the default tab string. This field is constant. Specifies the culture what will be used by the underlying TextWriter. This static property is read-only. Note that any writer passed to one of the constructors of must use this same culture. The culture is . Initializes a new instance of the IndentedTextWriter class using the specified text writer and default tab string. Note that the writer passed to this constructor must use the specified by the property. The to use for output. Initializes a new instance of the IndentedTextWriter class using the specified text writer and tab string. Note that the writer passed to this constructor must use the specified by the property. The to use for output. The tab string to use for indentation. Closes the document being written to. Flushes the stream. Outputs the tab string once for each level of indentation according to the property. Builds a string representing the current indentation level for a new line. Does NOT check if tabs are currently pending, just returns a string that would be useful in replacing embedded newline characters. An empty string, or a string that contains .Indent level's worth of specified tab-string. Writes the specified string to the text stream. The string to write. Writes the text representation of a Boolean value to the text stream. The Boolean value to write. Writes a character to the text stream. The character to write. Writes a character array to the text stream. The character array to write. Writes a subarray of characters to the text stream. The character array to write data from. Starting index in the buffer. The number of characters to write. Writes the text representation of a Double to the text stream. The double to write. Writes the text representation of a Single to the text stream. The single to write. Writes the text representation of an integer to the text stream. The integer to write. Writes the text representation of an 8-byte integer to the text stream. The 8-byte integer to write. Writes the text representation of an object to the text stream. The object to write. Writes out a formatted string, using the same semantics as specified. The formatting string. The object to write into the formatted string. Writes out a formatted string, using the same semantics as specified. The formatting string to use. The first object to write into the formatted string. The second object to write into the formatted string. Writes out a formatted string, using the same semantics as specified. The formatting string to use. The argument array to output. Writes the specified string to a line without tabs. The string to write. Writes the specified string, followed by a line terminator, to the text stream. The string to write. Writes a line terminator. Writes the text representation of a Boolean, followed by a line terminator, to the text stream. The Boolean to write. Writes a character, followed by a line terminator, to the text stream. The character to write. Writes a character array, followed by a line terminator, to the text stream. The character array to write. Writes a subarray of characters, followed by a line terminator, to the text stream. The character array to write data from. Starting index in the buffer. The number of characters to write. Writes the text representation of a Double, followed by a line terminator, to the text stream. The double to write. Writes the text representation of a Single, followed by a line terminator, to the text stream. The single to write. Writes the text representation of an integer, followed by a line terminator, to the text stream. The integer to write. Writes the text representation of an 8-byte integer, followed by a line terminator, to the text stream. The 8-byte integer to write. Writes the text representation of an object, followed by a line terminator, to the text stream. The object to write. Writes out a formatted string, followed by a line terminator, using the same semantics as specified. The formatting string. The object to write into the formatted string. Writes out a formatted string, followed by a line terminator, using the same semantics as specified. The formatting string to use. The first object to write into the formatted string. The second object to write into the formatted string. Writes out a formatted string, followed by a line terminator, using the same semantics as specified. The formatting string to use. The argument array to output. Writes the text representation of a UInt32, followed by a line terminator, to the text stream. A UInt32 to output. Gets the encoding for the text writer to use. An that indicates the encoding for the text writer to use. Gets or sets the new line character to use. The new line character to use. Gets or sets the number of spaces to indent. The number of spaces to indent. Gets the to use. The to use. Convention to apply column ordering specified via or the API. This convention throws if a duplicate configured column order is detected. Convention to apply column ordering specified via or the API. Validates the ordering configuration supplied for columns. This base implementation is a no-op. The name of the table that the columns belong to. The definition of the table. Validates the ordering configuration supplied for columns to ensure that the same ordinal was not supplied for two columns. The name of the table that the columns belong to. The definition of the table. Represents a conceptual or store model. This class can be used to access information about the shape of the model and the way the that it has been configured. Adds an association type to the model. The AssociationType instance to be added. Adds a complex type to the model. The ComplexType instance to be added. Adds an entity type to the model. The EntityType instance to be added. Adds an enumeration type to the model. The EnumType instance to be added. Adds a function to the model. The EdmFunction instance to be added. Removes an association type from the model. The AssociationType instance to be removed. Removes a complex type from the model. The ComplexType instance to be removed. Removes an entity type from the model. The EntityType instance to be removed. Removes an enumeration type from the model. The EnumType instance to be removed. Removes a function from the model. The EdmFunction instance to be removed. Gets the built-in type kind for this type. A object that represents the built-in type kind for this type. Gets the data space associated with the model, which indicates whether it is a conceptual model (DataSpace.CSpace) or a store model (DataSpace.SSpace). Gets the association types in the model. Gets the complex types in the model. Gets the entity types in the model. Gets the enum types in the model. Gets the functions in the model. Gets the container that stores entity and association sets, and function imports. Gets the global items associated with the model. The global items associated with the model. An implementation of IDatabaseInitializer that will recreate and optionally re-seed the database only if the database does not exist. To seed the database, create a derived class and override the Seed method. The type of the context. Initializes a new instance of the class. Executes the strategy to initialize the database for the given context. The context. A method that should be overridden to actually add data to the context for seeding. The default implementation does nothing. The context to seed. An instance of this class is obtained from an object and can be used to manage the actual database backing a DbContext or connection. This includes creating, deleting, and checking for the existence of a database. Note that deletion and checking for existence of a database can be performed using just a connection (i.e. without a full context) by using the static methods of this class. Enables the user to pass in a database transaction created outside of the object if you want the Entity Framework to execute commands within that external transaction. Alternatively, pass in null to clear the framework's knowledge of that transaction. the external transaction Thrown if the transaction is already completed Thrown if the connection associated with the object is already enlisted in a transaction Thrown if the connection associated with the object is already participating in a transaction Thrown if the connection associated with the transaction does not match the Entity Framework's connection Begins a transaction on the underlying store connection a object wrapping access to the underlying store's transaction object Begins a transaction on the underlying store connection using the specified isolation level The database isolation level with which the underlying store transaction will be created a object wrapping access to the underlying store's transaction object Sets the database initializer to use for the given context type. The database initializer is called when a the given type is used to access a database for the first time. The default strategy for Code First contexts is an instance of . The type of the context. The initializer to use, or null to disable initialization for the given context type. Runs the the registered on this context. If "force" is set to true, then the initializer is run regardless of whether or not it has been run before. This can be useful if a database is deleted while an app is running and needs to be reinitialized. If "force" is set to false, then the initializer is only run if it has not already been run for this context, model, and connection in this app domain. This method is typically used when it is necessary to ensure that the database has been created and seeded before starting some operation where doing so lazily will cause issues, such as when the operation is part of a transaction. If set to true the initializer is run even if it has already been run. Checks whether or not the database is compatible with the the current Code First model. Model compatibility currently uses the following rules. If the context was created using either the Model First or Database First approach then the model is assumed to be compatible with the database and this method returns true. For Code First the model is considered compatible if the model is stored in the database in the Migrations history table and that model has no differences from the current model as determined by Migrations model differ. If the model is not stored in the database but an EF 4.1/4.2 model hash is found instead, then this is used to check for compatibility. If set to true then an exception will be thrown if no model metadata is found in the database. If set to false then this method will return true if metadata is not found. True if the model hash in the context and the database match; false otherwise. Creates a new database on the database server for the model defined in the backing context. Note that calling this method before the database initialization strategy has run will disable executing that strategy. Creates a new database on the database server for the model defined in the backing context, but only if a database with the same name does not already exist on the server. True if the database did not exist and was created; false otherwise. Checks whether or not the database exists on the server. True if the database exists; false otherwise. Deletes the database on the database server if it exists, otherwise does nothing. Calling this method from outside of an initializer will mark the database as having not been initialized. This means that if an attempt is made to use the database again after it has been deleted, then any initializer set will run again and, usually, will try to create the database again automatically. True if the database did exist and was deleted; false otherwise. Checks whether or not the database exists on the server. The connection to the database is created using the given database name or connection string in the same way as is described in the documentation for the class. The database name or a connection string to the database. True if the database exists; false otherwise. Deletes the database on the database server if it exists, otherwise does nothing. The connection to the database is created using the given database name or connection string in the same way as is described in the documentation for the class. The database name or a connection string to the database. True if the database did exist and was deleted; false otherwise. Checks whether or not the database exists on the server. An existing connection to the database. True if the database exists; false otherwise. Deletes the database on the database server if it exists, otherwise does nothing. An existing connection to the database. True if the database did exist and was deleted; false otherwise. Creates a raw SQL query that will return elements of the given generic type. The type can be any type that has properties that match the names of the columns returned from the query, or can be a simple primitive type. The type does not have to be an entity type. The results of this query are never tracked by the context even if the type of object returned is an entity type. Use the method to return entities that are tracked by the context. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.Database.SqlQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.Database.SqlQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); The type of object returned by the query. The SQL query string. The parameters to apply to the SQL query string. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. A object that will execute the query when it is enumerated. Creates a raw SQL query that will return elements of the given type. The type can be any type that has properties that match the names of the columns returned from the query, or can be a simple primitive type. The type does not have to be an entity type. The results of this query are never tracked by the context even if the type of object returned is an entity type. Use the method to return entities that are tracked by the context. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); The type of object returned by the query. The SQL query string. The parameters to apply to the SQL query string. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. A object that will execute the query when it is enumerated. Executes the given DDL/DML command against the database. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); If there isn't an existing local or ambient transaction a new transaction will be used to execute the command. The command string. The parameters to apply to the command string. The result returned by the database after executing the command. Executes the given DDL/DML command against the database. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); Controls the creation of a transaction for this command. The command string. The parameters to apply to the command string. The result returned by the database after executing the command. Gets the of the current instance. The exact runtime type of the current instance. Gets the transaction the underlying store connection is enlisted in. May be null. Returns the connection being used by this context. This may cause the connection to be created if it does not already exist. Thrown if the context has been disposed. The connection factory to use when creating a from just a database name or a connection string. This is used when just a database name or connection string is given to or when the no database name or connection is given to DbContext in which case the name of the context class is passed to this factory in order to generate a DbConnection. By default, the instance to use is read from the application's .config file from the "EntityFramework DefaultConnectionFactory" entry in appSettings. If no entry is found in the config file then is used. Setting this property in code always overrides whatever value is found in the config file. Gets or sets the timeout value, in seconds, for all context operations. The default value is null, where null indicates that the default value of the underlying provider will be used. The timeout, in seconds, or null to use the provider default. Set this property to log the SQL generated by the to the given delegate. For example, to log to the console, set this property to . The format of the log text can be changed by creating a new formatter that derives from and setting it with . For more low-level control over logging/interception see and . DbModelBuilder is used to map CLR classes to a database schema. This code centric approach to building an Entity Data Model (EDM) model is known as 'Code First'. DbModelBuilder is typically used to configure a model by overriding DbContext.OnModelCreating(DbModelBuilder) . You can also use DbModelBuilder independently of DbContext to build a model and then construct a or . The recommended approach, however, is to use OnModelCreating in as the workflow is more intuitive and takes care of common tasks, such as caching the created model. Types that form your model are registered with DbModelBuilder and optional configuration can be performed by applying data annotations to your classes and/or using the fluent style DbModelBuilder API. When the Build method is called a set of conventions are run to discover the initial model. These conventions will automatically discover aspects of the model, such as primary keys, and will also process any data annotations that were specified on your classes. Finally any configuration that was performed using the DbModelBuilder API is applied. Configuration done via the DbModelBuilder API takes precedence over data annotations which in turn take precedence over the default conventions. Initializes a new instance of the class. The process of discovering the initial model will use the set of conventions included in the most recent version of the Entity Framework installed on your machine. Upgrading to newer versions of the Entity Framework may cause breaking changes in your application because new conventions may cause the initial model to be configured differently. There is an alternate constructor that allows a specific version of conventions to be specified. Initializes a new instance of the class that will use a specific set of conventions to discover the initial model. The version of conventions to be used. Excludes a type from the model. This is used to remove types from the model that were added by convention during initial model discovery. The type to be excluded. The same DbModelBuilder instance so that multiple calls can be chained. Configures the default database schema name. This default database schema name is used for database objects that do not have an explicitly configured schema name. The name of the default database schema. The same DbModelBuilder instance so that multiple calls can be chained. Excludes the specified type(s) from the model. This is used to remove types from the model that were added by convention during initial model discovery. The types to be excluded from the model. The same DbModelBuilder instance so that multiple calls can be chained. Registers an entity type as part of the model and returns an object that can be used to configure the entity. This method can be called multiple times for the same entity to perform multiple lines of configuration. The type to be registered or configured. The configuration object for the specified entity type. Registers an entity type as part of the model. The type to be registered. This method is provided as a convenience to allow entity types to be registered dynamically without the need to use MakeGenericMethod in order to call the normal generic Entity method. This method does not allow further configuration of the entity type using the fluent APIs since these APIs make extensive use of generic type parameters. Registers a type as a complex type in the model and returns an object that can be used to configure the complex type. This method can be called multiple times for the same type to perform multiple lines of configuration. The type to be registered or configured. The configuration object for the specified complex type. Begins configuration of a lightweight convention that applies to all entities and complex types in the model. A configuration object for the convention. Begins configuration of a lightweight convention that applies to all entities and complex types in the model that inherit from or implement the type specified by the generic argument. This method does not register types as part of the model. The type of the entities or complex types that this convention will apply to. A configuration object for the convention. Begins configuration of a lightweight convention that applies to all properties in the model. A configuration object for the convention. Begins configuration of a lightweight convention that applies to all primitive properties of the specified type in the model. The type of the properties that the convention will apply to. A configuration object for the convention. The convention will apply to both nullable and non-nullable properties of the specified type. Creates a based on the configuration performed using this builder. The connection is used to determine the database provider being used as this affects the database layer of the generated model. Connection to use to determine provider information. The model that was built. Creates a based on the configuration performed using this builder. Provider information must be specified because this affects the database layer of the generated model. For SqlClient the invariant name is 'System.Data.SqlClient' and the manifest token is the version year (i.e. '2005', '2008' etc.) The database provider that the model will be used with. The model that was built. Gets the of the current instance. The exact runtime type of the current instance. Provides access to the settings of this DbModelBuilder that deal with conventions. Gets the for this DbModelBuilder. The registrar allows derived entity and complex type configurations to be registered with this builder. A value from this enumeration can be provided directly to the class or can be used in the applied to a class derived from . The value used defines which version of the DbContext and DbModelBuilder conventions should be used when building a model from code--also known as "Code First". Using DbModelBuilderVersion.Latest ensures that all the latest functionality is available when upgrading to a new release of the Entity Framework. However, it may result in an application behaving differently with the new release than it did with a previous release. This can be avoided by using a specific version of the conventions, but if a version other than the latest is set then not all the latest functionality will be available. Indicates that the latest version of the and conventions should be used. Indicates that the version of the and conventions shipped with Entity Framework v4.1 should be used. Indicates that the version of the and conventions shipped with Entity Framework v5.0 when targeting .Net Framework 4 should be used. Indicates that the version of the and conventions shipped with Entity Framework v5.0 should be used. Indicates that the version of the and conventions shipped with Entity Framework v6.0 should be used. This attribute can be applied to a class derived from to set which version of the DbContext and conventions should be used when building a model from code--also known as "Code First". See the enumeration for details about DbModelBuilder versions. If the attribute is missing from DbContextthen DbContext will always use the latest version of the conventions. This is equivalent to using DbModelBuilderVersion.Latest. Initializes a new instance of the class. The conventions version to use. Gets the conventions version. The conventions version. A non-generic version of which can be used when the type of entity is not known at build time. Represents a non-generic LINQ to Entities query against a DbContext. Throws an exception indicating that binding directly to a store query is not supported. Instead populate a DbSet with data, for example by using the Load extension method, and then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to DbSet.Local.ToBindingList(). Never returns; always throws. Returns an which when enumerated will execute the query against the database. The query results. Specifies the related objects to include in the query results. Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on the returned instance of the DbQuery<T>. Other instances of DbQuery<T> and the object context itself are not affected. Because the Include method returns the query object, you can call this method multiple times on an DbQuery<T> to specify multiple paths for the query. The dot-separated list of related objects to return in the query results. A new DbQuery<T> with the defined query path. Returns a new query where the entities returned will not be cached in the . A new query with NoTracking applied. Returns a new query that will stream the results instead of buffering. A new query with AsStreaming applied. Returns the equivalent generic object. The type of element for which the query was created. The generic set object. Returns a representation of the underlying query. The query string. Returns false. false . The IQueryable element type. The IQueryable LINQ Expression. The IQueryable provider. Creates an instance of a when called from the constructor of a derived type that will be used as a test double for DbSets. Methods and properties that will be used by the test double must be implemented by the test double except AsNoTracking, AsStreaming, an Include where the default implementation is a no-op. Finds an entity with the given primary key values. If an entity with the given primary key values exists in the context, then it is returned immediately without making a request to the store. Otherwise, a request is made to the store for an entity with the given primary key values and this entity, if found, is attached to the context and returned. If no entity is found in the context or the store, then null is returned. The ordering of composite key values is as defined in the EDM, which is in turn as defined in the designer, by the Code First fluent API, or by the DataMember attribute. The values of the primary key for the entity to be found. The entity found, or null. Thrown if multiple entities exist in the context with the primary key values given. Thrown if the type of entity is not part of the data model for this context. Thrown if the types of the key values do not match the types of the key values for the entity type to be found. Thrown if the context has been disposed. Attaches the given entity to the context underlying the set. That is, the entity is placed into the context in the Unchanged state, just as if it had been read from the database. The entity to attach. The entity. Attach is used to repopulate a context with an entity that is known to already exist in the database. SaveChanges will therefore not attempt to insert an attached entity into the database because it is assumed to already be there. Note that entities that are already in the context in some other state will have their state set to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. Adds the given entity to the context underlying the set in the Added state such that it will be inserted into the database when SaveChanges is called. The entity to add. The entity. Note that entities that are already in the context in some other state will have their state set to Added. Add is a no-op if the entity is already in the context in the Added state. Adds the given collection of entities into context underlying the set with each entity being put into the Added state such that it will be inserted into the database when SaveChanges is called. The collection of entities to add. The collection of entities. Note that if is set to true (which is the default), then DetectChanges will be called once before adding any entities and will not be called again. This means that in some situations AddRange may perform significantly better than calling Add multiple times would do. Note that entities that are already in the context in some other state will have their state set to Added. AddRange is a no-op for entities that are already in the context in the Added state. Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges is called. Note that the entity must exist in the context in some other state before this method is called. The entity to remove. The entity. Note that if the entity exists in the context in the Added state, then this method will cause it to be detached from the context. This is because an Added entity is assumed not to exist in the database such that trying to delete it does not make sense. Removes the given collection of entities from the context underlying the set with each entity being put into the Deleted state such that it will be deleted from the database when SaveChanges is called. The collection of entities to delete. The collection of entities. Note that if is set to true (which is the default), then DetectChanges will be called once before delete any entities and will not be called again. This means that in some situations RemoveRange may perform significantly better than calling Remove multiple times would do. Note that if any entity exists in the context in the Added state, then this method will cause it to be detached from the context. This is because an Added entity is assumed not to exist in the database such that trying to delete it does not make sense. Creates a new instance of an entity for the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The entity instance, which may be a proxy. Creates a new instance of an entity for the type of this set or for a type derived from the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The type of entity to create. The entity instance, which may be a proxy. Returns the equivalent generic object. The type of entity for which the set was created. The generic set object. Creates a raw SQL query that will return entities in this set. By default, the entities returned are tracked by the context; this can be changed by calling AsNoTracking on the returned. Note that the entities returned are always of the type for this set and never of a derived type. If the table or tables queried may contain data for other entity types, then the SQL query must be written appropriately to ensure that only entities of the correct type are returned. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); The SQL query string. The parameters to apply to the SQL query string. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. A object that will execute the query when it is enumerated. Gets an that represents a local view of all Added, Unchanged, and Modified entities in this set. This local view will stay in sync as entities are added or removed from the context. Likewise, entities added to or removed from the local view will automatically be added to or removed from the context. This property can be used for data binding by populating the set with data, for example by using the Load extension method, and then binding to the local data through this property. For WPF bind to this property directly. For Windows Forms bind to the result of calling ToBindingList on this property The local view. A DbSet represents the collection of all entities in the context, or that can be queried from the database, of a given type. DbSet objects are created from a DbContext using the DbContext.Set method. Note that DbSet does not support MEST (Multiple Entity Sets per Type) meaning that there is always a one-to-one correlation between a type and a set. The type that defines the set. Represents a LINQ to Entities query against a DbContext. The type of entity to query for. Specifies the related objects to include in the query results. Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on the returned instance of the DbQuery<T>. Other instances of DbQuery<T> and the object context itself are not affected. Because the Include method returns the query object, you can call this method multiple times on an DbQuery<T> to specify multiple paths for the query. The dot-separated list of related objects to return in the query results. A new with the defined query path. Returns a new query where the entities returned will not be cached in the . A new query with NoTracking applied. Returns a new query that will stream the results instead of buffering. A new query with AsStreaming applied. Throws an exception indicating that binding directly to a store query is not supported. Instead populate a DbSet with data, for example by using the Load extension method, and then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to DbSet.Local.ToBindingList(). Never returns; always throws. Returns an which when enumerated will execute the query against the database. The query results. Returns an which when enumerated will execute the query against the database. The query results. Returns a representation of the underlying query. The query string. Returns a new instance of the non-generic class for this query. The query. A non-generic version. Returns false. false . The IQueryable element type. The IQueryable LINQ Expression. The IQueryable provider. An represents the collection of all entities in the context, or that can be queried from the database, of a given type. is a concrete implementation of IDbSet. was originally intended to allow creation of test doubles (mocks or fakes) for . However, this approach has issues in that adding new members to an interface breaks existing code that already implements the interface without the new members. Therefore, starting with EF6, no new members will be added to this interface and it is recommended that be used as the base class for test doubles. The type that defines the set. Finds an entity with the given primary key values. If an entity with the given primary key values exists in the context, then it is returned immediately without making a request to the store. Otherwise, a request is made to the store for an entity with the given primary key values and this entity, if found, is attached to the context and returned. If no entity is found in the context or the store, then null is returned. The ordering of composite key values is as defined in the EDM, which is in turn as defined in the designer, by the Code First fluent API, or by the DataMember attribute. The values of the primary key for the entity to be found. The entity found, or null. Adds the given entity to the context underlying the set in the Added state such that it will be inserted into the database when SaveChanges is called. The entity to add. The entity. Note that entities that are already in the context in some other state will have their state set to Added. Add is a no-op if the entity is already in the context in the Added state. Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges is called. Note that the entity must exist in the context in some other state before this method is called. The entity to remove. The entity. Note that if the entity exists in the context in the Added state, then this method will cause it to be detached from the context. This is because an Added entity is assumed not to exist in the database such that trying to delete it does not make sense. Attaches the given entity to the context underlying the set. That is, the entity is placed into the context in the Unchanged state, just as if it had been read from the database. The entity to attach. The entity. Attach is used to repopulate a context with an entity that is known to already exist in the database. SaveChanges will therefore not attempt to insert an attached entity into the database because it is assumed to already be there. Note that entities that are already in the context in some other state will have their state set to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. Creates a new instance of an entity for the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The entity instance, which may be a proxy. Creates a new instance of an entity for the type of this set or for a type derived from the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The type of entity to create. The entity instance, which may be a proxy. Gets an that represents a local view of all Added, Unchanged, and Modified entities in this set. This local view will stay in sync as entities are added or removed from the context. Likewise, entities added to or removed from the local view will automatically be added to or removed from the context. This property can be used for data binding by populating the set with data, for example by using the Load extension method, and then binding to the local data through this property. For WPF bind to this property directly. For Windows Forms bind to the result of calling ToBindingList on this property The local view. Creates an instance of a when called from the constructor of a derived type that will be used as a test double for DbSets. Methods and properties that will be used by the test double must be implemented by the test double except AsNoTracking, AsStreaming, an Include where the default implementation is a no-op. Finds an entity with the given primary key values. If an entity with the given primary key values exists in the context, then it is returned immediately without making a request to the store. Otherwise, a request is made to the store for an entity with the given primary key values and this entity, if found, is attached to the context and returned. If no entity is found in the context or the store, then null is returned. The ordering of composite key values is as defined in the EDM, which is in turn as defined in the designer, by the Code First fluent API, or by the DataMember attribute. The values of the primary key for the entity to be found. The entity found, or null. Thrown if multiple entities exist in the context with the primary key values given. Thrown if the type of entity is not part of the data model for this context. Thrown if the types of the key values do not match the types of the key values for the entity type to be found. Thrown if the context has been disposed. Adds the given collection of entities into context underlying the set with each entity being put into the Added state such that it will be inserted into the database when SaveChanges is called. The collection of entities to add. The collection of entities. Note that if is set to true (which is the default), then DetectChanges will be called once before adding any entities and will not be called again. This means that in some situations AddRange may perform significantly better than calling Add multiple times would do. Note that entities that are already in the context in some other state will have their state set to Added. AddRange is a no-op for entities that are already in the context in the Added state. Removes the given collection of entities from the context underlying the set with each entity being put into the Deleted state such that it will be deleted from the database when SaveChanges is called. The collection of entities to delete. The collection of entities. Note that if is set to true (which is the default), then DetectChanges will be called once before delete any entities and will not be called again. This means that in some situations RemoveRange may perform significantly better than calling Remove multiple times would do. Note that if any entity exists in the context in the Added state, then this method will cause it to be detached from the context. This is because an Added entity is assumed not to exist in the database such that trying to delete it does not make sense. Returns the equivalent non-generic object. The generic set object. The non-generic set object. Creates a raw SQL query that will return entities in this set. By default, the entities returned are tracked by the context; this can be changed by calling AsNoTracking on the returned. Note that the entities returned are always of the type for this set and never of a derived type. If the table or tables queried may contain data for other entity types, then the SQL query must be written appropriately to ensure that only entities of the correct type are returned. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); The SQL query string. The parameters to apply to the SQL query string. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. A object that will execute the query when it is enumerated. An implementation of IDatabaseInitializer that will always recreate and optionally re-seed the database the first time that a context is used in the app domain. To seed the database, create a derived class and override the Seed method. The type of the context. Initializes a new instance of the class. Executes the strategy to initialize the database for the given context. The context. is null . A method that should be overridden to actually add data to the context for seeding. The default implementation does nothing. The context to seed. An implementation of IDatabaseInitializer that will DELETE, recreate, and optionally re-seed the database only if the model has changed since the database was created. The type of the context. Whether or not the model has changed is determined by the method. To seed the database create a derived class and override the Seed method. Initializes a new instance of the class. Executes the strategy to initialize the database for the given context. The context. is null . A method that should be overridden to actually add data to the context for seeding. The default implementation does nothing. The context to seed. Returned by the ChangeTracker method of to provide access to features of the context that are related to change tracking of entities. Gets objects for all the entities tracked by this context. The entries. Gets objects for all the entities of the given type tracked by this context. The type of the entity. The entries. Checks if the is tracking any new, deleted, or changed entities or relationships that will be sent to the database if is called. Functionally, calling this method is equivalent to checking if there are any entities or relationships in the Added, Updated, or Deleted state. Note that this method calls unless has been set to false. True if underlying have changes, else false. Detects changes made to the properties and relationships of POCO entities. Note that some types of entity (such as change tracking proxies and entities that derive from ) report changes automatically and a call to DetectChanges is not normally needed for these types of entities. Also note that normally DetectChanges is called automatically by many of the methods of and its related classes such that it is rare that this method will need to be called explicitly. However, it may be desirable, usually for performance reasons, to turn off this automatic calling of DetectChanges using the AutoDetectChangesEnabled flag from . Gets the of the current instance. The exact runtime type of the current instance. A non-generic version of the class. This is an abstract base class use to represent a scalar or complex property, or a navigation property of an entity. Scalar and complex properties use the derived class , reference navigation properties use the derived class , and collection navigation properties use the derived class . Validates this property. Collection of objects. Never null. If the entity is valid the collection will be empty. Gets the of the current instance. The exact runtime type of the current instance. Returns the equivalent generic object. The type of entity on which the member is declared. The type of the property. The equivalent generic object. Gets the name of the property. The property name. Gets or sets the current value of this property. The current value. The to which this member belongs. An entry for the entity that owns this member. Loads the collection of entities from the database. Note that entities that already exist in the context are not overwritten with values from the database. Returns the query that would be used to load this collection from the database. The returned query can be modified using LINQ to perform filtering or operations in the database, such as counting the number of entities in the collection in the database without actually loading them. A query for the collection. Returns the equivalent generic object. The type of entity on which the member is declared. The type of the collection element. The equivalent generic object. Gets the property name. The property name. Gets or sets the current value of the navigation property. The current value is the entity that the navigation property references. The current value. Gets or sets a value indicating whether all entities of this collection have been loaded from the database. Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly with one of the Load methods will set the IsLoaded flag to true. IsLoaded can be explicitly set to true to prevent the related entities of this collection from being lazy-loaded. This can be useful if the application has caused a subset of related entities to be loaded into this collection and wants to prevent any other entities from being loaded automatically. Note that explict loading using one of the Load methods will load all related entities from the database regardless of whether or not IsLoaded is true. When any related entity in the collection is detached the IsLoaded flag is reset to false indicating that the not all related entities are now loaded. true if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise, false. The to which this navigation property belongs. An entry for the entity that owns this navigation property. Instances of this class are returned from the Collection method of and allow operations such as loading to be performed on the an entity's collection navigation properties. The type of the entity to which this property belongs. The type of the element in the collection of entities. This is an abstract base class use to represent a scalar or complex property, or a navigation property of an entity. Scalar and complex properties use the derived class , reference navigation properties use the derived class , and collection navigation properties use the derived class . The type of the entity to which this property belongs. The type of the property. Returns a new instance of the non-generic class for the property represented by this object. The object representing the property. A non-generic version. Validates this property. Collection of objects. Never null. If the entity is valid the collection will be empty. Gets the of the current instance. The exact runtime type of the current instance. Gets the name of the property. The name of the property. Gets or sets the current value of this property. The current value. The to which this member belongs. An entry for the entity that owns this member. Loads the collection of entities from the database. Note that entities that already exist in the context are not overwritten with values from the database. Returns the query that would be used to load this collection from the database. The returned query can be modified using LINQ to perform filtering or operations in the database, such as counting the number of entities in the collection in the database without actually loading them. A query for the collection. Returns a new instance of the non-generic class for the navigation property represented by this object. The object representing the navigation property. A non-generic version. Gets the property name. The property name. Gets or sets the current value of the navigation property. The current value is the entity that the navigation property references. The current value. Gets or sets a value indicating whether all entities of this collection have been loaded from the database. Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly with one of the Load methods will set the IsLoaded flag to true. IsLoaded can be explicitly set to true to prevent the related entities of this collection from being lazy-loaded. This can be useful if the application has caused a subset of related entities to be loaded into this collection and wants to prevent any other entities from being loaded automatically. Note that explict loading using one of the Load methods will load all related entities from the database regardless of whether or not IsLoaded is true. When any related entity in the collection is detached the IsLoaded flag is reset to false indicating that the not all related entities are now loaded. true if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise, false. The to which this navigation property belongs. An entry for the entity that owns this navigation property. An immutable representation of an Entity Data Model (EDM) model that can be used to create an or can be passed to the constructor of a . For increased performance, instances of this type should be cached and re-used to construct contexts. Creates an instance of ObjectContext or class derived from ObjectContext. Note that an instance of DbContext can be created instead by using the appropriate DbContext constructor. If a derived ObjectContext is used, then it must have a public constructor with a single EntityConnection parameter. The connection passed is used by the ObjectContext created, but is not owned by the context. The caller must dispose of the connection once the context has been disposed. The type of context to create. An existing connection to a database for use by the context. The context. A non-generic version of the class. A non-generic version of the class. Returns the equivalent generic object. The type of entity on which the member is declared. The type of the property. The equivalent generic object. Gets the property name. The property name. Gets or sets the original value of this property. The original value. Gets or sets the current value of this property. The current value. Gets or sets a value indicating whether the value of this property has been modified since it was loaded from the database. Setting this value to false for a modified property will revert the change by setting the current value to the original value. If the result is that no properties of the entity are marked as modified, then the entity will be marked as Unchanged. Setting this value to false for properties of Added, Unchanged, or Deleted entities is a no-op. true if this instance is modified; otherwise, false . The to which this property belongs. An entry for the entity that owns this property. The of the property for which this is a nested property. This method will only return a non-null entry for properties of complex objects; it will return null for properties of the entity itself. An entry for the parent complex property, or null if this is an entity property. Gets an object that represents a nested property of this property. This method can be used for both scalar or complex properties. The name of the nested property. An object representing the nested property. Gets an object that represents a nested complex property of this property. The name of the nested property. An object representing the nested property. Returns the equivalent generic object. The type of entity on which the member is declared. The type of the complex property. The equivalent generic object. Instances of this class are returned from the ComplexProperty method of and allow access to the state of a complex property. The type of the entity to which this property belongs. The type of the property. Instances of this class are returned from the Property method of and allow access to the state of the scalar or complex property. The type of the entity to which this property belongs. The type of the property. Returns a new instance of the non-generic class for the property represented by this object. The object representing the property. A non-generic version. Gets the property name. The property name. Gets or sets the original value of this property. The original value. Gets or sets the current value of this property. The current value. Gets or sets a value indicating whether the value of this property has been modified since it was loaded from the database. true if this instance is modified; otherwise, false . The to which this property belongs. An entry for the entity that owns this property. The of the property for which this is a nested property. This method will only return a non-null entry for properties of complex objects; it will return null for properties of the entity itself. An entry for the parent complex property, or null if this is an entity property. Returns a new instance of the non-generic class for the property represented by this object. The object representing the property. A non-generic version. Gets an object that represents a nested property of this property. This method can be used for both scalar or complex properties. The name of the nested property. An object representing the nested property. Gets an object that represents a nested property of this property. This method can be used for both scalar or complex properties. The type of the nested property. The name of the nested property. An object representing the nested property. Gets an object that represents a nested property of this property. This method can be used for both scalar or complex properties. The type of the nested property. An expression representing the nested property. An object representing the nested property. Gets an object that represents a nested complex property of this property. The name of the nested property. An object representing the nested property. Gets an object that represents a nested complex property of this property. The type of the nested property. The name of the nested property. An object representing the nested property. Gets an object that represents a nested complex property of this property. The type of the nested property. An expression representing the nested property. An object representing the nested property. Describes the origin of the database connection string associated with a . The connection string was created by convention. The connection string was read from external configuration. The connection string was explicitly specified at runtime. The connection string was overriden by connection information supplied to DbContextInfo. Returned by the Configuration method of to provide access to configuration options for the context. Gets the of the current instance. The exact runtime type of the current instance. Gets or sets the value that determines whether SQL functions and commands should be always executed in a transaction. This flag determines whether a new transaction will be started when methods such as are executed outside of a transaction. Note that this does not change the behavior of . The default transactional behavior. Gets or sets a value indicating whether lazy loading of relationships exposed as navigation properties is enabled. Lazy loading is enabled by default. true if lazy loading is enabled; otherwise, false . Gets or sets a value indicating whether or not the framework will create instances of dynamically generated proxy classes whenever it creates an instance of an entity type. Note that even if proxy creation is enabled with this flag, proxy instances will only be created for entity types that meet the requirements for being proxied. Proxy creation is enabled by default. true if proxy creation is enabled; otherwise, false . Gets or sets a value indicating whether database null semantics are exhibited when comparing two operands, both of which are potentially nullable. The default value is false. For example (operand1 == operand2) will be translated as: (operand1 = operand2) if UseDatabaseNullSemantics is true, respectively (((operand1 = operand2) AND (NOT (operand1 IS NULL OR operand2 IS NULL))) OR ((operand1 IS NULL) AND (operand2 IS NULL))) if UseDatabaseNullSemantics is false. true if database null comparison behavior is enabled, otherwise false . Gets or sets a value indicating whether the method is called automatically by methods of and related classes. The default value is true. true if should be called automatically; otherwise, false. Gets or sets a value indicating whether tracked entities should be validated automatically when is invoked. The default value is true. Provides runtime information about a given type. Creates a new instance representing a given type. The type deriving from . Creates a new instance representing a given targeting a specific database. The type deriving from . Connection information for the database to be used. Creates a new instance representing a given type. An external list of connection strings can be supplied and will be used during connection string resolution in place of any connection strings specified in external configuration files. It is preferable to use the constructor that accepts the entire config document instead of using this constructor. Providing the entire config document allows DefaultConnectionFactroy entries in the config to be found in addition to explicitly specified connection strings. The type deriving from . A collection of connection strings. Creates a new instance representing a given type. An external config object (e.g. app.config or web.config) can be supplied and will be used during connection string resolution. This includes looking for connection strings and DefaultConnectionFactory entries. The type deriving from . An object representing the config file. Creates a new instance representing a given , targeting a specific database. An external config object (e.g. app.config or web.config) can be supplied and will be used during connection string resolution. This includes looking for connection strings and DefaultConnectionFactory entries. The type deriving from . An object representing the config file. Connection information for the database to be used. Creates a new instance representing a given type. A can be supplied in order to override the default determined provider used when constructing the underlying EDM model. The type deriving from . A specifying the underlying ADO.NET provider to target. Creates a new instance representing a given type. An external config object (e.g. app.config or web.config) can be supplied and will be used during connection string resolution. This includes looking for connection strings and DefaultConnectionFactory entries. A can be supplied in order to override the default determined provider used when constructing the underlying EDM model. This can be useful to prevent EF from connecting to discover a manifest token. The type deriving from . An object representing the config file. A specifying the underlying ADO.NET provider to target. If instances of the underlying type can be created, returns a new instance; otherwise returns null. A instance. The concrete type. Whether or not instances of the underlying type can be created. The connection string used by the underlying type. The connection string name used by the underlying type. The ADO.NET provider name of the connection used by the underlying type. The origin of the connection string used by the underlying type. An action to be run on the DbModelBuilder after OnModelCreating has been run on the context. A non-generic version of the class. Queries the database for copies of the values of the tracked entity as they currently exist in the database. Note that changing the values in the returned dictionary will not update the values in the database. If the entity is not found in the database then null is returned. The store values. Reloads the entity from the database overwriting any property values with values from the database. The entity will be in the Unchanged state after calling this method. Gets an object that represents the reference (i.e. non-collection) navigation property from this entity to another entity. The name of the navigation property. An object representing the navigation property. Gets an object that represents the collection navigation property from this entity to a collection of related entities. The name of the navigation property. An object representing the navigation property. Gets an object that represents a scalar or complex property of this entity. The name of the property. An object representing the property. Gets an object that represents a complex property of this entity. The name of the complex property. An object representing the complex property. Gets an object that represents a member of the entity. The runtime type of the returned object will vary depending on what kind of member is asked for. The currently supported member types and their return types are: Reference navigation property: . Collection navigation property: . Primitive/scalar property: . Complex property: . The name of the member. An object representing the member. Returns a new instance of the generic class for the given generic type for the tracked entity represented by this object. Note that the type of the tracked entity must be compatible with the generic type or an exception will be thrown. The type of the entity. A generic version. Validates this instance and returns validation result. Entity validation result. Possibly null if DbContext.ValidateEntity(DbEntityEntry, IDictionary{object,object}) method is overridden. Determines whether the specified is equal to this instance. Two instances are considered equal if they are both entries for the same entity on the same . The to compare with this instance. true if the specified is equal to this instance; otherwise, false . Determines whether the specified is equal to this instance. Two instances are considered equal if they are both entries for the same entity on the same . The to compare with this instance. true if the specified is equal to this instance; otherwise, false . Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the of the current instance. The exact runtime type of the current instance. Gets the entity. The entity. Gets or sets the state of the entity. The state. Gets the current property values for the tracked entity represented by this object. The current values. Gets the original property values for the tracked entity represented by this object. The original values are usually the entity's property values as they were when last queried from the database. The original values. Instances of this class provide access to information about and control of entities that are being tracked by the . Use the Entity or Entities methods of the context to obtain objects of this type. The type of the entity. Queries the database for copies of the values of the tracked entity as they currently exist in the database. Note that changing the values in the returned dictionary will not update the values in the database. If the entity is not found in the database then null is returned. The store values. Reloads the entity from the database overwriting any property values with values from the database. The entity will be in the Unchanged state after calling this method. Gets an object that represents the reference (i.e. non-collection) navigation property from this entity to another entity. The name of the navigation property. An object representing the navigation property. Gets an object that represents the reference (i.e. non-collection) navigation property from this entity to another entity. The type of the property. The name of the navigation property. An object representing the navigation property. Gets an object that represents the reference (i.e. non-collection) navigation property from this entity to another entity. The type of the property. An expression representing the navigation property. An object representing the navigation property. Gets an object that represents the collection navigation property from this entity to a collection of related entities. The name of the navigation property. An object representing the navigation property. Gets an object that represents the collection navigation property from this entity to a collection of related entities. The type of elements in the collection. The name of the navigation property. An object representing the navigation property. Gets an object that represents the collection navigation property from this entity to a collection of related entities. The type of elements in the collection. An expression representing the navigation property. An object representing the navigation property. Gets an object that represents a scalar or complex property of this entity. The name of the property. An object representing the property. Gets an object that represents a scalar or complex property of this entity. The type of the property. The name of the property. An object representing the property. Gets an object that represents a scalar or complex property of this entity. The type of the property. An expression representing the property. An object representing the property. Gets an object that represents a complex property of this entity. The name of the complex property. An object representing the complex property. Gets an object that represents a complex property of this entity. The type of the complex property. The name of the complex property. An object representing the complex property. Gets an object that represents a complex property of this entity. The type of the complex property. An expression representing the complex property. An object representing the complex property. Gets an object that represents a member of the entity. The runtime type of the returned object will vary depending on what kind of member is asked for. The currently supported member types and their return types are: Reference navigation property: . Collection navigation property: . Primitive/scalar property: . Complex property: . The name of the member. An object representing the member. Gets an object that represents a member of the entity. The runtime type of the returned object will vary depending on what kind of member is asked for. The currently supported member types and their return types are: Reference navigation property: . Collection navigation property: . Primitive/scalar property: . Complex property: . The type of the member. The name of the member. An object representing the member. Returns a new instance of the non-generic class for the tracked entity represented by this object. The object representing the tracked entity. A non-generic version. Validates this instance and returns validation result. Entity validation result. Possibly null if DbContext.ValidateEntity(DbEntityEntry, IDictionary{object, object}) method is overridden. Determines whether the specified is equal to this instance. Two instances are considered equal if they are both entries for the same entity on the same . The to compare with this instance. true if the specified is equal to this instance; otherwise, false . Determines whether the specified is equal to this instance. Two instances are considered equal if they are both entries for the same entity on the same . The to compare with this instance. true if the specified is equal to this instance; otherwise, false . Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the of the current instance. The exact runtime type of the current instance. Gets the entity. The entity. Gets or sets the state of the entity. The state. Gets the current property values for the tracked entity represented by this object. The current values. Gets the original property values for the tracked entity represented by this object. The original values are usually the entity's property values as they were when last queried from the database. The original values. Represents an Entity Data Model (EDM) created by the . The Compile method can be used to go from this EDM representation to a which is a compiled snapshot of the model suitable for caching and creation of or instances. Creates a for this mode which is a compiled snapshot suitable for caching and creation of instances. The compiled model. Gets the provider information. Gets the provider manifest. Gets the conceptual model. Gets the store model. Gets the mapping model. A collection of all the properties for an underlying entity or complex object. An instance of this class can be converted to an instance of the generic class using the Cast method. Complex properties in the underlying entity or complex object are represented in the property values as nested instances of this class. Creates an object of the underlying type for this dictionary and hydrates it with property values from this dictionary. The properties of this dictionary copied into a new object. Sets the values of this dictionary by reading values out of the given object. The given object can be of any type. Any property on the object with a name that matches a property name in the dictionary and can be read will be read. Other properties will be ignored. This allows, for example, copying of properties from simple Data Transfer Objects (DTOs). The object to read values from. Creates a new dictionary containing copies of all the properties in this dictionary. Changes made to the new dictionary will not be reflected in this dictionary and vice versa. A clone of this dictionary. Sets the values of this dictionary by reading values from another dictionary. The other dictionary must be based on the same type as this dictionary, or a type derived from the type for this dictionary. The dictionary to read values from. Gets the value of the property just like using the indexed property getter but typed to the type of the generic parameter. This is useful especially with nested dictionaries to avoid writing expressions with lots of casts. The type of the property. Name of the property. The value of the property. Gets the of the current instance. The exact runtime type of the current instance. Gets the set of names of all properties in this dictionary as a read-only set. The property names. Gets or sets the value of the property with the specified property name. The value may be a nested instance of this class. The property name. The value of the property. Groups a pair of strings that identify a provider and server version together into a single object. Instances of this class act as the key for resolving a for a specific provider from a . This is typically used when registering spatial services in or when the spatial services specific to a provider is resolved by an implementation of . Creates a new object for a given provider invariant name and manifest token. A string that identifies that provider. For example, the SQL Server provider uses the string "System.Data.SqlCient". A string that identifies that version of the database server being used. For example, the SQL Server provider uses the string "2008" for SQL Server 2008. This cannot be null but may be empty. The manifest token is sometimes referred to as a version hint. A string that identifies that provider. For example, the SQL Server provider uses the string "System.Data.SqlCient". A string that identifies that version of the database server being used. For example, the SQL Server provider uses the string "2008" for SQL Server 2008. This cannot be null but may be empty. A non-generic version of the class. Loads the entity from the database. Note that if the entity already exists in the context, then it will not overwritten with values from the database. Returns the query that would be used to load this entity from the database. The returned query can be modified using LINQ to perform filtering or operations in the database. A query for the entity. Returns the equivalent generic object. The type of entity on which the member is declared. The type of the property. The equivalent generic object. Gets the property name. The property name. Gets or sets the current value of the navigation property. The current value is the entity that the navigation property references. The current value. Gets or sets a value indicating whether the entity has been loaded from the database. Loading the related entity from the database either using lazy-loading, as part of a query, or explicitly with one of the Load methods will set the IsLoaded flag to true. IsLoaded can be explicitly set to true to prevent the related entity from being lazy-loaded. Note that explict loading using one of the Load methods will load the related entity from the database regardless of whether or not IsLoaded is true. When a related entity is detached the IsLoaded flag is reset to false indicating that the related entity is no longer loaded. true if the entity is loaded or the IsLoaded has been explicitly set to true; otherwise, false. The to which this navigation property belongs. An entry for the entity that owns this navigation property. Instances of this class are returned from the Reference method of and allow operations such as loading to be performed on the an entity's reference navigation properties. The type of the entity to which this property belongs. The type of the property. Loads the entity from the database. Note that if the entity already exists in the context, then it will not overwritten with values from the database. Returns the query that would be used to load this entity from the database. The returned query can be modified using LINQ to perform filtering or operations in the database. A query for the entity. Returns a new instance of the non-generic class for the navigation property represented by this object. The object representing the navigation property. A non-generic version. Gets the property name. The property name. Gets or sets the current value of the navigation property. The current value is the entity that the navigation property references. The current value. Gets or sets a value indicating whether the entity has been loaded from the database. Loading the related entity from the database either using lazy-loading, as part of a query, or explicitly with one of the Load methods will set the IsLoaded flag to true. IsLoaded can be explicitly set to true to prevent the related entity from being lazy-loaded. Note that explict loading using one of the Load methods will load the related entity from the database regardless of whether or not IsLoaded is true. When a related entity is detached the IsLoaded flag is reset to false indicating that the related entity is no longer loaded. true if the entity is loaded or the IsLoaded has been explicitly set to true; otherwise, false. The to which this navigation property belongs. An entry for the entity that owns this navigation property. Exception thrown by when it was expected that SaveChanges for an entity would result in a database update but in fact no rows in the database were affected. This usually indicates that the database has been concurrently updated such that a concurrency token that was expected to match did not actually match. Note that state entries referenced by this exception are not serialized due to security and accesses to the state entries after serialization will return null. Exception thrown by when the saving of changes to the database fails. Note that state entries referenced by this exception are not serialized due to security and accesses to the state entries after serialization will return null. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Gets objects that represents the entities that could not be saved to the database. The entries representing the entities that could not be saved. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Represents an entity used to store metadata about an EDM in the database. Attempts to get the model hash calculated by Code First for the given context. This method will return null if the context is not being used in Code First mode. The context. The hash string. Gets or sets the ID of the metadata entity, which is currently always 1. The id. Gets or sets the model hash which is used to check whether the model has changed since the database was created from it. The model hash. Contains methods used to access the Entity Data Model created by Code First in the EDMX form. These methods are typically used for debugging when there is a need to look at the model that Code First creates internally. Uses Code First with the given context and writes the resulting Entity Data Model to the given writer in EDMX form. This method can only be used with context instances that use Code First and create the model internally. The method cannot be used for contexts created using Database First or Model First, for contexts created using a pre-existing , or for contexts created using a pre-existing . The context. The writer. Writes the Entity Data Model represented by the given to the given writer in EDMX form. An object representing the EDM. The writer. A factory for creating derived instances. Implement this interface to enable design-time services for context types that do not have a public default constructor. At design-time, derived instances can be created in order to enable specific design-time experiences such as model rendering, DDL generation etc. To enable design-time instantiation for derived types that do not have a public, default constructor, implement this interface. Design-time services will auto-discover implementations of this interface that are in the same assembly as the derived type. The type of the context. Creates a new instance of a derived type. An instance of TContext This convention causes DbModelBuilder to include metadata about the model when it builds the model. When creates a model by convention it will add this convention to the list of those used by the DbModelBuilder. This will then result in model metadata being written to the database if the DbContext is used to create the database. This can then be used as a quick check to see if the model has changed since the last time it was used against the database. This convention can be removed from the conventions by overriding the OnModelCreating method on a derived DbContext class. This convention uses the name of the derived class as the container for the conceptual model built by Code First. Applies the convention to the given model. The container to apply the convention to. The model. This convention uses the namespace of the derived class as the namespace of the conceptual model built by Code First. Instances of this class are used internally to create constant expressions for that are inserted into the expression tree to replace references to and . The type of the element. The public property expected in the LINQ expression tree. The query. Instances of this class are used to create DbConnection objects for SQL Server Compact Edition based on a given database name or connection string. It is necessary to provide the provider invariant name of the SQL Server Compact Edition to use when creating an instance of this class. This is because different versions of SQL Server Compact Editions use different invariant names. An instance of this class can be set on the class to cause all DbContexts created with no connection information or just a database name or connection string to use SQL Server Compact Edition by default. This class is immutable since multiple threads may access instances simultaneously when creating connections. Creates a new connection factory with empty (default) DatabaseDirectory and BaseConnectionString properties. The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. Creates a new connection factory with the given DatabaseDirectory and BaseConnectionString properties. The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. The path to prepend to the database name that will form the file name used by SQL Server Compact Edition when it creates or reads the database file. An empty string means that SQL Server Compact Edition will use its default for the database file location. The connection string to use for options to the database other than the 'Data Source'. The Data Source will be prepended to this string based on the database name when CreateConnection is called. Creates a connection for SQL Server Compact Edition based on the given database name or connection string. If the given string contains an '=' character then it is treated as a full connection string, otherwise it is treated as a database name only. The database name or connection string. An initialized DbConnection. The path to prepend to the database name that will form the file name used by SQL Server Compact Edition when it creates or reads the database file. The default value is "|DataDirectory|", which means the file will be placed in the designated data directory. The connection string to use for options to the database other than the 'Data Source'. The Data Source will be prepended to this string based on the database name when CreateConnection is called. The default is the empty string, which means no other options will be used. The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. Instances of this class are used to create DbConnection objects for SQL Server based on a given database name or connection string. By default, the connection is made to '.\SQLEXPRESS'. This can be changed by changing the base connection string when constructing a factory instance. An instance of this class can be set on the class to cause all DbContexts created with no connection information or just a database name or connection string to use SQL Server by default. This class is immutable since multiple threads may access instances simultaneously when creating connections. Creates a new connection factory with a default BaseConnectionString property of 'Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True;'. Creates a new connection factory with the given BaseConnectionString property. The connection string to use for options to the database other than the 'Initial Catalog'. The 'Initial Catalog' will be prepended to this string based on the database name when CreateConnection is called. Creates a connection for SQL Server based on the given database name or connection string. If the given string contains an '=' character then it is treated as a full connection string, otherwise it is treated as a database name only. The database name or connection string. An initialized DbConnection. The connection string to use for options to the database other than the 'Initial Catalog'. The 'Initial Catalog' will be prepended to this string based on the database name when CreateConnection is called. The default is 'Data Source=.\SQLEXPRESS; Integrated Security=True;'. This attribute can be applied to either an entire derived class or to individual or properties on that class. When applied any discovered or properties will still be included in the model but will not be automatically initialized. Thrown when a context is generated from the templates in Database First or Model First mode and is then used in Code First mode. Code generated using the T4 templates provided for Database First and Model First use may not work correctly if used in Code First mode. To use these classes with Code First please add any additional configuration using attributes or the DbModelBuilder API and then remove the code that throws this exception. Initializes a new instance of the class. Initializes a new instance of the class. The object that holds the serialized object data. The contextual information about the source or destination. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Allows configuration to be performed for an complex type in a model. A ComplexTypeConfiguration can be obtained via the ComplexType method on or a custom type derived from ComplexTypeConfiguration can be registered via the Configurations property on . The complex type to be configured. Allows configuration to be performed for a type in a model. The type to be configured. Configures a property that is defined on this type. The type of the property being configured. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. The type of the property being configured. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Gets the of the current instance. The exact runtime type of the current instance. Initializes a new instance of ComplexTypeConfiguration Excludes a property from the model so that it will not be mapped to the database. The type of the property to be ignored. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The same ComplexTypeConfiguration instance so that multiple calls can be chained. Allows derived configuration classes for entities and complex types to be registered with a . Derived configuration classes are created by deriving from or and using a type to be included in the model as the generic parameter. Configuration can be performed without creating derived configuration classes via the Entity and ComplexType methods on . Discovers all types that inherit from or in the given assembly and adds an instance of each discovered type to this registrar. Note that only types that are abstract or generic type definitions are skipped. Every type that is discovered and added must provide a parameterless constructor. The assembly containing model configurations to add. The same ConfigurationRegistrar instance so that multiple calls can be chained. Adds an to the . Only one can be added for each type in a model. The entity type being configured. The entity type configuration to be added. The same ConfigurationRegistrar instance so that multiple calls can be chained. Adds an to the . Only one can be added for each type in a model. The complex type being configured. The complex type configuration to be added The same ConfigurationRegistrar instance so that multiple calls can be chained. Gets the of the current instance. The exact runtime type of the current instance. Allows the conventions used by a instance to be customized. The default conventions can be found in the System.Data.Entity.ModelConfiguration.Conventions namespace. Discover all conventions in the given assembly and add them to the . This method add all conventions ordered by type name. The order in which conventions are added can have an impact on how they behave because it governs the order in which they are run. All conventions found must have a parameterless public constructor. The assembly containing conventions to be added. Enables one or more conventions for the . The conventions to be enabled. Enables a convention for the . The type of the convention to be enabled. Enables a convention for the . This convention will run after the one specified. The type of the convention after which the enabled one will run. The convention to enable. Enables a configuration convention for the . This convention will run before the one specified. The type of the convention before which the enabled one will run. The convention to enable. Disables one or more conventions for the . The conventions to be disabled. Disables a convention for the . The default conventions that are available for removal can be found in the System.Data.Entity.ModelConfiguration.Conventions namespace. The type of the convention to be disabled. Gets the of the current instance. The exact runtime type of the current instance. Configures the table and column mapping for an entity type or a sub-set of properties from an entity type. This configuration functionality is available via the Code First Fluent API, see . The entity type to be mapped. Initializes a new instance of the class. Configures the properties that will be included in this mapping fragment. If this method is not called then all properties that have not yet been included in a mapping fragment will be configured. An anonymous type including the properties to be mapped. A lambda expression to an anonymous type that contains the properties to be mapped. C#: t => new { t.Id, t.Property1, t.Property2 } VB.Net: Function(t) New With { p.Id, t.Property1, t.Property2 } Configures a property that is included in this mapping fragment. The type of the property being configured. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. The type of the property being configured. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Re-maps all properties inherited from base types. When configuring a derived type to be mapped to a separate table this will cause all properties to be included in the table rather than just the non-inherited properties. This is known as Table per Concrete Type (TPC) mapping. The same configuration instance so that multiple calls can be chained. Configures the table name to be mapped to. Name of the table. The same configuration instance so that multiple calls can be chained. Configures the table name and schema to be mapped to. Name of the table. Schema of the table. The same configuration instance so that multiple calls can be chained. Sets an annotation in the model for the table to which this entity is mapped. The annotation value can later be used when processing the table such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Passing a null value clears any annotation with the given name on the column that had been previously set. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same configuration instance so that multiple calls can be chained. Configures the discriminator column used to differentiate between types in an inheritance hierarchy. The name of the discriminator column. A configuration object to further configure the discriminator column and values. Configures the discriminator condition used to differentiate between types in an inheritance hierarchy. The type of the property being used to discriminate between types. A lambda expression representing the property being used to discriminate between types. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object to further configure the discriminator condition. Gets the of the current instance. The exact runtime type of the current instance. Used to configure a column with length facets for an entity type or complex type. This configuration functionality is exposed by the Code First Fluent API, see . Configures a primitive column from an entity type. Configures the primitive column to be optional. The same instance so that multiple calls can be chained. Configures the primitive column to be required. The same instance so that multiple calls can be chained. Configures the data type of the primitive column used to store the property. The same instance so that multiple calls can be chained. The name of the database provider specific data type. Configures the order of the primitive column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The same instance so that multiple calls can be chained. The order that this column should appear in the database table. Gets the of the current instance. The exact runtime type of the current instance. Configures the column to allow the maximum length supported by the database provider. The same instance so that multiple calls can be chained. Configures the column to have the specified maximum length. The same instance so that multiple calls can be chained. The maximum length for the column. Setting the value to null will remove any maximum length restriction from the column and a default length will be used for the database column. Configures the column to be fixed length. The same instance so that multiple calls can be chained. Configures the column to be variable length. The same instance so that multiple calls can be chained. Configures a condition used to discriminate between types in an inheritance hierarchy based on the values assigned to a property. This configuration functionality is available via the Code First Fluent API, see . Configures the condition to require a value in the property. Rows that do not have a value assigned to column that this property is stored in are assumed to be of the base type of this entity type. Gets the of the current instance. The exact runtime type of the current instance. Configures a database column used to store a string values. This configuration functionality is available via the Code First Fluent API, see . Configures the column to allow the maximum length supported by the database provider. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the property to have the specified maximum length. The maximum length for the property. Setting 'null' will result in a default length being used for the column. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the column to be fixed length. Use HasMaxLength to set the length that the property is fixed to. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the column to be variable length. Columns are variable length by default. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the column to be optional. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the column to be required. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the data type of the database column. Name of the database provider specific data type. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the order of the database column. The order that this column should appear in the database table. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the column to support Unicode string content. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures whether or not the column supports Unicode string content. Value indicating if the column supports Unicode string content or not. Specifying 'null' will remove the Unicode facet from the column. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures a discriminator column used to differentiate between types in an inheritance hierarchy. This configuration functionality is available via the Code First Fluent API, see . Configures the discriminator value used to identify the entity type being configured from other types in the inheritance hierarchy. Type of the discriminator value. The value to be used to identify the entity type. A configuration object to configure the column used to store discriminator values. Configures the discriminator value used to identify the entity type being configured from other types in the inheritance hierarchy. Type of the discriminator value. The value to be used to identify the entity type. A configuration object to configure the column used to store discriminator values. Configures the discriminator value used to identify the entity type being configured from other types in the inheritance hierarchy. The value to be used to identify the entity type. A configuration object to configure the column used to store discriminator values. Gets the of the current instance. The exact runtime type of the current instance. Configures a many relationship from an entity type. The entity type that the relationship originates from. The entity type that the relationship targets. Configures the relationship to be many:many with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be many:many without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be many:required with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be many:required without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be many:optional with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be many:optional without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Gets the of the current instance. The exact runtime type of the current instance. Configures an optional relationship from an entity type. The entity type that the relationship originates from. The entity type that the relationship targets. Configures the relationship to be optional:many with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:many without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:required with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:required without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:optional with a navigation property on the other side of the relationship. The entity type being configured will be the dependent and contain a foreign key to the principal. The entity type that the relationship targets will be the principal in the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:optional without a navigation property on the other side of the relationship. The entity type being configured will be the dependent and contain a foreign key to the principal. The entity type that the relationship targets will be the principal in the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:optional with a navigation property on the other side of the relationship. The entity type being configured will be the principal in the relationship. The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. A lambda expression representing the navigation property on the other end of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:optional without a navigation property on the other side of the relationship. The entity type being configured will be the principal in the relationship. The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. A configuration object that can be used to further configure the relationship. Gets the of the current instance. The exact runtime type of the current instance. Configures an required relationship from an entity type. The entity type that the relationship originates from. The entity type that the relationship targets. Configures the relationship to be required:many with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be required:many without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be required:optional with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be required:optional without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be required:required with a navigation property on the other side of the relationship. The entity type being configured will be the dependent and contain a foreign key to the principal. The entity type that the relationship targets will be the principal in the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be required:required without a navigation property on the other side of the relationship. The entity type being configured will be the dependent and contain a foreign key to the principal. The entity type that the relationship targets will be the principal in the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be required:required with a navigation property on the other side of the relationship. The entity type being configured will be the principal in the relationship. The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be required:required without a navigation property on the other side of the relationship. The entity type being configured will be the principal in the relationship. The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. A configuration object that can be used to further configure the relationship. Gets the of the current instance. The exact runtime type of the current instance. Base class for performing configuration of a relationship. This configuration functionality is available via the Code First Fluent API, see . Configures a relationship that can support cascade on delete functionality. Configures cascade delete to be on for the relationship. Configures whether or not cascade delete is on for the relationship. Value indicating if cascade delete is on or not. Gets the of the current instance. The exact runtime type of the current instance. Configures a relationship that can support foreign key properties that are exposed in the object model. This configuration functionality is available via the Code First Fluent API, see . The dependent entity type. Configures a relationship that can only support foreign key properties that are not exposed in the object model. This configuration functionality is available via the Code First Fluent API, see . Configures the relationship to use foreign key property(s) that are not exposed in the object model. The column(s) and table can be customized by specifying a configuration action. If an empty configuration action is specified then column name(s) will be generated by convention. If foreign key properties are exposed in the object model then use the HasForeignKey method. Not all relationships support exposing foreign key properties in the object model. Action that configures the foreign key column(s) and table. A configuration object that can be used to further configure the relationship. Configures the relationship to use foreign key property(s) that are exposed in the object model. If the foreign key property(s) are not exposed in the object model then use the Map method. The type of the key. A lambda expression representing the property to be used as the foreign key. If the foreign key is made up of multiple properties then specify an anonymous type including the properties. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the principal entity type. A configuration object that can be used to further configure the relationship. Configures the table and column mapping of a relationship that does not expose foreign key properties in the object model. This configuration functionality is available via the Code First Fluent API, see . Configures the name of the column(s) for the foreign key. The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. Sets an annotation in the model for a database column that has been configured with . The annotation value can later be used when processing the column such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Passing a null value clears any annotation with the given name on the column that had been previously set. The name of the column that was configured with the HasKey method. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures the table name that the foreign key column(s) reside in. The table that is specified must already be mapped for the entity type. If you want the foreign key(s) to reside in their own table then use the Map method on to perform entity splitting to create the table with just the primary key property. Foreign keys can then be added to the table via this method. Name of the table. The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures the table name and schema that the foreign key column(s) reside in. The table that is specified must already be mapped for the entity type. If you want the foreign key(s) to reside in their own table then use the Map method on to perform entity splitting to create the table with just the primary key property. Foreign keys can then be added to the table via this method. Name of the table. Schema of the table. The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures the table and column mapping of a many:many relationship. This configuration functionality is available via the Code First Fluent API, see . Configures the join table name for the relationship. Name of the table. The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures the join table name and schema for the relationship. Name of the table. Schema of the table. The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. Sets an annotation in the model for the join table. The annotation value can later be used when processing the table such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Passing a null value clears any annotation with the given name on the column that had been previously set. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same configuration instance so that multiple calls can be chained. Configures the name of the column(s) for the left foreign key. The left foreign key points to the parent entity of the navigation property specified in the HasMany call. The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures the name of the column(s) for the right foreign key. The right foreign key points to the parent entity of the the navigation property specified in the WithMany call. The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. Determines whether the specified object is equal to the current object. true if the specified object is equal to the current object; otherwise, false. The object to compare with the current object. Configures a many:many relationship. This configuration functionality is available via the Code First Fluent API, see . The type of the parent entity of the navigation property specified in the HasMany call. The type of the parent entity of the navigation property specified in the WithMany call. Configures the foreign key column(s) and table used to store the relationship. Action that configures the foreign key column(s) and table. The same instance so that multiple calls can be chained. Configures stored procedures to be used for modifying this relationship. The default conventions for procedure and parameter names will be used. The same instance so that multiple calls can be chained. Configures stored procedures to be used for modifying this relationship. Configuration to override the default conventions for procedure and parameter names. The same instance so that multiple calls can be chained. Gets the of the current instance. The exact runtime type of the current instance. Used to configure a property of an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Used to configure a property with length facets for an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Used to configure a primitive property of an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Configures the property to be optional. The database column used to store this property will be nullable. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the property to be required. The database column used to store this property will be non-nullable. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures how values for the property are generated by the database. The pattern used to generate values for the property in the database. Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which set of conventions are being used. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the property to be used as an optimistic concurrency token. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property is to be used as an optimistic concurrency token. Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the data type of the database column used to store the property. Name of the database provider specific data type. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the name of the database column used to store the property. The name of the column. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Sets an annotation in the model for the database column used to store the property. The annotation value can later be used when processing the column such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Passing a null value clears any annotation with the given name on the column that had been previously set. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the name of the parameter used in stored procedures for this property. Name of the parameter. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the order of the database column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The order that this column should appear in the database table. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Gets the of the current instance. The exact runtime type of the current instance. Configures the property to allow the maximum length supported by the database provider. The same LengthPropertyConfiguration instance so that multiple calls can be chained. Configures the property to have the specified maximum length. The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column. The same LengthPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be fixed length. Use HasMaxLength to set the length that the property is fixed to. The same LengthPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be variable length. Properties are variable length by default. The same LengthPropertyConfiguration instance so that multiple calls can be chained. Configures the property to allow the maximum length supported by the database provider. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to have the specified maximum length. The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be fixed length. Use HasMaxLength to set the length that the property is fixed to. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be variable length. properties are variable length by default. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be optional. The database column used to store this property will be nullable. properties are optional by default. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be required. The database column used to store this property will be non-nullable. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures how values for the property are generated by the database. The pattern used to generate values for the property in the database. Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which set of conventions are being used. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be used as an optimistic concurrency token. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property is to be used as an optimistic concurrency token. Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the name of the database column used to store the property. The name of the column. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Sets an annotation in the model for the database column used to store the property. The annotation value can later be used when processing the column such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Passing a null value clears any annotation with the given name on the column that had been previously set. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the data type of the database column used to store the property. Name of the database provider specific data type. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the order of the database column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The order that this column should appear in the database table. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be a row version in the database. The actual data type will vary depending on the database provider being used. Setting the property to be a row version will automatically configure it to be an optimistic concurrency token. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Used to configure a property of an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Configures the property to be optional. The database column used to store this property will be nullable. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the property to be required. The database column used to store this property will be non-nullable. properties are required by default. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures how values for the property are generated by the database. The pattern used to generate values for the property in the database. Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which set of conventions are being used. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the property to be used as an optimistic concurrency token. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property is to be used as an optimistic concurrency token. Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the name of the database column used to store the property. The name of the column. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Sets an annotation in the model for the database column used to store the property. The annotation value can later be used when processing the column such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Passing a null value clears any annotation with the given name on the column that had been previously set. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the data type of the database column used to store the property. Name of the database provider specific data type. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the order of the database column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The order that this column should appear in the database table. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the precision of the property. If the database provider does not support precision for the data type of the column then the value is ignored. Precision of the property. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Used to configure a property of an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Configures the property to be optional. The database column used to store this property will be nullable. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be required. The database column used to store this property will be non-nullable. properties are required by default. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures how values for the property are generated by the database. The pattern used to generate values for the property in the database. Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which set of conventions are being used. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be used as an optimistic concurrency token. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property is to be used as an optimistic concurrency token. Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the name of the database column used to store the property. The name of the column. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Sets an annotation in the model for the database column used to store the property. The annotation value can later be used when processing the column such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Passing a null value clears any annotation with the given name on the column that had been previously set. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the data type of the database column used to store the property. Name of the database provider specific data type. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the order of the database column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The order that this column should appear in the database table. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the precision and scale of the property. The precision of the property. The scale of the property. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Used to configure a property of an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Configures the property to allow the maximum length supported by the database provider. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to have the specified maximum length. The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column.. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be fixed length. Use HasMaxLength to set the length that the property is fixed to. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be variable length. properties are variable length by default. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be optional. The database column used to store this property will be nullable. properties are optional by default. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be required. The database column used to store this property will be non-nullable. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures how values for the property are generated by the database. The pattern used to generate values for the property in the database. Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which set of conventions are being used. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be used as an optimistic concurrency token. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property is to be used as an optimistic concurrency token. Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the name of the database column used to store the property. The name of the column. The same StringPropertyConfiguration instance so that multiple calls can be chained. Sets an annotation in the model for the database column used to store the property. The annotation value can later be used when processing the column such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Passing a null value clears any annotation with the given name on the column that had been previously set. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the data type of the database column used to store the property. Name of the database provider specific data type. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the order of the database column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The order that this column should appear in the database table. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to support Unicode string content. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property supports Unicode string content. Value indicating if the property supports Unicode string content or not. Specifying 'null' will remove the Unicode facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same StringPropertyConfiguration instance so that multiple calls can be chained. Convention to process instances of found on properties in the model Convention to process instances of found on properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on foreign key properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on navigation properties in the model. Convention to process instances of found on primitive properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on types in the model. Convention to process instances of found on types in the model. Convention to process instances of found on types in the model. Convention to detect navigation properties to be inverses of each other when only one pair of navigation properties exists between the related types. Convention to configure a type as a complex type if it has no primary key, no mapped base type and no navigation properties. Convention to add a cascade delete to the join table from both tables involved in a many to many relationship. Convention to ensure an invalid/unsupported mapping is not created when mapping inherited properties Convention to set the table name to be a pluralized version of the entity type name. Convention to set precision to 18 and scale to 2 for decimal properties. Initializes a new instance of with the default precision and scale. Initializes a new instance of with the specified precision and scale. Precision Scale Convention to move primary key properties to appear first. Convention to distinguish between optional and required relationships based on CLR nullability of the foreign key property. Base class for conventions that discover foreign key properties. When overriden returns true if should be part of the foreign key. The association type being configured. The dependent end. The candidate property on the dependent end. The principal end entity type. A key property on the principal end that is a candidate target for the foreign key. true if dependentProperty should be a part of the foreign key; otherwise, false. Returns true if the convention supports pairs of entity types that have multiple associations defined between them. Convention to process instances of found on navigation properties in the model. Convention to detect primary key properties. Recognized naming patterns in order of precedence are: 1. 'Id' 2. [type name]Id Primary key detection is case insensitive. Base class for conventions that discover primary key properties. When overriden returns the subset of properties that will be part of the primary key. The entity type. The primitive types of the entities The properties that should be part of the primary key. Convention to discover foreign key properties whose names are a combination of the dependent navigation property name and the principal type primary key property name(s). Convention to enable cascade delete for any required relationships. Convention to configure the primary key(s) of the dependent entity type as foreign key(s) in a one:one relationship. Convention to set the entity set name to be a pluralized version of the entity type name. Convention to discover foreign key properties whose names match the principal type primary key property name(s). Convention to set a maximum length for properties whose type supports length facets. The default value is 128. Initializes a new instance of with the default length. Initializes a new instance of with the specified length. The maximum lenght of properties. Convention to set a default maximum length of 4000 for properties whose type supports length facets when SqlCe is the provider. Initializes a new instance of with the default length. Initializes a new instance of with the specified length. The default maximum length for properties. Convention to configure integer primary keys to be identity. Convention to discover foreign key properties whose names are a combination of the principal type name and the principal type primary key property name(s). Allows configuration to be performed for an entity type in a model. An EntityTypeConfiguration can be obtained via the Entity method on or a custom type derived from EntityTypeConfiguration can be registered via the Configurations property on . The entity type being configured. Initializes a new instance of EntityTypeConfiguration Configures the primary key property(s) for this entity type. The type of the key. A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } The same EntityTypeConfiguration instance so that multiple calls can be chained. Configures the entity set name to be used for this entity type. The entity set name can only be configured for the base type in each set. The name of the entity set. The same EntityTypeConfiguration instance so that multiple calls can be chained. Excludes a property from the model so that it will not be mapped to the database. The type of the property to be ignored. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The same EntityTypeConfiguration instance so that multiple calls can be chained. Configures the table name that this entity type is mapped to. The name of the table. The same EntityTypeConfiguration instance so that multiple calls can be chained. Configures the table name that this entity type is mapped to. The name of the table. The database schema of the table. The same EntityTypeConfiguration instance so that multiple calls can be chained. Sets an annotation in the model for the table to which this entity is mapped. The annotation value can later be used when processing the table such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Passing a null value clears any annotation with the given name on the column that had been previously set. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same configuration instance so that multiple calls can be chained. Configures this type to use stored procedures for insert, update and delete. The default conventions for procedure and parameter names will be used. The same configuration instance so that multiple calls can be chained. Configures this type to use stored procedures for insert, update and delete. Configuration to override the default conventions for procedure and parameter names. The same configuration instance so that multiple calls can be chained. Allows advanced configuration related to how this entity type is mapped to the database schema. By default, any configuration will also apply to any type derived from this entity type. Derived types can be configured via the overload of Map that configures a derived type or by using an EntityTypeConfiguration for the derived type. The properties of an entity can be split between multiple tables using multiple Map calls. Calls to Map are additive, subsequent calls will not override configuration already preformed via Map. An action that performs configuration against an . The same EntityTypeConfiguration instance so that multiple calls can be chained. Allows advanced configuration related to how a derived entity type is mapped to the database schema. Calls to Map are additive, subsequent calls will not override configuration already preformed via Map. The derived entity type to be configured. An action that performs configuration against an . The same EntityTypeConfiguration instance so that multiple calls can be chained. Configures an optional relationship from this entity type. Instances of the entity type will be able to be saved to the database without this relationship being specified. The foreign key in the database will be nullable. The type of the entity at the other end of the relationship. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures a required relationship from this entity type. Instances of the entity type will not be able to be saved to the database unless this relationship is specified. The foreign key in the database will be non-nullable. The type of the entity at the other end of the relationship. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures a many relationship from this entity type. The type of the entity at the other end of the relationship. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Exception thrown by during model creation when an invalid model is generated. Initializes a new instance of ModelValidationException Initializes a new instance of ModelValidationException The exception message. Initializes a new instance of ModelValidationException The exception message. The inner exception. Initializes a new instance of class serialization info and streaming context. The serialization info. The streaming context. Exception thrown from when validating entities fails. Initializes a new instance of DbEntityValidationException. Initializes a new instance of DbEntityValidationException. The exception message. Initializes a new instance of DbEntityValidationException. The exception message. Validation results. Initializes a new instance of DbEntityValidationException. The exception message. The inner exception. Initializes a new instance of DbEntityValidationException. The exception message. Validation results. The inner exception. Validation results. Represents validation results for single entity. Creates an instance of class. Entity entry the results applies to. Never null. List of instances. Never null. Can be empty meaning the entity is valid. Gets an instance of the results applies to. Gets validation errors. Never null. Gets an indicator if the entity is valid. Exception thrown from when an exception is thrown from the validation code. Initializes a new instance of DbUnexpectedValidationException. Initializes a new instance of DbUnexpectedValidationException. The exception message. Initializes a new instance of DbUnexpectedValidationException. The exception message. The inner exception. Initializes a new instance of DbUnexpectedValidationException with the specified serialization info and context. The serialization info. The streaming context. Validation error. Can be either entity or property level validation error. Creates an instance of . Name of the invalid property. Can be null. Validation error message. Can be null. Gets name of the invalid property. Gets validation error message. ================================================ FILE: packages/EntityFramework.6.1.3/lib/net45/EntityFramework.SqlServer.xml ================================================ EntityFramework.SqlServer Contains extension methods for the class. Configures an awaiter used to await this to avoid marshalling the continuation back to the original context, but preserve the current culture and UI culture. The type of the result produced by the associated . The task to be awaited on. An object used to await this task. Configures an awaiter used to await this to avoid marshalling the continuation back to the original context, but preserve the current culture and UI culture. The task to be awaited on. An object used to await this task. Provides an awaitable object that allows for awaits on that preserve the culture. The type of the result produced by the associated . This type is intended for compiler use only. Constructs a new instance of the class. The task to be awaited on. Gets an awaiter used to await this . An awaiter instance. This method is intended for compiler user rather than use directly in code. Ends the await on the completed . The result of the completed . The awaiter was not properly initialized. The task was canceled. The task completed in a Faulted state. This method is not implemented and should not be called. The action to invoke when the await operation completes. Schedules the continuation onto the associated with this . The action to invoke when the await operation completes. The argument is null (Nothing in Visual Basic). The awaiter was not properly initialized. This method is intended for compiler user rather than use directly in code. Gets whether this Task has completed. will return true when the Task is in one of the three final states: RanToCompletion, Faulted, or Canceled. Provides an awaitable object that allows for awaits on that preserve the culture. This type is intended for compiler use only. Constructs a new instance of the class. The task to be awaited on. Gets an awaiter used to await this . An awaiter instance. This method is intended for compiler user rather than use directly in code. Ends the await on the completed . The awaiter was not properly initialized. The task was canceled. The task completed in a Faulted state. This method is not implemented and should not be called. The action to invoke when the await operation completes. Schedules the continuation onto the associated with this . The action to invoke when the await operation completes. The argument is null (Nothing in Visual Basic). The awaiter was not properly initialized. This method is intended for compiler user rather than use directly in code. Gets whether this Task has completed. will return true when the Task is in one of the three final states: RanToCompletion, Faulted, or Canceled. An that retries actions that throw exceptions caused by SQL Azure transient failures. This execution strategy will retry the operation on and if the contains any of the following error numbers: 40613, 40501, 40197, 10929, 10928, 10060, 10054, 10053, 233, 64 and 20 Creates a new instance of . The default retry limit is 5, which means that the total amount of time spent between retries is 26 seconds plus the random factor. Creates a new instance of with the specified limits for number of retries and the delay between retries. The maximum number of retry attempts. The maximum delay in milliseconds between retries. Contains function stubs that expose SqlServer methods in Linq to Entities. Returns the checksum of the values in a collection. Null values are ignored. The checksum computed from the input collection. The collection of values over which the checksum is computed. Returns the checksum of the values in a collection. Null values are ignored. The checksum computed from the input collection. The collection of values over which the checksum is computed. Returns the ASCII code value of the left-most character of a character expression. The ASCII code of the first character in the input string. A valid string. Returns the character that corresponds to the specified integer ASCII value. The character that corresponds to the specified ASCII value. An ASCII code. Returns the starting position of one expression found within another expression. The starting position of target if it is found in toSearch . The string expression to be searched. The string expression to be found. Returns the starting position of one expression found within another expression. The starting position of target if it is found in toSearch . The string expression to be searched. The string expression to be found. Returns the starting position of one expression found within another expression. The starting position of target if it is found in toSearch . The string expression to be searched. The string expression to be found. The character position in toSearch where searching begins. Returns the starting position of one expression found within another expression. The starting position of target if it is found in toSearch . The string expression to be searched. The string expression to be found. The character position in toSearch where searching begins. Returns the starting position of one expression found within another expression. A of value that is the starting position of target if it is found in toSearch . The string expression to be searched. The string expression to be found. The character position in toSearch where searching begins. Returns the starting position of one expression found within another expression. The starting position of target if it is found in toSearch . The string expression to be searched. The string expression to be found. The character position in toSearch at which searching begins. Returns an integer value that indicates the difference between the SOUNDEX values of two character expressions. The SOUNDEX difference between the two strings. The first string. The second string. Returns the Unicode character with the specified integer code, as defined by the Unicode standard. The character that corresponds to the input character code. A character code. Returns the starting position of the first occurrence of a pattern in a specified expression, or zeros if the pattern is not found, on all valid text and character data types. The starting character position where the string pattern was found. A string pattern to search for. The string to search. Returns a Unicode string with the delimiters added to make the input string a valid Microsoft SQL Server delimited identifier. The original string with brackets added. The expression that quote characters will be added to. Returns a Unicode string with the delimiters added to make the input string a valid Microsoft SQL Server delimited identifier. The original string with the specified quote characters added. The expression that quote characters will be added to. The one-character string to use as the delimiter. It can be a single quotation mark ( ' ), a left or right bracket ( [ ] ), or a double quotation mark ( " ). If quote_character is not specified, brackets are used. Repeats a string value a specified number of times. The target string, repeated the number of times specified by count . A valid string. The value that specifies how many time to repeat target . Converts an alphanumeric string to a four-character (SOUNDEX) code to find similar-sounding words or names. The SOUNDEX code of the input string. A valid string. Returns a string of repeated spaces. A string that consists of the specified number of spaces. The number of spaces. If negative, a null string is returned. Returns character data converted from numeric data. The numeric input expression converted to a string. A numeric expression. Returns character data converted from numeric data. The input expression converted to a string. A numeric expression. Returns character data converted from numeric data. The numeric input expression converted to a string. A numeric expression. The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. Returns character data converted from numeric data. The input expression converted to a string. A numeric expression. The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. Returns character data converted from numeric data. The numeric input expression converted to a string. A numeric expression. The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. The number of places to the right of the decimal point. decimal must be less than or equal to 16. If decimal is more than 16 then the result is truncated to sixteen places to the right of the decimal point. Returns character data converted from numeric data. The input expression converted to a string. A numeric expression. The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. The number of places to the right of the decimal point. decimal must be less than or equal to 16. If decimal is more than 16 then the result is truncated to sixteen places to the right of the decimal point. Inserts a string into another string. It deletes a specified length of characters in the target string at the start position and then inserts the second string into the target string at the start position. A string consisting of the two strings. The target string. The character position in stringinput where the replacement string is to be inserted. The number of characters to delete from stringInput . If length is longer than stringInput , deletion occurs up to the last character in stringReplacement . The substring to be inserted into stringInput . Returns the integer value, as defined by the Unicode standard, for the first character of the input expression. The character code for the first character in the input string. A valid string. A mathematical function that returns the angle, in radians, whose cosine is the specified numerical value. This angle is called the arccosine. The angle, in radians, defined by the input cosine value. The cosine of an angle. A mathematical function that returns the angle, in radians, whose cosine is the specified numerical value. This angle is called the arccosine. An angle, measured in radians. The cosine of an angle. A mathematical function that returns the angle, in radians, whose sine is the specified numerical value. This angle is called the arcsine. An angle, measured in radians. The sine of an angle. A mathematical function that returns the angle, in radians, whose sine is the specified numerical value. This angle is called the arcsine. An angle, measured in radians. The sine of an angle. A mathematical function that returns the angle, in radians, whose tangent is the specified numerical value. This angle is called the arctangent. An angle, measured in radians. The tangent of an angle. A mathematical function that returns the angle, in radians, whose tangent is the specified numerical value. This angle is called the arctangent. An angle, measured in radians. The tangent of an angle. Returns the positive angle, in radians, between the positive x-axis and the ray from the origin through the point (x, y), where x and y are the two specified numerical values. The first parameter passed to the function is the y-value and the second parameter is the x-value. An angle, measured in radians. The y-coordinate of a point. The x-coordinate of a point. Returns the positive angle, in radians, between the positive x-axis and the ray from the origin through the point (x, y), where x and y are the two specified numerical values. The first parameter passed to the function is the y-value and the second parameter is the x-value. An angle, measured in radians. The y-coordinate of a point. The x-coordinate of a point. Returns the trigonometric cosine of the specified angle, in radians, in the specified expression. The trigonometric cosine of the specified angle. An angle, measured in radians. Returns the trigonometric cosine of the specified angle, in radians, in the specified expression. The trigonometric cosine of the specified angle. An angle, measured in radians. A mathematical function that returns the trigonometric cotangent of the specified angle, in radians. The trigonometric cotangent of the specified angle. An angle, measured in radians. A mathematical function that returns the trigonometric cotangent of the specified angle, in radians. The trigonometric cotangent of the specified angle. An angle, measured in radians. Returns the corresponding angle in degrees for an angle specified in radians. The specified angle converted to degrees. An angle, measured in radians. Returns the corresponding angle in degrees for an angle specified in radians. The specified angle converted to degrees. An angle, measured in radians. Returns the corresponding angle in degrees for an angle specified in radians. The specified angle converted to degrees. An angle, measured in radians. Returns the corresponding angle in degrees for an angle specified in radians. The specified angle converted to degrees. An angle, measured in radians. Returns the exponential value of the specified float expression. The constant e raised to the power of the input value. The input value. Returns the exponential value of the specified float expression. The constant e raised to the power of the input value. The input value. Returns the natural logarithm of the specified input value. The natural logarithm of the input value. A numeric expression. Returns the natural logarithm of the specified input value. The natural logarithm of the input value. A numeric expression. Returns the base-10 logarithm of the specified input value. The base-10 logarithm of the input value. A numeric expression. Returns the base-10 logarithm of the specified input value. The base-10 logarithm of the input value. A numeric expression. Returns the constant value of pi. The numeric value of pi. Returns the radian measure corresponding to the specified angle in degrees. The radian measure of the specified angle. The angle, measured in degrees Returns the radian measure corresponding to the specified angle in degrees. The radian measure of the specified angle. The angle, measured in degrees Returns the radian measure corresponding to the specified angle in degrees. The radian measure of the specified angle. The angle, measured in degrees. Returns the radian measure corresponding to the specified angle in degrees. The radian measure of the specified angle. The angle, measured in degrees. Returns a pseudo-random float value from 0 through 1, exclusive. The pseudo-random value. Returns a pseudo-random float value from 0 through 1, exclusive. The pseudo-random value. The seed value. If seed is not specified, the SQL Server Database Engine assigns a seed value at random. For a specified seed value, the result returned is always the same. Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. The sign of the input expression. A numeric expression. Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. The sign of the input expression. A numeric expression. Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. The sign of the input expression. A numeric expression. Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. The sign of the input expression. A numeric expression. Returns the trigonometric sine of the specified angle. The trigonometric sine of the input expression. An angle, measured in radians. Returns the trigonometric sine of the specified angle. The trigonometric sine of the input expression. An angle, measured in radians. Returns the square root of the specified number. The square root of the input value. A numeric expression. Returns the square root of the specified number. The square root of the input value. A numeric expression. Returns the square of the specified number. The square of the input value. A numeric expression. Returns the square of the specified number. The square of the input value. A numeric expression. Returns the trigonometric tangent of the input expression. The tangent of the input angle. An angle, measured in radians. Returns the trigonometric tangent of the input expression. The tangent of the input angle. An angle, measured in radians. Returns a new datetime value based on adding an interval to the specified date. The new date. The part of the date to increment. The value used to increment a date by a specified amount. The date to increment. Returns a new time span value based on adding an interval to the specified time span. The new time span. The part of the date to increment. The value used to increment a date by a specified amount. The time span to increment. Returns a new date value based on adding an interval to the specified date. The new point in time, expressed as a date and time of day, relative to Coordinated Universal Time (UTC). The part of the date to increment. The value used to increment a date by a specified amount. The date to increment. Returns a new datetime value based on adding an interval to the specified date. A of value that is the new date. The part of the date to increment. The value used to increment a date by a specified amount. The date to increment. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The value specifying the number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two Dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns the count of the specified datepart boundaries crossed between the specified start date and end date. The number of time intervals between the two dates. The part of the date to calculate the differing number of time intervals. The first date. The second date. Returns a character string that represents the specified datepart of the specified date. The specified part of the specified date. The part of the date to calculate the differing number of time intervals. The date. Returns a character string that represents the specified datepart of the specified date. The specified part of the specified date. The part of the date to calculate the differing number of time intervals. The date. Returns a character string that represents the specified datepart of the specified date. The specified part of the specified date. The part of the date to calculate the differing number of time intervals. The date. Returns a character string that represents the specified datepart of the specified date. The specified part of the specified date. The part of the date to calculate the differing number of time intervals. The date. Returns an integer that represents the specified datepart of the specified date. The the specified datepart of the specified date. The part of the date to return the value. The date. Returns an integer that represents the specified datepart of the specified date. The specified datepart of the specified date. The part of the date to return the value. The date. Returns an integer that represents the specified datepart of the specified date. The specified datepart of the specified date. The part of the date to return the value. The date. Returns an integer that represents the specified datepart of the specified date. The specified datepart of the specified date. The part of the date to return the value. The date. Returns the current database system timestamp as a datetime value without the database time zone offset. This value is derived from the operating system of the computer on which the instance of SQL Server is running. The current database timestamp. Returns the current database system timestamp as a datetime value. The database time zone offset is not included. This value represents the current UTC time (Coordinated Universal Time). This value is derived from the operating system of the computer on which the instance of SQL Server is running. The current database UTC timestamp. Returns the number of bytes used to represent any expression. The number of bytes in the input value. The value to be examined for data length. Returns the number of bytes used to represent any expression. The number of bytes in the input value. The value to be examined for data length. Returns the number of bytes used to represent any expression. The number of bytes in the input value. The value to be examined for data length. Returns the number of bytes used to represent any expression. The number of bytes in the input value. The value to be examined for data length. Returns the number of bytes used to represent any expression. The number of bytes in the input value. The value to be examined for data length. Returns the number of bytes used to represent any expression. The number of bytes in the input value. The value to be examined for data length. Returns the number of bytes used to represent any expression. The number of bytes in the input value. The value to be examined for data length. Returns the number of bytes used to represent any expression. The number of bytes in the input value. The value to be examined for length. Returns the number of bytes used to represent any expression. The number of bytes in the input value. The value to be examined for data length. Returns the checksum value computed over the input argument. The checksum computed over the input value. The value for which the checksum is calculated. Returns the checksum value computed over the input argument. The checksum computed over the input value. The value for which the checksum is calculated. Returns the checksum value computed over the input argument. The checksum computed over the input value. The value for which the checksum is calculated. Returns the checksum value computed over the input argument. The checksum computed over the input value. The value for which the checksum is calculated. Returns the checksum value computed over the input argument. The checksum computed over the input values. The value for which the checksum is calculated. Returns the checksum value computed over the input argument. The checksum computed over the input value. The value for which the checksum is calculated. Returns the checksum value computed over the input argument. The checksum computed over the input value. The value for which the checksum is calculated. Returns the checksum value computed over the input argument. The checksum computed over the input value. The character array for which the checksum is calculated. Returns the checksum value computed over the input argument. The checksum computed over the input value. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The character array for which the checksum is calculated. The character array for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The character array for which the checksum is calculated. The character array for which the checksum is calculated. The character array for which the checksum is calculated. Returns the checksum value computed over the input arguments. The checksum computed over the input values. The value for which the checksum is calculated. The value for which the checksum is calculated. The value for which the checksum is calculated. Returns the current date and time. The current date and time. Returns the name of the current user. The name of the current user. Returns the workstation name. The name of the workstation. Returns a database user name corresponding to a specified identification number. The user name. A user ID. Returns a database user name corresponding to a specified identification number. The user name. Indicates whether the input value is a valid numeric type. 1 if the input expression is a valid numeric data type; otherwise, 0. A string expression. Indicates whether the input value is a valid date or time. 1 if the input expression is a valid date or time value of datetime or smalldatetime data types; otherwise, 0. The tested value. Provider to convert provider agnostic migration operations into SQL commands that can be run against a Microsoft SQL Server database. Converts a set of migration operations into Microsoft SQL Server specific SQL. The operations to be converted. Token representing the version of SQL Server being targeted (i.e. "2005", "2008"). A list of SQL statements to be executed to perform the migration operations. Generates the SQL body for a stored procedure. The command trees representing the commands for an insert, update or delete operation. The rows affected parameter name. The provider manifest token. The SQL body for the stored procedure. Generates the specified update database operation which represents applying a series of migrations. The generated script is idempotent, meaning it contains conditional logic to check if individual migrations have already been applied and only apply the pending ones. The update database operation. Generates SQL for a . Allows derived providers to handle additional operation types. Generated SQL should be added using the Statement method. The operation to produce SQL for. Creates an empty connection for the current provider. Allows derived providers to use connection other than . An empty connection for the current provider. Generates the specified create procedure operation. The create procedure operation. Generates the specified alter procedure operation. The alter procedure operation. Generates the specified drop procedure operation. The drop procedure operation. Generates SQL for a . This method differs from in that it will create the target database schema if it does not already exist. Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Writes CREATE TABLE SQL to the target writer. The operation to produce SQL for. The target writer. Override this method to generate SQL when the definition of a table or its attributes are changed. The default implementation of this method does nothing. The operation describing changes to the table. Generates SQL to mark a table as a system table. Generated SQL should be added using the Statement method. The table to mark as a system table. The to write the generated SQL to. Generates SQL to create a database schema. Generated SQL should be added using the Statement method. The name of the schema to create. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Call this method to generate SQL that will attempt to drop the default constraint created when a column is created. This method is usually called by code that overrides the creation or altering of columns. The table to which the constraint applies. The column to which the constraint applies. The writer to which generated SQL should be written. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement or StatementBatch methods. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates the specified rename procedure operation. The rename procedure operation. Generates the specified move procedure operation. The move procedure operation. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL for the given column model. This method is called by other methods that process columns and can be overridden to change the SQL generated. The column for which SQL is being generated. The writer to which generated SQL should be written. Generates SQL for a . Generated SQL should be added using the Statement method. The operation to produce SQL for. Generates SQL to specify a constant byte[] default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant bool default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant DateTime default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant DateTimeOffset default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant Guid default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant string default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant TimeSpan default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant geogrpahy default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant geometry default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify a constant default value being set on a column. This method just generates the actual value, not the SQL to set the default value. The value to be set. SQL representing the default value. Generates SQL to specify the data type of a column. This method just generates the actual type, not the SQL to create the column. The definition of the column. SQL representing the data type. Generates a quoted name. The supplied name may or may not contain the schema. The name to be quoted. The quoted name. Quotes an identifier for SQL Server. The identifier to be quoted. The quoted identifier. Adds a new Statement to be executed against the database. The statement to be executed. Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails. The batch terminator for the database provider. Gets a new that can be used to build SQL. This is just a helper method to create a writer. Writing to the writer will not cause SQL to be registered for execution. You must pass the generated SQL to the Statement method. An empty text writer to use for SQL generation. Adds a new Statement to be executed against the database. The writer containing the SQL to be executed. The batch terminator for the database provider. Breaks sql string into one or more statements, handling T-SQL utility statements as necessary. The SQL to split into one ore more statements to be executed. Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails. Returns the column default value to use for store-generated GUID columns when no default value is explicitly specified in the migration. Returns newsequentialid() for on-premises SQL Server 2005 and later. Returns newid() for SQL Azure. Either newsequentialid() or newid() as described above. Contains function stubs that expose SqlServer methods in Linq to Entities. Constructs a geography instance representing a Point instance from its x and y values and a spatial reference ID (SRID). The constructed geography instance. The x-coordinate of the Point being generated. The y-coordinate of the Point being generated The SRID of the geography instance. Returns the Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geography instance augmented with any Z (elevation) and M (measure) values carried by the instance. The Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geography instance. The geography value. Returns a geometric object representing the union of all point values whose distance from a geography instance is less than or equal to a specified value, allowing for a specified tolerance. The union of all point values whose distance from a geography instance is less than or equal to a specified value The geography value. The distance. The specified tolerance. Specifying whether the tolerance value is relative or absolute. Returns the maximum angle between the point returned by EnvelopeCenter() and a point in the geography instance in degrees. the maximum angle between the point returned by EnvelopeCenter(). The geography value. Returns a point that can be used as the center of a bounding circle for the geography instance. A SqlGeography value that specifies the location of the center of a bounding circle. The geography value. Offers a fast, index-only intersection method to determine if a geography instance intersects another SqlGeography instance, assuming an index is available. True if a geography instance potentially intersects another SqlGeography instance; otherwise, false. The geography value. Another geography instance to compare against the instance on which Filter is invoked. Tests if the SqlGeography instance is the same as the specified type. A string that specifies one of the 12 types exposed in the geography type hierarchy. The geography value. A string that specifies one of the 12 types exposed in the geography type hierarchy. Returns the total number of rings in a Polygon instance. The total number of rings. The geography value. Returns an approximation of the given geography instance produced by running the Douglas-Peucker algorithm on the instance with the given tolerance. Returns . The geography value. The tolerance to input to the Douglas-Peucker algorithm. tolerance must be a positive number. Returns the specified ring of the SqlGeography instance: 1 ≤ n ≤ NumRings(). A SqlGeography object that represents the ring specified by n. The geography value. An int expression between 1 and the number of rings in a polygon instance. Constructs a geometry instance representing a Point instance from its x and y values and a spatial reference ID (SRID). The constructed geometry instance. The x-coordinate of the Point being generated. The y-coordinate of the Point being generated The SRID of the geography instance. Returns the Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geography instance augmented with any Z (elevation) and M (measure) values carried by the instance. The Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geometry instance. The geometry value. Returns a geometric object representing the union of all point values whose distance from a geometry instance is less than or equal to a specified value, allowing for a specified tolerance. The union of all point values whose distance from a geometry instance is less than or equal to a specified value The geometry value. The distance. The specified tolerance. Specifying whether the tolerance value is relative or absolute. Tests if the SqlGeometry instance is the same as the specified type. A string that specifies one of the 12 types exposed in the geography type hierarchy. The geometry value. A string that specifies one of the 12 types exposed in the geography type hierarchy. Offers a fast, index-only intersection method to determine if a geography instance intersects another SqlGeometry instance, assuming an index is available. True if a geography instance potentially intersects another SqlGeography instance; otherwise, false. The geometry value. Another geography instance to compare against the instance on which Filter is invoked. Converts an invalid geometry instance into a geometry instance with a valid Open Geospatial Consortium (OGC) type. The converted geometry instance. The geometry value. Returns an approximation of the given geography instance produced by running the Douglas-Peucker algorithm on the instance with the given tolerance. Returns . The geometry value. The tolerance to input to the Douglas-Peucker algorithm. tolerance must be a positive number. The DbProviderServices implementation for the SqlClient provider for SQL Server. Note that instance of this type also resolve additional provider services for Microsoft SQL Server when this type is registered as an EF provider either using an entry in the application's config file or through code-based registration in . The services resolved are: Requests for are resolved to a Singleton instance of to create connections to SQL Express by default. Requests for for the invariant name "System.Data.SqlClient" for any server name are resolved to a delegate that returns a to provide a non-retrying policy for SQL Server. Requests for for the invariant name "System.Data.SqlClient" are resolved to instances to provide default Migrations SQL generation for SQL Server. Requests for for the invariant name "System.Data.SqlClient" are resolved to a Singleton instance of to provide default spatial services for SQL Server. This is the well-known string using in configuration files and code-based configuration as the "provider invariant name" used to specify Microsoft SQL Server for ADO.NET and Entity Framework provider services. Registers a handler to process non-error messages coming from the database provider. The connection to receive information for. The handler to process messages. Create a Command Definition object, given the connection and command tree provider manifest that was determined from metadata command tree for the statement an executable command definition object See issue 2390 - cloning the DesignTimeVisible property on the can cause deadlocks. So here overriding to provide a method that does not clone DesignTimeVisible. the object to clone a clone of the Sets the parameter value and appropriate facets for the given . The parameter. The type of the parameter. The value of the parameter. Returns provider manifest token for a given connection. Connection to find manifest token from. The provider manifest token for the specified connection. Returns the provider manifest by using the specified version information. The token information associated with the provider manifest. The provider manifest by using the specified version information. Gets a spatial data reader for SQL Server. The reader where the spatial data came from. The manifest token associated with the provider manifest. The spatial data reader. Gets a spatial data reader for SQL Server. The manifest token associated with the provider manifest. The spatial data reader. Generates a data definition language (DDL) script that creates schema objects (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token. The provider manifest token identifying the target version. The structure of the database. A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token. Create the database and the database objects. If initial catalog is not specified, but AttachDBFilename is specified, we generate a random database name based on the AttachDBFilename. Note: this causes pollution of the db, as when the connection string is later used, the mdf will get attached under a different name. However if we try to replicate the name under which it would be attached, the following scenario would fail: The file does not exist, but registered with database. The user calls: If (DatabaseExists) DeleteDatabase CreateDatabase For further details on the behavior when AttachDBFilename is specified see Dev10# 188936 Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter. Execution timeout for any commands needed to create the database. The collection of all store items based on which the script should be created. Determines whether the database for the given connection exists. There are three cases: 1. Initial Catalog = X, AttachDBFilename = null: (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 2. Initial Catalog = X, AttachDBFilename = F: if (SELECT Count(*) FROM sys.databases WHERE [name]= X) > true, if not, try to open the connection and then return (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 3. Initial Catalog = null, AttachDBFilename = F: Try to open the connection. If that succeeds the result is true, otherwise if the there are no databases corresponding to the given file return false, otherwise throw. Note: We open the connection to cover the scenario when the mdf exists, but is not attached. Given that opening the connection would auto-attach it, it would not be appropriate to return false in this case. Also note that checking for the existence of the file does not work for a remote server. (Dev11 #290487) For further details on the behavior when AttachDBFilename is specified see Dev10# 188936 Connection to a database whose existence is checked by this method. Execution timeout for any commands needed to determine the existence of the database. The collection of all store items from the model. This parameter is no longer used for determining database existence. True if the provider can deduce the database only based on the connection. Determines whether the database for the given connection exists. There are three cases: 1. Initial Catalog = X, AttachDBFilename = null: (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 2. Initial Catalog = X, AttachDBFilename = F: if (SELECT Count(*) FROM sys.databases WHERE [name]= X) > true, if not, try to open the connection and then return (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 3. Initial Catalog = null, AttachDBFilename = F: Try to open the connection. If that succeeds the result is true, otherwise if the there are no databases corresponding to the given file return false, otherwise throw. Note: We open the connection to cover the scenario when the mdf exists, but is not attached. Given that opening the connection would auto-attach it, it would not be appropriate to return false in this case. Also note that checking for the existence of the file does not work for a remote server. (Dev11 #290487) For further details on the behavior when AttachDBFilename is specified see Dev10# 188936 Connection to a database whose existence is checked by this method. Execution timeout for any commands needed to determine the existence of the database. The collection of all store items from the model. This parameter is no longer used for determining database existence. True if the provider can deduce the database only based on the connection. Delete the database for the given connection. There are three cases: 1. If Initial Catalog is specified (X) drop database X 2. Else if AttachDBFilename is specified (F) drop all the databases corresponding to F if none throw 3. If niether the catalog not the file name is specified - throw Note that directly deleting the files does not work for a remote server. However, even for not attached databases the current logic would work assuming the user does: if (DatabaseExists) DeleteDatabase Connection Timeout for internal commands. Item Collection. The Singleton instance of the SqlProviderServices type. Set to the full name of the Microsoft.SqlServer.Types assembly to override the default selection Set this flag to false to prevent values from being truncated to the scale (number of decimal places) defined for the column. The default value is true, indicating that decimal values will be truncated, in order to prevent breaking existing applications that depend on this behavior. With this flag set to true objects are created with their Scale properties set. When this flag is set to false then the Scale properties are not set, meaning that the truncation behavior of SqlParameter is avoided. An implementation of to provide support for geospatial types when using Entity Framework with Microsoft SQL Server. ================================================ FILE: packages/EntityFramework.6.1.3/lib/net45/EntityFramework.xml ================================================ EntityFramework Represents a result mapping for a function import. Base class for items in the mapping space (DataSpace.CSSpace) Adds a type mapping. The type mapping to add. Removes a type mapping. The type mapping to remove. Gets the type mappings. Specifies a mapping condition evaluated by checking whether the value of the a property/column is null or not null. Mapping metadata for Conditional property mapping on a type. Condition Property Mapping specifies a Condition either on the C side property or S side property. For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ConditionProperyMap ( constant value-->SMemberMetadata ) --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ComplexPropertyMap --ComplexTypeMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --ConditionProperyMap ( constant value-->SMemberMetadata ) --AssociationSetMapping --AssociationTypeMapping --MappingFragment --EndPropertyMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --EndPropertyMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) This class represents the metadata for all the condition property map elements in the above example. Mapping metadata for all types of property mappings. For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap --ScalarPropertyMap --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap --ComplexPropertyMap --ScalarPropertyMap --ScalarProperyMap --ScalarPropertyMap --AssociationSetMapping --AssociationTypeMapping --MappingFragment --EndPropertyMap --ScalarPropertyMap --ScalarProperyMap --EndPropertyMap --ScalarPropertyMap This class represents the metadata for all property map elements in the above example. This includes the scalar property maps, complex property maps and end property maps. Gets an EdmProperty that specifies the mapped property. Gets an EdmProperty that specifies the mapped property. Gets an EdmProperty that specifies the mapped column. Creates an IsNullConditionMapping instance. An EdmProperty that specifies a property or column. A boolean that indicates whether to perform a null or a not-null check. Gets a bool that specifies whether the condition is evaluated by performing a null check or a not-null check. Specifies a mapping condition evaluated by comparing the value of a property or column with a given value. Creates a ValueConditionMapping instance. An EdmProperty that specifies a property or column. An object that specifies the value to compare with. Gets an object that specifies the value to check against. Serializes an that conforms to the restrictions of a single CSDL schema file to an XML writer. The model to be serialized must contain a single . Serialize the to the XmlWriter. The EdmModel to serialize. The XmlWriter to serialize to. The serialized model's namespace. true if the model is valid; otherwise, false. Occurs when an error is encountered serializing the model. Information about an error that occurred processing an Entity Framework model. Gets an optional value indicating which property of the source item caused the event to be raised. Gets an optional descriptive message the describes the error that is being raised. Gets a value indicating the that caused the event to be raised. Contains additional attributes and properties of the Note that objects are short lived and exist only to make initialization easier. Instance of this type are not compared to each other and arrays returned by array properties are copied to internal collections in the ctor. Therefore it is fine to suppress the Code Analysis messages. Gets or sets the function schema. The function schema. Gets or sets the store function name. The store function name. Gets or sets the command text associated with the function. The command text associated with the function. Gets or sets the entity sets for the function. The entity sets for the function. Gets a value that indicates whether this is an aggregate function. true if this is an aggregate function; otherwise, false. Gets or sets whether this function is a built-in function. true if this function is a built-in function; otherwise, false. Gets or sets whether the function contains no arguments. true if the function contains no arguments; otherwise, false. Gets or sets whether this function can be composed. true if this function can be composed; otherwise, false. Gets or sets whether this function is from a provider manifest. true if this function is from a provider manifest; otherwise, false. Gets or sets whether this function is a cached store function. true if this function is a cached store function; otherwise, false. Gets or sets whether this function is a function import. true if this function is a function import; otherwise, false. Gets or sets the return parameters. The return parameters. Gets or sets the parameter type semantics. The parameter type semantics. Gets or sets the function parameters. The function parameters. Serializes the storage (database) section of an to XML. Serialize the to the The EdmModel to serialize Provider information on the Schema element ProviderManifestToken information on the Schema element The XmlWriter to serialize to A value indicating whether to serialize Nullable attributes when they are set to the default value. true if model can be serialized, otherwise false Serialize the to the The EdmModel to serialize Namespace name on the Schema element Provider information on the Schema element ProviderManifestToken information on the Schema element The XmlWriter to serialize to A value indicating whether to serialize Nullable attributes when they are set to the default value. true if model can be serialized, otherwise false Occurs when an error is encountered serializing the model. Visits each element of an expression tree from a given root expression. If any element changes, the tree is rebuilt back to the root and the new root expression is returned; otherwise the original root expression is returned. Defines the basic functionality that should be implemented by visitors that return a result value of a specific type. The type of the result produced by the visitor. When overridden in a derived class, handles any expression of an unrecognized type. A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern method for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. When overridden in a derived class, implements the visitor pattern for . A result value of a specific type. The that is being visited. Typed visitor pattern method for DbInExpression. The DbInExpression that is being visited. An instance of TResultType. Initializes a new instance of the class. Replaces an old expression with a new one for the expression visitor. The old expression. The new expression. Represents an event when the variable is rebound for the expression visitor. The location of the variable. The reference of the variable where it is rebounded. Represents an event when entering the scope for the expression visitor with specified scope variables. The collection of scope variables. Exits the scope for the expression visitor. Implements the visitor pattern for the expression. The implemented visitor pattern. The expression. Implements the visitor pattern for the expression list. The implemented visitor pattern. The expression list. Implements the visitor pattern for expression binding. The implemented visitor pattern. The expression binding. Implements the visitor pattern for the expression binding list. The implemented visitor pattern. The expression binding list. Implements the visitor pattern for the group expression binding. The implemented visitor pattern. The binding. Implements the visitor pattern for the sort clause. The implemented visitor pattern. The sort clause. Implements the visitor pattern for the sort order. The implemented visitor pattern. The sort order. Implements the visitor pattern for the aggregate. The implemented visitor pattern. The aggregate. Implements the visitor pattern for the function aggregate. The implemented visitor pattern. The aggregate. Implements the visitor pattern for the group aggregate. The implemented visitor pattern. The aggregate. Implements the visitor pattern for the Lambda function. The implemented visitor pattern. The lambda function. Implements the visitor pattern for the type. The implemented visitor pattern. The type. Implements the visitor pattern for the type usage. The implemented visitor pattern. The type. Implements the visitor pattern for the entity set. The implemented visitor pattern. The entity set. Implements the visitor pattern for the function. The implemented visitor pattern. The function metadata. Implements the visitor pattern for the basic functionality required by expression types. The implemented visitor. The expression. Implements the visitor pattern for the different kinds of constants. The implemented visitor. The constant expression. Implements the visitor pattern for a reference to a typed null literal. The implemented visitor. The expression. Implements the visitor pattern for a reference to a variable that is currently in scope. The implemented visitor. The expression. Implements the visitor pattern for a reference to a parameter declared on the command tree that contains this expression. The implemented visitor. The expression. Implements the visitor pattern for an invocation of a function. The implemented visitor. The function expression. Implements the visitor pattern for the application of a lambda function to arguments represented by DbExpression objects. The implemented visitor. The expression. Implements the visitor pattern for retrieving an instance property. The implemented visitor. The expression. Implements the visitor pattern for the comparison operation applied to two arguments. The implemented visitor. The cast expression. Implements the visitor pattern for a string comparison against the specified pattern with an optional escape string. The implemented visitor. The expression. Implements the visitor pattern for the restriction of the number of elements in the argument collection to the specified limit value. The implemented visitor. The expression. Implements the visitor pattern for the null determination applied to a single argument. The implemented visitor. The expression. Implements the visitor pattern for the arithmetic operation applied to numeric arguments. The implemented visitor. The arithmetic expression. Implements the visitor pattern for the logical AND expression. The implemented visitor. The logical AND expression. Implements the visitor pattern for the logical OR of two Boolean arguments. The implemented visitor. The expression. Implements the visitor pattern for the DbInExpression. The implemented visitor. The DbInExpression that is being visited. Implements the visitor pattern for the logical NOT of a single Boolean argument. The implemented visitor. The expression. Implements the visitor pattern for the removed duplicate elements from the specified set argument. The implemented visitor. The distinct expression. Implements the visitor pattern for the conversion of the specified set argument to a singleton the conversion of the specified set argument to a singleton. The implemented visitor. The element expression. Implements the visitor pattern for an empty set determination applied to a single set argument. The implemented visitor. The expression. Implements the visitor pattern for the set union operation between the left and right operands. The implemented visitor. The expression. Implements the visitor pattern for the set intersection operation between the left and right operands. The implemented visitor. The expression. Implements the visitor pattern for the set subtraction operation between the left and right operands. The implemented visitor. The expression. Implements the visitor pattern for a type conversion operation applied to a polymorphic argument. The implemented visitor. The expression. Implements the visitor pattern for the type comparison of a single argument against the specified type. The implemented visitor. The expression. Implements the visitor pattern for the type conversion of a single argument to the specified type. The implemented visitor. The cast expression. Implements the visitor pattern for the When, Then, and Else clauses. The implemented visitor. The case expression. Implements the visitor pattern for the retrieval of elements of the specified type from the given set argument. The implemented visitor. The expression. Implements the visitor pattern for the construction of a new instance of a given type, including set and record types. The implemented visitor. The expression. Implements the visitor pattern for a strongly typed reference to a specific instance within an entity set. The implemented visitor. The expression. Implements the visitor pattern for the navigation of a relationship. The implemented visitor. The expression. Implements the visitor pattern for the expression that retrieves an entity based on the specified reference. The implemented visitor. The DEREF expression. Implements the visitor pattern for the retrieval of the key value from the underlying reference value. The implemented visitor. The expression. Implements the visitor pattern for the expression that extracts a reference from the underlying entity instance. The implemented visitor. The entity reference expression. Implements the visitor pattern for a scan over an entity set or relationship set, as indicated by the Target property. The implemented visitor. The expression. Implements the visitor pattern for a predicate applied to filter an input set. The implemented visitor. The filter expression. Implements the visitor pattern for the projection of a given input set over the specified expression. The implemented visitor. The expression. Implements the visitor pattern for the unconditional join operation between the given collection arguments. The implemented visitor. The join expression. Implements the visitor pattern for an inner, left outer, or full outer join operation between the given collection arguments on the specified join condition. The implemented visitor. The expression. Implements the visitor pattern for the invocation of the specified function for each element in the specified input set. The implemented visitor. The APPLY expression. Implements the visitor pattern for a group by operation. The implemented visitor. The expression. Implements the visitor pattern for the skip expression. The implemented visitor. The expression. Implements the visitor pattern for a sort key that can be used as part of the sort order. The implemented visitor. The expression. Implements the visitor pattern for a quantifier operation of the specified kind over the elements of the specified input set. The implemented visitor. The expression. When this attribute is placed on a property it indicates that the database column to which the property is mapped has an index. This attribute is used by Entity Framework Migrations to create indexes on mapped database columns. Multi-column indexes are created by using the same index name in multiple attributes. The information in these attributes is then merged together to specify the actual database index. Creates a instance for an index that will be named by convention and has no column order, clustering, or uniqueness specified. Creates a instance for an index with the given name and has no column order, clustering, or uniqueness specified. The index name. Creates a instance for an index with the given name and column order, but with no clustering or uniqueness specified. Multi-column indexes are created by using the same index name in multiple attributes. The information in these attributes is then merged together to specify the actual database index. The index name. A number which will be used to determine column ordering for multi-column indexes. Returns true if this attribute specifies the same name and configuration as the given attribute. The attribute to compare. True if the other object is equal to this object; otherwise false. Returns true if this attribute specifies the same name and configuration as the given attribute. The attribute to compare. True if the other object is equal to this object; otherwise false. The index name. Multi-column indexes are created by using the same index name in multiple attributes. The information in these attributes is then merged together to specify the actual database index. A number which will be used to determine column ordering for multi-column indexes. This will be -1 if no column order has been specified. Multi-column indexes are created by using the same index name in multiple attributes. The information in these attributes is then merged together to specify the actual database index. Set this property to true to define a clustered index. Set this property to false to define a non-clustered index. The value of this property is only relevant if returns true. If returns false, then the value of this property is meaningless. Returns true if has been set to a value. Set this property to true to define a unique index. Set this property to false to define a non-unique index. The value of this property is only relevant if returns true. If returns false, then the value of this property is meaningless. Returns true if has been set to a value. Returns a different ID for each object instance such that type descriptors won't attempt to combine all IndexAttribute instances into a single instance. A class derived from this class can be placed in the same assembly as a class derived from to define Entity Framework configuration for an application. Configuration is set by calling protected methods and setting protected properties of this class in the constructor of your derived type. The type to use can also be registered in the config file of the application. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. Any class derived from must have a public parameterless constructor and that constructor should call this constructor. The Singleton instance of for this app domain. This can be set at application start before any Entity Framework features have been used and afterwards should be treated as read-only. The instance of . Attempts to discover and load the associated with the given type. This method is intended to be used by tooling to ensure that the correct configuration is loaded into the app domain. Tooling should use this method before accessing the property. A type to use for configuration discovery. Attempts to discover and load the from the given assembly. This method is intended to be used by tooling to ensure that the correct configuration is loaded into the app domain. Tooling should use this method before accessing the property. If the tooling knows the type being used, then the method should be used since it gives a greater chance that the correct configuration will be found. An to use for configuration discovery. Call this method from the constructor of a class derived from to add a instance to the Chain of Responsibility of resolvers that are used to resolve dependencies needed by the Entity Framework. Resolvers are asked to resolve dependencies in reverse order from which they are added. This means that a resolver can be added to override resolution of a dependency that would already have been resolved in a different way. The exceptions to this is that any dependency registered in the application's config file will always be used in preference to using a dependency resolver added here. The resolver to add. Call this method from the constructor of a class derived from to add a instance to the Chain of Responsibility of resolvers that are used to resolve dependencies needed by the Entity Framework. Unlike the AddDependencyResolver method, this method puts the resolver at the bottom of the Chain of Responsibility such that it will only be used to resolve a dependency that could not be resolved by any of the other resolvers. A implementation is automatically registered as a default resolver when it is added with a call to . This allows EF providers to act as resolvers for other services that may need to be overridden by the provider. The resolver to add. Call this method from the constructor of a class derived from to register an Entity Framework provider. Note that the provider is both registered as a service itself and also registered as a default resolver with a call to AddDefaultResolver. This allows EF providers to act as resolvers for other services that may need to be overridden by the provider. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for and also using AddDefaultResolver to add the provider as a default resolver. This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used. The provider instance. Call this method from the constructor of a class derived from to register an ADO.NET provider. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolvers for and . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used. The provider instance. Call this method from the constructor of a class derived from to register an for use with the provider represented by the given invariant name. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. A function that returns a new instance of an execution strategy. Call this method from the constructor of a class derived from to register an for use with the provider represented by the given invariant name and for a given server name. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. A function that returns a new instance of an execution strategy. A string that will be matched against the server name in the connection string. Call this method from the constructor of a class derived from to register a . This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. A function that returns a new instance of a transaction handler. Call this method from the constructor of a class derived from to register a for use with the provider represented by the given invariant name. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this transaction handler will be used. A function that returns a new instance of a transaction handler. Call this method from the constructor of a class derived from to register a for use with the provider represented by the given invariant name and for a given server name. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this transaction handler will be used. A function that returns a new instance of a transaction handler. A string that will be matched against the server name in the connection string. Sets the that is used to create connections by convention if no other connection string or connection is given to or can be discovered by . Note that a default connection factory is set in the app.config or web.config file whenever the EntityFramework NuGet package is installed. As for all config file settings, the default connection factory set in the config file will take precedence over any setting made with this method. Therefore the setting must be removed from the config file before calling this method will have any effect. Call this method from the constructor of a class derived from to change the default connection factory being used. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The connection factory. Call this method from the constructor of a class derived from to set the pluralization service. The pluralization service to use. Call this method from the constructor of a class derived from to set the database initializer to use for the given context type. The database initializer is called when a the given type is used to access a database for the first time. The default strategy for Code First contexts is an instance of . Calling this method is equivalent to calling . This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The type of the context. The initializer to use, or null to disable initialization for the given context type. Call this method from the constructor of a class derived from to register a for use with the provider represented by the given invariant name. This method is typically used by providers to register an associated SQL generator for Code First Migrations. It is different from setting the generator in the because it allows EF to use the Migrations pipeline to create a database even when there is no Migrations configuration in the project and/or Migrations are not being explicitly used. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The invariant name of the ADO.NET provider for which this generator should be used. A delegate that returns a new instance of the SQL generator each time it is called. Call this method from the constructor of a class derived from to set an implementation of which allows provider manifest tokens to be obtained from connections without necessarily opening the connection. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The manifest token resolver. Call this method from the constructor of a class derived from to set a factory for implementations of which allows custom annotations represented by instances to be serialized to and from the EDMX XML. Note that an is not needed if the annotation uses a simple string value. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The name of custom annotation that will be handled by this serializer. A delegate that will be used to create serializer instances. Call this method from the constructor of a class derived from to set an implementation of which allows a to be obtained from a in cases where the default implementation is not sufficient. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The provider factory service. Call this method from the constructor of a class derived from to set a as the model cache key factory which allows the key used to cache the model behind a to be changed. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The key factory. Call this method from the constructor of a class derived from to set a delegate which which be used for creation of the default for a any . This default factory will only be used if no factory is set explicitly in the and if no factory has been registered for the provider in use using the method. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. A factory for creating instances for a given and representing the default schema. Call this method from the constructor of a class derived from to set a delegate which allows for creation of a customized for the given provider for any that does not have an explicit factory set. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The invariant name of the ADO.NET provider for which this generator should be used. A factory for creating instances for a given and representing the default schema. Call this method from the constructor of a class derived from to set the global instance of which will be used whenever a spatial provider is required and a provider-specific spatial provider cannot be found. Normally, a provider-specific spatial provider is obtained from the a implementation which is in turn returned by resolving a service for passing the provider invariant name as a key. However, this cannot work for stand-alone instances of and since it is impossible to know the spatial provider to use. Therefore, when creating stand-alone instances of and the global spatial provider is always used. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The spatial provider. Call this method from the constructor of a class derived from to set an implementation of to use for a specific provider and provider manifest token. Use to register spatial services for use only when a specific manifest token is returned by the provider. Use to register global spatial services to be used when provider information is not available or no provider-specific spatial services are found. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The indicating the type of ADO.NET connection for which this spatial provider will be used. The spatial provider. Call this method from the constructor of a class derived from to set an implementation of to use for a specific provider with any manifest token. Use to register spatial services for use when any manifest token is returned by the provider. Use to register global spatial services to be used when provider information is not available or no provider-specific spatial services are found. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this spatial provider will be used. The spatial provider. Call this method from the constructor of a class derived from to set a factory for the type of to use with . Note that setting the type of formatter to use with this method does change the way command are logged when is used. It is still necessary to set a instance onto before any commands will be logged. For more low-level control over logging/interception see and . This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. A delegate that will create formatter instances. Call this method from the constructor of a class derived from to register an at application startup. Note that interceptors can also be added and removed at any time using . This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for . This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The interceptor to register. Call this method from the constructor of a class derived from to set a factory to allow to create instances of a context that does not have a public, parameterless constructor. This is typically needed to allow design-time tools like Migrations or scaffolding code to use contexts that do not have public, parameterless constructors. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for with the context as the key. This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The context type for which the factory should be used. The delegate to use to create context instances. Call this method from the constructor of a class derived from to set a factory to allow to create instances of a context that does not have a public, parameterless constructor. This is typically needed to allow design-time tools like Migrations or scaffolding code to use contexts that do not have public, parameterless constructors. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for with the context as the key. This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The context type for which the factory should be used. The delegate to use to create context instances. Call this method from the constructor of a class derived from to register a database table existence checker for a given provider. This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for and also using AddDefaultResolver to add the provider as a default resolver. This means that, if desired, the same functionality can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used. The table existence checker to use. Gets the of the current instance. The exact runtime type of the current instance. Creates a shallow copy of the current . A shallow copy of the current . Occurs during EF initialization after the DbConfiguration has been constructed but just before it is locked ready for use. Use this event to inspect and/or override services that have been registered before the configuration is locked. Note that this event should be used carefully since it may prevent tooling from discovering the same configuration that is used at runtime. Handlers can only be added before EF starts to use the configuration and so handlers should generally be added as part of application initialization. Do not access the DbConfiguration static methods inside the handler; instead use the the members of to get current services and/or add overrides. Gets the that is being used to resolve service dependencies in the Entity Framework. This attribute can be placed on a subclass of to indicate that the subclass of representing the code-based configuration for the application is in a different assembly than the context type. Normally a subclass of should be placed in the same assembly as the subclass of used by the application. It will then be discovered automatically. However, if this is not possible or if the application contains multiple context types in different assemblies, then this attribute can be used to direct DbConfiguration discovery to the appropriate type. An alternative to using this attribute is to specify the DbConfiguration type to use in the application's config file. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information. Indicates that the given subclass of should be used for code-based configuration for this application. The type to use. Indicates that the subclass of represented by the given assembly-qualified name should be used for code-based configuration for this application. The type to use. Gets the subclass of that should be used for code-based configuration for this application. Implements the basic functionality required by aggregates in a GroupBy clause. Gets the result type of this . The result type of this . Gets the list of expressions that define the arguments to this . The list of expressions that define the arguments to this . Represents the logical AND of two Boolean arguments. This class cannot be inherited. Implements the basic functionality required by expressions that accept two expression operands. Represents the base type for all expressions. Implements the visitor pattern for expressions that do not produce a result value. An instance of . Implements the visitor pattern for expressions that produce a result value of a specific type. The type of the result produced by . An instance of . The type of the result produced by visitor. Determines whether the specified is equal to the current DbExpression instance. True if the specified is equal to the current DbExpression instance; otherwise, false. The object to compare to the current . Serves as a hash function for the type. A hash code for the current expression. Creates a that represents the specified binary value, which may be null A that represents the specified binary value. The binary value on which the returned expression should be based. Enables implicit casting from a byte array. The value to be converted. The converted value. Creates a that represents the specified (nullable) Boolean value. A that represents the specified Boolean value. The Boolean value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified (nullable) byte value. A that represents the specified byte value. The byte value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified (nullable) value. A that represents the specified DateTime value. The DateTime value on which the returned expression should be based. Enables implicit casting from . The expression to be converted. The converted value. Creates a that represents the specified (nullable) value. A that represents the specified DateTimeOffset value. The DateTimeOffset value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified (nullable) decimal value. A that represents the specified decimal value. The decimal value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified (nullable) double value. A that represents the specified double value. The double value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified value, which may be null. A that represents the specified DbGeography value. The DbGeography value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified value, which may be null. A that represents the specified DbGeometry value. The DbGeometry value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified (nullable) value. A that represents the specified Guid value. The Guid value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified (nullable) Int16 value. A that represents the specified Int16 value. The Int16 value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified (nullable) Int32 value. A that represents the specified Int32 value. The Int32 value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified (nullable) Int64 value. A that represents the specified Int64 value. The Int64 value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified (nullable) Single value. A that represents the specified Single value. The Single value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Creates a that represents the specified string value. A that represents the specified string value. The string value on which the returned expression should be based. Enables implicit casting from . The value to be converted. The converted value. Gets the type metadata for the result type of the expression. The type metadata for the result type of the expression. Gets the kind of the expression, which indicates the operation of this expression. The kind of the expression, which indicates the operation of this expression. Gets the that defines the left argument. The that defines the left argument. The expression is null. The expression is not associated with the command tree of the ,or its result type is not equal or promotable to the required type for the left argument. Gets the that defines the right argument. The that defines the right argument. The expression is null. The expression is not associated with the command tree of the ,or its result type is not equal or promotable to the required type for the right argument. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by the visitor . visitor is null. Represents an apply operation, which is the invocation of the specified function for each element in the specified input set. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by the visitor . visitor is null. Gets the that specifies the function that is invoked for each element in the input set. The that specifies the function that is invoked for each element in the input set. Gets the that specifies the input set. The that specifies the input set. Represents an arithmetic operation applied to numeric arguments. Addition, subtraction, multiplication, division, modulo, and negation are arithmetic operations. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the list of elements that define the current arguments. A fixed-size list of elements. Represents the When, Then, and Else clauses of the . This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor. visitor is null. Gets the When clauses of this . The When clauses of this . Gets the Then clauses of this . The Then clauses of this . Gets the Else clause of this . The Else clause of this . The expression is null. The expression is not associated with the command tree of the ,or its result type is not equal or promotable to the result type of the . Represents the type conversion of a single argument to the specified type. This class cannot be inherited. Implements the basic functionality required by expressions that accept a single expression argument. Gets the that defines the argument. The that defines the argument. The expression is null. The expression is not associated with the command tree of a , or its result type is not equal or promotable to the required type for the argument. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor. visitor is null. Describes the different "kinds" (classes) of command trees. A query to retrieve data Update existing data Insert new data Deleted existing data Call a function Represents a comparison operation applied to two arguments. Equality, greater than, greater than or equal, less than, less than or equal, and inequality are comparison operations. This class cannot be inherited. DbComparisonExpression requires that its arguments have a common result type that is equality comparable (for .Equals and .NotEquals), order comparable (for .GreaterThan and .LessThan), or both (for .GreaterThanOrEquals and .LessThanOrEquals). Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor. visitor is null. Represents different kinds of constants (literals). This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor. visitor is null. Gets the constant value. The constant value. Represents an unconditional join operation between the given collection arguments. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor. visitor is null. Gets a list that provides the input sets to the join. A list that provides the input sets to the join. Represents the an expression that retrieves an entity based on the specified reference. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor. visitor is null. Removes duplicate elements from the specified set argument. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor. visitor is null. Represents the conversion of the specified set argument to a singleton. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor. visitor is null. Represents an expression that extracts a reference from the underlying entity instance. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor. visitor is null. Represents the set subtraction operation between the left and right operands. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor. visitor is null. Describes a binding for an expression. Conceptually similar to a foreach loop in C#. The DbExpression property defines the collection being iterated over, while the Var property provides a means to reference the current element of the collection during the iteration. DbExpressionBinding is used to describe the set arguments to relational expressions such as , and . Gets the that defines the input set. The that defines the input set. The expression is null. The expression is not associated with the command tree of the binding, or its result type is not equal or promotable to the result type of the current value of the property. Gets the name assigned to the element variable. The name assigned to the element variable. Gets the type metadata of the element variable. The type metadata of the element variable. Gets the that references the element variable. The variable reference. Represents a predicate applied to filter an input set. This produces the set of elements that satisfy the predicate. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the that specifies the input set. The that specifies the input set. Gets the that specifies the predicate used to filter the input set. The that specifies the predicate used to filter the input set. The expression is null. The expression is not associated with the command tree of the , or its result type is not a Boolean type. Represents an invocation of a function. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the metadata for the function to invoke. The metadata for the function to invoke. Gets an list that provides the arguments to the function. An list that provides the arguments to the function. Represents a collection of elements that compose a group. Represents a group by operation. A group by operation is a grouping of the elements in the input set based on the specified key expressions followed by the application of the specified aggregates. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the that specifies the input set and provides access to the set element and group element variables. The that specifies the input set and provides access to the set element and group element variables. Gets a list that provides grouping keys. A list that provides grouping keys. Gets a list that provides the aggregates to apply. A list that provides the aggregates to apply. Represents the set intersection operation between the left and right operands. This class cannot be inherited. DbIntersectExpression requires that its arguments have a common collection result type Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Represents an empty set determination applied to a single set argument. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Represents null determination applied to a single argument. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Represents the type comparison of a single argument against the specified type. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the type metadata that the type metadata of the argument should be compared to. The type metadata that the type metadata of the argument should be compared to. Represents an inner, left outer, or full outer join operation between the given collection arguments on the specified join condition. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the that provides the left input. The that provides the left input. Gets the that provides the right input. The that provides the right input. Gets the join condition to apply. The join condition to apply. The expression is null. The expression is not associated with the command tree of the , or its result type is not a Boolean type. Allows the application of a lambda function to arguments represented by objects. The visitor pattern method for expression visitors that do not produce a result value. An instance of . visitor is null The visitor pattern method for expression visitors that produce a result value of a specific type. The type of the result produced by the expression visitor. An instance of a typed that produces a result value of type TResultType. The type of the result produced by visitor visitor is null Gets the representing the Lambda function applied by this expression. The representing the Lambda function applied by this expression. Gets a list that provides the arguments to which the Lambda function should be applied. The list. Represents a string comparison against the specified pattern with an optional escape string. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets an expression that specifies the string to compare against the given pattern. An expression that specifies the string to compare against the given pattern. The expression is null. The expression is not associated with the command tree of , or its result type is not a string type. Gets an expression that specifies the pattern against which the given string should be compared. An expression that specifies the pattern against which the given string should be compared. The expression is null. The expression is not associated with the command tree of , or its result type is not a string type. Gets an expression that provides an optional escape string to use for the comparison. An expression that provides an optional escape string to use for the comparison. The expression is null. The expression is not associated with the command tree of , or its result type is not a string type. Represents the restriction of the number of elements in the argument collection to the specified limit value. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets an expression that specifies the input collection. An expression that specifies the input collection. The expression is null. The expression is not associated with the command tree of the , or its result type is not a collection type. Gets an expression that specifies the limit on the number of elements returned from the input collection. An expression that specifies the limit on the number of elements returned from the input collection. The expression is null. The expression is not associated with the command tree of the , or is not one of or , or its result type is not equal or promotable to a 64-bit integer type. Gets whether the limit operation will include tied results. Including tied results might produce more results than specified by the value. true if the limit operation will include tied results; otherwise, false. The default is false. Represents the construction of a new instance of a given type, including set and record types. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets an list that provides the property/column values or set elements for the new instance. An list that provides the property/column values or set elements for the new instance. Represents the logical NOT of a single Boolean argument. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Represents a reference to a typed null literal. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Represents the retrieval of elements of the specified type from the given set argument. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the metadata of the type of elements that should be retrieved from the set argument. The metadata of the type of elements that should be retrieved from the set argument. Represents the logical OR of two Boolean arguments. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Represents a reference to a parameter declared on the command tree that contains this expression. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the name of the referenced parameter. The name of the referenced parameter. Represents the projection of a given input set over the specified expression. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the that specifies the input set. The that specifies the input set. Gets the that defines the projection. The that defines the projection. The expression is null. The expression is not associated with the command tree of the , or its result type is not equal or promotable to the reference type of the current projection. Provides methods and properties for retrieving an instance property. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Creates a new key/value pair based on this property expression. A new key/value pair with the key and value derived from the . Enables implicit casting to . The expression to be converted. The converted value. Gets the property metadata for the property to retrieve. The property metadata for the property to retrieve. Gets a that defines the instance from which the property should be retrieved. A that defines the instance from which the property should be retrieved. The expression is null. The expression is not associated with the command tree of the , or its result type is not equal or promotable to the type that defines the property. Represents a quantifier operation of the specified kind over the elements of the specified input set. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the that specifies the input set. The that specifies the input set. Gets the Boolean predicate that should be evaluated for each element in the input set. The Boolean predicate that should be evaluated for each element in the input set. The expression is null. The expression is not associated with the command tree for the ,or its result type is not a Boolean type. Represents a strongly typed reference to a specific instance within an entity set. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the metadata for the entity set that contains the instance. The metadata for the entity set that contains the instance. Represents the navigation of a relationship. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the metadata for the relationship over which navigation occurs. The metadata for the relationship over which navigation occurs. Gets the metadata for the relationship end to navigate from. The metadata for the relationship end to navigate from. Gets the metadata for the relationship end to navigate to. The metadata for the relationship end to navigate to. Gets an that specifies the starting point of the navigation and must be a reference to an entity instance. An that specifies the instance of the source relationship end from which navigation should occur. The expression is null. The expression is not associated with the command tree of the , or its result type is not equal or promotable to the reference type of the property. Skips a specified number of elements in the input set. can only be used after the input collection has been sorted as specified by the sort keys. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the that specifies the input set. The that specifies the input set. Gets a list that defines the sort order. A list that defines the sort order. Gets an expression that specifies the number of elements to skip from the input collection. An expression that specifies the number of elements to skip from the input collection. The expression is null. The expression is not associated with the command tree of the ; the expression is not either a or a ; or the result type of the expression is not equal or promotable to a 64-bit integer type. Specifies a sort key that can be used as part of the sort order in a . This class cannot be inherited. Gets a Boolean value indicating whether or not this sort key uses an ascending sort order. true if this sort key uses an ascending sort order; otherwise, false. Gets a string value that specifies the collation for this sort key. A string value that specifies the collation for this sort key. Gets the that provides the value for this sort key. The that provides the value for this sort key. Represents a sort operation applied to the elements of the specified input set based on the given sort keys. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor visitor is null. Gets the that specifies the input set. The that specifies the input set. Gets a list that defines the sort order. A list that defines the sort order. Represents a type conversion operation applied to a polymorphic argument. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Supports standard aggregate functions, such as MIN, MAX, AVG, SUM, and so on. This class cannot be inherited. Gets a value indicating whether this aggregate is a distinct aggregate. true if the aggregate is a distinct aggregate; otherwise, false. Gets the method metadata that specifies the aggregate function to invoke. The method metadata that specifies the aggregate function to invoke. An abstract base type for types that implement the IExpressionVisitor interface to derive from. An abstract base type for types that implement the IExpressionVisitor interface to derive from. Defines the basic functionality that should be implemented by visitors that do not return a result value. When overridden in a derived class, handles any expression of an unrecognized type. The expression to be handled. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. When overridden in a derived class, implements the visitor pattern for . The that is visited. Visitor pattern method for DbInExpression. The DbInExpression that is being visited. Convenience method to visit the specified . The DbUnaryExpression to visit. is null Convenience method to visit the specified . The DbBinaryExpression to visit. is null Convenience method to visit the specified . The DbExpressionBinding to visit. is null Convenience method for post-processing after a DbExpressionBinding has been visited. The previously visited DbExpressionBinding. Convenience method to visit the specified . The DbGroupExpressionBinding to visit. is null Convenience method indicating that the grouping keys of a have been visited and the aggregates are now about to be visited. The DbGroupExpressionBinding of the DbGroupByExpression Convenience method for post-processing after a DbGroupExpressionBinding has been visited. The previously visited DbGroupExpressionBinding. Convenience method indicating that the body of a Lambda is now about to be visited. The DbLambda that is about to be visited is null Convenience method for post-processing after a DbLambda has been visited. The previously visited DbLambda. Convenience method to visit the specified , if non-null. The expression to visit. is null Convenience method to visit each in the given list, if the list is non-null. The list of expressions to visit. is null Convenience method to visit each in the list, if the list is non-null. The list of aggregates to visit. is null Convenience method to visit the specified . The aggregate to visit. is null Called when an of an otherwise unrecognized type is encountered. The expression is null Always thrown if this method is called, since it indicates that is of an unsupported type Visitor pattern method for . The DbConstantExpression that is being visited. is null Visitor pattern method for . The DbNullExpression that is being visited. is null Visitor pattern method for . The DbVariableReferenceExpression that is being visited. is null Visitor pattern method for . The DbParameterReferenceExpression that is being visited. is null Visitor pattern method for . The DbFunctionExpression that is being visited. is null Visitor pattern method for . The DbLambdaExpression that is being visited. is null Visitor pattern method for . The DbPropertyExpression that is being visited. is null Visitor pattern method for . The DbComparisonExpression that is being visited. is null Visitor pattern method for . The DbLikeExpression that is being visited. is null Visitor pattern method for . The DbLimitExpression that is being visited. is null Visitor pattern method for . The DbIsNullExpression that is being visited. is null Visitor pattern method for . The DbArithmeticExpression that is being visited. is null Visitor pattern method for . The DbAndExpression that is being visited. is null Visitor pattern method for . The DbOrExpression that is being visited. is null Visitor pattern method for . The DbInExpression that is being visited. is null Visitor pattern method for . The DbNotExpression that is being visited. is null Visitor pattern method for . The DbDistinctExpression that is being visited. is null Visitor pattern method for . The DbElementExpression that is being visited. is null Visitor pattern method for . The DbIsEmptyExpression that is being visited. is null Visitor pattern method for . The DbUnionAllExpression that is being visited. is null Visitor pattern method for . The DbIntersectExpression that is being visited. is null Visitor pattern method for . The DbExceptExpression that is being visited. is null Visitor pattern method for . The DbOfTypeExpression that is being visited. is null Visitor pattern method for . The DbTreatExpression that is being visited. is null Visitor pattern method for . The DbCastExpression that is being visited. is null Visitor pattern method for . The DbIsOfExpression that is being visited. is null Visitor pattern method for . The DbCaseExpression that is being visited. is null Visitor pattern method for . The DbNewInstanceExpression that is being visited. is null Visitor pattern method for . The DbRefExpression that is being visited. is null Visitor pattern method for . The DbRelationshipNavigationExpression that is being visited. is null Visitor pattern method for . The DeRefExpression that is being visited. is null Visitor pattern method for . The DbRefKeyExpression that is being visited. is null Visitor pattern method for . The DbEntityRefExpression that is being visited. is null Visitor pattern method for . The DbScanExpression that is being visited. is null Visitor pattern method for . The DbFilterExpression that is being visited. is null Visitor pattern method for . The DbProjectExpression that is being visited. is null Visitor pattern method for . The DbCrossJoinExpression that is being visited. is null Visitor pattern method for . The DbJoinExpression that is being visited. is null Visitor pattern method for . The DbApplyExpression that is being visited. is null Visitor pattern method for . The DbExpression that is being visited. is null Visitor pattern method for . The DbSkipExpression that is being visited. is null Visitor pattern method for . The DbSortExpression that is being visited. is null Visitor pattern method for . The DbQuantifierExpression that is being visited. is null Implements the visitor pattern for the set clause. The set clause. Implements the visitor pattern for the modification clause. The modification clause. Implements the visitor pattern for the collection of modification clauses. The modification clauses. Implements the visitor pattern for the command tree. The command tree. Implements the visitor pattern for the delete command tree. The delete command tree. Implements the visitor pattern for the function command tree. The function command tree. Implements the visitor pattern for the insert command tree. The insert command tree. Implements the visitor pattern for the query command tree. The query command tree. Implements the visitor pattern for the update command tree. The update command tree. An immutable class that implements the basic functionality for the Query, Insert, Update, Delete, and function invocation command tree types. Returns a that represents this command. A that represents this command. Gets a value indicating whether database null semantics are exhibited when comparing two operands, both of which are potentially nullable. The default value is true. For example (operand1 == operand2) will be translated as: (operand1 = operand2) if UseDatabaseNullSemantics is true, respectively (((operand1 = operand2) AND (NOT (operand1 IS NULL OR operand2 IS NULL))) OR ((operand1 IS NULL) AND (operand2 IS NULL))) if UseDatabaseNullSemantics is false. true if database null comparison behavior is enabled, otherwise false . Gets the name and corresponding type of each parameter that can be referenced within this . The name and corresponding type of each parameter that can be referenced within this . Gets the kind of this command tree. Gets the metadata workspace used by this command tree. Gets the data space in which metadata used by this command tree must reside. Represents a single row delete operation expressed as a command tree. This class cannot be inherited. Represents a data manipulation language (DML) operation expressed as a command tree. Gets the that specifies the target table for the data manipulation language (DML) operation. The that specifies the target table for the DML operation. Initializes a new instance of the class. The model this command will operate on. The data space. The target table for the data manipulation language (DML) operation. A predicate used to determine which members of the target collection should be deleted. Gets an that specifies the predicate used to determine which members of the target collection should be deleted. The predicate can include only the following elements: Equality expression Constant expression IsNull expression Property expression Reference expression to the target And expression Or expression Not expression An that specifies the predicate used to determine which members of the target collection should be deleted. Gets the kind of this command tree. The kind of this command tree. Contains values that each expression class uses to denote the operation it represents. The property of an can be retrieved to determine which operation that expression represents. True for all. Logical And. True for any. Conditional case statement. Polymorphic type cast. A constant value. Cross apply Cross join Dereference. Duplicate removal. Division. Set to singleton conversion. Entity ref value retrieval. Equality Set subtraction Restriction. Full outer join Invocation of a stand-alone function Greater than. Greater than or equal. Grouping. Inner join Set intersection. Empty set determination. Null determination. Type comparison (specified Type or Subtype). Type comparison (specified Type only). Left outer join Less than. Less than or equal. String comparison. Result count restriction (TOP n). Subtraction. Modulo. Multiplication. Instance, row, and set construction. Logical Not. Inequality. Null. Set members by type (or subtype). Set members by (exact) type. Logical Or. Outer apply. A reference to a parameter. Addition. Projection. Retrieval of a static or instance property. Reference. Ref key value retrieval. Navigation of a (composition or association) relationship. Entity or relationship set scan. Skip elements of an ordered collection. Sorting. Type conversion. Negation. Set union (with duplicates). A reference to a variable. Application of a lambda function In. Represents the invocation of a database function. Constructs a new DbFunctionCommandTree that uses the specified metadata workspace, data space and function metadata The metadata workspace that the command tree should use. The logical 'space' that metadata in the expressions used in this command tree must belong to. The that represents the function that is being invoked. The expected result type for the function’s first result set. The function's parameters. , or is null does not represent a valid data space or is a composable function Gets the that represents the function that is being invoked. The that represents the function that is being invoked. Gets the expected result type for the function’s first result set. The expected result type for the function’s first result set. Gets or sets the command tree kind. The command tree kind. Represents a single row insert operation expressed as a command tree. This class cannot be inherited. Represents a single row insert operation expressed as a canonical command tree. When the property is set, the command returns a reader; otherwise, it returns a scalar value indicating the number of rows affected. Initializes a new instance of the class. The model this command will operate on. The data space. The target table for the data manipulation language (DML) operation. The list of insert set clauses that define the insert operation. . A that specifies a projection of results to be returned, based on the modified rows. Gets the list of insert set clauses that define the insert operation. The list of insert set clauses that define the insert operation. Gets an that specifies a projection of results to be returned based on the modified rows. An that specifies a projection of results to be returned based on the modified rows. null indicates that no results should be returned from this command. Gets the command tree kind. The command tree kind. Represents a Lambda function that can be invoked to produce a . Creates a with the specified inline Lambda function implementation and formal parameters. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters An expression that defines the logic of the Lambda function A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. is null or contains null, or is null contains more than one element with the same variable name. Creates a with the specified inline Lambda function implementation and formal parameters. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters An expression that defines the logic of the Lambda function A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. is null or contains null, or is null. contains more than one element with the same variable name. Creates a new with a single argument of the specified type, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and single formal parameter. A that defines the EDM type of the argument to the Lambda function A function that defines the logic of the Lambda function as a is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A that defines the EDM type of the sixth argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A that defines the EDM type of the sixth argument to the Lambda function A that defines the EDM type of the seventh argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A that defines the EDM type of the sixth argument to the Lambda function A that defines the EDM type of the seventh argument to the Lambda function A that defines the EDM type of the eighth argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A that defines the EDM type of the sixth argument to the Lambda function A that defines the EDM type of the seventh argument to the Lambda function A that defines the EDM type of the eighth argument to the Lambda function A that defines the EDM type of the ninth argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A that defines the EDM type of the sixth argument to the Lambda function A that defines the EDM type of the seventh argument to the Lambda function A that defines the EDM type of the eighth argument to the Lambda function A that defines the EDM type of the ninth argument to the Lambda function A that defines the EDM type of the tenth argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A that defines the EDM type of the sixth argument to the Lambda function A that defines the EDM type of the seventh argument to the Lambda function A that defines the EDM type of the eighth argument to the Lambda function A that defines the EDM type of the ninth argument to the Lambda function A that defines the EDM type of the tenth argument to the Lambda function A that defines the EDM type of the eleventh argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A that defines the EDM type of the sixth argument to the Lambda function A that defines the EDM type of the seventh argument to the Lambda function A that defines the EDM type of the eighth argument to the Lambda function A that defines the EDM type of the ninth argument to the Lambda function A that defines the EDM type of the tenth argument to the Lambda function A that defines the EDM type of the eleventh argument to the Lambda function A that defines the EDM type of the twelfth argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A that defines the EDM type of the sixth argument to the Lambda function A that defines the EDM type of the seventh argument to the Lambda function A that defines the EDM type of the eighth argument to the Lambda function A that defines the EDM type of the ninth argument to the Lambda function A that defines the EDM type of the tenth argument to the Lambda function A that defines the EDM type of the eleventh argument to the Lambda function A that defines the EDM type of the twelfth argument to the Lambda function A that defines the EDM type of the thirteenth argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A that defines the EDM type of the sixth argument to the Lambda function A that defines the EDM type of the seventh argument to the Lambda function A that defines the EDM type of the eighth argument to the Lambda function A that defines the EDM type of the ninth argument to the Lambda function A that defines the EDM type of the tenth argument to the Lambda function A that defines the EDM type of the eleventh argument to the Lambda function A that defines the EDM type of the twelfth argument to the Lambda function A that defines the EDM type of the thirteenth argument to the Lambda function A that defines the EDM type of the fourteenth argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A that defines the EDM type of the sixth argument to the Lambda function A that defines the EDM type of the seventh argument to the Lambda function A that defines the EDM type of the eighth argument to the Lambda function A that defines the EDM type of the ninth argument to the Lambda function A that defines the EDM type of the tenth argument to the Lambda function A that defines the EDM type of the eleventh argument to the Lambda function A that defines the EDM type of the twelfth argument to the Lambda function A that defines the EDM type of the thirteenth argument to the Lambda function A that defines the EDM type of the fourteenth argument to the Lambda function A that defines the EDM type of the fifteenth argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, or is null or produces a result of null. Creates a new with arguments of the specified types, as defined by the specified function. A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. A that defines the EDM type of the first argument to the Lambda function A that defines the EDM type of the second argument to the Lambda function A that defines the EDM type of the third argument to the Lambda function A that defines the EDM type of the fourth argument to the Lambda function A that defines the EDM type of the fifth argument to the Lambda function A that defines the EDM type of the sixth argument to the Lambda function A that defines the EDM type of the seventh argument to the Lambda function A that defines the EDM type of the eighth argument to the Lambda function A that defines the EDM type of the ninth argument to the Lambda function A that defines the EDM type of the tenth argument to the Lambda function A that defines the EDM type of the eleventh argument to the Lambda function A that defines the EDM type of the twelfth argument to the Lambda function A that defines the EDM type of the thirteenth argument to the Lambda function A that defines the EDM type of the fourteenth argument to the Lambda function A that defines the EDM type of the fifteenth argument to the Lambda function A that defines the EDM type of the sixteenth argument to the Lambda function A function that defines the logic of the Lambda function as a is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, is null, or is null or produces a result of null. Gets the body of the lambda expression. A that represents the body of the lambda function. Gets the parameters of the lambda expression. The list of lambda function parameters represented as DbVariableReferenceExpression objects. Specifies a single clause in an insert or update modification operation, see and An abstract base class allows the possibility of patterns other than Property = Value in future versions, e.g., update SomeTable set ComplexTypeColumn.SomeProperty() where Id = 2 Represents a query operation expressed as a command tree. This class cannot be inherited. Constructs a new DbQueryCommandTree that uses the specified metadata workspace. The metadata workspace that the command tree should use. The logical 'space' that metadata in the expressions used in this command tree must belong to. A that defines the logic of the query. When set to false the validation of the tree is turned off. A boolean that indicates whether database null semantics are exhibited when comparing two operands, both of which are potentially nullable. or is null does not represent a valid data space Constructs a new DbQueryCommandTree that uses the specified metadata workspace, using database null semantics. The metadata workspace that the command tree should use. The logical 'space' that metadata in the expressions used in this command tree must belong to. A that defines the logic of the query. When set to false the validation of the tree is turned off. or is null does not represent a valid data space Constructs a new DbQueryCommandTree that uses the specified metadata workspace, using database null semantics. The metadata workspace that the command tree should use. The logical 'space' that metadata in the expressions used in this command tree must belong to. A that defines the logic of the query. or is null does not represent a valid data space Gets an that defines the logic of the query operation. An that defines the logic of the query operation. The expression is null. The expression is associated with a different command tree. Gets the kind of this command tree. The kind of this command tree. Specifies the clause in a modification operation that sets the value of a property. This class cannot be inherited. Gets an that specifies the property that should be updated. An that specifies the property that should be updated. Gets an that specifies the new value with which to update the property. An that specifies the new value with which to update the property. Represents a single-row update operation expressed as a command tree. This class cannot be inherited. Represents a single-row update operation expressed as a canonical command tree. When the property is set, the command returns a reader; otherwise, it returns a scalar indicating the number of rows affected. Initializes a new instance of the class. The model this command will operate on. The data space. The target table for the data manipulation language (DML) operation. A predicate used to determine which members of the target collection should be updated. The list of update set clauses that define the update operation. A that specifies a projection of results to be returned, based on the modified rows. Gets the list of update set clauses that define the update operation. The list of update set clauses that define the update operation. Gets an that specifies a projection of results to be returned, based on the modified rows. An that specifies a projection of results to be returned based, on the modified rows. null indicates that no results should be returned from this command. Gets an that specifies the predicate used to determine which members of the target collection should be updated. An that specifies the predicate used to determine which members of the target collection should be updated. Gets the kind of this command tree. The kind of this command tree. Represents a reference to a variable that is currently in scope. This class cannot be inherited. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the name of the referenced variable. The name of the referenced variable. Defines the binding for the input set to a . In addition to the properties of , DbGroupExpressionBinding also provides access to the group element via the variable reference and to the group aggregate via the property. Gets the that defines the input set. The that defines the input set. The expression is null. The expression is not associated with the command tree of the , or its result type is not equal or promotable to the result type of the current value of the property. Gets the name assigned to the element variable. The name assigned to the element variable. Gets the type metadata of the element variable. The type metadata of the element variable. Gets the that references the element variable. A reference to the element variable. Gets the name assigned to the group element variable. The name assigned to the group element variable. Gets the type metadata of the group element variable. The type metadata of the group element variable. Gets the that references the group element variable. A reference to the group element variable. Gets the that represents the collection of elements in the group. The elements in the group. Provides an API to construct s and allows that API to be accessed as extension methods on the expression type itself. Returns the specified arguments as a key/value pair object. A key/value pair object. The value in the key/value pair. The key in the key/value pair. Returns the specified arguments as a key/value pair object. A key/value pair object. The value in the key/value pair. The key in the key/value pair. Creates a new that uses a generated variable name to bind the given expression. A new expression binding with the specified expression and a generated variable name. The expression to bind. input is null. input does not have a collection result. Creates a new that uses the specified variable name to bind the given expression A new expression binding with the specified expression and variable name. The expression to bind. The variable name that should be used for the binding. input or varName is null. input does not have a collection result. Creates a new group expression binding that uses generated variable and group variable names to bind the given expression. A new group expression binding with the specified expression and a generated variable name and group variable name. The expression to bind. input is null. input does not have a collection result type. Creates a new that uses the specified variable name and group variable names to bind the given expression. A new group expression binding with the specified expression, variable name and group variable name. The expression to bind. The variable name that should be used for the binding. The variable name that should be used to refer to the group when the new group expression binding is used in a group-by expression. input, varName or groupVarName is null. input does not have a collection result type. Creates a new . A new function aggregate with a reference to the given function and argument. The function aggregate's Distinct property will have the value false. The function that defines the aggregate operation. The argument over which the aggregate function should be calculated. function or argument null. function is not an aggregate function or has more than one argument, or the result type of argument is not equal or promotable to the parameter type of function. Creates a new that is applied in a distinct fashion. A new function aggregate with a reference to the given function and argument. The function aggregate's Distinct property will have the value true. The function that defines the aggregate operation. The argument over which the aggregate function should be calculated. function or argument is null. function is not an aggregate function or has more than one argument, or the result type of argument is not equal or promotable to the parameter type of function. Creates a new over the specified argument The argument over which to perform the nest operation A new group aggregate representing the elements of the group referenced by the given argument. is null Creates a with the specified inline Lambda function implementation and formal parameters. A new expression that describes an inline Lambda function with the specified body and formal parameters. An expression that defines the logic of the Lambda function. A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. variables is null or contains null, or body is null. variables contains more than one element with the same variable name. Creates a with the specified inline Lambda function implementation and formal parameters. A new expression that describes an inline Lambda function with the specified body and formal parameters. An expression that defines the logic of the Lambda function. A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. variables is null or contains null, or body is null. variables contains more than one element with the same variable name. Creates a new with an ascending sort order and default collation. A new sort clause with the given sort key and ascending sort order. The expression that defines the sort key. key is null. key does not have an order-comparable result type. Creates a new with a descending sort order and default collation. A new sort clause with the given sort key and descending sort order. The expression that defines the sort key. key is null. key does not have an order-comparable result type. Creates a new with an ascending sort order and the specified collation. A new sort clause with the given sort key and collation, and ascending sort order. The expression that defines the sort key. The collation to sort under. key is null. collation is empty or contains only space characters. key does not have an order-comparable result type. Creates a new with a descending sort order and the specified collation. A new sort clause with the given sort key and collation, and descending sort order. The expression that defines the sort key. The collation to sort under. key is null. collation is empty or contains only space characters. key does not have an order-comparable result type. Creates a new that determines whether the given predicate holds for all elements of the input set. A new DbQuantifierExpression that represents the All operation. An expression binding that specifies the input set. An expression representing a predicate to evaluate for each member of the input set. input or predicate is null. predicate does not have a Boolean result type. Creates a new that determines whether the given predicate holds for any element of the input set. A new DbQuantifierExpression that represents the Any operation. An expression binding that specifies the input set. An expression representing a predicate to evaluate for each member of the input set. input or predicate is null. The expression produced by predicate does not have a Boolean result type. Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. An new DbApplyExpression with the specified input and apply bindings and an of CrossApply. An that specifies the input set. An that specifies logic to evaluate once for each member of the input set. input or apply is null. Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set have an apply column value of null. An new DbApplyExpression with the specified input and apply bindings and an of OuterApply. An that specifies the input set. An that specifies logic to evaluate once for each member of the input set. input or apply is null. Creates a new that unconditionally joins the sets specified by the list of input expression bindings. A new DbCrossJoinExpression, with an of CrossJoin, that represents the unconditional join of the input sets. A list of expression bindings that specifies the input sets. inputs is null or contains null element. inputs contains fewer than 2 expression bindings. Creates a new that joins the sets specified by the left and right expression bindings, on the specified join condition, using InnerJoin as the . A new DbJoinExpression, with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under the given join condition. An that specifies the left set argument. An that specifies the right set argument. An expression that specifies the condition on which to join. left, right or joinCondition is null. joinCondition does not have a Boolean result type. Creates a new that joins the sets specified by the left and right expression bindings, on the specified join condition, using LeftOuterJoin as the . A new DbJoinExpression, with an of LeftOuterJoin, that represents the left outer join operation applied to the left and right input sets under the given join condition. An that specifies the left set argument. An that specifies the right set argument. An expression that specifies the condition on which to join. left, right or joinCondition is null. joinCondition does not have a Boolean result type. Creates a new that joins the sets specified by the left and right expression bindings, on the specified join condition, using FullOuterJoin as the . A new DbJoinExpression, with an of FullOuterJoin, that represents the full outer join operation applied to the left and right input sets under the given join condition. An that specifies the left set argument. An that specifies the right set argument. An expression that specifies the condition on which to join. left, right or joinCondition is null. The expression produced by joinCondition does not have a Boolean result type. Creates a new that filters the elements in the given input set using the specified predicate. A new DbFilterExpression that produces the filtered set. An expression binding that specifies the input set. An expression representing a predicate to evaluate for each member of the input set. input or predicate is null. predicate does not have a Boolean result type. Creates a new that groups the elements of the input set according to the specified group keys and applies the given aggregates. A new DbGroupByExpression with the specified input set, grouping keys and aggregates. A that specifies the input set. A list of string-expression pairs that define the grouping columns. A list of expressions that specify aggregates to apply. input, keys or aggregates is null, keys contains a null column key or expression, or aggregates contains a null aggregate column name or aggregate. Both keys and aggregates are empty, or an invalid or duplicate column name was specified. Creates a new that projects the specified expression over the given input set. A new DbProjectExpression that represents the projection operation. An expression binding that specifies the input set. An expression to project over the set. input or projection is null. Creates a new that sorts the given input set by the given sort specifications before skipping the specified number of elements. A new DbSkipExpression that represents the skip operation. An expression binding that specifies the input set. A list of sort specifications that determine how the elements of the input set should be sorted. An expression the specifies how many elements of the ordered set to skip. input, sortOrder or count is null, or sortOrder contains null. sortOrder is empty, or count is not or or has a result type that is not equal or promotable to a 64-bit integer type. Creates a new that sorts the given input set by the specified sort specifications. A new DbSortExpression that represents the sort operation. An expression binding that specifies the input set. A list of sort specifications that determine how the elements of the input set should be sorted. input or sortOrder is null, or sortOrder contains null. sortOrder is empty. Creates a new , which represents a typed null value. An instance of DbNullExpression. The type of the null value. nullType is null. Creates a new with the given constant value. A new DbConstantExpression with the given value. The constant value to represent. value is null. value is not an instance of a valid constant type. Creates a new of the specified primitive type with the given constant value. A new DbConstantExpression with the given value and a result type of constantType. The type of the constant value. The constant value to represent. value or constantType is null. value is not an instance of a valid constant type, constantType does not represent a primitive type, or value is of a different primitive type than that represented by constantType. Creates a new that references a parameter with the specified name and type. A DbParameterReferenceExpression that represents a reference to a parameter with the specified name and type. The result type of the expression will be the same as type. The type of the referenced parameter. The name of the referenced parameter. Creates a new that references a variable with the specified name and type. A DbVariableReferenceExpression that represents a reference to a variable with the specified name and type. The result type of the expression will be the same as type. The type of the referenced variable. The name of the referenced variable. Creates a new that references the specified entity or relationship set. A new DbScanExpression based on the specified entity or relationship set. Metadata for the entity or relationship set to reference. targetSet is null. Creates an that performs the logical And of the left and right arguments. A new DbAndExpression with the specified arguments. A Boolean expression that specifies the left argument. A Boolean expression that specifies the right argument. left or right is null. left and right does not have a Boolean result type. Creates an that performs the logical Or of the left and right arguments. A new DbOrExpression with the specified arguments. A Boolean expression that specifies the left argument. A Boolean expression that specifies the right argument. left or right is null. left or right does not have a Boolean result type. Creates a that matches the result of the specified expression with the results of the constant expressions in the specified list. A DbExpression to be matched. A list of DbConstantExpression to test for a match. A new DbInExpression with the specified arguments. or is null. The result type of is different than the result type of an expression from . Creates a that performs the logical negation of the given argument. A new DbNotExpression with the specified argument. A Boolean expression that specifies the argument. argument is null. argument does not have a Boolean result type. Creates a new that divides the left argument by the right argument. A new DbArithmeticExpression representing the division operation. An expression that specifies the left argument. An expression that specifies the right argument. left or right is null. No common numeric result type exists between left or right. Creates a new that subtracts the right argument from the left argument. A new DbArithmeticExpression representing the subtraction operation. An expression that specifies the left argument. An expression that specifies the right argument. left or right is null. No common numeric result type exists between left and right. Creates a new that computes the remainder of the left argument divided by the right argument. A new DbArithmeticExpression representing the modulo operation. An expression that specifies the left argument. An expression that specifies the right argument. left or right is null. No common numeric result type exists between left and right. Creates a new that multiplies the left argument by the right argument. A new DbArithmeticExpression representing the multiplication operation. An expression that specifies the left argument. An expression that specifies the right argument. left or right is null. No common numeric result type exists between left and right. Creates a new that adds the left argument to the right argument. A new DbArithmeticExpression representing the addition operation. An expression that specifies the left argument. An expression that specifies the right argument. left or right is null. No common numeric result type exists between left and right. Creates a new that negates the value of the argument. A new DbArithmeticExpression representing the negation operation. An expression that specifies the argument. argument is null. No numeric result type exists for argument. Creates a new that negates the value of the argument. A new DbArithmeticExpression representing the negation operation. An expression that specifies the argument. argument is null. No numeric result type exists for argument. Creates a new that compares the left and right arguments for equality. A new DbComparisonExpression representing the equality comparison. An expression that specifies the left argument. An expression that specifies the right argument. left or right is null. No common equality-comparable result type exists between left and right. Creates a new that compares the left and right arguments for inequality. A new DbComparisonExpression representing the inequality comparison. An expression that specifies the left argument. An expression that specifies the right argument. left or right is null. No common equality-comparable result type exists between left and right. Creates a new that determines whether the left argument is greater than the right argument. A new DbComparisonExpression representing the greater-than comparison. An expression that specifies the left argument. An expression that specifies the right argument. left or right is null. No common order-comparable result type exists between left and right. Creates a new that determines whether the left argument is less than the right argument. A new DbComparisonExpression representing the less-than comparison. An expression that specifies the left argument. An expression that specifies the right argument. left or right is null. No common order-comparable result type exists between left and right. Creates a new that determines whether the left argument is greater than or equal to the right argument. A new DbComparisonExpression representing the greater-than-or-equal-to comparison. An expression that specifies the left argument. An expression that specifies the right argument. left or right is null. No common order-comparable result type exists between left and right. Creates a new that determines whether the left argument is less than or equal to the right argument. A new DbComparisonExpression representing the less-than-or-equal-to comparison. An expression that specifies the left argument. An expression that specifies the right argument. left or right is null. No common result type that is both equality- and order-comparable exists between left and right. Creates a new that determines whether the specified argument is null. A new DbIsNullExpression with the specified argument. An expression that specifies the argument. argument is null. argument has a collection result type. Creates a new that compares the specified input string to the given pattern. A new DbLikeExpression with the specified input, pattern and a null escape. An expression that specifies the input string. An expression that specifies the pattern string. Argument or pattern is null. Argument or pattern does not have a string result type. Creates a new that compares the specified input string to the given pattern using the optional escape. A new DbLikeExpression with the specified input, pattern and escape. An expression that specifies the input string. An expression that specifies the pattern string. An optional expression that specifies the escape string. argument, pattern or escape is null. argument, pattern or escape does not have a string result type. Creates a new that applies a cast operation to a polymorphic argument. A new DbCastExpression with the specified argument and target type. The argument to which the cast should be applied. Type metadata that specifies the type to cast to. Argument or toType is null. The specified cast is not valid. Creates a new . A new DbTreatExpression with the specified argument and type. An expression that specifies the instance. Type metadata for the treat-as type. argument or treatType is null. treatType is not in the same type hierarchy as the result type of argument. Creates a new that produces a set consisting of the elements of the given input set that are of the specified type. A new DbOfTypeExpression with the specified set argument and type, and an ExpressionKind of . A that specifies the input set. Type metadata for the type that elements of the input set must have to be included in the resulting set. argument or type is null. argument does not have a collection result type, or type is not a type in the same type hierarchy as the element type of the collection result type of argument. Creates a new that produces a set consisting of the elements of the given input set that are of exactly the specified type. A new DbOfTypeExpression with the specified set argument and type, and an ExpressionKind of . An that specifies the input set. Type metadata for the type that elements of the input set must match exactly to be included in the resulting set. argument or type is null. argument does not have a collection result type, or type is not a type in the same type hierarchy as the element type of the collection result type of argument. Creates a new that determines whether the given argument is of the specified type or a subtype. A new DbIsOfExpression with the specified instance and type and DbExpressionKind IsOf. An expression that specifies the instance. Type metadata that specifies the type that the instance's result type should be compared to. argument or type is null. type is not in the same type hierarchy as the result type of argument. Creates a new expression that determines whether the given argument is of the specified type, and only that type (not a subtype). A new DbIsOfExpression with the specified instance and type and DbExpressionKind IsOfOnly. An expression that specifies the instance. Type metadata that specifies the type that the instance's result type should be compared to. argument or type is null. type is not in the same type hierarchy as the result type of argument. Creates a new that retrieves a specific Entity given a reference expression. A new DbDerefExpression that retrieves the specified Entity. An that provides the reference. This expression must have a reference Type. argument is null. argument does not have a reference result type. Creates a new that retrieves the ref of the specifed entity in structural form. A new DbEntityRefExpression that retrieves a reference to the specified entity. The expression that provides the entity. This expression must have an entity result type. argument is null. argument does not have an entity result type. Creates a new that encodes a reference to a specific entity based on key values. A new DbRefExpression that references the element with the specified key values in the given entity set. The entity set in which the referenced element resides. A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. entitySet is null, or keyValues is null or contains null. The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. Creates a new that encodes a reference to a specific entity based on key values. A new DbRefExpression that references the element with the specified key values in the given entity set. The entity set in which the referenced element resides. A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. entitySet is null, or keyValues is null or contains null. The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. Creates a new that encodes a reference to a specific entity of a given type based on key values. A new DbRefExpression that references the element with the specified key values in the given entity set. The entity set in which the referenced element resides. The specific type of the referenced entity. This must be an entity type from the same hierarchy as the entity set's element type. A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. entitySet or entityType is null, or keyValues is null or contains null. entityType is not from the same type hierarchy (a subtype, supertype, or the same type) as entitySet's element type. The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. Creates a new that encodes a reference to a specific entity of a given type based on key values. A new DbRefExpression that references the element with the specified key values in the given entity set. The entity set in which the referenced element resides. The specific type of the referenced entity. This must be an entity type from the same hierarchy as the entity set's element type. A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. entitySet or entityType is null, or keyValues is null or contains null. entityType is not from the same type hierarchy (a subtype, supertype, or the same type) as entitySet's element type. The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. Creates a new that encodes a reference to a specific Entity based on key values. A new DbRefExpression that references the element with the specified key values in the given Entity set. The Entity set in which the referenced element resides. A that constructs a record with columns that match (in number, type, and order) the Key properties of the referenced Entity type. entitySet or keyRow is null. keyRow does not have a record result type that matches the key properties of the referenced entity set's entity type. Creates a new that encodes a reference to a specific Entity based on key values. A new DbRefExpression that references the element with the specified key values in the given Entity set. The Entity set in which the referenced element resides. A that constructs a record with columns that match (in number, type, and order) the Key properties of the referenced Entity type. The type of the Entity that the reference should refer to. entitySet, keyRow or entityType is null. entityType is not in the same type hierarchy as the entity set's entity type, or keyRow does not have a record result type that matches the key properties of the referenced entity set's entity type. Creates a new that retrieves the key values of the specifed reference in structural form. A new DbRefKeyExpression that retrieves the key values of the specified reference. The expression that provides the reference. This expression must have a reference Type with an Entity element type. argument is null. argument does not have a reference result type. Creates a new representing the navigation of a composition or association relationship. A new DbRelationshipNavigationExpression representing the navigation of the specified from and to relation ends of the specified relation type from the specified navigation source instance. An expression that specifies the instance from which navigation should occur. Metadata for the property that represents the end of the relationship from which navigation should occur. Metadata for the property that represents the end of the relationship to which navigation should occur. fromEnd, toEnd or navigateFrom is null. fromEnd and toEnd are not declared by the same relationship type, or navigateFrom has a result type that is not compatible with the property type of fromEnd. Creates a new representing the navigation of a composition or association relationship. A new DbRelationshipNavigationExpression representing the navigation of the specified from and to relation ends of the specified relation type from the specified navigation source instance. Metadata for the relation type that represents the relationship. The name of the property of the relation type that represents the end of the relationship from which navigation should occur. The name of the property of the relation type that represents the end of the relationship to which navigation should occur. An expression the specifies the instance from which naviagtion should occur. type, fromEndName, toEndName or navigateFrom is null. type is not associated with this command tree's metadata workspace or navigateFrom is associated with a different command tree, or type does not declare a relation end property with name toEndName or fromEndName, or navigateFrom has a result type that is not compatible with the property type of the relation end property with name fromEndName. Creates a new that removes duplicates from the given set argument. A new DbDistinctExpression that represents the distinct operation applied to the specified set argument. An expression that defines the set over which to perfom the distinct operation. argument is null. argument does not have a collection result type. Creates a new that converts a set into a singleton. A DbElementExpression that represents the conversion of the set argument to a singleton. An expression that specifies the input set. argument is null. argument does not have a collection result type. Creates a new that determines whether the specified set argument is an empty set. A new DbIsEmptyExpression with the specified argument. An expression that specifies the input set. argument is null. argument does not have a collection result type. Creates a new that computes the subtraction of the right set argument from the left set argument. A new DbExceptExpression that represents the difference of the left argument from the right argument. An expression that defines the left set argument. An expression that defines the right set argument. left or right is null. No common collection result type exists between left and right. Creates a new that computes the intersection of the left and right set arguments. A new DbIntersectExpression that represents the intersection of the left and right arguments. An expression that defines the left set argument. An expression that defines the right set argument. left or right is null. No common collection result type exists between left or right. Creates a new that computes the union of the left and right set arguments and does not remove duplicates. A new DbUnionAllExpression that union, including duplicates, of the the left and right arguments. An expression that defines the left set argument. An expression that defines the right set argument. left or right is null. No common collection result type with an equality-comparable element type exists between left and right. Creates a new that restricts the number of elements in the Argument collection to the specified count Limit value. Tied results are not included in the output. A new DbLimitExpression with the specified argument and count limit values that does not include tied results. An expression that specifies the input collection. An expression that specifies the limit value. argument or count is null. argument does not have a collection result type, or count does not have a result type that is equal or promotable to a 64-bit integer type. Creates a new . A new DbCaseExpression with the specified cases and default result. A list of expressions that provide the conditional for of each case. A list of expressions that provide the result of each case. An expression that defines the result when no case is matched. whenExpressions or thenExpressions is null or contains null, or elseExpression is null. whenExpressions or thenExpressions is empty or whenExpressions contains an expression with a non-Boolean result type, or no common result type exists for all expressions in thenExpressions and elseExpression. Creates a new representing the invocation of the specified function with the given arguments. A new DbFunctionExpression representing the function invocation. Metadata for the function to invoke. A list of expressions that provide the arguments to the function. function is null, or arguments is null or contains null. The count of arguments does not equal the number of parameters declared by function, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding function parameter type. Creates a new representing the invocation of the specified function with the given arguments. A new DbFunctionExpression representing the function invocation. Metadata for the function to invoke. Expressions that provide the arguments to the function. function is null, or arguments is null or contains null. The count of arguments does not equal the number of parameters declared by function, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding function parameter type. Creates a new representing the application of the specified Lambda function to the given arguments. A new Expression representing the Lambda function application. A instance representing the Lambda function to apply. A list of expressions that provide the arguments. lambda or arguments is null. The count of arguments does not equal the number of variables declared by lambda, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding variable type. Creates a new representing the application of the specified Lambda function to the given arguments. A new expression representing the Lambda function application. A instance representing the Lambda function to apply. Expressions that provide the arguments. lambda or arguments is null. The count of arguments does not equal the number of variables declared by lambda, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding variable type. Creates a new . If the type argument is a collection type, the arguments specify the elements of the collection. Otherwise the arguments are used as property or column values in the new instance. A new DbNewInstanceExpression with the specified type and arguments. The type of the new instance. Expressions that specify values of the new instances, interpreted according to the instance's type. instanceType or arguments is null, or arguments contains null. arguments is empty or the result types of the contained expressions do not match the requirements of instanceType (as explained in the remarks section). Creates a new . If the type argument is a collection type, the arguments specify the elements of the collection. Otherwise the arguments are used as property or column values in the new instance. A new DbNewInstanceExpression with the specified type and arguments. The type of the new instance. Expressions that specify values of the new instances, interpreted according to the instance's type. instanceType or arguments is null, or arguments contains null. arguments is empty or the result types of the contained expressions do not match the requirements of instanceType (as explained in the remarks section). Creates a new that constructs a collection containing the specified elements. The type of the collection is based on the common type of the elements. If no common element type exists an exception is thrown. A new DbNewInstanceExpression with the specified collection type and arguments. A list of expressions that provide the elements of the collection. elements is null, or contains null. elements is empty or contains expressions for which no common result type exists. Creates a new that constructs a collection containing the specified elements. The type of the collection is based on the common type of the elements. If no common element type exists an exception is thrown. A new DbNewInstanceExpression with the specified collection type and arguments. A list of expressions that provide the elements of the collection. elements is null, or contains null.. elements is empty or contains expressions for which no common result type exists. Creates a new that constructs an empty collection of the specified collection type. A new DbNewInstanceExpression with the specified collection type and an empty Arguments list. The type metadata for the collection to create collectionType is null. collectionType is not a collection type. Creates a new that produces a row with the specified named columns and the given values, specified as expressions. A new DbNewInstanceExpression that represents the construction of the row. A list of string-DbExpression key-value pairs that defines the structure and values of the row. columnValues is null or contains an element with a null column name or expression. columnValues is empty, or contains a duplicate or invalid column name. Creates a new representing the retrieval of the specified property. A new DbPropertyExpression representing the property retrieval. The instance from which to retrieve the property. May be null if the property is static. Metadata for the property to retrieve. propertyMetadata is null or instance is null and the property is not static. Creates a new representing the retrieval of the specified navigation property. A new DbPropertyExpression representing the navigation property retrieval. The instance from which to retrieve the navigation property. Metadata for the navigation property to retrieve. navigationProperty or instance is null. Creates a new representing the retrieval of the specified relationship end member. A new DbPropertyExpression representing the relationship end member retrieval. The instance from which to retrieve the relationship end member. Metadata for the relationship end member to retrieve. relationshipEnd is null or instance is null and the property is not static. Creates a new representing the retrieval of the instance property with the specified name from the given instance. A new DbPropertyExpression that represents the property retrieval. The instance from which to retrieve the property. The name of the property to retrieve. propertyName is null or instance is null and the property is not static. No property with the specified name is declared by the type of instance. Creates a new representing setting a property to a value. The property to be set. The value to set the property to. The newly created set clause. Creates a new that determines whether the given predicate holds for all elements of the input set. A new DbQuantifierExpression that represents the All operation. An expression that specifies the input set. A method representing a predicate to evaluate for each member of the input set. This method must produce an expression with a Boolean result type that provides the predicate logic. source or predicate is null. The expression produced by predicate is null. source does not have a collection result type. The expression produced by Predicate does not have a Boolean result type. Creates a new that determines whether the specified set argument is non-empty. A new applied to a new with the specified argument. An expression that specifies the input set. source is null. source does not have a collection result type. Creates a new that determines whether the specified set argument is non-empty. A new applied to a new with the specified argument. An expression that specifies the input set. argument is null. argument does not have a collection result type. Creates a new that determines whether the given predicate holds for any element of the input set. A new DbQuantifierExpression that represents the Any operation. An expression that specifies the input set. A method representing the predicate to evaluate for each member of the input set. This method must produce an expression with a Boolean result type that provides the predicate logic. source or predicate is null. The expression produced by predicate is null. source does not have a collection result type. The expression produced by predicate does not have a Boolean result type. Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. An new DbApplyExpression with the specified input and apply bindings and an of CrossApply. A that specifies the input set. A method that specifies the logic to evaluate once for each member of the input set. source or apply is null. source does not have a collection result type. The result of apply contains a name or expression that is null. The result of apply contains a name or expression that is not valid in an expression binding. Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set have an apply column value of null. An new DbApplyExpression with the specified input and apply bindings and an of OuterApply. A that specifies the input set. A method that specifies the logic to evaluate once for each member of the input set. source or apply is null. Source does not have a collection result type. The result of apply contains a name or expression that is null. The result of apply contains a name or expression that is not valid in an expression binding. Creates a new that joins the sets specified by the left and right expressions, on the specified join condition, using FullOuterJoin as the . A new DbJoinExpression, with an of FullOuterJoin, that represents the full outer join operation applied to the left and right input sets under the given join condition. A that specifies the left set argument. A that specifies the right set argument. A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition. left, right or joinCondition is null. left or right does not have a collection result type. The expression produced by joinCondition is null. The expression produced by joinCondition does not have a Boolean result type. Creates a new that joins the sets specified by the left and right expressions, on the specified join condition, using InnerJoin as the . A new DbJoinExpression, with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under the given join condition. A that specifies the left set argument. A that specifies the right set argument. A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition. left, right or joinCondition is null. left or right does not have a collection result type. The expression produced by joinCondition is null. The expression produced by joinCondition does not have a Boolean result type. Creates a new that joins the sets specified by the left and right expressions, on the specified join condition, using LeftOuterJoin as the . A new DbJoinExpression, with an of LeftOuterJoin, that represents the left outer join operation applied to the left and right input sets under the given join condition. A that specifies the left set argument. A that specifies the right set argument. A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition. left, right or joinCondition is null. left or right does not have a collection result type. The expression produced by joinCondition is null. The expression produced by joinCondition does not have a Boolean result type. Creates a new that joins the sets specified by the outer and inner expressions, on an equality condition between the specified outer and inner keys, using InnerJoin as the . A new DbJoinExpression, with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under a join condition that compares the outer and inner key values for equality. A that specifies the outer set argument. A that specifies the inner set argument. A method that specifies how the outer key value should be derived from an element of the outer set. A method that specifies how the inner key value should be derived from an element of the inner set. outer, inner, outerKey or innerKey is null. outer or inner does not have a collection result type. The expression produced by outerKey or innerKey is null. The expressions produced by outerKey and innerKey are not comparable for equality. Creates a new that projects the specified selector over the sets specified by the outer and inner expressions, joined on an equality condition between the specified outer and inner keys, using InnerJoin as the . A new DbProjectExpression with the specified selector as its projection, and a new DbJoinExpression as its input. The input DbJoinExpression is created with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under a join condition that compares the outer and inner key values for equality. A that specifies the outer set argument. A that specifies the inner set argument. A method that specifies how the outer key value should be derived from an element of the outer set. A method that specifies how the inner key value should be derived from an element of the inner set. A method that specifies how an element of the result set should be derived from elements of the inner and outer sets. This method must produce an instance of a type that is compatible with Join and can be resolved into a . Compatibility requirements for TSelector are described in remarks. The type of the selector . outer, inner, outerKey, innerKey or selector is null. outer or inner does not have a collection result type. The expression produced by outerKey or innerKey is null. The result of selector is null after conversion to DbExpression. The expressions produced by outerKey and innerKey is not comparable for equality. The result of Selector is not compatible with SelectMany. Creates a new that sorts the given input set by the specified sort key, with ascending sort order and default collation. A new DbSortExpression that represents the order-by operation. An expression that specifies the input set. A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. source or sortKey is null. The expression produced by sortKey is null. source does not have a collection result type. The expression produced by sortKey does not have an order-comparable result type. Creates a new that sorts the given input set by the specified sort key, with ascending sort order and the specified collation. A new DbSortExpression that represents the order-by operation. An expression that specifies the input set. A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. The collation to sort under. source, sortKey or collation is null. The expression produced by sortKey is null. source does not have a collection result type. The expression produced by sortKey does not have an order-comparable string result type. collation is empty or contains only space characters. Creates a new that sorts the given input set by the specified sort key, with descending sort order and default collation. A new DbSortExpression that represents the order-by operation. An expression that specifies the input set. A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. source or sortKey is null. The expression produced by sortKey is null. source does not have a collection result type. The expression produced by sortKey does not have an order-comparable result type. Creates a new that sorts the given input set by the specified sort key, with descending sort order and the specified collation. A new DbSortExpression that represents the order-by operation. An expression that specifies the input set. A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. The collation to sort under. source, sortKey or collation is null. The expression produced by sortKey is null. source does not have a collection result type. The expression produced by sortKey does not have an order-comparable string result type. collation is empty or contains only space characters. Creates a new that selects the specified expression over the given input set. A new DbProjectExpression that represents the select operation. An expression that specifies the input set. A method that specifies how to derive the projected expression given a member of the input set. This method must produce an instance of a type that is compatible with Select and can be resolved into a . Compatibility requirements for TProjection are described in remarks. The method result type of projection. source or projection is null. The result of projection is null. Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. A is then created that selects the apply column from each row, producing the overall collection of apply results. An new DbProjectExpression that selects the apply column from a new DbApplyExpression with the specified input and apply bindings and an of CrossApply. A that specifies the input set. A method that represents the logic to evaluate once for each member of the input set. source or apply is null. The expression produced by apply is null. source does not have a collection result type. The expression produced by apply does not have a collection type. Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. A is then created that selects the specified selector over each row, producing the overall collection of results. An new DbProjectExpression that selects the result of the given selector from a new DbApplyExpression with the specified input and apply bindings and an of CrossApply. A that specifies the input set. A method that represents the logic to evaluate once for each member of the input set. A method that specifies how an element of the result set should be derived given an element of the input and apply sets. This method must produce an instance of a type that is compatible with SelectMany and can be resolved into a . Compatibility requirements for TSelector are described in remarks. The method result type of selector. source, apply or selector is null. The expression produced by apply is null. The result of selector is null on conversion to DbExpression. source does not have a collection result type. The expression produced by apply does not have a collection type. does not have a collection type. Creates a new that skips the specified number of elements from the given sorted input set. A new DbSkipExpression that represents the skip operation. A that specifies the sorted input set. An expression the specifies how many elements of the ordered set to skip. argument or count is null. count is not or or has a result type that is not equal or promotable to a 64-bit integer type. Creates a new that restricts the number of elements in the Argument collection to the specified count Limit value. Tied results are not included in the output. A new DbLimitExpression with the specified argument and count limit values that does not include tied results. An expression that specifies the input collection. An expression that specifies the limit value. argument or count is null. argument does not have a collection result type, count does not have a result type that is equal or promotable to a 64-bit integer type. Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in ascending sort order and with default collation. A new DbSortExpression that represents the new overall order-by operation. A DbSortExpression that specifies the ordered input set. A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. source or sortKey is null. The expression produced by sortKey is null. source does not have a collection result type. sortKey does not have an order-comparable result type. Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in ascending sort order and with the specified collation. A new DbSortExpression that represents the new overall order-by operation. A DbSortExpression that specifies the ordered input set. A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. The collation to sort under. source, sortKey or collation is null. The expression produced by sortKey is null. source does not have a collection result type. The expression produced by sortKey does not have an order-comparable string result type. collation is empty or contains only space characters. Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in descending sort order and with default collation. A new DbSortExpression that represents the new overall order-by operation. A DbSortExpression that specifies the ordered input set. A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. source or sortKey is null. The expression produced by sortKey is null. source does not have a collection result type. The expression produced by sortKey does not have an order-comparable result type. Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in descending sort order and with the specified collation. A new DbSortExpression that represents the new overall order-by operation. A DbSortExpression that specifies the ordered input set. A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. The collation to sort under. source, sortKey or collation is null. The expression produced by sortKey is null. source does not have a collection result type. The expression produced by sortKey does not have an order-comparable string result type. collation is empty or contains only space characters. Creates a new that filters the elements in the given input set using the specified predicate. A new DbQuantifierExpression that represents the Any operation. An expression that specifies the input set. A method representing the predicate to evaluate for each member of the input set. This method must produce an expression with a Boolean result type that provides the predicate logic. source or predicate is null. The expression produced by predicate is null. The expression produced by predicate does not have a Boolean result type. Creates a new that computes the union of the left and right set arguments with duplicates removed. A new DbExpression that computes the union, without duplicates, of the the left and right arguments. An expression that defines the left set argument. An expression that defines the right set argument. left or right is null. No common collection result type with an equality-comparable element type exists between left and right. Gets a with the Boolean value true. A with the Boolean value true. Gets a with the Boolean value false. A with the Boolean value false. Provides an API to construct s that invoke canonical EDM functions, and allows that API to be accessed as extension methods on the expression type itself. Creates a that invokes the canonical 'Avg' function over the specified collection. The result type of the expression is the same as the element type of the collection. A new DbFunctionExpression that produces the average value. An expression that specifies the collection from which the average value should be computed. Creates a that invokes the canonical 'Count' function over the specified collection. The result type of the expression is Edm.Int32. A new DbFunctionExpression that produces the count value. An expression that specifies the collection over which the count value should be computed. Creates a that invokes the canonical 'BigCount' function over the specified collection. The result type of the expression is Edm.Int64. A new DbFunctionExpression that produces the count value. An expression that specifies the collection over which the count value should be computed. Creates a that invokes the canonical 'Max' function over the specified collection. The result type of the expression is the same as the element type of the collection. A new DbFunctionExpression that produces the maximum value. An expression that specifies the collection from which the maximum value should be retrieved Creates a that invokes the canonical 'Min' function over the specified collection. The result type of the expression is the same as the element type of the collection. A new DbFunctionExpression that produces the minimum value. An expression that specifies the collection from which the minimum value should be retrieved. Creates a that invokes the canonical 'Sum' function over the specified collection. The result type of the expression is the same as the element type of the collection. A new DbFunctionExpression that produces the sum. An expression that specifies the collection from which the sum should be computed. Creates a that invokes the canonical 'StDev' function over the non-null members of the specified collection. The result type of the expression is Edm.Double. A new DbFunctionExpression that produces the standard deviation value over non-null members of the collection. An expression that specifies the collection for which the standard deviation should be computed. Creates a that invokes the canonical 'StDevP' function over the population of the specified collection. The result type of the expression is Edm.Double. A new DbFunctionExpression that produces the standard deviation value. An expression that specifies the collection for which the standard deviation should be computed. Creates a that invokes the canonical 'Var' function over the non-null members of the specified collection. The result type of the expression is Edm.Double. A new DbFunctionExpression that produces the statistical variance value for the non-null members of the collection. An expression that specifies the collection for which the statistical variance should be computed. Creates a that invokes the canonical 'VarP' function over the population of the specified collection. The result type of the expression Edm.Double. A new DbFunctionExpression that produces the statistical variance value. An expression that specifies the collection for which the statistical variance should be computed. Creates a that invokes the canonical 'Concat' function with the specified arguments, which must each have a string result type. The result type of the expression is string. A new DbFunctionExpression that produces the concatenated string. An expression that specifies the string that should appear first in the concatenated result string. An expression that specifies the string that should appear second in the concatenated result string. Creates a that invokes the canonical 'Contains' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether or not searchedForString occurs within searchedString. An expression that specifies the string to search for any occurence of searchedForString. An expression that specifies the string to search for in searchedString. Creates a that invokes the canonical 'EndsWith' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether or not stringArgument ends with suffix. An expression that specifies the string that is searched at the end for string suffix. An expression that specifies the target string that is searched for at the end of stringArgument. Creates a that invokes the canonical 'IndexOf' function with the specified arguments, which must each have a string result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the first index of stringToFind in searchString. An expression that specifies the string to search for stringToFind. An expression that specifies the string to locate within searchString should be checked. Creates a that invokes the canonical 'Left' function with the specified arguments, which must have a string and integer numeric result type. The result type of the expression is string. A new DbFunctionExpression that returns the the leftmost substring of length length from stringArgument. An expression that specifies the string from which to extract the leftmost substring. An expression that specifies the length of the leftmost substring to extract from stringArgument. Creates a that invokes the canonical 'Length' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the length of stringArgument. An expression that specifies the string for which the length should be computed. Creates a that invokes the canonical 'Replace' function with the specified arguments, which must each have a string result type. The result type of the expression is also string. A new DbFunctionExpression than returns a new string based on stringArgument where every occurence of toReplace is replaced by replacement. An expression that specifies the string in which to perform the replacement operation. An expression that specifies the string that is replaced. An expression that specifies the replacement string. Creates a that invokes the canonical 'Reverse' function with the specified argument, which must have a string result type. The result type of the expression is also string. A new DbFunctionExpression that produces the reversed value of stringArgument. An expression that specifies the string to reverse. Creates a that invokes the canonical 'Right' function with the specified arguments, which must have a string and integer numeric result type. The result type of the expression is string. A new DbFunctionExpression that returns the the rightmost substring of length length from stringArgument. An expression that specifies the string from which to extract the rightmost substring. An expression that specifies the length of the rightmost substring to extract from stringArgument. Creates a that invokes the canonical 'StartsWith' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether or not stringArgument starts with prefix. An expression that specifies the string that is searched at the start for string prefix. An expression that specifies the target string that is searched for at the start of stringArgument. Creates a that invokes the canonical 'Substring' function with the specified arguments, which must have a string and integer numeric result types. The result type of the expression is string. A new DbFunctionExpression that returns the substring of length length from stringArgument starting at start. An expression that specifies the string from which to extract the substring. An expression that specifies the starting index from which the substring should be taken. An expression that specifies the length of the substring. Creates a that invokes the canonical 'ToLower' function with the specified argument, which must have a string result type. The result type of the expression is also string. A new DbFunctionExpression that returns value of stringArgument converted to lower case. An expression that specifies the string that should be converted to lower case. Creates a that invokes the canonical 'ToUpper' function with the specified argument, which must have a string result type. The result type of the expression is also string. A new DbFunctionExpression that returns value of stringArgument converted to upper case. An expression that specifies the string that should be converted to upper case. Creates a that invokes the canonical 'Trim' function with the specified argument, which must have a string result type. The result type of the expression is also string. A new DbFunctionExpression that returns value of stringArgument with leading and trailing space removed. An expression that specifies the string from which leading and trailing space should be removed. Creates a that invokes the canonical 'RTrim' function with the specified argument, which must have a string result type. The result type of the expression is also string. A new DbFunctionExpression that returns value of stringArgument with trailing space removed. An expression that specifies the string from which trailing space should be removed. Creates a that invokes the canonical 'LTrim' function with the specified argument, which must have a string result type. The result type of the expression is also string. A new DbFunctionExpression that returns value of stringArgument with leading space removed. An expression that specifies the string from which leading space should be removed. Creates a that invokes the canonical 'Year' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the integer year value from dateValue. An expression that specifies the value from which the year should be retrieved. Creates a that invokes the canonical 'Month' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the integer month value from dateValue. An expression that specifies the value from which the month should be retrieved. Creates a that invokes the canonical 'Day' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the integer day value from dateValue. An expression that specifies the value from which the day should be retrieved. Creates a that invokes the canonical 'DayOfYear' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the integer day of year value from dateValue. An expression that specifies the value from which the day within the year should be retrieved. Creates a that invokes the canonical 'Hour' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the integer hour value from timeValue. An expression that specifies the value from which the hour should be retrieved. Creates a that invokes the canonical 'Minute' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the integer minute value from timeValue. An expression that specifies the value from which the minute should be retrieved. Creates a that invokes the canonical 'Second' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the integer second value from timeValue. An expression that specifies the value from which the second should be retrieved. Creates a that invokes the canonical 'Millisecond' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the integer millisecond value from timeValue. An expression that specifies the value from which the millisecond should be retrieved. Creates a that invokes the canonical 'GetTotalOffsetMinutes' function with the specified argument, which must have a DateTimeOffset result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the number of minutes dateTimeOffsetArgument is offset from GMT. An expression that specifies the DateTimeOffset value from which the minute offset from GMT should be retrieved. Creates a that invokes the canonical 'CurrentDateTime' function. A new DbFunctionExpression that returns the current date and time as an Edm.DateTime instance. Creates a that invokes the canonical 'CurrentDateTimeOffset' function. A new DbFunctionExpression that returns the current date and time as an Edm.DateTimeOffset instance. Creates a that invokes the canonical 'CurrentUtcDateTime' function. A new DbFunctionExpression that returns the current UTC date and time as an Edm.DateTime instance. Creates a that invokes the canonical 'TruncateTime' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is the same as the result type of dateValue. A new DbFunctionExpression that returns the value of dateValue with time set to zero. An expression that specifies the value for which the time portion should be truncated. Creates a that invokes the canonical 'CreateDateTime' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.DateTime. A new DbFunctionExpression that returns a new DateTime based on the specified values. An expression that provides the year value for the new DateTime instance. An expression that provides the month value for the new DateTime instance. An expression that provides the day value for the new DateTime instance. An expression that provides the hour value for the new DateTime instance. An expression that provides the minute value for the new DateTime instance. An expression that provides the second value for the new DateTime instance. Creates a that invokes the canonical 'CreateDateTimeOffset' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.DateTimeOffset. A new DbFunctionExpression that returns a new DateTimeOffset based on the specified values. An expression that provides the year value for the new DateTimeOffset instance. An expression that provides the month value for the new DateTimeOffset instance. An expression that provides the day value for the new DateTimeOffset instance. An expression that provides the hour value for the new DateTimeOffset instance. An expression that provides the minute value for the new DateTimeOffset instance. An expression that provides the second value for the new DateTimeOffset instance. An expression that provides the number of minutes in the time zone offset value for the new DateTimeOffset instance. Creates a that invokes the canonical 'CreateTime' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.Time. A new DbFunctionExpression that returns a new Time based on the specified values. An expression that provides the hour value for the new DateTime instance. An expression that provides the minute value for the new DateTime instance. An expression that provides the second value for the new DateTime instance. Creates a that invokes the canonical 'AddYears' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue. A new DbFunctionExpression that adds the number of years specified by addValue to the value specified by dateValue. An expression that specifies the value to which addValueshould be added. An expression that specifies the number of years to add to dateValue. Creates a that invokes the canonical 'AddMonths' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue. A new DbFunctionExpression that adds the number of months specified by addValue to the value specified by dateValue. An expression that specifies the value to which addValueshould be added. An expression that specifies the number of months to add to dateValue. Creates a that invokes the canonical 'AddDays' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue. A new DbFunctionExpression that adds the number of days specified by addValue to the value specified by dateValue. An expression that specifies the value to which addValueshould be added. An expression that specifies the number of days to add to dateValue. Creates a that invokes the canonical 'AddHours' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. A new DbFunctionExpression that adds the number of hours specified by addValue to the value specified by timeValue. An expression that specifies the value to which addValueshould be added. An expression that specifies the number of hours to add to timeValue. Creates a that invokes the canonical 'AddMinutes' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. A new DbFunctionExpression that adds the number of minutes specified by addValue to the value specified by timeValue. An expression that specifies the value to which addValueshould be added. An expression that specifies the number of minutes to add to timeValue. Creates a that invokes the canonical 'AddSeconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. A new DbFunctionExpression that adds the number of seconds specified by addValue to the value specified by timeValue. An expression that specifies the value to which addValueshould be added. An expression that specifies the number of seconds to add to timeValue. Creates a that invokes the canonical 'AddMilliseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. A new DbFunctionExpression that adds the number of milliseconds specified by addValue to the value specified by timeValue. An expression that specifies the value to which addValueshould be added. An expression that specifies the number of milliseconds to add to timeValue. Creates a that invokes the canonical 'AddMicroseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. A new DbFunctionExpression that adds the number of microseconds specified by addValue to the value specified by timeValue. An expression that specifies the value to which addValueshould be added. An expression that specifies the number of microseconds to add to timeValue. Creates a that invokes the canonical 'AddNanoseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. A new DbFunctionExpression that adds the number of nanoseconds specified by addValue to the value specified by timeValue. An expression that specifies the value to which addValueshould be added. An expression that specifies the number of nanoseconds to add to timeValue. Creates a that invokes the canonical 'DiffYears' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the number of years that is the difference between dateValue1 and dateValue2. An expression that specifies the first date value argument. An expression that specifies the second date value argument. Creates a that invokes the canonical 'DiffMonths' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the number of months that is the difference between dateValue1 and dateValue2. An expression that specifies the first date value argument. An expression that specifies the second date value argument. Creates a that invokes the canonical 'DiffDays' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the number of days that is the difference between dateValue1 and dateValue2. An expression that specifies the first date value argument. An expression that specifies the second date value argument. Creates a that invokes the canonical 'DiffHours' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the number of hours that is the difference between timeValue1 and timeValue2. An expression that specifies the first time value argument. An expression that specifies the second time value argument. Creates a that invokes the canonical 'DiffMinutes' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the number of minutes that is the difference between timeValue1 and timeValue2. An expression that specifies the first time value argument. An expression that specifies the second time value argument. Creates a that invokes the canonical 'DiffSeconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the number of seconds that is the difference between timeValue1 and timeValue2. An expression that specifies the first time value argument. An expression that specifies the second time value argument. Creates a that invokes the canonical 'DiffMilliseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the number of milliseconds that is the difference between timeValue1 and timeValue2. An expression that specifies the first time value argument. An expression that specifies the second time value argument. Creates a that invokes the canonical 'DiffMicroseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the number of microseconds that is the difference between timeValue1 and timeValue2. An expression that specifies the first time value argument. An expression that specifies the second time value argument. Creates a that invokes the canonical 'DiffNanoseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the number of nanoseconds that is the difference between timeValue1 and timeValue2. An expression that specifies the first time value argument. An expression that specifies the second time value argument. Creates a that invokes the canonical 'Round' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value. A new DbFunctionExpression that rounds the specified argument to the nearest integer value. An expression that specifies the numeric value to round. Creates a that invokes the canonical 'Round' function with the specified arguments, which must have a single, double or decimal, and integer result types. The result type of the expression is the same as the result type of value. A new DbFunctionExpression that rounds the specified argument to the nearest integer value, with precision as specified by digits. An expression that specifies the numeric value to round. An expression that specifies the number of digits of precision to use when rounding. Creates a that invokes the canonical 'Floor' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value. A new DbFunctionExpression that returns the largest integer value not greater than value. An expression that specifies the numeric value. Creates a that invokes the canonical 'Ceiling' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value. A new DbFunctionExpression that returns the smallest integer value not less than than value. An expression that specifies the numeric value. Creates a that invokes the canonical 'Abs' function with the specified argument, which must each have a numeric result type. The result type of the expression is the same as the result type of value. A new DbFunctionExpression that returns the absolute value of value. An expression that specifies the numeric value. Creates a that invokes the canonical 'Truncate' function with the specified arguments, which must have a single, double or decimal, and integer result types. The result type of the expression is the same as the result type of value. A new DbFunctionExpression that truncates the specified argument to the nearest integer value, with precision as specified by digits. An expression that specifies the numeric value to truncate. An expression that specifies the number of digits of precision to use when truncating. Creates a that invokes the canonical 'Power' function with the specified arguments, which must have numeric result types. The result type of the expression is the same as the result type of baseArgument. A new DbFunctionExpression that returns the value of baseArgument raised to the power specified by exponent. An expression that specifies the numeric value to raise to the given power. An expression that specifies the power to which baseArgument should be raised. Creates a that invokes the canonical 'BitwiseAnd' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments. A new DbFunctionExpression that returns the value produced by performing the bitwise AND of value1 and value2. An expression that specifies the first operand. An expression that specifies the second operand. Creates a that invokes the canonical 'BitwiseOr' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments. A new DbFunctionExpression that returns the value produced by performing the bitwise OR of value1 and value2. An expression that specifies the first operand. An expression that specifies the second operand. Creates a that invokes the canonical 'BitwiseNot' function with the specified argument, which must have an integer numeric result type. The result type of the expression is the same as the type of the arguments. A new DbFunctionExpression that returns the value produced by performing the bitwise NOT of value. An expression that specifies the first operand. Creates a that invokes the canonical 'BitwiseXor' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments. A new DbFunctionExpression that returns the value produced by performing the bitwise XOR (exclusive OR) of value1 and value2. An expression that specifies the first operand. An expression that specifies the second operand. Creates a that invokes the canonical 'NewGuid' function. A new DbFunctionExpression that returns a new GUID value. Provides a constructor-like means of calling . Initializes a new instance of the class with the specified first column value and optional successive column values. A key-value pair that provides the first column in the new row instance. (required) A key-value pairs that provide any subsequent columns in the new row instance. (optional) Creates a new that constructs a new row based on the columns contained in this Row instance. A new DbNewInstanceExpression that constructs a row with the same column names and DbExpression values as this Row instance. Converts the given Row instance into an instance of The Row instance. A DbExpression based on the Row instance is null. Provides an API to construct s that invoke spatial realted canonical EDM functions, and, where appropriate, allows that API to be accessed as extension methods on the expression type itself. Creates a that invokes the canonical 'GeometryFromText' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geometry. Its value has the default coordinate system id (SRID) of the underlying provider. A new DbFunctionExpression that returns a new geometry value based on the specified value. An expression that provides the well known text representation of the geometry value. Creates a that invokes the canonical 'GeometryFromText' function with the specified arguments. wellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry value based on the specified values. An expression that provides the well known text representation of the geometry value. An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system. Creates a that invokes the canonical 'GeometryPointFromText' function with the specified arguments. pointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry point value based on the specified values. An expression that provides the well known text representation of the geometry point value. An expression that provides the coordinate system id (SRID) of the geometry point value's coordinate system. Creates a that invokes the canonical 'GeometryLineFromText' function with the specified arguments. lineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry line value based on the specified values. An expression that provides the well known text representation of the geometry line value. An expression that provides the coordinate system id (SRID) of the geometry line value's coordinate system. Creates a that invokes the canonical 'GeometryPolygonFromText' function with the specified arguments. polygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry polygon value based on the specified values. An expression that provides the well known text representation of the geometry polygon value. An expression that provides the coordinate system id (SRID) of the geometry polygon value's coordinate system. Creates a that invokes the canonical 'GeometryMultiPointFromText' function with the specified arguments. multiPointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry multi-point value based on the specified values. An expression that provides the well known text representation of the geometry multi-point value. An expression that provides the coordinate system id (SRID) of the geometry multi-point value's coordinate system. Creates a that invokes the canonical 'GeometryMultiLineFromText' function with the specified arguments. multiLineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry multi-line value based on the specified values. An expression that provides the well known text representation of the geometry multi-line value. An expression that provides the coordinate system id (SRID) of the geometry multi-line value's coordinate system. Creates a that invokes the canonical 'GeometryMultiPolygonFromText' function with the specified arguments. multiPolygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry multi-polygon value based on the specified values. An expression that provides the well known text representation of the geometry multi-polygon value. An expression that provides the coordinate system id (SRID) of the geometry multi-polygon value's coordinate system. Creates a that invokes the canonical 'GeometryCollectionFromText' function with the specified arguments. geometryCollectionWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry collection value based on the specified values. An expression that provides the well known text representation of the geometry collection value. An expression that provides the coordinate system id (SRID) of the geometry collection value's coordinate system. Creates a that invokes the canonical 'GeometryFromBinary' function with the specified argument, which must have a binary result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry value based on the specified binary value. An expression that provides the well known binary representation of the geometry value. Creates a that invokes the canonical 'GeometryFromBinary' function with the specified arguments. wellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry value based on the specified values. An expression that provides the well known binary representation of the geometry value. An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system. Creates a that invokes the canonical 'GeometryPointFromBinary' function with the specified arguments. pointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry point value based on the specified values. An expression that provides the well known binary representation of the geometry point value. An expression that provides the coordinate system id (SRID) of the geometry point value's coordinate system. Creates a that invokes the canonical 'GeometryLineFromBinary' function with the specified arguments. lineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry line value based on the specified values. An expression that provides the well known binary representation of the geometry line value. An expression that provides the coordinate system id (SRID) of the geometry line value's coordinate system. Creates a that invokes the canonical 'GeometryPolygonFromBinary' function with the specified arguments. polygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry polygon value based on the specified values. An expression that provides the well known binary representation of the geometry polygon value. An expression that provides the coordinate system id (SRID) of the geometry polygon value's coordinate system. Creates a that invokes the canonical 'GeometryMultiPointFromBinary' function with the specified arguments. multiPointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry multi-point value based on the specified values. An expression that provides the well known binary representation of the geometry multi-point value. An expression that provides the coordinate system id (SRID) of the geometry multi-point value's coordinate system. Creates a that invokes the canonical 'GeometryMultiLineFromBinary' function with the specified arguments. multiLineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry multi-line value based on the specified values. An expression that provides the well known binary representation of the geometry multi-line value. An expression that provides the coordinate system id (SRID) of the geometry multi-line value's coordinate system. Creates a that invokes the canonical 'GeometryMultiPolygonFromBinary' function with the specified arguments. multiPolygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry multi-polygon value based on the specified values. An expression that provides the well known binary representation of the geometry multi-polygon value. An expression that provides the coordinate system id (SRID) of the geometry multi-polygon value's coordinate system. Creates a that invokes the canonical 'GeometryCollectionFromBinary' function with the specified arguments. geometryCollectionWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry collection value based on the specified values. An expression that provides the well known binary representation of the geometry collection value. An expression that provides the coordinate system id (SRID) of the geometry collection value's coordinate system. Creates a that invokes the canonical 'GeometryFromGml' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry value based on the specified value with the default coordinate system id (SRID) of the underlying provider. An expression that provides the Geography Markup Language (GML) representation of the geometry value. Creates a that invokes the canonical 'GeometryFromGml' function with the specified arguments. geometryMarkup must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a new geometry value based on the specified values. An expression that provides the Geography Markup Language (GML) representation of the geometry value. An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system. Creates a that invokes the canonical 'GeographyFromText' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geography. Its value has the default coordinate system id (SRID) of the underlying provider. A new DbFunctionExpression that returns a new geography value based on the specified value. An expression that provides the well known text representation of the geography value. Creates a that invokes the canonical 'GeographyFromText' function with the specified arguments. wellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography value based on the specified values. An expression that provides the well known text representation of the geography value. An expression that provides the coordinate system id (SRID) of the geography value's coordinate system. Creates a that invokes the canonical 'GeographyPointFromText' function with the specified arguments. The canonical 'GeographyPointFromText' function. An expression that provides the well-known text representation of the geography point value. An expression that provides the coordinate system id (SRID) of the geography point value's coordinate systempointWellKnownTextValue. Creates a that invokes the canonical 'GeographyLineFromText' function with the specified arguments. lineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography line value based on the specified values. An expression that provides the well known text representation of the geography line value. An expression that provides the coordinate system id (SRID) of the geography line value's coordinate system. Creates a that invokes the canonical 'GeographyPolygonFromText' function with the specified arguments. polygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography polygon value based on the specified values. An expression that provides the well known text representation of the geography polygon value. An expression that provides the coordinate system id (SRID) of the geography polygon value's coordinate system. Creates a that invokes the canonical 'GeographyMultiPointFromText' function with the specified arguments. multiPointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography multi-point value based on the specified values. An expression that provides the well known text representation of the geography multi-point value. An expression that provides the coordinate system id (SRID) of the geography multi-point value's coordinate system. Creates a that invokes the canonical 'GeographyMultiLineFromText' function with the specified arguments. multiLineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography multi-line value based on the specified values. An expression that provides the well known text representation of the geography multi-line value. An expression that provides the coordinate system id (SRID) of the geography multi-line value's coordinate system. Creates a that invokes the canonical 'GeographyMultiPolygonFromText' function with the specified arguments. multiPolygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography multi-polygon value based on the specified values. An expression that provides the well known text representation of the geography multi-polygon value. An expression that provides the coordinate system id (SRID) of the geography multi-polygon value's coordinate system. Creates a that invokes the canonical 'GeographyCollectionFromText' function with the specified arguments. geographyCollectionWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography collection value based on the specified values. An expression that provides the well known text representation of the geography collection value. An expression that provides the coordinate system id (SRID) of the geography collection value's coordinate system. Creates a that invokes the canonical 'GeographyFromBinary' function with the specified argument, which must have a binary result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography value based on the specified binary value. An expression that provides the well known binary representation of the geography value. Creates a that invokes the canonical 'GeographyFromBinary' function with the specified arguments. wellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography value based on the specified values. An expression that provides the well known binary representation of the geography value. An expression that provides the coordinate system id (SRID) of the geography value's coordinate system. Creates a that invokes the canonical 'GeographyPointFromBinary' function with the specified arguments. pointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography point value based on the specified values. An expression that provides the well known binary representation of the geography point value. An expression that provides the coordinate system id (SRID) of the geography point value's coordinate systempointWellKnownBinaryValue. Creates a that invokes the canonical 'GeographyLineFromBinary' function with the specified arguments. lineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography line value based on the specified values. An expression that provides the well known binary representation of the geography line value. An expression that provides the coordinate system id (SRID) of the geography line value's coordinate system. Creates a that invokes the canonical 'GeographyPolygonFromBinary' function with the specified arguments. polygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography polygon value based on the specified values. An expression that provides the well known binary representation of the geography polygon value. An expression that provides the coordinate system id (SRID) of the geography polygon value's coordinate system. Creates a that invokes the canonical 'GeographyMultiPointFromBinary' function with the specified arguments. multiPointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography multi-point value based on the specified values. An expression that provides the well known binary representation of the geography multi-point value. An expression that provides the coordinate system id (SRID) of the geography multi-point value's coordinate system. Creates a that invokes the canonical 'GeographyMultiLineFromBinary' function with the specified arguments. multiLineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography multi-line value based on the specified values. An expression that provides the well known binary representation of the geography multi-line value. An expression that provides the coordinate system id (SRID) of the geography multi-line value's coordinate system. Creates a that invokes the canonical 'GeographyMultiPolygonFromBinary' function with the specified arguments. multiPolygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography multi-polygon value based on the specified values. An expression that provides the well known binary representation of the geography multi-polygon value. An expression that provides the coordinate system id (SRID) of the geography multi-polygon value's coordinate system. Creates a that invokes the canonical 'GeographyCollectionFromBinary' function with the specified arguments. geographyCollectionWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography collection value based on the specified values. An expression that provides the well known binary representation of the geography collection value. An expression that provides the coordinate system id (SRID) of the geography collection value's coordinate system. Creates a that invokes the canonical 'GeographyFromGml' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography value based on the specified value with the default coordinate system id (SRID) of the underlying provider. An expression that provides the Geography Markup Language (GML) representation of the geography value. Creates a that invokes the canonical 'GeographyFromGml' function with the specified arguments. geographyMarkup must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. A new DbFunctionExpression that returns a new geography value based on the specified values. An expression that provides the Geography Markup Language (GML) representation of the geography value. An expression that provides the coordinate system id (SRID) of the geography value's coordinate system. Creates a that invokes the canonical 'CoordinateSystemId' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the integer SRID value from spatialValue. An expression that specifies the value from which the coordinate system id (SRID) should be retrieved. Creates a that invokes the canonical 'SpatialTypeName' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String. A new DbFunctionExpression that returns the string Geometry Type name from spatialValue. An expression that specifies the value from which the Geometry Type name should be retrieved. Creates a that invokes the canonical 'SpatialDimension' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns the Dimension value from spatialValue. An expression that specifies the value from which the Dimension value should be retrieved. Creates a that invokes the canonical 'SpatialEnvelope' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns the the minimum bounding box for geometryValue. An expression that specifies the value from which the Envelope value should be retrieved. Creates a that invokes the canonical 'AsBinary' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Binary. A new DbFunctionExpression that returns the well known binary representation of spatialValue. An expression that specifies the spatial value from which the well known binary representation should be produced. Creates a that invokes the canonical 'AsGml' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String. A new DbFunctionExpression that returns the Geography Markup Language (GML) representation of spatialValue. An expression that specifies the spatial value from which the Geography Markup Language (GML) representation should be produced. Creates a that invokes the canonical 'AsText' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String. A new DbFunctionExpression that returns the well known text representation of spatialValue. An expression that specifies the spatial value from which the well known text representation should be produced. Creates a that invokes the canonical 'IsEmptySpatial' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue is empty. An expression that specifies the spatial value from which the IsEmptySptiaal value should be retrieved. Creates a that invokes the canonical 'IsSimpleGeometry' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue is a simple geometry. The geometry value. Creates a that invokes the canonical 'SpatialBoundary' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns the the boundary for geometryValue. An expression that specifies the geometry value from which the SpatialBoundary value should be retrieved. Creates a that invokes the canonical 'IsValidGeometry' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue is valid. An expression that specifies the geometry value which should be tested for spatial validity. Creates a that invokes the canonical 'SpatialEquals' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 are equal. An expression that specifies the first spatial value. An expression that specifies the spatial value that should be compared with spatialValue1 for equality. Creates a that invokes the canonical 'SpatialDisjoint' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 are spatially disjoint. An expression that specifies the first spatial value. An expression that specifies the spatial value that should be compared with spatialValue1 for disjointness. Creates a that invokes the canonical 'SpatialIntersects' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 intersect. An expression that specifies the first spatial value. An expression that specifies the spatial value that should be compared with spatialValue1 for intersection. Creates a that invokes the canonical 'SpatialTouches' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 touches geometryValue2. An expression that specifies the first geometry value. An expression that specifies the geometry value that should be compared with geometryValue1. Creates a that invokes the canonical 'SpatialCrosses' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 crosses geometryValue2 intersect. An expression that specifies the first geometry value. An expression that specifies the geometry value that should be compared with geometryValue1. Creates a that invokes the canonical 'SpatialWithin' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 is spatially within geometryValue2. An expression that specifies the first geometry value. An expression that specifies the geometry value that should be compared with geometryValue1. Creates a that invokes the canonical 'SpatialContains' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 spatially contains geometryValue2. An expression that specifies the first geometry value. An expression that specifies the geometry value that should be compared with geometryValue1. Creates a that invokes the canonical 'SpatialOverlaps' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 spatially overlaps geometryValue2. An expression that specifies the first geometry value. An expression that specifies the geometry value that should be compared with geometryValue1. Creates a that invokes the canonical 'SpatialRelate' function with the specified arguments, which must have Edm.Geometry and string result types. The result type of the expression is Edm.Boolean. A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 is spatially related to geometryValue2 according to the spatial relationship designated by intersectionPatternMatrix. An expression that specifies the first geometry value. An expression that specifies the geometry value that should be compared with geometryValue1. An expression that specifies the text representation of the Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern used to compare geometryValue1 and geometryValue2. Creates a that invokes the canonical 'SpatialBuffer' function with the specified arguments, which must have a Edm.Geography or Edm.Geometry and Edm.Double result types. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns a geometry value representing all points less than or equal to distance from spatialValue. An expression that specifies the spatial value. An expression that specifies the buffer distance. Creates a that invokes the canonical 'Distance' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Double. A new DbFunctionExpression that returns the distance between the closest points in spatialValue1 and spatialValue1. An expression that specifies the first spatial value. An expression that specifies the spatial value from which the distance from spatialValue1 should be measured. Creates a that invokes the canonical 'SpatialConvexHull' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns the the convex hull for geometryValue. An expression that specifies the geometry value from which the convex hull value should be retrieved. Creates a that invokes the canonical 'SpatialIntersection' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. A new DbFunctionExpression that returns the spatial value representing the intersection of spatialValue1 and spatialValue2. An expression that specifies the first spatial value. An expression that specifies the spatial value for which the intersection with spatialValue1 should be computed. Creates a that invokes the canonical 'SpatialUnion' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. A new DbFunctionExpression that returns the spatial value representing the union of spatialValue1 and spatialValue2. An expression that specifies the first spatial value. An expression that specifies the spatial value for which the union with spatialValue1 should be computed. Creates a that invokes the canonical 'SpatialDifference' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. A new DbFunctionExpression that returns the geometry value representing the difference of spatialValue2 with spatialValue1. An expression that specifies the first spatial value. An expression that specifies the spatial value for which the difference with spatialValue1 should be computed. Creates a that invokes the canonical 'SpatialSymmetricDifference' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. A new DbFunctionExpression that returns the geometry value representing the symmetric difference of spatialValue2 with spatialValue1. An expression that specifies the first spatial value. An expression that specifies the spatial value for which the symmetric difference with spatialValue1 should be computed. Creates a that invokes the canonical 'SpatialElementCount' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns either the number of elements in spatialValue or null if spatialValue is not a collection. An expression that specifies the geography or geometry collection value from which the number of elements should be retrieved. Creates a that invokes the canonical 'SpatialElementAt' function with the specified arguments. The first argument must have an Edm.Geography or Edm.Geometry result type. The second argument must have an integer numeric result type. The result type of the expression is the same as that of spatialValue. A new DbFunctionExpression that returns either the collection element at position indexValue in spatialValue or null if spatialValue is not a collection. An expression that specifies the geography or geometry collection value. An expression that specifies the position of the element to be retrieved from within the geometry or geography collection. Creates a that invokes the canonical 'XCoordinate' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Double. A new DbFunctionExpression that returns either the X co-ordinate value of geometryValue or null if geometryValue is not a point. An expression that specifies the geometry point value from which the X co-ordinate value should be retrieved. Creates a that invokes the canonical 'YCoordinate' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Double. A new DbFunctionExpression that returns either the Y co-ordinate value of geometryValue or null if geometryValue is not a point. An expression that specifies the geometry point value from which the Y co-ordinate value should be retrieved. Creates a that invokes the canonical 'Elevation' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. A new DbFunctionExpression that returns either the elevation value of spatialValue or null if spatialValue is not a point. An expression that specifies the spatial point value from which the elevation (Z co-ordinate) value should be retrieved. Creates a that invokes the canonical 'Measure' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. A new DbFunctionExpression that returns either the Measure of spatialValue or null if spatialValue is not a point. An expression that specifies the spatial point value from which the Measure (M) co-ordinate value should be retrieved. Creates a that invokes the canonical 'Latitude' function with the specified argument, which must have an Edm.Geography result type. The result type of the expression is Edm.Double. A new DbFunctionExpression that returns either the Latitude value of geographyValue or null if geographyValue is not a point. An expression that specifies the geography point value from which the Latitude value should be retrieved. Creates a that invokes the canonical 'Longitude' function with the specified argument, which must have an Edm.Geography result type. The result type of the expression is Edm.Double. A new DbFunctionExpression that returns either the Longitude value of geographyValue or null if geographyValue is not a point. An expression that specifies the geography point value from which the Longitude value should be retrieved. Creates a that invokes the canonical 'SpatialLength' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. A new DbFunctionExpression that returns either the length of spatialValue or null if spatialValue is not a curve. An expression that specifies the spatial curve value from which the length should be retrieved. Creates a that invokes the canonical 'StartPoint' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is the same as that of spatialValue. A new DbFunctionExpression that returns either the start point of spatialValue or null if spatialValue is not a curve. An expression that specifies the spatial curve value from which the start point should be retrieved. Creates a that invokes the canonical 'EndPoint' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is the same as that of spatialValue. A new DbFunctionExpression that returns either the end point of spatialValue or null if spatialValue is not a curve. An expression that specifies the spatial curve value from which the end point should be retrieved. Creates a that invokes the canonical 'IsClosedSpatial' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is Edm.Boolean. A new DbFunctionExpression that returns either a Boolean value indicating whether spatialValue is closed, or null if spatialValue is not a curve. An expression that specifies the spatial curve value from which the IsClosedSpatial value should be retrieved. Creates a that invokes the canonical 'IsRing' function with the specified argument, which must have an Edm.Geometry result type. The result type is Edm.Boolean. A new DbFunctionExpression that returns either a Boolean value indicating whether geometryValue is a ring (both closed and simple), or null if geometryValue is not a curve. An expression that specifies the geometry curve value from which the IsRing value should be retrieved. Creates a that invokes the canonical 'PointCount' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns either the number of points in spatialValue or null if spatialValue is not a line string. An expression that specifies the spatial line string value from which the number of points should be retrieved. Creates a that invokes the canonical 'PointAt' function with the specified arguments. The first argument must have an Edm.Geography or Edm.Geometry result type. The second argument must have an integer numeric result type. The result type of the expression is the same as that of spatialValue. A new DbFunctionExpression that returns either the point at position indexValue in spatialValue or null if spatialValue is not a line string. An expression that specifies the spatial line string value. An expression that specifies the position of the point to be retrieved from within the line string. Creates a that invokes the canonical 'Area' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. A new DbFunctionExpression that returns either the area of spatialValue or null if spatialValue is not a surface. An expression that specifies the spatial surface value for which the area should be calculated. Creates a that invokes the canonical 'Centroid' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns either the centroid point of geometryValue (which may not be on the surface itself) or null if geometryValue is not a surface. An expression that specifies the geometry surface value from which the centroid should be retrieved. Creates a that invokes the canonical 'PointOnSurface' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns either a point guaranteed to be on the surface geometryValue or null if geometryValue is not a surface. An expression that specifies the geometry surface value from which the point should be retrieved. Creates a that invokes the canonical 'ExteriorRing' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns either the exterior ring of the polygon geometryValue or null if geometryValue is not a polygon. The geometry value. Creates a that invokes the canonical 'InteriorRingCount' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Int32. A new DbFunctionExpression that returns either the number of interior rings in the polygon geometryValue or null if geometryValue is not a polygon. The geometry value. Creates a that invokes the canonical 'InteriorRingAt' function with the specified arguments. The first argument must have an Edm.Geometry result type. The second argument must have an integer numeric result types. The result type of the expression is Edm.Geometry. A new DbFunctionExpression that returns either the interior ring at position indexValue in geometryValue or null if geometryValue is not a polygon. The geometry value. An expression that specifies the position of the interior ring to be retrieved from within the polygon. Ensures that all metadata in a given expression tree is from the specified metadata workspace, potentially rebinding and rebuilding the expressions to appropriate replacement metadata where necessary. Initializes a new instance of the class. The target workspace. Implements the visitor pattern for the entity set. The implemented visitor pattern. The entity set. Implements the visitor pattern for the function. The implemented visitor pattern. The function metadata. Implements the visitor pattern for the type. The implemented visitor pattern. The type. Implements the visitor pattern for the type usage. The implemented visitor pattern. The type. Implements the visitor pattern for retrieving an instance property. The implemented visitor. The expression. Represents a boolean expression that tests whether a specified item matches any element in a list. The visitor pattern method for expression visitors that do not produce a result value. An instance of DbExpressionVisitor. is null The visitor pattern method for expression visitors that produce a result value of a specific type. An instance of a typed DbExpressionVisitor that produces a result value of type TResultType. The type of the result produced by is null An instance of . Gets a DbExpression that specifies the item to be matched. Gets the list of DbExpression to test for a match. Represents the retrieval of the key value of the specified Reference as a row. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Represents the set union (without duplicate removal) operation between the left and right operands. DbUnionAllExpression requires that its arguments have a common collection result type Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Represents a 'scan' of all elements of a given entity set. Implements the visitor pattern for expressions that do not produce a result value. An instance of . visitor is null. Implements the visitor pattern for expressions that produce a result value of a specific type. A result value of a specific type produced by . An instance of a typed that produces a result value of a specific type. The type of the result produced by visitor . visitor is null. Gets the metadata for the referenced entity or relationship set. The metadata for the referenced entity or relationship set. Extension methods for . Gets the conceptual model from the specified DbModel. An instance of a class that implements IEdmModelAdapter (ex. DbModel). An instance of EdmModel that represents the conceptual model. Gets the store model from the specified DbModel. An instance of a class that implements IEdmModelAdapter (ex. DbModel). An instance of EdmModel that represents the store model. An interface to get the underlying store and conceptual model for a . Gets the conceptual model. Gets the store model. Inherit from this class to create a service that allows for code generation of custom annotations as part of scaffolding Migrations. The derived class should be set onto the . Note that an is not needed if the annotation uses a simple string value, or if calling ToString on the annotation object is sufficient for use in the scaffolded Migration. Override this method to return additional namespaces that should be included in the code generated for the scaffolded migration. The default implementation returns an empty enumeration. The names of the annotations that are being included in the generated code. A list of additional namespaces to include. Implement this method to generate code for the given annotation value. The name of the annotation for which a value is being generated. The annotation value. The writer to which generated code should be written. Represents a pair of annotation values in a scaffolded or hand-coded . Code First allows for custom annotations to be associated with columns and tables in the generated model. This class represents a pair of annotation values in a migration such that when the Code First model changes the old annotation value and the new annotation value can be provided to the migration and used in SQL generation. Creates a new pair of annotation values. The old value of the annotation, which may be null if the annotation has just been created. The new value of the annotation, which may be null if the annotation has been deleted. Returns true if both annotation pairs contain the same values, otherwise false. A pair of annotation values. A pair of annotation values. True if both pairs contain the same values. Returns true if the two annotation pairs contain different values, otherwise false. A pair of annotation values. A pair of annotation values. True if the pairs contain different values. Gets the old value of the annotation, which may be null if the annotation has just been created. Gets the new value of the annotation, which may be null if the annotation has been deleted. Returned by and related methods to indicate whether or not one object does not conflict with another such that the two can be combined into one. If the two objects are not compatible then information about why they are not compatible is contained in the property. Creates a new instance. Indicates whether or not the two tested objects are compatible. An error message indicating how the objects are not compatible. Expected to be null if isCompatible is true. Implicit conversion to a bool to allow the result object to be used directly in checks. The object to convert. True if the result is compatible; false otherwise. True if the two tested objects are compatible; otherwise false. If is true, then returns an error message indicating how the two tested objects are incompatible. Types used as custom annotations can implement this interface to indicate that an attempt to use multiple annotations with the same name on a given table or column may be possible by merging the multiple annotations into one. Normally there can only be one custom annotation with a given name on a given table or column. If a table or column ends up with multiple annotations, for example, because multiple CLR properties map to the same column, then an exception will be thrown. However, if the annotation type implements this interface, then the two annotations will be checked for compatibility using the method and, if compatible, will be merged into one using the method. Returns true if this annotation does not conflict with the given annotation such that the two can be combined together using the method. The annotation to compare. A CompatibilityResult indicating whether or not this annotation is compatible with the other. Merges this annotation with the given annotation and returns a new merged annotation. This method is only expected to succeed if returns true. The annotation to merge with this one. A new merged annotation. Instances of this class are used as custom annotations for representing database indexes in an Entity Framework model. An index annotation is added to a Code First model when an is placed on a mapped property of that model. This is used by Entity Framework Migrations to create indexes on mapped database columns. Note that multiple index attributes on a property will be merged into a single annotation for the column. Similarly, index attributes on multiple properties that map to the same column will be merged into a single annotation for the column. This means that one index annotation can represent multiple indexes. Within an annotation there can be only one index with any given name. The name used when this annotation is stored in Entity Framework metadata or serialized into an SSDL/EDMX file. Creates a new annotation for the given index. An index attributes representing an index. Creates a new annotation for the given collection of indexes. Index attributes representing one or more indexes. Returns true if this annotation does not conflict with the given annotation such that the two can be combined together using the method. Each index annotation contains at most one with a given name. Two annotations are considered compatible if each IndexAttribute with a given name is only contained in one annotation or the other, or if both annotations contain an IndexAttribute with the given name. The annotation to compare. A CompatibilityResult indicating whether or not this annotation is compatible with the other. Merges this annotation with the given annotation and returns a new annotation containing the merged indexes. Each index annotation contains at most one with a given name. The merged annotation will contain IndexAttributes from both this and the other annotation. If both annotations contain an IndexAttribute with the same name, then the merged annotation will contain one IndexAttribute with that name. The annotation to merge with this one. A new annotation with indexes from both annotations merged. The other annotation contains indexes that are not compatible with indexes in this annotation. Gets the indexes represented by this annotation. This class is used to serialize and deserialize objects so that they can be stored in the EDMX form of the Entity Framework model. An example of the serialized format is: { Name: 'MyIndex', Order: 7, IsClustered: True, IsUnique: False } { } { Name: 'MyOtherIndex' }. Note that properties that have not been explicitly set in an index attribute will be excluded from the serialized output. So, in the example above, the first index has all properties specified, the second has none, and the third has just the name set. Implement this interface to allow custom annotations represented by instances to be serialized to and from the EDMX XML. Usually a serializer instance is set using the method. Serializes the given annotation value into a string for storage in the EDMX XML. The name of the annotation that is being serialized. The value to serialize. The serialized value. Deserializes the given string back into the expected annotation value. The name of the annotation that is being deserialized. The string to deserialize. The deserialized annotation value. Serializes the given into a string for storage in the EDMX XML. The name of the annotation that is being serialized. The value to serialize which must be an IndexAnnotation object. The serialized value. Deserializes the given string back into an object. The name of the annotation that is being deserialized. The string to deserialize. The deserialized annotation value. If there is an error reading the serialized value. This interface is implemented by any object that can resolve a dependency, either directly or through use of an external container. The public services currently resolved using IDbDependencyResolver are documented here: http://msdn.microsoft.com/en-us/data/jj680697 Attempts to resolve a dependency for a given contract type and optionally a given key. If the resolver cannot resolve the dependency then it must return null and not throw. This allows resolvers to be used in a Chain of Responsibility pattern such that multiple resolvers can be asked to resolve a dependency until one finally does. The interface or abstract base class that defines the dependency to be resolved. The returned object is expected to be an instance of this type. Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key. The resolved dependency, which must be an instance of the given contract type, or null if the dependency could not be resolved. Attempts to resolve a dependencies for a given contract type and optionally a given key. If the resolver cannot resolve the dependency then it must return an empty enumeration and not throw. This method differs from in that it returns all registered services for the given type and key combination. The interface or abstract base class that defines the dependency to be resolved. Every returned object is expected to be an instance of this type. Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key. All services that resolve the dependency, which must be instances of the given contract type, or an empty enumeration if the dependency could not be resolved. An implementation used for resolving factories. Initializes a new instance of A function that returns a new instance of a transaction handler. The ADO.NET provider invariant name indicating the type of ADO.NET connection for which the transaction handler will be used. null will match anything. A string that will be matched against the server name in the connection string. null will match anything. If the given type is , then this method will attempt to return the service to use, otherwise it will return null. When the given type is , then the key is expected to be a . The service type to resolve. A key used to make a determination of the service to return. An , or null. If the given type is , then this resolver will attempt to return the service to use, otherwise it will return an empty enumeration. When the given type is , then the key is expected to be an . The service type to resolve. A key used to make a determination of the service to return. An enumerable of , or an empty enumeration. Provides utility methods for reading from an App.config or Web.config file. Initializes a new instance of . The configuration to read from. Gets the specified provider services from the configuration. The invariant name of the provider services. The provider services type name, or null if not found. A simple logger for logging SQL and other database operations to the console or a file. A logger can be registered in code or in the application's web.config /app.config file. An object that implements this interface can be registered with to receive notifications when Entity Framework loads the application's . Interceptors can also be registered in the config file of the application. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. This is the base interface for all interfaces that provide interception points for various different types and operations. For example, see . Interceptors are registered on the class. Occurs during EF initialization after the has been constructed but just before it is locked ready for use. Use this event to inspect and/or override services that have been registered before the configuration is locked. Note that an interceptor of this type should be used carefully since it may prevent tooling from discovering the same configuration that is used at runtime. Handlers can only be added before EF starts to use the configuration and so handlers should generally be added as part of application initialization. Do not access the DbConfiguration static methods inside the handler; instead use the the members of to get current services and/or add overrides. Arguments to the event that this interceptor mirrors. Contextual information about the event. Creates a new logger that will send log output to the console. Creates a new logger that will send log output to a file. If the file already exists then it is overwritten. A path to the file to which log output will be written. Creates a new logger that will send log output to a file. A path to the file to which log output will be written. True to append data to the file if it exists; false to overwrite the file. Stops logging and closes the underlying file if output is being written to a file. Stops logging and closes the underlying file if output is being written to a file. True to release both managed and unmanaged resources; False to release only unmanaged resources. Starts logging. This method is a no-op if logging is already started. Stops logging. This method is a no-op if logging is not started. Called to start logging during Entity Framework initialization when this logger is registered. as an . Arguments to the event that this interceptor mirrors. Contextual information about the event. Represents contextual information associated with calls into implementations. Instances of this class are publicly immutable for contextual information. To add contextual information use one of the With... or As... methods to create a new interception context containing the new information. Represents contextual information associated with calls into implementations. Note that specific types/operations that can be intercepted may use a more specific interception context derived from this class. For example, if SQL is being executed by a , then the DbContext will be contained in the instance that is passed to the methods of . Instances of this class are publicly immutable for contextual information. To add contextual information use one of the With... or As... methods to create a new interception context containing the new information. Constructs a new with no state. Creates a new by copying state from the given interception context. See The context from which to copy state. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context the flag set to true. A new interception context associated with the async flag set. Call this method when creating a copy of an interception context in order to add new state to it. Using this method instead of calling the constructor directly ensures virtual dispatch so that the new type will have the same type (and any specialized state) as the context that is being cloned. A new context with all state copied. Gets the of the current instance. The exact runtime type of the current instance. Gets all the instances associated with this interception context. This list usually contains zero or one items. However, it can contain more than one item if a single has been used to construct multiple instances. Gets all the instances associated with this interception context. This list usually contains zero or one items. However, it can contain more than one item when EF has created a new for use in database creation and initialization, or if a single is used with multiple . True if the operation is being executed asynchronously, otherwise false. Constructs a new with no state. Creates a new by copying state from the given interception context. Also see The context from which to copy state. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context the flag set to true. A new interception context associated with the async flag set. Implemented by Entity Framework providers and used to check whether or not tables exist in a given database. This is used by database initializers when determining whether or not to treat an existing database as empty such that tables should be created. When overridden in a derived class checks where the given tables exist in the database for the given connection. The context for which table checking is being performed, usually used to obtain an appropriate . A connection to the database. May be open or closed; should be closed again if opened. Do not dispose. The tables to check for existence. The name of the EdmMetadata table to check for existence. True if any of the model tables or EdmMetadata table exists. Helper method to get the table name for the given s-space . The s-space entity set for the table. The table name. Thrown when an error occurs committing a . Initializes a new instance of Initializes a new instance of The exception message. Initializes a new instance of The exception message. The inner exception. Initializes a new instance of the class. The data necessary to serialize or deserialize an object. Description of the source and destination of the specified serialized stream. Event arguments passed to event handlers. Call this method to add a instance to the Chain of Responsibility of resolvers that are used to resolve dependencies needed by the Entity Framework. Resolvers are asked to resolve dependencies in reverse order from which they are added. This means that a resolver can be added to override resolution of a dependency that would already have been resolved in a different way. The only exception to this is that any dependency registered in the application's config file will always be used in preference to using a dependency resolver added here, unless the overrideConfigFile is set to true in which case the resolver added here will also override config file settings. The resolver to add. If true, then the resolver added will take precedence over settings in the config file. Call this method to add a instance to the Chain of Responsibility of resolvers that are used to resolve dependencies needed by the Entity Framework. Unlike the AddDependencyResolver method, this method puts the resolver at the bottom of the Chain of Responsibility such that it will only be used to resolve a dependency that could not be resolved by any of the other resolvers. The resolver to add. Adds a wrapping resolver to the configuration that is about to be locked. A wrapping resolver is a resolver that incepts a service would have been returned by the resolver chain and wraps or replaces it with another service of the same type. The type of service to wrap or replace. A delegate that takes the unwrapped service and key and returns the wrapped or replaced service. Returns a snapshot of the that is about to be locked. Use the GetService methods on this object to get services that have been registered. An implementation used for resolving factories. This class can be used by to aid in the resolving of factories as a default service for the provider. The type of execution strategy that is resolved. Initializes a new instance of The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. A string that will be matched against the server name in the connection string. null will match anything. A function that returns a new instance of an execution strategy. If the given type is , then this resolver will attempt to return the service to use, otherwise it will return null. When the given type is Func{IExecutionStrategy}, then the key is expected to be an . The service type to resolve. A key used to make a determination of the service to return. An , or null. If the given type is , then this resolver will attempt to return the service to use, otherwise it will return an empty enumeration. When the given type is Func{IExecutionStrategy}, then the key is expected to be an . The service type to resolve. A key used to make a determination of the service to return. An enumerable of , or an empty enumeration. Extension methods to call the method using a generic type parameter and/or no name. Calls passing the generic type of the method and the given name as arguments. The contract type to resolve. The resolver to use. The key of the dependency to resolve. The resolved dependency, or null if the resolver could not resolve it. Calls passing the generic type of the method as the type argument and null for the name argument. The contract type to resolve. The resolver to use. The resolved dependency, or null if the resolver could not resolve it. Calls passing the given type argument and using null for the name argument. The resolver to use. The contract type to resolve. The resolved dependency, or null if the resolver could not resolve it. Calls passing the generic type of the method and the given name as arguments. The contract type to resolve. The resolver to use. The key of the dependency to resolve. All resolved dependencies, or an if no services are resolved. Calls passing the generic type of the method as the type argument and null for the name argument. The contract type to resolve. The resolver to use. All resolved dependencies, or an if no services are resolved. Calls passing the given type argument and using null for the name argument. The resolver to use. The contract type to resolve. All resolved dependencies, or an if no services are resolved. Implements to resolve a dependency such that it always returns the same instance. The type that defines the contract for the dependency that will be resolved. This class is immutable such that instances can be accessed by multiple threads at the same time. Constructs a new resolver that will return the given instance for the contract type regardless of the key passed to the Get method. The instance to return. Constructs a new resolver that will return the given instance for the contract type if the given key matches exactly the key passed to the Get method. The instance to return. Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key. Constructs a new resolver that will return the given instance for the contract type if the given key matches the key passed to the Get method based on the given predicate. The instance to return. A predicate that takes the key object and returns true if and only if it matches. Represents contextual information associated with calls to implementations. Instances of this class are publicly immutable for contextual information. To add contextual information use one of the With... or As... methods to create a new interception context containing the new information. Represents contextual information associated with calls to with return type . The return type of the target method. Represents contextual information associated with calls with return type . The return type of the target method. Constructs a new with no state. Creates a new by copying immutable state from the given interception context. Also see The context from which to copy state. Prevents the operation from being executed if called before the operation has executed. Thrown if this method is called after the operation has already executed. Creates a new that contains all the contextual information in this interception context together with the flag set to true. A new interception context associated with the async flag set. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. If execution of the operation completes without throwing, then this property will contain the result of the operation. If the operation was suppressed or did not fail, then this property will always contain the default value for the generic type. When an operation operation completes without throwing both this property and the property are set. However, the property can be set or changed by interceptors, while this property will always represent the actual result returned by the operation, if any. If this property is set before the operation has executed, then execution of the operation will be suppressed and the set result will be returned instead. Otherwise, if the operation succeeds, then this property will be set to the returned result. In either case, interceptors that run after the operation can change this property to change the result that will be returned. When an operation operation completes without throwing both this property and the property are set. However, this property can be set or changed by interceptors, while the property will always represent the actual result returned by the operation, if any. When true, this flag indicates that that execution of the operation has been suppressed by one of the interceptors. This can be done before the operation has executed by calling , by setting an to be thrown, or by setting the operation result using . Gets or sets a value containing arbitrary user-specified state information associated with the operation. If execution of the operation fails, then this property will contain the exception that was thrown. If the operation was suppressed or did not fail, then this property will always be null. When an operation fails both this property and the property are set to the exception that was thrown. However, the property can be set or changed by interceptors, while this property will always represent the original exception thrown. If this property is set before the operation has executed, then execution of the operation will be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then this property will be set to the exception that was thrown. In either case, interceptors that run after the operation can change this property to change the exception that will be thrown, or set this property to null to cause no exception to be thrown at all. When an operation fails both this property and the property are set to the exception that was thrown. However, the this property can be set or changed by interceptors, while the property will always represent the original exception thrown. Set to the status of the after an async operation has finished. Not used for synchronous operations. Constructs a new with no state. Creates a new by copying immutable state from the given interception context. Also see The context from which to copy state. Creates a new that contains all the contextual information in this interception context together with the flag set to true. A new interception context associated with the async flag set. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Constructs a new with no state. Creates a new by copying immutable state from the given interception context. Also see The context from which to copy state. Creates a new that contains all the contextual information in this interception context together with the flag set to true. A new interception context associated with the async flag set. Creates a new that contains all the contextual information in this interception context together with the given . The isolation level to associate. A new interception context associated with the given isolation level. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. The that will be used or has been used to start a transaction. This is the default log formatter used when some is set onto the property. A different formatter can be used by creating a class that inherits from this class and overrides some or all methods to change behavior. To set the new formatter create a code-based configuration for EF using and then set the formatter class to use with . Note that setting the type of formatter to use with this method does change the way command are logged when is used. It is still necessary to set a onto before any commands will be logged. For more low-level control over logging/interception see and . Interceptors can also be registered in the config file of the application. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. An object that implements this interface can be registered with to receive notifications when Entity Framework executes commands. Interceptors can also be registered in the config file of the application. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. This method is called before a call to or one of its async counterparts is made. The command being executed. Contextual information associated with the call. This method is called after a call to or one of its async counterparts is made. The result used by Entity Framework can be changed by setting . For async operations this method is not called until after the async task has completed or failed. The command being executed. Contextual information associated with the call. This method is called before a call to or one of its async counterparts is made. The command being executed. Contextual information associated with the call. This method is called after a call to or one of its async counterparts is made. The result used by Entity Framework can be changed by setting . For async operations this method is not called until after the async task has completed or failed. The command being executed. Contextual information associated with the call. This method is called before a call to or one of its async counterparts is made. The command being executed. Contextual information associated with the call. This method is called after a call to or one of its async counterparts is made. The result used by Entity Framework can be changed by setting . For async operations this method is not called until after the async task has completed or failed. The command being executed. Contextual information associated with the call. An object that implements this interface can be registered with to receive notifications when Entity Framework performs operations on a . Interceptors can also be registered in the config file of the application. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. Called before is invoked. The connection beginning the transaction. Contextual information associated with the call. Called after is invoked. The transaction used by Entity Framework can be changed by setting . The connection that began the transaction. Contextual information associated with the call. Called before is invoked. The connection being closed. Contextual information associated with the call. Called after is invoked. The connection that was closed. Contextual information associated with the call. Called before is retrieved. The connection. Contextual information associated with the call. Called after is retrieved. The connection. Contextual information associated with the call. Called before is set. The connection. Contextual information associated with the call. Called after is set. The connection. Contextual information associated with the call. Called before is retrieved. The connection. Contextual information associated with the call. Called after is retrieved. The connection. Contextual information associated with the call. Called before is retrieved. The connection. Contextual information associated with the call. Called after is retrieved. The connection. Contextual information associated with the call. Called before is retrieved. The connection. Contextual information associated with the call. Called after is retrieved. The connection. Contextual information associated with the call. Called before is invoked. The connection being disposed. Contextual information associated with the call. Called after is invoked. The connection that was disposed. Contextual information associated with the call. Called before is invoked. The connection. Contextual information associated with the call. Called after is invoked. The connection. Contextual information associated with the call. Called before or its async counterpart is invoked. The connection being opened. Contextual information associated with the call. Called after or its async counterpart is invoked. The connection that was opened. Contextual information associated with the call. Called before is retrieved. The connection. Contextual information associated with the call. Called after is retrieved. The connection. Contextual information associated with the call. Called before is retrieved. The connection. Contextual information associated with the call. Called after is retrieved. The connection. Contextual information associated with the call. An object that implements this interface can be registered with to receive notifications when Entity Framework commits or rollbacks a transaction. Interceptors can also be registered in the config file of the application. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. Called before is retrieved. The transaction. Contextual information associated with the call. Called after is retrieved. The transaction. Contextual information associated with the call. Called before is retrieved. The transaction. Contextual information associated with the call. Called after is retrieved. The transaction. Contextual information associated with the call. This method is called before is invoked. The transaction being commited. Contextual information associated with the call. This method is called after is invoked. The transaction that was commited. Contextual information associated with the call. This method is called before is invoked. The transaction being disposed. Contextual information associated with the call. This method is called after is invoked. The transaction that was disposed. Contextual information associated with the call. This method is called before is invoked. The transaction being rolled back. Contextual information associated with the call. This method is called after is invoked. The transaction that was rolled back. Contextual information associated with the call. Creates a formatter that will not filter by any and will instead log every command from any context and also commands that do not originate from a context. This constructor is not used when a delegate is set on . Instead it can be used by setting the formatter directly using . The delegate to which output will be sent. Creates a formatter that will only log commands the come from the given instance. This constructor must be called by a class that inherits from this class to override the behavior of . The context for which commands should be logged. Pass null to log every command from any context and also commands that do not originate from a context. The delegate to which output will be sent. Writes the given string to the underlying write delegate. The string to write. This method is called before a call to or one of its async counterparts is made. The default implementation calls and starts . The command being executed. Contextual information associated with the call. This method is called after a call to or one of its async counterparts is made. The default implementation stops and calls . The command being executed. Contextual information associated with the call. This method is called before a call to or one of its async counterparts is made. The default implementation calls and starts . The command being executed. Contextual information associated with the call. This method is called after a call to or one of its async counterparts is made. The default implementation stops and calls . The command being executed. Contextual information associated with the call. This method is called before a call to or one of its async counterparts is made. The default implementation calls and starts . The command being executed. Contextual information associated with the call. This method is called after a call to or one of its async counterparts is made. The default implementation stops and calls . The command being executed. Contextual information associated with the call. Called whenever a command is about to be executed. The default implementation of this method filters by set into , if any, and then calls . This method would typically only be overridden to change the context filtering behavior. The type of the operation's results. The command that will be executed. Contextual information associated with the command. Called whenever a command has completed executing. The default implementation of this method filters by set into , if any, and then calls . This method would typically only be overridden to change the context filtering behavior. The type of the operation's results. The command that was executed. Contextual information associated with the command. Called to log a command that is about to be executed. Override this method to change how the command is logged to . The type of the operation's results. The command to be logged. Contextual information associated with the command. Called by to log each parameter. This method can be called from an overridden implementation of to log parameters, and/or can be overridden to change the way that parameters are logged to . The type of the operation's results. The command being logged. Contextual information associated with the command. The parameter to log. Called to log the result of executing a command. Override this method to change how results are logged to . The type of the operation's results. The command being logged. Contextual information associated with the command. Does not write to log unless overridden. The connection beginning the transaction. Contextual information associated with the call. Called after is invoked. The default implementation of this method filters by set into , if any, and then logs the event. The connection that began the transaction. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection being opened. Contextual information associated with the call. Called after or its async counterpart is invoked. The default implementation of this method filters by set into , if any, and then logs the event. The connection that was opened. Contextual information associated with the call. Does not write to log unless overridden. The connection being closed. Contextual information associated with the call. Called after is invoked. The default implementation of this method filters by set into , if any, and then logs the event. The connection that was closed. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Called before is invoked. The default implementation of this method filters by set into , if any, and then logs the event. The connection being disposed. Contextual information associated with the call. Does not write to log unless overridden. The connection that was disposed. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The connection. Contextual information associated with the call. Does not write to log unless overridden. The transaction. Contextual information associated with the call. Does not write to log unless overridden. The transaction. Contextual information associated with the call. Does not write to log unless overridden. The transaction. Contextual information associated with the call. Does not write to log unless overridden. The transaction. Contextual information associated with the call. Does not write to log unless overridden. The transaction being commited. Contextual information associated with the call. This method is called after is invoked. The default implementation of this method filters by set into , if any, and then logs the event. The transaction that was commited. Contextual information associated with the call. This method is called before is invoked. The default implementation of this method filters by set into , if any, and then logs the event. The transaction being disposed. Contextual information associated with the call. Does not write to log unless overridden. The transaction that was disposed. Contextual information associated with the call. Does not write to log unless overridden. The transaction being rolled back. Contextual information associated with the call. This method is called after is invoked. The default implementation of this method filters by set into , if any, and then logs the event. The transaction that was rolled back. Contextual information associated with the call. The context for which commands are being logged, or null if commands from all contexts are being logged. The stop watch used to time executions. This stop watch is started at the end of , , and methods and is stopped at the beginning of the , , and methods. If these methods are overridden and the stop watch is being used then the overrides should either call the base method or start/stop the watch themselves. Represents contextual information associated with calls to that don't return any results. Represents contextual information associated with calls that don't return any results. Constructs a new with no state. Creates a new by copying immutable state from the given interception context. Also see The context from which to copy state. Prevents the operation from being executed if called before the operation has executed. Thrown if this method is called after the operation has already executed. Creates a new that contains all the contextual information in this interception context together with the flag set to true. A new interception context associated with the async flag set. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. When true, this flag indicates that that execution of the operation has been suppressed by one of the interceptors. This can be done before the operation has executed by calling or by setting an to be thrown If execution of the operation fails, then this property will contain the exception that was thrown. If the operation was suppressed or did not fail, then this property will always be null. When an operation fails both this property and the property are set to the exception that was thrown. However, the property can be set or changed by interceptors, while this property will always represent the original exception thrown. If this property is set before the operation has executed, then execution of the operation will be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then this property will be set to the exception that was thrown. In either case, interceptors that run after the operation can change this property to change the exception that will be thrown, or set this property to null to cause no exception to be thrown at all. When an operation fails both this property and the property are set to the exception that was thrown. However, the this property can be set or changed by interceptors, while the property will always represent the original exception thrown. Set to the status of the after an async operation has finished. Not used for synchronous operations. Gets or sets a value containing arbitrary user-specified state information associated with the operation. Constructs a new with no state. Creates a new by copying immutable state from the given interception context. Also see The context from which to copy state. Creates a new that contains all the contextual information in this interception context together with the flag set to true. A new interception context associated with the async flag set. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Represents contextual information associated with calls to property setters of type on a . The type of the target property. Represents contextual information associated with calls to property setters of type . An instance of this class is passed to the dispatch methods and does not contain mutable information such as the result of the operation. This mutable information is obtained from the that is passed to the interceptors. Instances of this class are publicly immutable. To add contextual information use one of the With... or As... methods to create a new interception context containing the new information. The type of the target property. Constructs a new with no state. Creates a new by copying immutable state from the given interception context. Also see The context from which to copy state. Creates a new that contains all the contextual information in this interception context together with the given property value. The value that will be assigned to the target property. A new interception context associated with the given property value. Prevents the operation from being executed if called before the operation has executed. Thrown if this method is called after the operation has already executed. Creates a new that contains all the contextual information in this interception context together with the flag set to true. A new interception context associated with the async flag set. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. The value that will be assigned to the target property. Gets or sets a value containing arbitrary user-specified state information associated with the operation. When true, this flag indicates that that execution of the operation has been suppressed by one of the interceptors. This can be done before the operation has executed by calling or by setting an to be thrown If execution of the operation fails, then this property will contain the exception that was thrown. If the operation was suppressed or did not fail, then this property will always be null. When an operation fails both this property and the property are set to the exception that was thrown. However, the property can be set or changed by interceptors, while this property will always represent the original exception thrown. If this property is set before the operation has executed, then execution of the operation will be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then this property will be set to the exception that was thrown. In either case, interceptors that run after the operation can change this property to change the exception that will be thrown, or set this property to null to cause no exception to be thrown at all. When an operation fails both this property and the property are set to the exception that was thrown. However, the this property can be set or changed by interceptors, while the property will always represent the original exception thrown. Set to the status of the after an async operation has finished. Not used for synchronous operations. Constructs a new with no state. Creates a new by copying immutable state from the given interception context. Also see The context from which to copy state. Creates a new that contains all the contextual information in this interception context together with the given property value. The value that will be assigned to the target property. A new interception context associated with the given property value. Creates a new that contains all the contextual information in this interception context together with the flag set to true. A new interception context associated with the async flag set. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Used for dispatching operations to a such that any registered on will be notified before and after the operation executes. Instances of this class are obtained through the the fluent API. This class is used internally by Entity Framework when executing commands. It is provided publicly so that code that runs outside of the core EF assemblies can opt-in to command interception/tracing. This is typically done by EF providers that are executing commands on behalf of EF. Sends and to any registered on before/after making a call to . Note that the result of executing the command is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The command on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after making a call to . Note that the result of executing the command is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The command on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after making a call to . Note that the result of executing the command is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The command on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after making a call to . Note that the result of executing the command is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The command on which the operation will be executed. Optional information about the context of the call being made. The cancellation token for the asynchronous operation. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after making a call to . Note that the result of executing the command is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The command on which the operation will be executed. Optional information about the context of the call being made. The cancellation token for the asynchronous operation. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after making a call to . Note that the result of executing the command is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The command on which the operation will be executed. Optional information about the context of the call being made. The cancellation token for the asynchronous operation. The result of the operation, which may have been modified by interceptors. Gets the of the current instance. The exact runtime type of the current instance. Represents contextual information associated with calls into implementations. An instance of this class is passed to the dispatch methods of and does not contain mutable information such as the result of the operation. This mutable information is obtained from the that is passed to the interceptors. Instances of this class are publicly immutable. To add contextual information use one of the With... or As... methods to create a new interception context containing the new information. Constructs a new with no state. Creates a new by copying state from the given interception context. Also see The context from which to copy state. Creates a new that contains all the contextual information in this interception context together with the given . The command behavior to associate. A new interception context associated with the given command behavior. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context the flag set to true. A new interception context associated with the async flag set. The that will be used or has been used to execute the command with a . This property is only used for and its async counterparts. Represents contextual information associated with calls into implementations including the result of the operation. The type of the operation's results. Instances of this class are publicly immutable for contextual information. To add contextual information use one of the With... or As... methods to create a new interception context containing the new information. Constructs a new with no state. Creates a new by copying immutable state from the given interception context. Also see The context from which to copy state. Prevents the operation from being executed if called before the operation has executed. Thrown if this method is called after the operation has already executed. Creates a new that contains all the contextual information in this interception context together with the flag set to true. A new interception context associated with the async flag set. Creates a new that contains all the contextual information in this interception context together with the given . The command behavior to associate. A new interception context associated with the given command behavior. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. If execution of the operation completes without throwing, then this property will contain the result of the operation. If the operation was suppressed or did not fail, then this property will always contain the default value for the generic type. When an operation operation completes without throwing both this property and the property are set. However, the property can be set or changed by interceptors, while this property will always represent the actual result returned by the operation, if any. If this property is set before the operation has executed, then execution of the operation will be suppressed and the set result will be returned instead. Otherwise, if the operation succeeds, then this property will be set to the returned result. In either case, interceptors that run after the operation can change this property to change the result that will be returned. When an operation operation completes without throwing both this property and the property are set. However, this property can be set or changed by interceptors, while the property will always represent the actual result returned by the operation, if any. When true, this flag indicates that that execution of the operation has been suppressed by one of the interceptors. This can be done before the operation has executed by calling , by setting an to be thrown, or by setting the operation result using . Gets or sets a value containing arbitrary user-specified state information associated with the operation. If execution of the operation fails, then this property will contain the exception that was thrown. If the operation was suppressed or did not fail, then this property will always be null. When an operation fails both this property and the property are set to the exception that was thrown. However, the property can be set or changed by interceptors, while this property will always represent the original exception thrown. If this property is set before the operation has executed, then execution of the operation will be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then this property will be set to the exception that was thrown. In either case, interceptors that run after the operation can change this property to change the exception that will be thrown, or set this property to null to cause no exception to be thrown at all. When an operation fails both this property and the property are set to the exception that was thrown. However, the this property can be set or changed by interceptors, while the property will always represent the original exception thrown. Set to the status of the after an async operation has finished. Not used for synchronous operations. Base class that implements . This class is a convenience for use when only one or two methods of the interface actually need to have any implementation. Represents contextual information associated with calls into implementations. Instances of this class are publicly immutable for contextual information. To add contextual information use one of the With... or As... methods to create a new interception context containing the new information. Constructs a new with no state. Creates a new by copying state from the given interception context. Also see The context from which to copy state. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context the flag set to true. A new interception context associated with the async flag set. The original tree created by Entity Framework. Interceptors can change the property to change the tree that will be used, but the will always be the tree created by Entity Framework. The command tree that will be used by Entity Framework. This starts as the tree contained in the the property but can be set by interceptors to change the tree that will be used by Entity Framework. Gets or sets a value containing arbitrary user-specified state information associated with the operation. Used for dispatching operations to a such that any registered on will be notified before and after the operation executes. Instances of this class are obtained through the the fluent API. This class is used internally by Entity Framework when interacting with . It is provided publicly so that code that runs outside of the core EF assemblies can opt-in to command interception/tracing. This is typically done by EF providers that are executing commands on behalf of EF. Sends and to any registered on before/after making a call to . Note that the result of executing the command is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The connection on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after making a call to . The connection on which the operation will be executed. Optional information about the context of the call being made. Sends and to any registered on before/after making a call to . The connection on which the operation will be executed. Optional information about the context of the call being made. Sends and to any registered on before/after getting . Note that the value of the property is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The connection on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after setting . The connection on which the operation will be executed. Information about the context of the call being made, including the value to be set. Sends and to any registered on before/after getting . Note that the value of the property is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The connection on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after getting . Note that the value of the property is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The connection on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after getting . Note that the value of the property is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The connection on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after making a call to . The connection on which the operation will be executed. Optional information about the context of the call being made. Sends and to any registered on before/after making a call to . The connection on which the operation will be executed. Optional information about the context of the call being made. Sends and to any registered on before/after making a call to . The connection on which the operation will be executed. Optional information about the context of the call being made. The cancellation token. A task that represents the asynchronous operation. Sends and to any registered on before/after getting . Note that the value of the property is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The connection on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after getting . Note that the value of the property is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The connection on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Gets the of the current instance. The exact runtime type of the current instance. Provides access to all dispatchers through the the fluent API. Gets the of the current instance. The exact runtime type of the current instance. Provides methods for dispatching to interceptors for interception of methods on . Provides methods for dispatching to interceptors for interception of methods on . Provides methods for dispatching to interceptors for interception of methods on . This is the registration point for interceptors. Interceptors receive notifications when EF performs certain operations such as executing commands against the database. For example, see . Registers a new to receive notifications. Note that the interceptor must implement some interface that extends from to be useful. The interceptor to add. Removes a registered so that it will no longer receive notifications. If the given interceptor is not registered, then this is a no-op. The interceptor to remove. This is the entry point for dispatching to interceptors. This is usually only used internally by Entity Framework but it is provided publicly so that other code can make sure that registered interceptors are called when operations are performed on behalf of EF. For example, EF providers a may make use of this when executing commands. Used for dispatching operations to a such that any registered on will be notified before and after the operation executes. Instances of this class are obtained through the the fluent API. This class is used internally by Entity Framework when interacting with . It is provided publicly so that code that runs outside of the core EF assemblies can opt-in to command interception/tracing. This is typically done by EF providers that are executing commands on behalf of EF. Sends and to any registered on before/after getting . Note that the value of the property is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The transaction on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after getting . Note that the value of the property is returned by this method. The result is not available in the interception context passed into this method since the interception context is cloned before being passed to interceptors. The transaction on which the operation will be executed. Optional information about the context of the call being made. The result of the operation, which may have been modified by interceptors. Sends and to any registered on before/after making a call to . The transaction on which the operation will be executed. Optional information about the context of the call being made. Sends and to any registered on before/after making a call to . The transaction on which the operation will be executed. Optional information about the context of the call being made. Sends and to any registered on before/after making a call to . The transaction on which the operation will be executed. Optional information about the context of the call being made. Gets the of the current instance. The exact runtime type of the current instance. Represents contextual information associated with calls to that don't return any results. Constructs a new with no state. Creates a new by copying immutable state from the given interception context. Also see The context from which to copy state. Creates a new that contains all the contextual information in this interception context with the addition of the given . The connection on which the transaction was started. A new interception context that also contains the connection on which the transaction was started. Creates a new that contains all the contextual information in this interception context together with the flag set to true. A new interception context associated with the async flag set. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. The connection on which the transaction was started Represents contextual information associated with calls to with return type . The return type of the target method. Constructs a new with no state. Creates a new by copying immutable state from the given interception context. Also see The context from which to copy state. Creates a new that contains all the contextual information in this interception context together with the flag set to true. A new interception context associated with the async flag set. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Represents contextual information associated with calls to implementations. Instances of this class are publicly immutable for contextual information. To add contextual information use one of the With... or As... methods to create a new interception context containing the new information. Constructs a new with no state. Creates a new by copying immutable state from the given interception context. Also see The context from which to copy state. Creates a new that contains all the contextual information in this interception context together with the flag set to true. A new interception context associated with the async flag set. Creates a new that contains all the contextual information in this interception context together with the given . The transaction to be used in the invocation. A new interception context associated with the given isolation level. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. Creates a new that contains all the contextual information in this interception context with the addition of the given . The context to associate. A new interception context associated with the given context. The that will be used or has been used to enlist a connection. An object that implements this interface can be registered with to receive notifications when Entity Framework creates command trees. Interceptors can also be registered in the config file of the application. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. This method is called after a new has been created. The tree that is used after interception can be changed by setting while intercepting. Command trees are created for both queries and insert/update/delete commands. However, query command trees are cached by model which means that command tree creation only happens the first time a query is executed and this notification will only happen at that time Contextual information associated with the call. Represents a mapping view. Creates a instance having the specified entity SQL. A string that specifies the entity SQL. Gets the entity SQL. Base abstract class for mapping view cache implementations. Derived classes must have a parameterless constructor if used with . Gets a view corresponding to the specified extent. An that specifies the extent. A that specifies the mapping view, or null if the extent is not associated with a mapping view. Gets a hash value computed over the mapping closure. Specifies the means to create concrete instances. Creates a generated view cache instance for the container mapping specified by the names of the mapped containers. The name of a container in the conceptual model. The name of a container in the store model. A that specifies the generated view cache. Defines a custom attribute that specifies the mapping view cache type (subclass of ) associated with a context type (subclass of or ). The cache type is instantiated at runtime and used to retrieve pre-generated views in the corresponding context. Creates a instance that associates a context type with a mapping view cache type. A subclass of or . A subclass of . Creates a instance that associates a context type with a mapping view cache type. A subclass of or . The assembly qualified full name of the cache type. The base class for interceptors that handle the transaction operations. Derived classes can be registered using or . Initializes a new instance of the class. One of the Initialize methods needs to be called before this instance can be used. Initializes this instance using the specified context. The context for which transaction operations will be handled. Initializes this instance using the specified context. The context for which transaction operations will be handled. The connection to use for the initialization. This method is called by migrations. It is important that no action is performed on the specified context that causes it to be initialized. Releases the resources used by this transaction handler. true to release both managed and unmanaged resources; false to release only unmanaged resources. Checks whether the supplied interception context contains the target context or the supplied connection is the same as the one used by the target context. A connection. An interception context. true if the supplied interception context contains the target context or the supplied connection is the same as the one used by the target context if the supplied interception context doesn't contain any contexts; false otherwise. Note that calling this method will trigger initialization of any DbContext referenced from the When implemented in a derived class returns the script to prepare the database for this transaction handler. A script to change the database schema for this transaction handler. Can be implemented in a derived class. The connection beginning the transaction. Contextual information associated with the call. Can be implemented in a derived class. The connection that began the transaction. Contextual information associated with the call. Can be implemented in a derived class. The connection being closed. Contextual information associated with the call. Can be implemented in a derived class. The connection that was closed. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection being disposed. Contextual information associated with the call. Can be implemented in a derived class. The connection that was disposed. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection being opened. Contextual information associated with the call. Can be implemented in a derived class. The connection that was opened. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The connection. Contextual information associated with the call. Can be implemented in a derived class. The transaction. Contextual information associated with the call. Can be implemented in a derived class. The transaction. Contextual information associated with the call. Can be implemented in a derived class. The transaction. Contextual information associated with the call. Can be implemented in a derived class. The transaction. Contextual information associated with the call. Can be implemented in a derived class. The transaction being commited. Contextual information associated with the call. Can be implemented in a derived class. The transaction that was commited. Contextual information associated with the call. Can be implemented in a derived class. The transaction being disposed. Contextual information associated with the call. Can be implemented in a derived class. The transaction that was disposed. Contextual information associated with the call. Can be implemented in a derived class. The transaction being rolled back. Contextual information associated with the call. Can be implemented in a derived class. The transaction that was rolled back. Contextual information associated with the call. Gets the context. The for which the transaction operations will be handled. Gets the context. The for which the transaction operations will be handled, could be null. Gets the connection. The for which the transaction operations will be handled. This connection object is only used to determine whether a particular operation needs to be handled in cases where a context is not available. Gets or sets a value indicating whether this transaction handler is disposed. true if disposed; otherwise, false. This class is used by to write and read transaction tracing information from the database. To customize the definition of the transaction table you can derive from this class and override . Derived classes can be registered using . By default EF will poll the resolved to check wether the database schema is compatible and will try to modify it accordingly if it's not. To disable this check call Database.SetInitializer<TTransactionContext>(null) where TTransactionContext is the type of the resolved context. A DbContext instance represents a combination of the Unit Of Work and Repository patterns such that it can be used to query from a database and group together changes that will then be written back to the store as a unit. DbContext is conceptually similar to ObjectContext. DbContext is usually used with a derived type that contains properties for the root entities of the model. These sets are automatically initialized when the instance of the derived class is created. This behavior can be modified by applying the attribute to either the entire derived context class, or to individual properties on the class. The Entity Data Model backing the context can be specified in several ways. When using the Code First approach, the properties on the derived context are used to build a model by convention. The protected OnModelCreating method can be overridden to tweak this model. More control over the model used for the Model First approach can be obtained by creating a explicitly from a and passing this model to one of the DbContext constructors. When using the Database First or Model First approach the Entity Data Model can be created using the Entity Designer (or manually through creation of an EDMX file) and then this model can be specified using entity connection string or an object. The connection to the database (including the name of the database) can be specified in several ways. If the parameterless DbContext constructor is called from a derived context, then the name of the derived context is used to find a connection string in the app.config or web.config file. If no connection string is found, then the name is passed to the DefaultConnectionFactory registered on the class. The connection factory then uses the context name as the database name in a default connection string. (This default connection string points to .\SQLEXPRESS on the local machine unless a different DefaultConnectionFactory is registered.) Instead of using the derived context name, the connection/database name can also be specified explicitly by passing the name to one of the DbContext constructors that takes a string. The name can also be passed in the form "name=myname", in which case the name must be found in the config file or an exception will be thrown. Note that the connection found in the app.config or web.config file can be a normal database connection string (not a special Entity Framework connection string) in which case the DbContext will use Code First. However, if the connection found in the config file is a special Entity Framework connection string, then the DbContext will use Database/Model First and the model specified in the connection string will be used. An existing or explicitly created DbConnection can also be used instead of the database/connection name. A can be applied to a class derived from DbContext to set the version of conventions used by the context when it creates a model. If no attribute is applied then the latest version of conventions will be used. Interface implemented by objects that can provide an instance. The class implements this interface to provide access to the underlying ObjectContext. Gets the object context. The object context. Constructs a new context instance using conventions to create the name of the database to which a connection will be made. The by-convention name is the full name (namespace + class name) of the derived context class. See the class remarks for how this is used to create a connection. Constructs a new context instance using conventions to create the name of the database to which a connection will be made, and initializes it from the given model. The by-convention name is the full name (namespace + class name) of the derived context class. See the class remarks for how this is used to create a connection. The model that will back this context. Constructs a new context instance using the given string as the name or connection string for the database to which a connection will be made. See the class remarks for how this is used to create a connection. Either the database name or a connection string. Constructs a new context instance using the given string as the name or connection string for the database to which a connection will be made, and initializes it from the given model. See the class remarks for how this is used to create a connection. Either the database name or a connection string. The model that will back this context. Constructs a new context instance using the existing connection to connect to a database. The connection will not be disposed when the context is disposed if is false. An existing connection to use for the new context. If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. Constructs a new context instance using the existing connection to connect to a database, and initializes it from the given model. The connection will not be disposed when the context is disposed if is false. An existing connection to use for the new context. The model that will back this context. If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. Constructs a new context instance around an existing ObjectContext. An existing ObjectContext to wrap with the new context. If set to true the ObjectContext is disposed when the DbContext is disposed, otherwise the caller must dispose the connection. This method is called when the model for a derived context has been initialized, but before the model has been locked down and used to initialize the context. The default implementation of this method does nothing, but it can be overridden in a derived class such that the model can be further configured before it is locked down. Typically, this method is called only once when the first instance of a derived context is created. The model for that context is then cached and is for all further instances of the context in the app domain. This caching can be disabled by setting the ModelCaching property on the given ModelBuidler, but note that this can seriously degrade performance. More control over caching is provided through use of the DbModelBuilder and DbContextFactory classes directly. The builder that defines the model for the context being created. Returns a instance for access to entities of the given type in the context and the underlying store. Note that Entity Framework requires that this method return the same instance each time that it is called for a given context instance and entity type. Also, the non-generic returned by the method must wrap the same underlying query and set of entities. These invariants must be maintained if this method is overridden for anything other than creating test doubles for unit testing. See the class for more details. The type entity for which a set should be returned. A set for the given entity type. Returns a non-generic instance for access to entities of the given type in the context and the underlying store. The type of entity for which a set should be returned. A set for the given entity type. Note that Entity Framework requires that this method return the same instance each time that it is called for a given context instance and entity type. Also, the generic returned by the method must wrap the same underlying query and set of entities. These invariants must be maintained if this method is overridden for anything other than creating test doubles for unit testing. See the class for more details. Saves all changes made in this context to the underlying database. The number of state entries written to the underlying database. This can include state entries for entities and/or relationships. Relationship state entries are created for many-to-many relationships and relationships where there is no foreign key property included in the entity class (often referred to as independent associations). An error occurred sending updates to the database. A database command did not affect the expected number of rows. This usually indicates an optimistic concurrency violation; that is, a row has been changed in the database since it was queried. The save was aborted because validation of entity property values failed. An attempt was made to use unsupported behavior such as executing multiple asynchronous commands concurrently on the same context instance. The context or connection have been disposed. Some error occurred attempting to process entities in the context either before or after sending commands to the database. Asynchronously saves all changes made in this context to the underlying database. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A task that represents the asynchronous save operation. The task result contains the number of state entries written to the underlying database. This can include state entries for entities and/or relationships. Relationship state entries are created for many-to-many relationships and relationships where there is no foreign key property included in the entity class (often referred to as independent associations). An error occurred sending updates to the database. A database command did not affect the expected number of rows. This usually indicates an optimistic concurrency violation; that is, a row has been changed in the database since it was queried. The save was aborted because validation of entity property values failed. An attempt was made to use unsupported behavior such as executing multiple asynchronous commands concurrently on the same context instance. The context or connection have been disposed. Some error occurred attempting to process entities in the context either before or after sending commands to the database. Asynchronously saves all changes made in this context to the underlying database. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous save operation. The task result contains the number of state entries written to the underlying database. This can include state entries for entities and/or relationships. Relationship state entries are created for many-to-many relationships and relationships where there is no foreign key property included in the entity class (often referred to as independent associations). Thrown if the context has been disposed. Validates tracked entities and returns a Collection of containing validation results. Collection of validation results for invalid entities. The collection is never null and must not contain null values or results for valid entities. 1. This method calls DetectChanges() to determine states of the tracked entities unless DbContextConfiguration.AutoDetectChangesEnabled is set to false. 2. By default only Added on Modified entities are validated. The user is able to change this behavior by overriding ShouldValidateEntity method. Extension point allowing the user to override the default behavior of validating only added and modified entities. DbEntityEntry instance that is supposed to be validated. true to proceed with validation; false otherwise. Extension point allowing the user to customize validation of an entity or filter out validation results. Called by . DbEntityEntry instance to be validated. User-defined dictionary containing additional info for custom validation. It will be passed to and will be exposed as . This parameter is optional and can be null. Entity validation result. Possibly null when overridden. Gets a object for the given entity providing access to information about the entity and the ability to perform actions on the entity. The type of the entity. The entity. An entry for the entity. Gets a object for the given entity providing access to information about the entity and the ability to perform actions on the entity. The entity. An entry for the entity. Calls the protected Dispose method. Disposes the context. The underlying is also disposed if it was created is by this context or ownership was passed to this context when this context was created. The connection to the database ( object) is also disposed if it was created is by this context or ownership was passed to this context when this context was created. true to release both managed and unmanaged resources; false to release only unmanaged resources. Creates a Database instance for this context that allows for creation/deletion/existence checks for the underlying database. Returns the Entity Framework ObjectContext that is underlying this context. Thrown if the context has been disposed. Provides access to features of the context that deal with change tracking of entities. An object used to access features that deal with change tracking. Provides access to configuration options for the context. An object used to access configuration options. Initializes a new instance of the class. The connection used by the context for which the transactions will be recorded. Gets or sets a that can be used to read and write instances. A transaction handler that allows to gracefully recover from connection failures during transaction commit by storing transaction tracing information in the database. It needs to be registered by using . This transaction handler uses to store the transaction information the schema used can be configured by creating a class derived from that overrides DbContext.OnModelCreating(DbModelBuilder) and passing it to the constructor of this class. Initializes a new instance of the class using the default . One of the Initialize methods needs to be called before this instance can be used. Initializes a new instance of the class. The transaction context factory. One of the Initialize methods needs to be called before this instance can be used. Stores the tracking information for the new transaction to the database in the same transaction. The connection that began the transaction. Contextual information associated with the call. If there was an exception thrown checks the database for this transaction and rethrows it if not found. Otherwise marks the commit as succeeded and queues the transaction information to be deleted. The transaction that was commited. Contextual information associated with the call. Stops tracking the transaction that was rolled back. The transaction that was rolled back. Contextual information associated with the call. Stops tracking the transaction that was disposed. The transaction that was disposed. Contextual information associated with the call. Removes all the transaction history. This method should only be invoked when there are no active transactions to remove any leftover history that was not deleted due to catastrophic failures Asynchronously removes all the transaction history. This method should only be invoked when there are no active transactions to remove any leftover history that was not deleted due to catastrophic failures A task that represents the asynchronous operation. Asynchronously removes all the transaction history. This method should only be invoked when there are no active transactions to remove any leftover history that was not deleted due to catastrophic failures The cancellation token. A task that represents the asynchronous operation. Adds the specified transaction to the list of transactions that can be removed from the database The transaction to be removed from the database. Removes the transactions marked for deletion. Asynchronously removes the transactions marked for deletion. A task that represents the asynchronous operation. Asynchronously removes the transactions marked for deletion. The cancellation token. A task that represents the asynchronous operation. Removes the transactions marked for deletion if their number exceeds . if set to true will remove all the old transactions even if their number does not exceed . if set to true the operation will be executed using the associated execution strategy Removes the transactions marked for deletion if their number exceeds . if set to true will remove all the old transactions even if their number does not exceed . if set to true the operation will be executed using the associated execution strategy The cancellation token. A task that represents the asynchronous operation. Gets the associated with the if there is one; otherwise returns null. The context The associated . Gets the associated with the if there is one; otherwise returns null. The context The associated . Gets the transaction context. The transaction context. Gets the number of transactions to be executed on the context before the transaction log will be cleaned. The default value is 20. An implementation of this interface is used to initialize the underlying database when an instance of a derived class is used for the first time. This initialization can conditionally create the database and/or seed it with data. The strategy used is set using the static InitializationStrategy property of the class. The following implementations are provided: , , . The type of the context. Executes the strategy to initialize the database for the given context. The context. Rrepresents a transaction A unique id assigned to a transaction object. The local time when the transaction was started. Helper class that is used to configure a parameter. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Creates a new parameter definition to pass Binary data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The maximum allowable length of the array data. Value indicating whether or not all data should be padded to the maximum length. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass Boolean data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass Byte data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass DateTime data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The precision of the parameter. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass Decimal data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The numeric precision of the parameter. The numeric scale of the parameter. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass Double data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass GUID data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass Single data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass Short data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass Integer data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass Long data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass String data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The maximum allowable length of the string data. Value indicating whether or not all data should be padded to the maximum length. Value indicating whether or not the parameter supports Unicode content. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass Time data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The precision of the parameter. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass DateTimeOffset data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The precision of the parameter. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass geography data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Creates a new parameter definition to pass geometry data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Constant value to use as the default value for this parameter. SQL expression used as the default value for this parameter. The name of the parameter. Provider specific data type to use for this parameter. A value indicating whether the parameter is an output parameter. The newly constructed parameter definition. Gets the of the current instance. The exact runtime type of the current instance. Creates a shallow copy of the current . A shallow copy of the current . Represents altering an existing stored procedure. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. A migration operation that affects stored procedures. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Represents an operation to modify a database schema. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the MigrationOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets additional arguments that may be processed by providers. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets an operation that will revert this operation. Gets a value indicating if this operation may result in data loss. Initializes a new instance of the class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the stored procedure. The body of the stored procedure expressed in SQL. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the stored procedure. The name of the stored procedure. Gets the body of the stored procedure expressed in SQL. The body of the stored procedure expressed in SQL. Gets the parameters of the stored procedure. The parameters of the stored procedure. Gets a value indicating if this operation may result in data loss. Always returns false. Initializes a new instance of the class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the stored procedure. The body of the stored procedure expressed in SQL. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation that will revert this operation. Always returns a . Represents changes made to custom annotations on a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the AlterTableOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Name of the table on which annotations have changed. The custom annotations on the table that have changed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table on which annotations have changed. Gets the columns to be included in the table for which annotations have changed. Gets the custom annotations that have changed on the table. Gets an operation that is the inverse of this one such that annotations will be changed back to how they were before this operation was applied. Represents renaming an existing index. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the RenameIndexOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Name of the table the index belongs to. Name of the index to be renamed. New name for the index. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table the index belongs to. Gets the name of the index to be renamed. Gets the new name for the index. Gets an operation that reverts the rename. Used when scripting an update database operation to store the operations that would have been performed against the database. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The queries used to determine if this migration needs to be applied to the database. This is used to generate an idempotent SQL script that can be run against a database at any version. Adds a migration to this update database operation. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The id of the migration. The individual operations applied by the migration. The queries used to determine if this migration needs to be applied to the database. This is used to generate an idempotent SQL script that can be run against a database at any version. Gets the migrations applied during the update database operation. The migrations applied during the update database operation. Gets a value indicating if any of the operations may result in data loss. Represents a migration to be applied to the database. Gets the id of the migration. The id of the migration. Gets the individual operations applied by this migration. The individual operations applied by this migration. Represents moving a stored procedure to a new schema in the database. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the stored procedure to move. The new schema for the stored procedure. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the stored procedure to move. The name of the stored procedure to move. Gets the new schema for the stored procedure. The new schema for the stored procedure. Gets an operation that will revert this operation. Gets a value indicating if this operation may result in data loss. Always returns false. Represents renaming a stored procedure in the database. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the stored procedure to rename. The new name for the stored procedure. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the stored procedure to rename. The name of the stored procedure to rename. Gets the new name for the stored procedure. The new name for the stored procedure. Gets an operation that will revert this operation. Gets a value indicating if this operation may result in data loss. Always returns false. Represents a migration operation that can not be performed, possibly because it is not supported by the targeted database provider. Gets a value indicating if this operation may result in data loss. Always returns false. Represents information about a parameter. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Represents information about a property of an entity. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the PropertyModel class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The data type for this property model. Additional details about the data type. This includes details such as maximum length, nullability etc. Gets the data type for this property model. Gets additional details about the data type of this property model. This includes details such as maximum length, nullability etc. Gets or sets the name of the property model. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets or sets a provider specific data type to use for this property model. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets or sets the maximum length for this property model. Only valid for array data types. Gets or sets the precision for this property model. Only valid for decimal data types. Gets or sets the scale for this property model. Only valid for decimal data types. Gets or sets a constant value to use as the default value for this property model. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets or sets a SQL expression used as the default value for this property model. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets or sets a value indicating if this property model is fixed length. Only valid for array data types. Gets or sets a value indicating if this property model supports Unicode characters. Only valid for textual data types. Initializes a new instance of the ParameterModel class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The data type for this parameter. Initializes a new instance of the ParameterModel class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The data type for this parameter. Additional details about the data type. This includes details such as maximum length, nullability etc. Gets or sets a value indicating whether this instance is out parameter. true if this instance is out parameter; otherwise, false. Drops a stored procedure from the database. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the stored procedure to drop. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the stored procedure to drop. The name of the stored procedure to drop. Gets an operation that will revert this operation. Always returns a . Gets a value indicating if this operation may result in data loss. Always returns false. Allows configuration to be performed for a lightweight convention based on the entity types in a model. Filters the entity types that this convention applies to based on a predicate. A function to test each entity type for a condition. An instance so that multiple calls can be chained. Filters the entity types that this convention applies to based on a predicate while capturing a value to use later during configuration. Type of the captured value. A function to capture a value for each entity type. If the value is null, the entity type will be filtered out. An instance so that multiple calls can be chained. Allows configuration of the entity types that this convention applies to. An action that performs configuration against a . Gets the of the current instance. The exact runtime type of the current instance. Allows configuration to be performed for a lightweight convention based on the entity types in a model that inherit from a common, specified type. The common type of the entity types that this convention applies to. Filters the entity types that this convention applies to based on a predicate. A function to test each entity type for a condition. An instance so that multiple calls can be chained. Filters the entity types that this convention applies to based on a predicate while capturing a value to use later during configuration. Type of the captured value. A function to capture a value for each entity type. If the value is null, the entity type will be filtered out. An instance so that multiple calls can be chained. Allows configuration of the entity types that this convention applies to. An action that performs configuration against a . Gets the of the current instance. The exact runtime type of the current instance. Allows configuration to be performed for a lightweight convention based on the entity types in a model that inherit from a common, specified type and a captured value. The common type of the entity types that this convention applies to. Type of the captured value. Allows configuration of the entity types that this convention applies to. An action that performs configuration against a using a captured value. Gets the of the current instance. The exact runtime type of the current instance. Allows configuration to be performed for a lightweight convention based on the entity types in a model and a captured value. Type of the captured value. Allows configuration of the entity types that this convention applies to. An action that performs configuration against a using a captured value. Gets the of the current instance. The exact runtime type of the current instance. Allows configuration to be performed for an entity type in a model. This configuration functionality is available via lightweight conventions. Configures the entity set name to be used for this entity type. The entity set name can only be configured for the base type in each set. The name of the entity set. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Excludes this entity type from the model so that it will not be mapped to the database. The same instance so that multiple calls can be chained. Changes this entity type to a complex type. The same instance so that multiple calls can be chained. Excludes a property from the model so that it will not be mapped to the database. The name of the property to be configured. The same instance so that multiple calls can be chained. Calling this will have no effect if the property does not exist. Excludes a property from the model so that it will not be mapped to the database. The property to be configured. The same instance so that multiple calls can be chained. Calling this will have no effect if the property does not exist. Configures a property that is defined on this type. The name of the property being configured. A configuration object that can be used to configure the property. Configures a property that is defined on this type. The property being configured. A configuration object that can be used to configure the property. Configures the primary key property for this entity type. The name of the property to be used as the primary key. The same instance so that multiple calls can be chained. Configures the primary key property for this entity type. The property to be used as the primary key. The same instance so that multiple calls can be chained. Configures the primary key property(s) for this entity type. The names of the properties to be used as the primary key. The same instance so that multiple calls can be chained. Configures the primary key property(s) for this entity type. The properties to be used as the primary key. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured or if any property does not exist. Configures the table name that this entity type is mapped to. The name of the table. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Configures the table name that this entity type is mapped to. The name of the table. The database schema of the table. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Sets an annotation in the model for the table to which this entity is mapped. The annotation value can later be used when processing the table such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Calling this method will have no effect if the annotation with the given name has already been configured. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same configuration instance so that multiple calls can be chained. Configures this type to use stored procedures for insert, update and delete. The default conventions for procedure and parameter names will be used. The same configuration instance so that multiple calls can be chained. Configures this type to use stored procedures for insert, update and delete. Configuration to override the default conventions for procedure and parameter names. The same configuration instance so that multiple calls can be chained. Gets the of the current instance. The exact runtime type of the current instance. Gets the of this entity type. Allows configuration to be performed for an entity type in a model. This configuration functionality is available via lightweight conventions. A type inherited by the entity type. Configures the entity set name to be used for this entity type. The entity set name can only be configured for the base type in each set. The name of the entity set. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Excludes this entity type from the model so that it will not be mapped to the database. The same instance so that multiple calls can be chained. Changes this entity type to a complex type. The same instance so that multiple calls can be chained. Excludes a property from the model so that it will not be mapped to the database. The type of the property to be ignored. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The same instance so that multiple calls can be chained. Configures a property that is defined on this type. The type of the property being configured. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures the primary key property(s) for this entity type. The type of the key. A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Configures the table name that this entity type is mapped to. The name of the table. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Configures the table name that this entity type is mapped to. The name of the table. The database schema of the table. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Sets an annotation in the model for the table to which this entity is mapped. The annotation value can later be used when processing the table such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Calling this method will have no effect if the annotation with the given name has already been configured. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same configuration instance so that multiple calls can be chained. Configures this type to use stored procedures for insert, update and delete. The default conventions for procedure and parameter names will be used. The same configuration instance so that multiple calls can be chained. Configures this type to use stored procedures for insert, update and delete. Configuration to override the default conventions for procedure and parameter names. The same configuration instance so that multiple calls can be chained. Gets the of the current instance. The exact runtime type of the current instance. Gets the of this entity type. Identifies conventions that can be added to or removed from a instance. Note that implementations of this interface must be immutable. A general purpose class for Code First conventions that read attributes from .NET properties and generate column annotations based on those attributes. The type of attribute to discover. The type of annotation that will be created. A convention that doesn't override configuration. The derived class can use the default constructor to apply a set rule of that change the model configuration. Begins configuration of a lightweight convention that applies to all mapped types in the model. A configuration object for the convention. Begins configuration of a lightweight convention that applies to all mapped types in the model that derive from or implement the specified type. The type of the entities that this convention will apply to. A configuration object for the convention. This method does not add new types to the model. Begins configuration of a lightweight convention that applies to all properties in the model. A configuration object for the convention. Begins configuration of a lightweight convention that applies to all primitive properties of the specified type in the model. The type of the properties that the convention will apply to. A configuration object for the convention. The convention will apply to both nullable and non-nullable properties of the specified type. Constructs a convention that will create column annotations with the given name and using the given factory delegate. The name of the annotations to create. A factory for creating the annotation on each column. A general purpose class for Code First conventions that read attributes from .NET types and generate table annotations based on those attributes. The type of attribute to discover. The type of annotation that will be created. Constructs a convention that will create table annotations with the given name and using the given factory delegate. The name of the annotations to create. A factory for creating the annotation on each table. A convention for discovering attributes on properties and generating column annotations in the model. Constructs a new instance of the convention. Base class for conventions that process CLR attributes found on primitive properties in the model. The type of the attribute to look for. Initializes a new instance of the class. Applies this convention to a property that has an attribute of type TAttribute applied. The configuration for the property that has the attribute. The attribute. Base class for conventions that process CLR attributes found on properties of types in the model. Note that the derived convention will be applied for any non-static property on the mapped type that has the specified attribute, even if it wasn't included in the model. The type of the attribute to look for. Initializes a new instance of the class. Applies this convention to a property that has an attribute of type TAttribute applied. The member info for the property that has the attribute. The configuration for the class that contains the property. The attribute. Base class for conventions that process CLR attributes found in the model. The type of the attribute to look for. Initializes a new instance of the class. Applies this convention to a class that has an attribute of type TAttribute applied. The configuration for the class that contains the property. The attribute. Used to configure a property in a mapping fragment. This configuration functionality is available via the Code First Fluent API, see . Configures the name of the database column used to store the property, in a mapping fragment. The name of the column. The same PropertyMappingConfiguration instance so that multiple calls can be chained. Sets an annotation in the model for the database column used to store the property. The annotation value can later be used when processing the column such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Passing a null value clears any annotation with the given name on the column that had been previously set. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same PropertyMappingConfiguration instance so that multiple calls can be chained. Convention to introduce indexes for foreign keys. A convention that operates on the database section of the model after the model is created. The type of metadata item that this convention operates on. Applies this convention to an item in the model. The item to apply the convention to. The model. A convention that operates on the conceptual section of the model after the model is created. The type of metadata item that this convention operates on. Applies this convention to an item in the model. The item to apply the convention to. The model. Useful extension methods for use with Entity Framework LINQ queries. Specifies the related objects to include in the query results. This extension method calls the Include(String) method of the source object, if such a method exists. If the source does not have a matching method, then this method does nothing. The , , and types all have an appropriate Include method to call. Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on the returned instance of the . Other instances of and the object context itself are not affected. Because the Include method returns the query object, you can call this method multiple times on an to specify multiple paths for the query. The type of entity being queried. The source on which to call Include. The dot-separated list of related objects to return in the query results. A new with the defined query path. Specifies the related objects to include in the query results. This extension method calls the Include(String) method of the source object, if such a method exists. If the source does not have a matching method, then this method does nothing. The , , and types all have an appropriate Include method to call. Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on the returned instance of the . Other instances of and the object context itself are not affected. Because the Include method returns the query object, you can call this method multiple times on an to specify multiple paths for the query. The source on which to call Include. The dot-separated list of related objects to return in the query results. A new with the defined query path. Specifies the related objects to include in the query results. The path expression must be composed of simple property access expressions together with calls to Select for composing additional includes after including a collection proprty. Examples of possible include paths are: To include a single reference: query.Include(e => e.Level1Reference) To include a single collection: query.Include(e => e.Level1Collection) To include a reference and then a reference one level down: query.Include(e => e.Level1Reference.Level2Reference) To include a reference and then a collection one level down: query.Include(e => e.Level1Reference.Level2Collection) To include a collection and then a reference one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference)) To include a collection and then a collection one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection)) To include a collection and then a reference one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference)) To include a collection and then a collection one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection)) To include a collection, a reference, and a reference two levels down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference.Level3Reference)) To include a collection, a collection, and a reference two levels down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection.Select(l2 => l2.Level3Reference))) This extension method calls the Include(String) method of the source IQueryable object, if such a method exists. If the source IQueryable does not have a matching method, then this method does nothing. The Entity Framework ObjectQuery, ObjectSet, DbQuery, and DbSet types all have an appropriate Include method to call. When you call the Include method, the query path is only valid on the returned instance of the IQueryable<T>. Other instances of IQueryable<T> and the object context itself are not affected. Because the Include method returns the query object, you can call this method multiple times on an IQueryable<T> to specify multiple paths for the query. The type of entity being queried. The type of navigation property being included. The source IQueryable on which to call Include. A lambda expression representing the path to include. A new IQueryable<T> with the defined query path. Returns a new query where the entities returned will not be cached in the or . This method works by calling the AsNoTracking method of the underlying query object. If the underlying query object does not have an AsNoTracking method, then calling this method will have no affect. The element type. The source query. A new query with NoTracking applied, or the source query if NoTracking is not supported. Returns a new query where the entities returned will not be cached in the or . This method works by calling the AsNoTracking method of the underlying query object. If the underlying query object does not have an AsNoTracking method, then calling this method will have no affect. The source query. A new query with NoTracking applied, or the source query if NoTracking is not supported. Returns a new query that will stream the results instead of buffering. This method works by calling the AsStreaming method of the underlying query object. If the underlying query object does not have an AsStreaming method, then calling this method will have no affect. The type of the elements of . An to apply AsStreaming to. A new query with AsStreaming applied, or the source query if AsStreaming is not supported. Returns a new query that will stream the results instead of buffering. This method works by calling the AsStreaming method of the underlying query object. If the underlying query object does not have an AsStreaming method, then calling this method will have no affect. An to apply AsStreaming to. A new query with AsStreaming applied, or the source query if AsStreaming is not supported. Enumerates the query such that for server queries such as those of , , , and others the results of the query will be loaded into the associated , or other cache on the client. This is equivalent to calling ToList and then throwing away the list without the overhead of actually creating the list. The source query. Asynchronously enumerates the query such that for server queries such as those of , , , and others the results of the query will be loaded into the associated , or other cache on the client. This is equivalent to calling ToList and then throwing away the list without the overhead of actually creating the list. The source query. A task that represents the asynchronous operation. Asynchronously enumerates the query such that for server queries such as those of , , , and others the results of the query will be loaded into the associated , or other cache on the client. This is equivalent to calling ToList and then throwing away the list without the overhead of actually creating the list. The source query. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. Asynchronously enumerates the query results and performs the specified action on each element. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. An to enumerate. The action to perform on each element. A task that represents the asynchronous operation. Asynchronously enumerates the query results and performs the specified action on each element. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. An to enumerate. The action to perform on each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. Asynchronously enumerates the query results and performs the specified action on each element. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to enumerate. The action to perform on each element. A task that represents the asynchronous operation. Asynchronously enumerates the query results and performs the specified action on each element. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to enumerate. The action to perform on each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. Creates a from an by enumerating it asynchronously. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. An to create a from. A task that represents the asynchronous operation. The task result contains a that contains elements from the input sequence. Creates a from an by enumerating it asynchronously. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. An to create a from. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains a that contains elements from the input sequence. Creates a from an by enumerating it asynchronously. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to create a from. A task that represents the asynchronous operation. The task result contains a that contains elements from the input sequence. Creates a from an by enumerating it asynchronously. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to create a list from. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains a that contains elements from the input sequence. Creates an array from an by enumerating it asynchronously. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to create an array from. A task that represents the asynchronous operation. The task result contains an array that contains elements from the input sequence. Creates an array from an by enumerating it asynchronously. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to create an array from. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains an array that contains elements from the input sequence. Creates a from an by enumerating it asynchronously according to a specified key selector function. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . The type of the key returned by . An to create a from. A function to extract a key from each element. A task that represents the asynchronous operation. The task result contains a that contains selected keys and values. Creates a from an by enumerating it asynchronously according to a specified key selector function. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . The type of the key returned by . An to create a from. A function to extract a key from each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains a that contains selected keys and values. Creates a from an by enumerating it asynchronously according to a specified key selector function and a comparer. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . The type of the key returned by . An to create a from. A function to extract a key from each element. An to compare keys. A task that represents the asynchronous operation. The task result contains a that contains selected keys and values. Creates a from an by enumerating it asynchronously according to a specified key selector function and a comparer. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . The type of the key returned by . An to create a from. A function to extract a key from each element. An to compare keys. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains a that contains selected keys and values. Creates a from an by enumerating it asynchronously according to a specified key selector and an element selector function. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . The type of the key returned by . The type of the value returned by . An to create a from. A function to extract a key from each element. A transform function to produce a result element value from each element. A task that represents the asynchronous operation. The task result contains a that contains values of type selected from the input sequence. Creates a from an by enumerating it asynchronously according to a specified key selector and an element selector function. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . The type of the key returned by . The type of the value returned by . An to create a from. A function to extract a key from each element. A transform function to produce a result element value from each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains a that contains values of type selected from the input sequence. Creates a from an by enumerating it asynchronously according to a specified key selector function, a comparer, and an element selector function. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . The type of the key returned by . The type of the value returned by . An to create a from. A function to extract a key from each element. A transform function to produce a result element value from each element. An to compare keys. A task that represents the asynchronous operation. The task result contains a that contains values of type selected from the input sequence. Creates a from an by enumerating it asynchronously according to a specified key selector function, a comparer, and an element selector function. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . The type of the key returned by . The type of the value returned by . An to create a from. A function to extract a key from each element. A transform function to produce a result element value from each element. An to compare keys. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains a that contains values of type selected from the input sequence. Asynchronously returns the first element of a sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to return the first element of. A task that represents the asynchronous operation. The task result contains the first element in . is null. doesn't implement . The source sequence is empty. Asynchronously returns the first element of a sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to return the first element of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the first element in . is null . doesn't implement . The source sequence is empty. Asynchronously returns the first element of a sequence that satisfies a specified condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to return the first element of. A function to test each element for a condition. A task that represents the asynchronous operation. The task result contains the first element in that passes the test in . or is null . doesn't implement . No element satisfies the condition in . Asynchronously returns the first element of a sequence that satisfies a specified condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to return the first element of. A function to test each element for a condition. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the first element in that passes the test in . or is null . doesn't implement . No element satisfies the condition in . Asynchronously returns the first element of a sequence, or a default value if the sequence contains no elements. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to return the first element of. A task that represents the asynchronous operation. The task result contains default ( ) if is empty; otherwise, the first element in . is null . doesn't implement . Asynchronously returns the first element of a sequence, or a default value if the sequence contains no elements. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to return the first element of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains default ( ) if is empty; otherwise, the first element in . is null . doesn't implement . Asynchronously returns the first element of a sequence that satisfies a specified condition or a default value if no such element is found. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to return the first element of. A function to test each element for a condition. A task that represents the asynchronous operation. The task result contains default ( ) if is empty or if no element passes the test specified by ; otherwise, the first element in that passes the test specified by . or is null . doesn't implement . Asynchronously returns the first element of a sequence that satisfies a specified condition or a default value if no such element is found. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to return the first element of. A function to test each element for a condition. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains default ( ) if is empty or if no element passes the test specified by ; otherwise, the first element in that passes the test specified by . or is null . doesn't implement . has more than one element. Asynchronously returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to return the single element of. A task that represents the asynchronous operation. The task result contains the single element of the input sequence. is null . doesn't implement . The source sequence is empty. Asynchronously returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to return the single element of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the single element of the input sequence. is null . doesn't implement . has more than one element. The source sequence is empty. Asynchronously returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than one such element exists. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to return the the single element of. A function to test an element for a condition. A task that represents the asynchronous operation. The task result contains the single element of the input sequence that satisfies the condition in . or is null . doesn't implement . No element satisfies the condition in . More than one element satisfies the condition in . Asynchronously returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than one such element exists. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to return the single element of. A function to test an element for a condition. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the single element of the input sequence that satisfies the condition in . or is null . doesn't implement . No element satisfies the condition in . More than one element satisfies the condition in . Asynchronously returns the only element of a sequence, or a default value if the sequence is empty; this method throws an exception if there is more than one element in the sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to return the single element of. A task that represents the asynchronous operation. The task result contains the single element of the input sequence, or default () if the sequence contains no elements. is null . doesn't implement . has more than one element. Asynchronously returns the only element of a sequence, or a default value if the sequence is empty; this method throws an exception if there is more than one element in the sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to return the single element of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the single element of the input sequence, or default () if the sequence contains no elements. is null . doesn't implement . has more than one element. Asynchronously returns the only element of a sequence that satisfies a specified condition or a default value if no such element exists; this method throws an exception if more than one element satisfies the condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to return the single element of. A function to test an element for a condition. A task that represents the asynchronous operation. The task result contains the single element of the input sequence that satisfies the condition in , or default ( ) if no such element is found. or is null . doesn't implement . Asynchronously returns the only element of a sequence that satisfies a specified condition or a default value if no such element exists; this method throws an exception if more than one element satisfies the condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to return the single element of. A function to test an element for a condition. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the single element of the input sequence that satisfies the condition in , or default ( ) if no such element is found. or is null . doesn't implement . Asynchronously determines whether a sequence contains a specified element by using the default equality comparer. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to return the single element of. The object to locate in the sequence. A task that represents the asynchronous operation. The task result contains true if the input sequence contains the specified value; otherwise, false. is null . doesn't implement . Asynchronously determines whether a sequence contains a specified element by using the default equality comparer. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to return the single element of. The object to locate in the sequence. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains true if the input sequence contains the specified value; otherwise, false. is null . doesn't implement . Asynchronously determines whether a sequence contains any elements. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to check for being empty. A task that represents the asynchronous operation. The task result contains true if the source sequence contains any elements; otherwise, false. is null . doesn't implement . Asynchronously determines whether a sequence contains any elements. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An to check for being empty. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains true if the source sequence contains any elements; otherwise, false. is null . doesn't implement . Asynchronously determines whether any element of a sequence satisfies a condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An whose elements to test for a condition. A function to test each element for a condition. A task that represents the asynchronous operation. The task result contains true if any elements in the source sequence pass the test in the specified predicate; otherwise, false. or is null . doesn't implement . Asynchronously determines whether any element of a sequence satisfies a condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An whose elements to test for a condition. A function to test each element for a condition. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains true if any elements in the source sequence pass the test in the specified predicate; otherwise, false. or is null . doesn't implement . Asynchronously determines whether all the elements of a sequence satisfy a condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An whose elements to test for a condition. A function to test each element for a condition. A task that represents the asynchronous operation. The task result contains true if every element of the source sequence passes the test in the specified predicate; otherwise, false. or is null . doesn't implement . Asynchronously determines whether all the elements of a sequence satisfy a condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An whose elements to test for a condition. A function to test each element for a condition. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains true if every element of the source sequence passes the test in the specified predicate; otherwise, false. or is null . doesn't implement . Asynchronously returns the number of elements in a sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An that contains the elements to be counted. A task that represents the asynchronous operation. The task result contains the number of elements in the input sequence. is null . doesn't implement . The number of elements in is larger than . Asynchronously returns the number of elements in a sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An that contains the elements to be counted. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the number of elements in the input sequence. is null . doesn't implement . The number of elements in is larger than . Asynchronously returns the number of elements in a sequence that satisfy a condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An that contains the elements to be counted. A function to test each element for a condition. A task that represents the asynchronous operation. The task result contains the number of elements in the sequence that satisfy the condition in the predicate function. or is null . doesn't implement . The number of elements in that satisfy the condition in the predicate function is larger than . Asynchronously returns the number of elements in a sequence that satisfy a condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An that contains the elements to be counted. A function to test each element for a condition. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the number of elements in the sequence that satisfy the condition in the predicate function. or is null . doesn't implement . The number of elements in that satisfy the condition in the predicate function is larger than . Asynchronously returns an that represents the total number of elements in a sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An that contains the elements to be counted. A task that represents the asynchronous operation. The task result contains the number of elements in the input sequence. is null . doesn't implement . The number of elements in is larger than . Asynchronously returns an that represents the total number of elements in a sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An that contains the elements to be counted. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the number of elements in the input sequence. is null . doesn't implement . The number of elements in is larger than . Asynchronously returns an that represents the number of elements in a sequence that satisfy a condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An that contains the elements to be counted. A function to test each element for a condition. A task that represents the asynchronous operation. The task result contains the number of elements in the sequence that satisfy the condition in the predicate function. or is null . doesn't implement . The number of elements in that satisfy the condition in the predicate function is larger than . Asynchronously returns an that represents the number of elements in a sequence that satisfy a condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An that contains the elements to be counted. A function to test each element for a condition. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the number of elements in the sequence that satisfy the condition in the predicate function. or is null . doesn't implement . The number of elements in that satisfy the condition in the predicate function is larger than . Asynchronously returns the minimum value of a sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An that contains the elements to determine the minimum of. A task that represents the asynchronous operation. The task result contains the minimum value in the sequence. is null . doesn't implement . Asynchronously returns the minimum value of a sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An that contains the elements to determine the minimum of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the minimum value in the sequence. is null . doesn't implement . Asynchronously invokes a projection function on each element of a sequence and returns the minimum resulting value. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . The type of the value returned by the function represented by . An that contains the elements to determine the minimum of. A projection function to apply to each element. A task that represents the asynchronous operation. The task result contains the minimum value in the sequence. or is null . doesn't implement . Asynchronously invokes a projection function on each element of a sequence and returns the minimum resulting value. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . The type of the value returned by the function represented by . An that contains the elements to determine the minimum of. A projection function to apply to each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the minimum value in the sequence. or is null . doesn't implement . Asynchronously returns the maximum value of a sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An that contains the elements to determine the maximum of. A task that represents the asynchronous operation. The task result contains the maximum value in the sequence. is null . doesn't implement . Asynchronously returns the maximum value of a sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . An that contains the elements to determine the maximum of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the maximum value in the sequence. is null . doesn't implement . Asynchronously invokes a projection function on each element of a sequence and returns the maximum resulting value. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . The type of the value returned by the function represented by . An that contains the elements to determine the maximum of. A projection function to apply to each element. A task that represents the asynchronous operation. The task result contains the maximum value in the sequence. or is null . doesn't implement . Asynchronously invokes a projection function on each element of a sequence and returns the maximum resulting value. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . The type of the value returned by the function represented by . An that contains the elements to determine the maximum of. A projection function to apply to each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the maximum value in the sequence. or is null . doesn't implement . Asynchronously computes the sum of a sequence of values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of values to calculate the sum of. A task that represents the asynchronous operation. The task result contains the sum of the values in the sequence. is null . doesn't implement . The number of elements in is larger than . Asynchronously computes the sum of a sequence of values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of values to calculate the sum of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the sum of the values in the sequence. is null . doesn't implement . The number of elements in is larger than . Asynchronously computes the sum of a sequence of nullable values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of nullable values to calculate the sum of. A task that represents the asynchronous operation. The task result contains the sum of the values in the sequence. is null . doesn't implement . The number of elements in is larger than . Asynchronously computes the sum of a sequence of nullable values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of nullable values to calculate the sum of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the sum of the values in the sequence. is null . doesn't implement . The number of elements in is larger than . Asynchronously computes the sum of a sequence of values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of values to calculate the sum of. A task that represents the asynchronous operation. The task result contains the sum of the values in the sequence. is null . doesn't implement . The number of elements in is larger than . Asynchronously computes the sum of a sequence of values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of values to calculate the sum of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the sum of the values in the sequence. is null . doesn't implement . The number of elements in is larger than . Asynchronously computes the sum of a sequence of nullable values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of nullable values to calculate the sum of. A task that represents the asynchronous operation. The task result contains the sum of the values in the sequence. is null . doesn't implement . The number of elements in is larger than . Asynchronously computes the sum of a sequence of nullable values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of nullable values to calculate the sum of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the sum of the values in the sequence. is null . doesn't implement . The number of elements in is larger than . Asynchronously computes the sum of a sequence of values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of values to calculate the sum of. A task that represents the asynchronous operation. The task result contains the sum of the values in the sequence. is null . doesn't implement . Asynchronously computes the sum of a sequence of values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of values to calculate the sum of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the sum of the values in the sequence. is null . doesn't implement . Asynchronously computes the sum of a sequence of nullable values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of nullable values to calculate the sum of. A task that represents the asynchronous operation. The task result contains the sum of the values in the sequence. is null . doesn't implement . Asynchronously computes the sum of a sequence of nullable values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of nullable values to calculate the sum of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the sum of the values in the sequence. is null . doesn't implement . Asynchronously computes the sum of a sequence of values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of values to calculate the sum of. A task that represents the asynchronous operation. The task result contains the sum of the values in the sequence. is null . doesn't implement . Asynchronously computes the sum of a sequence of values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of values to calculate the sum of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the sum of the values in the sequence. is null . doesn't implement . Asynchronously computes the sum of a sequence of nullable values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of nullable values to calculate the sum of. A task that represents the asynchronous operation. The task result contains the sum of the values in the sequence. is null . doesn't implement . Asynchronously computes the sum of a sequence of nullable values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of nullable values to calculate the sum of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the sum of the values in the sequence. is null . doesn't implement . Asynchronously computes the sum of a sequence of values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of values to calculate the sum of. A task that represents the asynchronous operation. The task result contains the sum of the values in the sequence. is null . doesn't implement . Asynchronously computes the sum of a sequence of values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of values to calculate the sum of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the sum of the values in the sequence. is null . doesn't implement . Asynchronously computes the sum of a sequence of nullable values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of nullable values to calculate the sum of. A task that represents the asynchronous operation. The task result contains the sum of the values in the sequence. is null . doesn't implement . Asynchronously computes the sum of a sequence of nullable values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of nullable values to calculate the sum of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the sum of the values in the sequence. is null . doesn't implement . The number of elements in is larger than . Asynchronously computes the sum of the sequence of values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values of type . A projection function to apply to each element. A task that represents the asynchronous operation. The task result contains the sum of the projected values. or is null . doesn't implement . The number of elements in is larger than . Asynchronously computes the sum of the sequence of values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values of type . A projection function to apply to each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the sum of the projected values. or is null . doesn't implement . The number of elements in is larger than . Asynchronously computes the sum of the sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values of type . A projection function to apply to each element. A task that represents the asynchronous operation. The task result contains the sum of the projected values. or is null . doesn't implement . The number of elements in is larger than . Asynchronously computes the sum of the sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values of type . A projection function to apply to each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the sum of the projected values. or is null . doesn't implement . The number of elements in is larger than . Asynchronously computes the sum of the sequence of values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values of type . A projection function to apply to each element. A task that represents the asynchronous operation. The task result contains the sum of the projected values. or is null . doesn't implement . The number of elements in is larger than . Asynchronously computes the sum of the sequence of values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values of type . A projection function to apply to each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the sum of the projected values. or is null . doesn't implement . The number of elements in is larger than . Asynchronously computes the sum of the sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values of type . A projection function to apply to each element. A task that represents the asynchronous operation. The task result contains the sum of the projected values. or is null . doesn't implement . The number of elements in is larger than . Asynchronously computes the sum of the sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values of type . A projection function to apply to each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the sum of the projected values. or is null . doesn't implement . The number of elements in is larger than . Asynchronously computes the sum of the sequence of values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values of type . A projection function to apply to each element. A task that represents the asynchronous operation. The task result contains the sum of the projected values. or is null . doesn't implement . Asynchronously computes the sum of the sequence of values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values of type . A projection function to apply to each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the sum of the projected values. or is null . doesn't implement . Asynchronously computes the sum of the sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values of type . A projection function to apply to each element. A task that represents the asynchronous operation. The task result contains the sum of the projected values. or is null . doesn't implement . Asynchronously computes the sum of the sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values of type . A projection function to apply to each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the sum of the projected values. or is null . doesn't implement . Asynchronously computes the sum of the sequence of values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values of type . A projection function to apply to each element. A task that represents the asynchronous operation. The task result contains the sum of the projected values. or is null . doesn't implement . Asynchronously computes the sum of the sequence of values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values of type . A projection function to apply to each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the sum of the projected values. or is null . doesn't implement . Asynchronously computes the sum of the sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values of type . A projection function to apply to each element. A task that represents the asynchronous operation. The task result contains the sum of the projected values. or is null . doesn't implement . Asynchronously computes the sum of the sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values of type . A projection function to apply to each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the sum of the projected values. or is null . doesn't implement . Asynchronously computes the sum of the sequence of values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values of type . A projection function to apply to each element. A task that represents the asynchronous operation. The task result contains the sum of the projected values. or is null . doesn't implement . The number of elements in is larger than . Asynchronously computes the sum of the sequence of values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values of type . A projection function to apply to each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the sum of the projected values. or is null . doesn't implement . The number of elements in is larger than . Asynchronously computes the sum of the sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values of type . A projection function to apply to each element. A task that represents the asynchronous operation. The task result contains the sum of the projected values. or is null . doesn't implement . The number of elements in is larger than . Asynchronously computes the sum of the sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values of type . A projection function to apply to each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the sum of the projected values. or is null . doesn't implement . The number of elements in is larger than . Asynchronously computes the average of a sequence of values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of values to calculate the average of. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. is null . doesn't implement . contains no elements. Asynchronously computes the average of a sequence of values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of values to calculate the average of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. is null . doesn't implement . contains no elements. Asynchronously computes the average of a sequence of nullable values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of nullable values to calculate the average of. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. is null . doesn't implement . Asynchronously computes the average of a sequence of nullable values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of nullable values to calculate the average of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. is null . doesn't implement . Asynchronously computes the average of a sequence of values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of values to calculate the average of. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. is null . doesn't implement . contains no elements. Asynchronously computes the average of a sequence of values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of values to calculate the average of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. is null . doesn't implement . contains no elements. Asynchronously computes the average of a sequence of nullable values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of nullable values to calculate the average of. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. is null . doesn't implement . Asynchronously computes the average of a sequence of nullable values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of nullable values to calculate the average of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. is null . doesn't implement . Asynchronously computes the average of a sequence of values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of values to calculate the average of. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. is null . doesn't implement . contains no elements. Asynchronously computes the average of a sequence of values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of values to calculate the average of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. is null . doesn't implement . contains no elements. Asynchronously computes the average of a sequence of nullable values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of nullable values to calculate the average of. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. is null . doesn't implement . Asynchronously computes the average of a sequence of nullable values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of nullable values to calculate the average of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. is null . doesn't implement . Asynchronously computes the average of a sequence of values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of values to calculate the average of. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. is null . doesn't implement . contains no elements. Asynchronously computes the average of a sequence of values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of values to calculate the average of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. is null . doesn't implement . contains no elements. Asynchronously computes the average of a sequence of nullable values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of nullable values to calculate the average of. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. is null . doesn't implement . Asynchronously computes the average of a sequence of nullable values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of nullable values to calculate the average of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. is null . doesn't implement . Asynchronously computes the average of a sequence of values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of values to calculate the average of. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. is null . doesn't implement . contains no elements. Asynchronously computes the average of a sequence of values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of values to calculate the average of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. is null . doesn't implement . contains no elements. Asynchronously computes the average of a sequence of nullable values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of nullable values to calculate the average of. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. is null . doesn't implement . Asynchronously computes the average of a sequence of nullable values. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A sequence of nullable values to calculate the average of. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. is null . doesn't implement . Asynchronously computes the average of a sequence of values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values to calculate the average of. A projection function to apply to each element. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. or is null . doesn't implement . contains no elements. Asynchronously computes the average of a sequence of values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values to calculate the average of. A projection function to apply to each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. or is null . doesn't implement . contains no elements. Asynchronously computes the average of a sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values to calculate the average of. A projection function to apply to each element. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. or is null . doesn't implement . Asynchronously computes the average of a sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values to calculate the average of. A projection function to apply to each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. or is null . doesn't implement . Asynchronously computes the average of a sequence of values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values to calculate the average of. A projection function to apply to each element. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. or is null . doesn't implement . contains no elements. Asynchronously computes the average of a sequence of values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values to calculate the average of. A projection function to apply to each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. or is null . doesn't implement . contains no elements. Asynchronously computes the average of a sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values to calculate the average of. A projection function to apply to each element. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. or is null . doesn't implement . Asynchronously computes the average of a sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values to calculate the average of. A projection function to apply to each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. or is null . doesn't implement . Asynchronously computes the average of a sequence of values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values to calculate the average of. A projection function to apply to each element. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. or is null . doesn't implement . contains no elements. Asynchronously computes the average of a sequence of values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values to calculate the average of. A projection function to apply to each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. or is null . doesn't implement . contains no elements. Asynchronously computes the average of a sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values to calculate the average of. A projection function to apply to each element. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. or is null . doesn't implement . Asynchronously computes the average of a sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values to calculate the average of. A projection function to apply to each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. or is null . doesn't implement . Asynchronously computes the average of a sequence of values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values to calculate the average of. A projection function to apply to each element. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. or is null . doesn't implement . contains no elements. Asynchronously computes the average of a sequence of values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values to calculate the average of. A projection function to apply to each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. or is null . doesn't implement . contains no elements. Asynchronously computes the average of a sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values to calculate the average of. A projection function to apply to each element. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. or is null . doesn't implement . Asynchronously computes the average of a sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values to calculate the average of. A projection function to apply to each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. or is null . doesn't implement . Asynchronously computes the average of a sequence of values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values to calculate the average of. A projection function to apply to each element. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. or is null . doesn't implement . contains no elements. Asynchronously computes the average of a sequence of values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values to calculate the average of. A projection function to apply to each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. or is null . doesn't implement . contains no elements. Asynchronously computes the average of a sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values to calculate the average of. A projection function to apply to each element. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. or is null . doesn't implement . Asynchronously computes the average of a sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the elements of . A sequence of values to calculate the average of. A projection function to apply to each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the average of the sequence of values. or is null . doesn't implement . Bypasses a specified number of elements in a sequence and then returns the remaining elements. The type of the elements of source. A sequence to return elements from. An expression that evaluates to the number of elements to skip. A sequence that contains elements that occur after the specified index in the input sequence. Returns a specified number of contiguous elements from the start of a sequence. The type of the elements of source. The sequence to return elements from. An expression that evaluates to the number of elements to return. A sequence that contains the specified number of elements from the start of the input sequence. Controls the transaction creation behavior while executing a database command or query. If no transaction is present then a new transaction will be used for the operation. If an existing transaction is present then use it, otherwise execute the command or query without a transaction. Specifies a structural type mapping. Adds a property mapping. The property mapping to be added. Removes a property mapping. The property mapping to be removed. Adds a property mapping condition. The property mapping condition to be added. Removes a property mapping condition. The property mapping condition to be removed. Gets a read-only collection of property mappings. Gets a read-only collection of property mapping conditions. Represents the base item class for all the metadata Represents the base item class for all the metadata Adds or updates an annotation with the specified name and value. If an annotation with the given name already exists then the value of that annotation is updated to the given value. If the given value is null then the annotation will be removed. The name of the annotation property. The value of the annotation property. Removes an annotation with the specified name. The name of the annotation property. true if an annotation was removed; otherwise, false. Returns a conceptual model built-in type that matches one of the values. An object that represents the built-in type in the EDM. One of the values. Returns the list of the general facet descriptions for a specified type. A object that represents the list of the general facet descriptions for a specified type. Gets the built-in type kind for this type. A object that represents the built-in type kind for this type. Gets the list of properties of the current type. A collection of type that contains the list of properties of the current type. Gets or sets the documentation associated with this type. A object that represents the documentation on this type. Indicates that the given method is a proxy for an EDM function. Note that this attribute has been replaced by the starting with EF6. Indicates that the given method is a proxy for an EDM function. Note that this class was called EdmFunctionAttribute in some previous versions of Entity Framework. Initializes a new instance of the class. The namespace of the mapped-to function. The name of the mapped-to function. The namespace of the mapped-to function. The namespace of the mapped-to function. The name of the mapped-to function. The name of the mapped-to function. Creates a new DbFunctionAttribute instance. The namespace name of the EDM function represented by the attributed method. The function name of the EDM function represented by the attributed method. Provides common language runtime (CLR) methods that expose EDM canonical functions for use in or LINQ to Entities queries. Note that these functions have been moved to the class starting with EF6. The functions are retained here only to help in the migration of older EF apps to EF6. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical Left EDM function to return a given number of the leftmost characters in a string. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input string. The number of characters to return A string containing the number of characters asked for from the left of the input string. When used as part of a LINQ to Entities query, this method invokes the canonical Right EDM function to return a given number of the rightmost characters in a string. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input string. The number of characters to return A string containing the number of characters asked for from the right of the input string. When used as part of a LINQ to Entities query, this method invokes the canonical Reverse EDM function to return a given string with the order of the characters reversed. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input string. The input string with the order of the characters reversed. When used as part of a LINQ to Entities query, this method invokes the canonical GetTotalOffsetMinutes EDM function to return the number of minutes that the given date/time is offset from UTC. This is generally between +780 and -780 (+ or - 13 hrs). You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The date/time value to use. The offset of the input from UTC. When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return the given date with the time portion cleared. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The date/time value to use. The input date with the time portion cleared. When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return the given date with the time portion cleared. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The date/time value to use. The input date with the time portion cleared. When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTime EDM function to create a new object. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The year. The month (1-based). The day (1-based). The hours. The minutes. The seconds, including fractional parts of the seconds if desired. The new date/time. When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTimeOffset EDM function to create a new object. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The year. The month (1-based). The day (1-based). The hours. The minutes. The seconds, including fractional parts of the seconds if desired. The time zone offset part of the new date. The new date/time. When used as part of a LINQ to Entities query, this method invokes the canonical CreateTime EDM function to create a new object. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The hours. The minutes. The seconds, including fractional parts of the seconds if desired. The new time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to add the given number of years to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of years to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to add the given number of years to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of years to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to add the given number of months to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of months to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to add the given number of months to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of months to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to add the given number of days to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of days to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to add the given number of days to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of days to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to add the given number of hours to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of hours to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to add the given number of hours to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of hours to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to add the given number of hours to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of hours to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to add the given number of minutes to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of minutes to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to add the given number of minutes to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of minutes to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to add the given number of minutes to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of minutes to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to add the given number of seconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of seconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to add the given number of seconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of seconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to add the given number of seconds to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of seconds to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to add the given number of milliseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of milliseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to add the given number of milliseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of milliseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to add the given number of milliseconds to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of milliseconds to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to add the given number of microseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of microseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to add the given number of microseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of microseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to add the given number of microseconds to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of microseconds to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to add the given number of nanoseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of nanoseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to add the given number of nanoseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of nanoseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to add the given number of nanoseconds to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of nanoseconds to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to calculate the number of years between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of years between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to calculate the number of years between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of years between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to calculate the number of months between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of months between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to calculate the number of months between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of months between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to calculate the number of days between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of days between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to calculate the number of days between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of days between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to calculate the number of hours between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of hours between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to calculate the number of hours between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of hours between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to calculate the number of hours between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of hours between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to calculate the number of minutes between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of minutes between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to calculate the number of minutes between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of minutes between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to calculate the number of minutes between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of minutes between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to calculate the number of seconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of seconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to calculate the number of seconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of seconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to calculate the number of seconds between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of seconds between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to calculate the number of milliseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of milliseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to calculate the number of milliseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of milliseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to calculate the number of milliseconds between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of milliseconds between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to calculate the number of microseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of microseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to calculate the number of microseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of microseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to calculate the number of microseconds between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of microseconds between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to calculate the number of nanoseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of nanoseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to calculate the number of nanoseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of nanoseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to calculate the number of nanoseconds between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of nanoseconds between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to truncate the given value to the number of specified digits. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The value to truncate. The number of digits to preserve. The truncated value. When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to truncate the given value to the number of specified digits. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The value to truncate. The number of digits to preserve. The truncated value. When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input is treated as a Unicode string. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function impacts the way the LINQ query is translated to a query that can be run in the database. The input string. The input string treated as a Unicode string. When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input is treated as a non-Unicode string. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function impacts the way the LINQ query is translated to a query that can be run in the database. The input string. The input string treated as a non-Unicode string. Options for query execution. Creates a new instance of . Merge option to use for entity results. Creates a new instance of . Merge option to use for entity results. Whether the query is streaming or buffering. Determines whether the specified objects are equal. true if the two objects are equal; otherwise, false. The left object to compare. The right object to compare. Determines whether the specified objects are not equal. The left object to compare. The right object to compare. true if the two objects are not equal; otherwise, false. Merge option to use for entity results. Whether the query is streaming or buffering. DataRecord interface supporting structured types and rich metadata information. Gets a object with the specified index. A object. The index of the row. Returns nested readers as objects. Nested readers as objects. The ordinal of the column. Gets for this . A object. DataRecordInfo class providing a simple way to access both the type information and the column information. Initializes a new object for a specific type with an enumerable collection of data fields. The metadata for the type represented by this object, supplied by . An enumerable collection of objects that represent column information. Gets for this object. A object. Gets type info for this object as a object. A value. A prepared command definition, can be cached and reused to avoid repreparing a command. Initializes a new instance of the class using the supplied . The supplied . method used to clone the Initializes a new instance of the class. Creates and returns a object that can be executed. The command for database. Metadata Interface for all CLR types types Value to pass to GetInformation to get the StoreSchemaDefinition Value to pass to GetInformation to get the StoreSchemaMapping Value to pass to GetInformation to get the ConceptualSchemaDefinition Value to pass to GetInformation to get the StoreSchemaDefinitionVersion3 Value to pass to GetInformation to get the StoreSchemaMappingVersion3 Value to pass to GetInformation to get the ConceptualSchemaDefinitionVersion3 Name of the MaxLength Facet Name of the Unicode Facet Name of the FixedLength Facet Name of the Precision Facet Name of the Scale Facet Name of the Nullable Facet Name of the DefaultValue Facet Name of the Collation Facet Name of the SRID Facet Name of the IsStrict Facet When overridden in a derived class, returns the set of primitive types supported by the data source. The set of types supported by the data source. When overridden in a derived class, returns a collection of EDM functions supported by the provider manifest. A collection of EDM functions. Returns the FacetDescription objects for a particular type. The FacetDescription objects for the specified EDM type. The EDM type to return the facet description for. When overridden in a derived class, this method maps the specified storage type and a set of facets for that type to an EDM type. The instance that describes an EDM type and a set of facets for that type. The TypeUsage instance that describes a storage type and a set of facets for that type to be mapped to the EDM type. When overridden in a derived class, this method maps the specified EDM type and a set of facets for that type to a storage type. The TypeUsage instance that describes a storage type and a set of facets for that type. The TypeUsage instance that describes the EDM type and a set of facets for that type to be mapped to a storage type. When overridden in a derived class, this method returns provider-specific information. The XmlReader object that represents the mapping to the underlying data store catalog. The type of the information to return. Gets the provider-specific information. The provider-specific information. The type of the information to return. Indicates if the provider supports escaping strings to be used as patterns in a Like expression. True if this provider supports escaping strings to be used as patterns in a Like expression; otherwise, false. If the provider supports escaping, the character that would be used as the escape character. Provider writers should override this method to return the argument with the wildcards and the escape character escaped. This method is only used if SupportsEscapingLikeArgument returns true. The argument with the wildcards and the escape character escaped. The argument to be escaped. Returns a boolean that specifies whether the provider can handle expression trees containing instances of DbInExpression. The default implementation returns false for backwards compatibility. Derived classes can override this method. false Returns a boolean that specifies whether the provider can process expression trees not having DbProjectExpression nodes directly under both Left and Right sides of DbUnionAllExpression and DbIntersectExpression false Gets the namespace used by this provider manifest. The namespace used by this provider manifest. The factory for building command definitions; use the type of this object as the argument to the IServiceProvider.GetService method on the provider factory; Constructs an EF provider that will use the obtained from the app domain Singleton for resolving EF dependencies such as the instance to use. Registers a handler to process non-error messages coming from the database provider. The connection to receive information for. The handler to process messages. Create a Command Definition object given a command tree. command tree for the statement an executable command definition object This method simply delegates to the provider's implementation of CreateDbCommandDefinition. Creates command definition from specified manifest and command tree. The created command definition. The manifest. The command tree. Creates a command definition object for the specified provider manifest and command tree. An executable command definition object. Provider manifest previously retrieved from the store provider. Command tree for the statement. Create the default DbCommandDefinition object based on the prototype command This method is intended for provider writers to build a default command definition from a command. Note: This will clone the prototype the prototype command an executable command definition object See issue 2390 - cloning the DesignTimeVisible property on the DbCommand can cause deadlocks. So here allow sub-classes to override. the object to clone a clone of the Returns provider manifest token given a connection. The provider manifest token. Connection to provider. Returns provider manifest token for a given connection. Connection to find manifest token from. The provider manifest token for the specified connection. Returns the provider manifest by using the specified version information. The provider manifest by using the specified version information. The token information associated with the provider manifest. When overridden in a derived class, returns an instance of a class that derives from the DbProviderManifest. A DbProviderManifest object that represents the provider manifest. The token information associated with the provider manifest. Gets the that will be used to execute methods that use the specified connection. The database connection A new instance of Gets the that will be used to execute methods that use the specified connection. This overload should be used by the derived classes for compatability with wrapping providers. The database connection The provider invariant name A new instance of Gets the spatial data reader for the . The spatial data reader. The reader where the spatial data came from. The manifest token associated with the provider manifest. Gets the spatial services for the . The spatial services. The token information associated with the provider manifest. Gets the spatial services for the . The spatial services. Information about the database that the spatial services will be used for. Gets the spatial data reader for the . The spatial data reader. The reader where the spatial data came from. The token information associated with the provider manifest. Gets the spatial services for the . The spatial services. The token information associated with the provider manifest. Sets the parameter value and appropriate facets for the given . The parameter. The type of the parameter. The value of the parameter. Sets the parameter value and appropriate facets for the given . The parameter. The type of the parameter. The value of the parameter. Returns providers given a connection. The instanced based on the specified connection. Connection to provider. Retrieves the DbProviderFactory based on the specified DbConnection. The retrieved DbProviderFactory. The connection to use. Return an XML reader which represents the CSDL description The name of the CSDL description. An XmlReader that represents the CSDL description Generates a data definition language (DDL script that creates schema objects (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token. Individual statements should be separated using database-specific DDL command separator. It is expected that the generated script would be executed in the context of existing database with sufficient permissions, and it should not include commands to create the database, but it may include commands to create schemas and other auxiliary objects such as sequences, etc. A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token. The provider manifest token identifying the target version. The structure of the database. Generates a data definition language (DDL) script that creates schema objects (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token. Individual statements should be separated using database-specific DDL command separator. It is expected that the generated script would be executed in the context of existing database with sufficient permissions, and it should not include commands to create the database, but it may include commands to create schemas and other auxiliary objects such as sequences, etc. The provider manifest token identifying the target version. The structure of the database. A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token. Creates a database indicated by connection and creates schema objects (tables, primary keys, foreign keys) based on the contents of storeItemCollection. Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter. Execution timeout for any commands needed to create the database. The collection of all store items based on which the script should be created. Creates a database indicated by connection and creates schema objects (tables, primary keys, foreign keys) based on the contents of a StoreItemCollection. Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter. Execution timeout for any commands needed to create the database. The collection of all store items based on which the script should be created. Returns a value indicating whether a given database exists on the server. True if the provider can deduce the database only based on the connection. Connection to a database whose existence is checked by this method. Execution timeout for any commands needed to determine the existence of the database. The collection of all store items from the model. This parameter is no longer used for determining database existence. Returns a value indicating whether a given database exists on the server. True if the provider can deduce the database only based on the connection. Connection to a database whose existence is checked by this method. Execution timeout for any commands needed to determine the existence of the database. The collection of all store items from the model. This parameter is no longer used for determining database existence. Returns a value indicating whether a given database exists on the server. True if the provider can deduce the database only based on the connection. Connection to a database whose existence is checked by this method. Execution timeout for any commands needed to determine the existence of the database. The collection of all store items from the model. This parameter is no longer used for determining database existence. Returns a value indicating whether a given database exists on the server. True if the provider can deduce the database only based on the connection. Connection to a database whose existence is checked by this method. Execution timeout for any commands needed to determine the existence of the database. The collection of all store items from the model. This parameter is no longer used for determining database existence. Override this method to avoid creating the store item collection if it is not needed. The default implementation evaluates the Lazy and calls the other overload of this method. Deletes the specified database. Connection to an existing database that needs to be deleted. Execution timeout for any commands needed to delete the database. The collection of all store items from the model. This parameter is no longer used for database deletion. Deletes the specified database. Connection to an existing database that needs to be deleted. Execution timeout for any commands needed to delete the database. The collection of all store items from the model. This parameter is no longer used for database deletion. Expands |DataDirectory| in the given path if it begins with |DataDirectory| and returns the expanded path, or returns the given string if it does not start with |DataDirectory|. The path to expand. The expanded path. Adds an that will be used to resolve additional default provider services when a derived type is registered as an EF provider either using an entry in the application's config file or through code-based registration in . The resolver to add. Called to resolve additional default provider services when a derived type is registered as an EF provider either using an entry in the application's config file or through code-based registration in . The implementation of this method in this class uses the resolvers added with the AddDependencyResolver method to resolve dependencies. Use this method to set, add, or change other provider-related services. Note that this method will only be called for such services if they are not already explicitly configured in some other way by the application. This allows providers to set default services while the application is still able to override and explicitly configure each service if required. See and for more details. The type of the service to be resolved. An optional key providing additional information for resolving the service. An instance of the given type, or null if the service could not be resolved. Called to resolve additional default provider services when a derived type is registered as an EF provider either using an entry in the application's config file or through code-based registration in . The implementation of this method in this class uses the resolvers added with the AddDependencyResolver method to resolve dependencies. The type of the service to be resolved. An optional key providing additional information for resolving the service. All registered services that satisfy the given type and key, or an empty enumeration if there are none. A specialization of the ProviderManifest that accepts an XmlReader Initializes a new instance of the class. An object that provides access to the XML data in the provider manifest file. Returns the list of facet descriptions for the specified Entity Data Model (EDM) type. A collection of type that contains the list of facet descriptions for the specified EDM type. An for which the facet descriptions are to be retrieved. Returns the list of primitive types supported by the storage provider. A collection of type that contains the list of primitive types supported by the storage provider. Returns the list of provider-supported functions. A collection of type that contains the list of provider-supported functions. Gets the namespace name supported by this provider manifest. The namespace name supported by this provider manifest. Gets the best mapped equivalent Entity Data Model (EDM) type for a specified storage type name. The best mapped equivalent EDM type for a specified storage type name. Gets the best mapped equivalent storage primitive type for a specified storage type name. The best mapped equivalent storage primitive type for a specified storage type name. Class for representing a collection of items. Most of the implementation for actual maintenance of the collection is done by MetadataCollection Class representing a read-only wrapper around MetadataCollection The type of items in this collection Retrieves an item from this collection by using the specified identity. An item from this collection. The identity of the item to be searched for. true to perform the case-insensitive search; otherwise, false. Determines whether the collection contains an item with the specified identity. true if the collection contains the item to be searched for; otherwise, false. The default is false. The identity of the item. Retrieves an item from this collection by using the specified identity. true if there is an item that matches the search criteria; otherwise, false. The identity of the item to be searched for. true to perform the case-insensitive search; otherwise, false. When this method returns, this output parameter contains an item from the collection. If there is no matched item, this output parameter contains null. Returns an enumerator that can iterate through this collection. A that can be used to iterate through this . Returns the index of the specified value in this collection. The index of the specified value in this collection. A value to seek. Gets a value indicating whether this collection is read-only. true if this collection is read-only; otherwise, false. Gets an item from this collection by using the specified identity. An item from this collection. The identity of the item to be searched for. The enumerator for MetadataCollection Disposes of this enumerator. Moves to the next member in the collection of type . true if the enumerator is moved in the collection of type ; otherwise, false. Positions the enumerator before the first position in the collection of type . Gets the member at the current position. The member at the current position. Gets the member at the current position Returns a strongly typed object by using the specified identity. The item that is specified by the identity. The identity of the item. The type returned by the method. Returns a strongly typed object by using the specified identity from this item collection. true if there is an item that matches the search criteria; otherwise, false. The identity of the item. When this method returns, the output parameter contains a object. If there is no global item with the specified identity in the item collection, this output parameter contains null. The type returned by the method. Returns a strongly typed object by using the specified identity from this item collection. true if there is an item that matches the search criteria; otherwise, false. The identity of the item. true to perform the case-insensitive search; otherwise, false. When this method returns, the output parameter contains a object. If there is no global item with the specified identity in the item collection, this output parameter contains null. The type returned by the method. Returns a strongly typed object by using the specified identity with either case-sensitive or case-insensitive search. The item that is specified by the identity. The identity of the item. true to perform the case-insensitive search; otherwise, false. The type returned by the method. Returns all the items of the specified type from this item collection. A collection of type that contains all the items of the specified type. The type returned by the method. Returns an object by using the specified type name and the namespace name in this item collection. An object that represents the type that matches the specified type name and the namespace name in this item collection. If there is no matched type, this method returns null. The name of the type. The namespace of the type. Returns an object by using the specified type name and the namespace name from this item collection. true if there is a type that matches the search criteria; otherwise, false. The name of the type. The namespace of the type. When this method returns, this output parameter contains an object. If there is no type with the specified name and namespace name in this item collection, this output parameter contains null. Returns an object by using the specified type name and the namespace name from this item collection. An object that represents the type that matches the specified type name and the namespace name in this item collection. If there is no matched type, this method returns null. The name of the type. The namespace of the type. true to perform the case-insensitive search; otherwise, false. Returns an object by using the specified type name and the namespace name from this item collection. true if there is a type that matches the search criteria; otherwise, false. The name of the type. The namespace of the type. true to perform the case-insensitive search; otherwise, false. When this method returns, this output parameter contains an object. If there is no type with the specified name and namespace name in this item collection, this output parameter contains null. Returns all the overloads of the functions by using the specified name from this item collection. A collection of type that contains all the functions that have the specified name. The full name of the function. Returns all the overloads of the functions by using the specified name from this item collection. A collection of type that contains all the functions that have the specified name. The full name of the function. true to perform the case-insensitive search; otherwise, false. Returns all the overloads of the functions by using the specified name from this item collection. A collection of type ReadOnlyCollection that contains all the functions that have the specified name. A dictionary of functions. The full name of the function. true to perform the case-insensitive search; otherwise, false. Returns an object by using the specified entity container name. If there is no entity container, this method returns null; otherwise, it returns the first one. The name of the entity container. Returns an object by using the specified entity container name. If there is no entity container, the output parameter contains null; otherwise, it contains the first entity container. true if there is an entity container that matches the search criteria; otherwise, false. The name of the entity container. When this method returns, it contains an object. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container. Returns an object by using the specified entity container name. If there is no entity container, this method returns null; otherwise, it returns the first entity container. The name of the entity container. true to perform the case-insensitive search; otherwise, false. Returns an object by using the specified entity container name. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container. true if there is an entity container that matches the search criteria; otherwise, false. The name of the entity container. true to perform the case-insensitive search; otherwise, false. When this method returns, it contains an object. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container. Gets the data model associated with this item collection. The data model associated with this item collection. EntityRecordInfo class providing a simple way to access both the type information and the column information. Initializes a new instance of the class of a specific entity type with an enumerable collection of data fields and with specific key and entity set information. The of the entity represented by the described by this object. An enumerable collection of objects that represent column information. The key for the entity. The entity set to which the entity belongs. Gets the for the entity. The key for the entity. Public Entity SQL Parser class. Parse the specified query with the specified parameters. The containing and information describing inline function definitions if any. The EntitySQL query to be parsed. The optional query parameters. Parse a specific query with a specific set variables and produce a . The containing and information describing inline function definitions if any. The query to be parsed. The optional query variables. Entity SQL query inline function definition, returned as a part of . Function name. Function body and parameters. Start position of the function definition in the eSQL query text. End position of the function definition in the eSQL query text. Entity SQL Parser result information. A command tree produced during parsing. List of objects describing query inline function definitions. Compares objects using reference equality. Gets the default instance. Wraps access to the transaction object on the underlying store connection and ensures that the Entity Framework executes commands on the database within the context of that transaction. An instance of this class is retrieved by calling BeginTransaction() on the object. Commits the underlying store transaction Rolls back the underlying store transaction Cleans up this transaction object and ensures the Entity Framework is no longer using that transaction. Releases the resources used by this transaction object true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the database (store) transaction that is underlying this context transaction. A service for obtaining the correct from a given . On .NET 4.5 the provider is publicly accessible from the connection. On .NET 4 the default implementation of this service uses some heuristics to find the matching provider. If these fail then a new implementation of this service can be registered on to provide an appropriate resolution. Returns the for the given connection. The connection. The provider factory for the connection. Explicitly implemented by to prevent certain members from showing up in the IntelliSense of scaffolded migrations. Adds a custom to the migration. Custom operation implementors are encouraged to create extension methods on that provide a fluent-style API for adding new operations. The operation to add. A default implementation of that uses the underlying provider to get the manifest token. Note that to avoid multiple queries, this implementation using caching based on the actual type of instance, the property, and the property. A service for getting a provider manifest token given a connection. The class is used by default and makes use of the underlying provider to get the token which often involves opening the connection. A different implementation can be used instead by adding an to that may use any information in the connection to return the token. For example, if the connection is known to point to a SQL Server 2008 database then "2008" can be returned without opening the connection. Returns the manifest token to use for the given connection. The connection for which a manifest token is required. The manifest token to use. A strategy that is used to execute a command or query against the database, possibly with logic to retry when a failure occurs. Executes the specified operation. A delegate representing an executable operation that doesn't return any results. Executes the specified operation and returns the result. The return type of . A delegate representing an executable operation that returns the result of type . The result from the operation. Executes the specified asynchronous operation. A function that returns a started task. A cancellation token used to cancel the retry operation, but not operations that are already in flight or that already completed successfully. A task that will run to completion if the original task completes successfully (either the first time or after retrying transient failures). If the task fails with a non-transient error or the retry limit is reached, the returned task will become faulted and the exception must be observed. Executes the specified asynchronous operation and returns the result. The result type of the returned by . A function that returns a started task of type . A cancellation token used to cancel the retry operation, but not operations that are already in flight or that already completed successfully. A task that will run to completion if the original task completes successfully (either the first time or after retrying transient failures). If the task fails with a non-transient error or the retry limit is reached, the returned task will become faulted and the exception must be observed. Indicates whether this might retry the execution after a failure. Provides the base implementation of the retry mechanism for unreliable operations and transient conditions that uses exponentially increasing delays between retries. A new instance will be created each time an operation is executed. The following formula is used to calculate the delay after retryCount number of attempts: min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay) The retryCount starts at 0. The random factor distributes uniformly the retry attempts from multiple simultaneous operations failing simultaneously. Creates a new instance of . The default retry limit is 5, which means that the total amount of time spent between retries is 26 seconds plus the random factor. Creates a new instance of with the specified limits for number of retries and the delay between retries. The maximum number of retry attempts. The maximum delay in milliseconds between retries. Repetitively executes the specified operation while it satisfies the current retry policy. A delegate representing an executable operation that doesn't return any results. if the retry delay strategy determines the operation shouldn't be retried anymore if an existing transaction is detected and the execution strategy doesn't support it if this instance was already used to execute an operation Repetitively executes the specified operation while it satisfies the current retry policy. The type of result expected from the executable operation. A delegate representing an executable operation that returns the result of type . The result from the operation. if the retry delay strategy determines the operation shouldn't be retried anymore if an existing transaction is detected and the execution strategy doesn't support it if this instance was already used to execute an operation Repetitively executes the specified asynchronous operation while it satisfies the current retry policy. A function that returns a started task. A cancellation token used to cancel the retry operation, but not operations that are already in flight or that already completed successfully. A task that will run to completion if the original task completes successfully (either the first time or after retrying transient failures). If the task fails with a non-transient error or the retry limit is reached, the returned task will become faulted and the exception must be observed. if the retry delay strategy determines the operation shouldn't be retried anymore if an existing transaction is detected and the execution strategy doesn't support it if this instance was already used to execute an operation Repeatedly executes the specified asynchronous operation while it satisfies the current retry policy. The result type of the returned by . A function that returns a started task of type . A cancellation token used to cancel the retry operation, but not operations that are already in flight or that already completed successfully. A task that will run to completion if the original task completes successfully (either the first time or after retrying transient failures). If the task fails with a non-transient error or the retry limit is reached, the returned task will become faulted and the exception must be observed. if the retry delay strategy determines the operation shouldn't be retried anymore if an existing transaction is detected and the execution strategy doesn't support it if this instance was already used to execute an operation Determines whether the operation should be retried and the delay before the next attempt. The exception thrown during the last execution attempt. Returns the delay indicating how long to wait for before the next execution attempt if the operation should be retried; null otherwise Recursively gets InnerException from as long as it's an , or and passes it to The type of the unwrapped exception. The exception to be unwrapped. A delegate that will be called with the unwrapped exception. The result from . Determines whether the specified exception represents a transient failure that can be compensated by a retry. The exception object to be verified. true if the specified exception is considered as transient, otherwise false. Returns true to indicate that might retry the execution after a failure. A key used for resolving . It consists of the ADO.NET provider invariant name and the database server name as specified in the connection string. Initializes a new instance of The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. A string that will be matched against the server name in the connection string. The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. A string that will be matched against the server name in the connection string. Implement this interface on your context to use custom logic to calculate the key used to lookup an already created model in the cache. This interface allows you to have a single context type that can be used with different models in the same AppDomain, or multiple context types that use the same model. Gets the cached key associated with the provider. The cached key associated with the provider. Used by and when resolving a provider invariant name from a . Gets the name of the provider. The name of the provider. Represents a custom pluralization term to be used by the Create a new instance A non null or empty string representing the singular. A non null or empty string representing the plural. Get the singular. Get the plural. Default pluralization service implementation to be used by Entity Framework. This pluralization service is based on English locale. Pluralization services to be used by the EF runtime implement this interface. By default the is used, but the pluralization service to use can be set in a class derived from . Pluralize a word using the service. The word to pluralize. The pluralized word Singularize a word using the service. The word to singularize. The singularized word. Constructs a new instance of default pluralization service used in Entity Framework. Constructs a new instance of default pluralization service used in Entity Framework. A collection of user dictionary entries to be used by this service.These inputs can customize the service according the user needs. Returns the plural form of the specified word. The plural form of the input parameter. The word to be made plural. Returns the singular form of the specified word. The singular form of the input parameter. The word to be made singular. The exception that is thrown when the action failed again after being retried the configured number of times. Provider exception - Used by the entity client. Initializes a new instance of the class. Initializes a new instance of the class. The message that describes the error. Initializes a new instance of the class. The error message that explains the reason for the exception. The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. Initializes a new instance of the class with no error message. Initializes a new instance of the class with a specified error message. The message that describes the error. Initializes a new instance of the class. The message that describes the error. The exception that is the cause of the current exception. An that doesn't retry operations if they fail. Executes the specified operation once. A delegate representing an executable operation that doesn't return any results. Executes the specified operation once and returns the result. The return type of . A delegate representing an executable operation that returns the result of type . The result from the operation. Executes the specified asynchronous operation once, without retrying on failure. A function that returns a started task. A cancellation token used to cancel the retry operation, but not operations that are already in flight or that already completed successfully. A task that will run to completion if the original task completes successfully. Executes the specified asynchronous operation once, without retrying on failure. The result type of the returned by . A function that returns a started task. A cancellation token used to cancel the retry operation, but not operations that are already in flight or that already completed successfully. A task that will run to completion if the original task completes successfully. Returns false to indicate that will not retry the execution after a failure. Asynchronous version of the interface that allows elements to be retrieved asynchronously. This interface is used to interact with Entity Framework queries and shouldn't be implemented by custom classes. Gets an enumerator that can be used to asynchronously enumerate the sequence. Enumerator for asynchronous enumeration over the sequence. Asynchronous version of the interface that allows elements of the enumerable sequence to be retrieved asynchronously. This interface is used to interact with Entity Framework queries and shouldn't be implemented by custom classes. The type of objects to enumerate. Gets an enumerator that can be used to asynchronously enumerate the sequence. Enumerator for asynchronous enumeration over the sequence. Represents a SQL query for entities that is created from a and is executed using the connection from that context. Instances of this class are obtained from the instance for the entity type. The query is not executed when this object is created; it is executed each time it is enumerated, for example by using foreach. SQL queries for non-entities are created using . See for a generic version of this class. Represents a SQL query for non-entities that is created from a and is executed using the connection from that context. Instances of this class are obtained from the instance. The query is not executed when this object is created; it is executed each time it is enumerated, for example by using foreach. SQL queries for entities are created using . See for a generic version of this class. Returns a new query that will stream the results instead of buffering. A new query with AsStreaming applied. Returns an which when enumerated will execute the SQL query against the database. An object that can be used to iterate through the elements. Returns an which when enumerated will execute the SQL query against the database. An object that can be used to iterate through the elements. Asynchronously enumerates the query results and performs the specified action on each element. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The action to perform on each element. A task that represents the asynchronous operation. Asynchronously enumerates the query results and performs the specified action on each element. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The action to perform on each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. Creates a from the query by enumerating it asynchronously. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A task that represents the asynchronous operation. The task result contains a that contains elements from the query. Creates a from the query by enumerating it asynchronously. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains a that contains elements from the query. Returns a that contains the SQL string that was set when the query was created. The parameters are not included. A that represents this instance. Throws an exception indicating that binding directly to a store query is not supported. Never returns; always throws. Returns false. false . Creates an instance of a when called from the constructor of a derived type that will be used as a test double for . Methods and properties that will be used by the test double must be implemented by the test double except AsNoTracking and AsStreaming where the default implementation is a no-op. Returns a new query where the results of the query will not be tracked by the associated . A new query with NoTracking applied. Returns a new query that will stream the results instead of buffering. A new query with AsStreaming applied. Represents a SQL query for entities that is created from a and is executed using the connection from that context. Instances of this class are obtained from the instance for the entity type. The query is not executed when this object is created; it is executed each time it is enumerated, for example by using foreach. SQL queries for non-entities are created using . See for a non-generic version of this class. The type of entities returned by the query. Represents a SQL query for non-entities that is created from a and is executed using the connection from that context. Instances of this class are obtained from the instance. The query is not executed when this object is created; it is executed each time it is enumerated, for example by using foreach. SQL queries for entities are created using . See for a non-generic version of this class. The type of elements returned by the query. Returns a new query that will stream the results instead of buffering. A new query with AsStreaming applied. Returns an which when enumerated will execute the SQL query against the database. An object that can be used to iterate through the elements. Returns an which when enumerated will execute the SQL query against the database. An object that can be used to iterate through the elements. Returns an which when enumerated will execute the SQL query against the database. An object that can be used to iterate through the elements. Returns an which when enumerated will execute the SQL query against the database. An object that can be used to iterate through the elements. Asynchronously enumerates the query results and performs the specified action on each element. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The action to be executed. A task that represents the asynchronous operation. Asynchronously enumerates the query results and performs the specified action on each element. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The action to be executed. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. Creates a from the query by enumerating it asynchronously. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A task that represents the asynchronous operation. The task result contains a that contains elements from the input sequence. Creates a from the query by enumerating it asynchronously. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains a that contains elements from the input sequence. Creates an array from the query by enumerating it asynchronously. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A task that represents the asynchronous operation. The task result contains an array that contains elements from the input sequence. Creates an array from the query by enumerating it asynchronously. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains an array that contains elements from the input sequence. Creates a from the query by enumerating it asynchronously according to a specified key selector function. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the key returned by . A function to extract a key from each element. A task that represents the asynchronous operation. The task result contains a that contains selected keys and values. Creates a from the query by enumerating it asynchronously according to a specified key selector function. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the key returned by . A function to extract a key from each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains a that contains selected keys and values. Creates a from the query by enumerating it asynchronously according to a specified key selector function and a comparer. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the key returned by . A function to extract a key from each element. An to compare keys. A task that represents the asynchronous operation. The task result contains a that contains selected keys and values. Creates a from the query by enumerating it asynchronously according to a specified key selector function and a comparer. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the key returned by . A function to extract a key from each element. An to compare keys. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains a that contains selected keys and values. Creates a from the query by enumerating it asynchronously according to a specified key selector and an element selector function. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the key returned by . The type of the value returned by . A function to extract a key from each element. A transform function to produce a result element value from each element. A task that represents the asynchronous operation. The task result contains a that contains values of type selected from the query. Creates a from the query by enumerating it asynchronously according to a specified key selector and an element selector function. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the key returned by . The type of the value returned by . A function to extract a key from each element. A transform function to produce a result element value from each element. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains a that contains values of type selected from the query. Creates a from the query by enumerating it asynchronously according to a specified key selector function, a comparer, and an element selector function. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the key returned by . The type of the value returned by . A function to extract a key from each element. A transform function to produce a result element value from each element. An to compare keys. A task that represents the asynchronous operation. The task result contains a that contains values of type selected from the input sequence. Creates a from the query by enumerating it asynchronously according to a specified key selector function, a comparer, and an element selector function. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The type of the key returned by . The type of the value returned by . A function to extract a key from each element. A transform function to produce a result element value from each element. An to compare keys. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains a that contains values of type selected from the input sequence. Asynchronously returns the first element of the query. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A task that represents the asynchronous operation. The task result contains the first element in the query result. The query result is empty. Asynchronously returns the first element of the query. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the first element in the query result. The query result is empty. Asynchronously returns the first element of the query that satisfies a specified condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A function to test each element for a condition. A task that represents the asynchronous operation. The task result contains the first element in the query result that satisfies a specified condition. is null . The query result is empty. Asynchronously returns the first element of the query that satisfies a specified condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A function to test each element for a condition. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the first element in the query result that satisfies a specified condition. is null . The query result is empty. Asynchronously returns the first element of the query, or a default value if the the query result contains no elements. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A task that represents the asynchronous operation. The task result contains default ( ) if query result is empty; otherwise, the first element in the query result. Asynchronously returns the first element of the query, or a default value if the the query result contains no elements. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains default ( ) if query result is empty; otherwise, the first element in the query result. Asynchronously returns the first element of the query that satisfies a specified condition or a default value if no such element is found. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A function to test each element for a condition. A task that represents the asynchronous operation. The task result contains default ( ) if query result is empty or if no element passes the test specified by ; otherwise, the first element in the query result that passes the test specified by . is null . Asynchronously returns the first element of the query that satisfies a specified condition or a default value if no such element is found. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A function to test each element for a condition. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains default ( ) if query result is empty or if no element passes the test specified by ; otherwise, the first element in the query result that passes the test specified by . is null . Asynchronously returns the only element of the query, and throws an exception if there is not exactly one element in the sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A task that represents the asynchronous operation. The task result contains the single element of the query result. The query result has more than one element. The query result is empty. Asynchronously returns the only element of the query, and throws an exception if there is not exactly one element in the sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the single element of the query result. The query result has more than one element. The query result is empty. Asynchronously returns the only element of the query that satisfies a specified condition, and throws an exception if more than one such element exists. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A function to test each element for a condition. A task that represents the asynchronous operation. The task result contains the single element of the query result that satisfies the condition in . is null . No element satisfies the condition in . More than one element satisfies the condition in . Asynchronously returns the only element of the query that satisfies a specified condition, and throws an exception if more than one such element exists. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A function to test each element for a condition. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the single element of the query result that satisfies the condition in . is null . No element satisfies the condition in . More than one element satisfies the condition in . Asynchronously returns the only element of a sequence, or a default value if the sequence is empty; this method throws an exception if there is more than one element in the sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A task that represents the asynchronous operation. The task result contains the single element of the query result, or default () if the sequence contains no elements. The query result has more than one element. Asynchronously returns the only element of a sequence, or a default value if the sequence is empty; this method throws an exception if there is more than one element in the sequence. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the single element of the query result, or default () if the sequence contains no elements. The query result has more than one element. Asynchronously returns the only element of the query that satisfies a specified condition or a default value if no such element exists; this method throws an exception if more than one element satisfies the condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A function to test each element for a condition. A task that represents the asynchronous operation. The task result contains the single element of the query result that satisfies the condition in , or default ( ) if no such element is found. is null . More than one element satisfies the condition in . Asynchronously returns the only element of the query that satisfies a specified condition or a default value if no such element exists; this method throws an exception if more than one element satisfies the condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A function to test each element for a condition. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the single element of the query result that satisfies the condition in , or default ( ) if no such element is found. is null . More than one element satisfies the condition in . Asynchronously determines whether the query contains a specified element by using the default equality comparer. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The object to locate in the query result. A task that represents the asynchronous operation. The task result contains true if the query result contains the specified value; otherwise, false. Asynchronously determines whether the query contains a specified element by using the default equality comparer. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The object to locate in the query result. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains true if the query result contains the specified value; otherwise, false. Asynchronously determines whether the query contains any elements. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A task that represents the asynchronous operation. The task result contains true if the query result contains any elements; otherwise, false. Asynchronously determines whether the query contains any elements. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains true if the query result contains any elements; otherwise, false. Asynchronously determines whether any element of the query satisfies a condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A function to test each element for a condition. A task that represents the asynchronous operation. The task result contains true if any elements in the query result pass the test in the specified predicate; otherwise, false. Asynchronously determines whether any element of the query satisfies a condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A function to test each element for a condition. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains true if any elements in the query result pass the test in the specified predicate; otherwise, false. Asynchronously determines whether all the elements of the query satisfy a condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A function to test each element for a condition. A task that represents the asynchronous operation. The task result contains true if every element of the query result passes the test in the specified predicate; otherwise, false. is null . Asynchronously determines whether all the elements of the query satisfy a condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A function to test each element for a condition. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains true if every element of the query result passes the test in the specified predicate; otherwise, false. is null . Asynchronously returns the number of elements in the query. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A task that represents the asynchronous operation. The task result contains the number of elements in the query result. The number of elements in the query result is larger than . Asynchronously returns the number of elements in the query. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the number of elements in the query result. The number of elements in the query result is larger than . Asynchronously returns the number of elements in the query that satisfy a condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A function to test each element for a condition. A task that represents the asynchronous operation. The task result contains the number of elements in the query result that satisfy the condition in the predicate function. The number of elements in the query result that satisfy the condition in the predicate function is larger than . Asynchronously returns the number of elements in the query that satisfy a condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A function to test each element for a condition. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the number of elements in the query result that satisfy the condition in the predicate function. The number of elements in the query result that satisfy the condition in the predicate function is larger than . Asynchronously returns an that represents the total number of elements in the query. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A task that represents the asynchronous operation. The task result contains the number of elements in the query result. The number of elements in the query result is larger than . Asynchronously returns an that represents the total number of elements in the query. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the number of elements in the query result. The number of elements in the query result is larger than . Asynchronously returns an that represents the number of elements in the query that satisfy a condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A function to test each element for a condition. A task that represents the asynchronous operation. The task result contains the number of elements in the query result that satisfy the condition in the predicate function. The number of elements in the query result that satisfy the condition in the predicate function is larger than . Asynchronously returns an that represents the number of elements in the query that satisfy a condition. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A function to test each element for a condition. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the number of elements in the query result that satisfy the condition in the predicate function. The number of elements in the query result that satisfy the condition in the predicate function is larger than . Asynchronously returns the minimum value of the query. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A task that represents the asynchronous operation. The task result contains the minimum value in the query result. Asynchronously returns the minimum value of the query. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the minimum value in the query result. Asynchronously returns the maximum value of the query. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A task that represents the asynchronous operation. The task result contains the maximum value in the query result. Asynchronously returns the maximum value of the query. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the maximum value in the query result. Returns a that contains the SQL string that was set when the query was created. The parameters are not included. A that represents this instance. Throws an exception indicating that binding directly to a store query is not supported. Never returns; always throws. Returns false. false . Creates an instance of a when called from the constructor of a derived type that will be used as a test double for . Methods and properties that will be used by the test double must be implemented by the test double except AsNoTracking and AsStreaming where the default implementation is a no-op. Returns a new query where the entities returned will not be cached in the . A new query with NoTracking applied. Returns a new query that will stream the results instead of buffering. A new query with AsStreaming applied. Asynchronous version of the interface that allows elements to be retrieved asynchronously. This interface is used to interact with Entity Framework queries and shouldn't be implemented by custom classes. Advances the enumerator to the next element in the sequence, returning the result asynchronously. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the sequence. Gets the current element in the iteration. Defines methods to create and asynchronously execute queries that are described by an object. This interface is used to interact with Entity Framework queries and shouldn't be implemented by custom classes. Asynchronously executes the query represented by a specified expression tree. An expression tree that represents a LINQ query. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the value that results from executing the specified query. Asynchronously executes the strongly-typed query represented by a specified expression tree. The type of the value that results from executing the query. An expression tree that represents a LINQ query. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the value that results from executing the specified query. Asynchronous version of the interface that allows elements to be retrieved asynchronously. This interface is used to interact with Entity Framework queries and shouldn't be implemented by custom classes. The type of objects to enumerate. Gets the current element in the iteration. Represents a key value that uniquely identifies an Entity Framework model that has been loaded into memory. Determines whether the current cached model key is equal to the specified cached model key. true if the current cached model key is equal to the specified cached model key; otherwise, false. The cached model key to compare to the current cached model key. Returns the hash function for this cached model key. The hash function for this cached model key. Thrown when an operation can't be performed because there are existing migrations that have not been applied to the database. Represents errors that occur inside the Code First Migrations pipeline. Initializes a new instance of the MigrationsException class. Initializes a new instance of the MigrationsException class. The message that describes the error. Initializes a new instance of the MigrationsException class. The message that describes the error. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the MigrationsException class with serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. Initializes a new instance of the MigrationsPendingException class. Initializes a new instance of the MigrationsPendingException class. The message that describes the error. Initializes a new instance of the MigrationsPendingException class. The message that describes the error. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. A migration operation to add a new stored procedure to the database. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the stored procedure. The body of the stored procedure expressed in SQL. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation to drop the stored procedure. Allows configuration to be performed for a lightweight convention based on the properties in a model. Filters the properties that this convention applies to based on a predicate. A function to test each property for a condition. A instance so that multiple calls can be chained. Filters the properties that this convention applies to based on a predicate while capturing a value to use later during configuration. Type of the captured value. A function to capture a value for each property. If the value is null, the property will be filtered out. A instance so that multiple calls can be chained. Allows configuration of the properties that this convention applies to. An action that performs configuration against a . Gets the of the current instance. The exact runtime type of the current instance. Allows configuration to be performed for a lightweight convention based on the properties of entity types in a model and a captured value. The type of the captured value. Allows configuration of the properties that this convention applies to. An action that performs configuration against a using a captured value. Gets the of the current instance. The exact runtime type of the current instance. Allows configuration to be performed for a stored procedure that is used to modify a relationship. The type of the entity that the relationship is being configured from. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. The type of the property. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. The type of the property. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Creates a convention that configures stored procedures to be used to delete entities in the database. Creates a convention that configures stored procedures to be used to modify entities in the database. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. The schema name. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. The name of the property to configure the parameter for. The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. The property to configure the parameter for. The name of the parameter. Configures the output parameter that returns the rows affected by this stored procedure. The same configuration instance so that multiple calls can be chained. The name of the parameter. Creates a convention that configures stored procedures to be used to insert entities in the database. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. The schema name. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. The name of the property to configure the parameter for. The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. The property to configure the parameter for. The name of the parameter. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. The name of the property to configure the result for. The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. The property to configure the result for. The name of the result column. Creates a convention that configures stored procedures to be used to modify entities in the database. Configures stored procedure used to insert entities. The same configuration instance so that multiple calls can be chained. A lambda expression that performs configuration for the stored procedure. Configures stored procedure used to update entities. The same configuration instance so that multiple calls can be chained. A lambda expression that performs configuration for the stored procedure. Configures stored procedure used to delete entities. The same configuration instance so that multiple calls can be chained. A lambda expression that performs configuration for the stored procedure. Gets the of the current instance. The exact runtime type of the current instance. Creates a convention that configures stored procedures to be used to update entities in the database. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. The schema name. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. The name of the property to configure the parameter for. The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. The property to configure the parameter for. The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. The name of the property to configure the parameter for. The current value parameter name. The original value parameter name. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. The property to configure the parameter for. The current value parameter name. The original value parameter name. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. The name of the property to configure the result for. The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. The property to configure the result for. The name of the result column. Configures the output parameter that returns the rows affected by this stored procedure. The same configuration instance so that multiple calls can be chained. The name of the parameter. Allows configuration to be performed for a stored procedure that is used to modify a many to many relationship. The type of the entity that the relationship is being configured from. The type of the entity that the other end of the relationship targets. Performs configuration of a stored procedure uses to modify an entity in the database. Sets the name of the stored procedure. Name of the procedure. The same configuration instance so that multiple calls can be chained. Sets the name of the stored procedure. Name of the procedure. Name of the schema. The same configuration instance so that multiple calls can be chained. Configures the parameter for the left key value(s). The type of the property to configure. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty Name of the parameter. The same configuration instance so that multiple calls can be chained. Configures the parameter for the left key value(s). The type of the property to configure. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty Name of the parameter. The same configuration instance so that multiple calls can be chained. Configures the parameter for the left key value(s). A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty Name of the parameter. The same configuration instance so that multiple calls can be chained. Configures the parameter for the left key value(s). A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty Name of the parameter. The same configuration instance so that multiple calls can be chained. Configures the parameter for the right key value(s). The type of the property to configure. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty Name of the parameter. The same configuration instance so that multiple calls can be chained. Configures the parameter for the right key value(s). The type of the property to configure. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty Name of the parameter. The same configuration instance so that multiple calls can be chained. Configures the parameter for the right key value(s). A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty Name of the parameter. The same configuration instance so that multiple calls can be chained. Configures the parameter for the right key value(s). A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty Name of the parameter. The same configuration instance so that multiple calls can be chained. Allows configuration to be performed for a stored procedure that is used to modify a many to many relationship. The type of the entity that the relationship is being configured from. The type of the entity that the other end of the relationship targets. Configures stored procedure used to insert relationships. The same configuration instance so that multiple calls can be chained. A lambda expression that performs configuration for the stored procedure. Configures stored procedure used to delete relationships. The same configuration instance so that multiple calls can be chained. A lambda expression that performs configuration for the stored procedure. Gets the of the current instance. The exact runtime type of the current instance. Allows configuration to be performed for a stored procedure that is used to delete entities. The type of the entity that the stored procedure can be used to delete. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. The schema name. Configures a parameter for this stored procedure. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures the output parameter that returns the rows affected by this stored procedure. The same configuration instance so that multiple calls can be chained. The name of the parameter. Configures parameters for a relationship where the foreign key property is not included in the class. The same configuration instance so that multiple calls can be chained. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A lambda expression that performs the configuration. The type of the principal entity in the relationship. Configures parameters for a relationship where the foreign key property is not included in the class. The same configuration instance so that multiple calls can be chained. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A lambda expression that performs the configuration. The type of the principal entity in the relationship. Allows configuration to be performed for a stored procedure that is used to insert entities. The type of the entity that the stored procedure can be used to insert. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. The schema name. Configures a parameter for this stored procedure. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures parameters for a relationship where the foreign key property is not included in the class. The same configuration instance so that multiple calls can be chained. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A lambda expression that performs the configuration. The type of the principal entity in the relationship. Configures parameters for a relationship where the foreign key property is not included in the class. The same configuration instance so that multiple calls can be chained. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A lambda expression that performs the configuration. The type of the principal entity in the relationship. Allows configuration to be performed for a stored procedure that is used to update entities. The type of the entity that the stored procedure can be used to update. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. Configures the name of the stored procedure. The same configuration instance so that multiple calls can be chained. The stored procedure name. The schema name. Configures a parameter for this stored procedure. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the parameter. Configures a parameter for this stored procedure. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The current value parameter name. The original value parameter name. Configures a parameter for this stored procedure. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The current value parameter name. The original value parameter name. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The current value parameter name. The original value parameter name. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The current value parameter name. The original value parameter name. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The current value parameter name. The original value parameter name. Configures a parameter for this stored procedure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The current value parameter name. The original value parameter name. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The type of the property to configure. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures a column of the result for this stored procedure to map to a property. This is used for database generated columns. The same configuration instance so that multiple calls can be chained. A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The name of the result column. Configures the output parameter that returns the rows affected by this stored procedure. The same configuration instance so that multiple calls can be chained. The name of the parameter. Configures parameters for a relationship where the foreign key property is not included in the class. The same configuration instance so that multiple calls can be chained. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A lambda expression that performs the configuration. The type of the principal entity in the relationship. Configures parameters for a relationship where the foreign key property is not included in the class. The same configuration instance so that multiple calls can be chained. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A lambda expression that performs the configuration. The type of the principal entity in the relationship. Allows configuration to be performed for a stored procedure that is used to modify entities. The type of the entity that the stored procedure can be used to modify. Configures stored procedure used to insert entities. The same configuration instance so that multiple calls can be chained. A lambda expression that performs configuration for the stored procedure. Configures stored procedure used to update entities. The same configuration instance so that multiple calls can be chained. A lambda expression that performs configuration for the stored procedure. Configures stored procedure used to delete entities. The same configuration instance so that multiple calls can be chained. A lambda expression that performs configuration for the stored procedure. Gets the of the current instance. The exact runtime type of the current instance. Used to configure a primitive property of an entity type or complex type. This configuration functionality is available via lightweight conventions. Configures the name of the database column used to store the property. The name of the column. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Sets an annotation in the model for the database column used to store the property. The annotation value can later be used when processing the column such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Calling this method will have no effect if the annotation with the given name has already been configured. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same configuration instance so that multiple calls can be chained. Configures the name of the parameter used in stored procedures for this property. Name of the parameter. The same instance so that multiple calls can be chained. Configures the order of the database column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The order that this column should appear in the database table. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Configures the data type of the database column used to store the property. Name of the database provider specific data type. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Configures the property to be used as an optimistic concurrency token. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Configures whether or not the property is to be used as an optimistic concurrency token. Value indicating if the property is a concurrency token or not. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Configures how values for the property are generated by the database. The pattern used to generate values for the property in the database. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Configures the property to be optional. The database column used to store this property will be nullable. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Configures the property to be required. The database column used to store this property will be non-nullable. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. Configures the property to support Unicode string content. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. This method throws if the property is not a . Configures whether or not the property supports Unicode string content. Value indicating if the property supports Unicode string content or not. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. This method throws if the property is not a . Configures the property to be fixed length. Use HasMaxLength to set the length that the property is fixed to. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. This method throws if the property does not have length facets. Configures the property to be variable length. Properties are variable length by default. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. This method throws if the property does not have length facets. Configures the property to have the specified maximum length. The maximum length for the property. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. This method throws if the property does not have length facets. Configures the property to allow the maximum length supported by the database provider. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. This method throws if the property does not have length facets. Configures the precision of the property. If the database provider does not support precision for the data type of the column then the value is ignored. Precision of the property. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. This method will throw if the property is not a . Configures the precision and scale of the property. The precision of the property. The scale of the property. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. This method will throw if the property is not a . Configures the property to be a row version in the database. The actual data type will vary depending on the database provider being used. Setting the property to be a row version will automatically configure it to be an optimistic concurrency token. The same instance so that multiple calls can be chained. Calling this will have no effect once it has been configured. This method throws if the property is not a . Configures this property to be part of the entity type's primary key. The same instance so that multiple calls can be chained. Gets the of the current instance. The exact runtime type of the current instance. Gets the for this property. An implementation of that does nothing. Using this initializer disables database initialization for the given context type. Passing an instance of this class to is equivalent to passing null. When is being used to resolve initializers an instance of this class must be used to disable initialization. The type of the context. FieldMetadata class providing the correlation between the column ordinals and MemberMetadata. Initializes a new object with the specified ordinal value and field type. An integer specified the location of the metadata. The field type. Gets the type of field for this object. The type of field for this object. Gets the ordinal for this object. An integer representing the ordinal value. Class representing a parameter collection used in EntityCommand Adds the specified object to the . The index of the new object. An . Adds an array of values to the end of the . The values to add. Removes all the objects from the . Determines whether the specified is in this . true if the contains the value; otherwise false. The value. Copies all the elements of the current to the specified one-dimensional starting at the specified destination index. The one-dimensional that is the destination of the elements copied from the current . A 32-bit integer that represents the index in the at which copying starts. Returns an enumerator that iterates through the . An for the . Gets the location of the specified with the specified name. The zero-based location of the specified with the specified case-sensitive name. Returns -1 when the object does not exist in the . The case-sensitive name of the to find. Gets the location of the specified in the collection. The zero-based location of the specified that is a in the collection. Returns -1 when the object does not exist in the . The to find. Inserts an into the at the specified index. The zero-based index at which value should be inserted. An to be inserted in the . Removes the specified parameter from the collection. A object to remove from the collection. Removes the from the at the specified index. The zero-based index of the object to remove. Removes the from the at the specified parameter name. The name of the to remove. Adds the specified object to the . A new object. The to add to the collection. The specified in the value parameter is already added to this or another . The parameter passed was not a . The value parameter is null. Adds a value to the end of the . A object. The name of the parameter. The value to be added. Adds a to the given the parameter name and the data type. A new object. The name of the parameter. One of the values. Adds a to the with the parameter name, the data type, and the column length. A new object. The name of the parameter. One of the values. The column length. Adds an array of values to the end of the . The values to add. Determines whether the specified is in this . true if the contains the value; otherwise false. The value. Copies all the elements of the current to the specified starting at the specified destination index. The that is the destination of the elements copied from the current . A 32-bit integer that represents the index in the at which copying starts. Gets the location of the specified in the collection. The zero-based location of the specified that is a in the collection. Returns -1 when the object does not exist in the . The to find. Inserts a object into the at the specified index. The zero-based index at which value should be inserted. A object to be inserted in the . Removes the specified from the collection. A object to remove from the collection. The parameter is not a . The parameter does not exist in the collection. Gets an Integer that contains the number of elements in the . The number of elements in the as an Integer. Gets a value that indicates whether the has a fixed size. Returns true if the has a fixed size; otherwise false. Gets a value that indicates whether the is read-only. Returns true if the is read only; otherwise false. Gets a value that indicates whether the is synchronized. Returns true if the is synchronized; otherwise false. Gets an object that can be used to synchronize access to the . An object that can be used to synchronize access to the . Gets the at the specified index. The at the specified index. The zero-based index of the parameter to retrieve. The specified index does not exist. Gets the with the specified name. The with the specified name. The name of the parameter to retrieve. The specified name does not exist. Class representing a command for the conceptual layer Initializes a new instance of the class using the specified values. Initializes a new instance of the class with the specified statement. The text of the command. Constructs the EntityCommand object with the given eSQL statement and the connection object to use The eSQL command text to execute The connection object Resolver used to resolve DbProviderServices Initializes a new instance of the class with the specified statement and connection. The text of the command. A connection to the data source. Initializes a new instance of the class with the specified statement, connection and transaction. The text of the command. A connection to the data source. The transaction in which the command executes. Cancels the execution of an . Creates a new instance of an object. A new instance of an object. Create and return a new parameter object representing a parameter in the eSQL statement The parameter object. Executes the command and returns a data reader. The that contains the results. Compiles the into a command tree and passes it to the underlying store provider for execution, then builds an out of the produced result set using the specified . The that contains the results. One of the values. Asynchronously executes the command and returns a data reader for reading the results. May only be called on CommandType.CommandText (otherwise, use the standard Execute* methods) A task that represents the asynchronous operation. The task result contains an EntityDataReader object. For stored procedure commands, if called for anything but an entity collection result Asynchronously executes the command and returns a data reader for reading the results. May only be called on CommandType.CommandText (otherwise, use the standard Execute* methods) A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains an EntityDataReader object. For stored procedure commands, if called for anything but an entity collection result Asynchronously executes the command and returns a data reader for reading the results. May only be called on CommandType.CommandText (otherwise, use the standard Execute* methods) The behavior to use when executing the command A task that represents the asynchronous operation. The task result contains an EntityDataReader object. For stored procedure commands, if called for anything but an entity collection result Asynchronously executes the command and returns a data reader for reading the results. May only be called on CommandType.CommandText (otherwise, use the standard Execute* methods) The behavior to use when executing the command A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains an EntityDataReader object. For stored procedure commands, if called for anything but an entity collection result Executes the command and returns a data reader for reading the results The behavior to use when executing the command A DbDataReader object Asynchronously executes the command and returns a data reader for reading the results The behavior to use when executing the command The token to monitor for cancellation requests A task that represents the asynchronous operation. The task result contains a DbDataReader object. Executes the current command. The number of rows affected. Asynchronously executes the command and discard any results returned from the command A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the number of rows affected. Executes the command, and returns the first column of the first row in the result set. Additional columns or rows are ignored. The first column of the first row in the result set, or a null reference (Nothing in Visual Basic) if the result set is empty. Compiles the entity-level command and creates a prepared version of the command. Compiles the entity-level command and returns the store command text. The store command text. Gets or sets the used by the . The connection used by the entity command. The connection object used for executing the command Gets or sets an Entity SQL statement that specifies a command or stored procedure to execute. The Entity SQL statement that specifies a command or stored procedure to execute. Gets or sets the command tree to execute; only one of the command tree or the command text can be set, not both. The command tree to execute. Gets or sets the amount of time to wait before timing out. The time in seconds to wait for the command to execute. Gets or sets a value that indicates how the property is to be interpreted. One of the enumeration values. Gets the parameters of the Entity SQL statement or stored procedure. The parameters of the Entity SQL statement or stored procedure. The collection of parameters for this command Gets or sets the transaction within which the executes. The transaction within which the executes. The transaction that this command executes in Gets or sets how command results are applied to rows being updated. One of the values. Gets or sets a value that indicates whether the command object should be visible in a Windows Form Designer control. true if the command object should be visible in a Windows Form Designer control; otherwise, false. Gets or sets a value that indicates whether the query plan caching is enabled. true if the query plan caching is enabled; otherwise, false. Class representing a connection for the conceptual layer. An entity connection may only be initialized once (by opening the connection). It is subsequently not possible to change the connection string, attach a new store connection, or change the store connection string. Initializes a new instance of the class. Initializes a new instance of the class, based on the connection string. The provider-specific connection string. An invalid connection string keyword has been provided, or a required connection string keyword has not been provided. Initializes a new instance of the class with a specified and . A to be associated with this . The underlying data source connection for this object. The workspace or connection parameter is null. The conceptual model is missing from the workspace.-or-The mapping file is missing from the workspace.-or-The storage model is missing from the workspace.-or-The connection is not in a closed state. The connection is not from an ADO.NET Entity Framework-compatible provider. Constructs the EntityConnection from Metadata loaded in memory Workspace containing metadata information. Store connection. If set to true the store connection is disposed when the entity connection is disposed, otherwise the caller must dispose the store connection. Returns the associated with this . The associated with this . The inline connection string contains an invalid Metadata keyword value. Establishes a connection to the data source by calling the underlying data provider's Open method. An error occurs when you open the connection, or the name of the underlying data provider is not known. The inline connection string contains an invalid Metadata keyword value. Asynchronously establishes a connection to the data store by calling the Open method on the underlying data provider A to observe while waiting for the task to complete. A task that represents the asynchronous operation. Creates a new instance of an , with the set to this . An object. The name of the underlying data provider is not known. Create a new command object that uses this connection object The command object. Closes the connection to the database. An error occurred when closing the connection. Not supported. Not supported. When the method is called. Begins a transaction by using the underlying provider. A new . The returned instance can later be associated with the to execute the command under that transaction. The underlying provider is not known.-or-The call to was made on an that already has a current transaction.-or-The state of the is not . Begins a transaction with the specified isolation level by using the underlying provider. A new . The returned instance can later be associated with the to execute the command under that transaction. The isolation level of the transaction. The underlying provider is not known.-or-The call to was made on an that already has a current transaction.-or-The state of the is not . Begins a database transaction The isolation level of the transaction An object representing the new transaction Enlists this in the specified transaction. The transaction object to enlist into. The state of the is not . Cleans up this connection object true to release both managed and unmanaged resources; false to release only unmanaged resources Gets or sets the connection string. The connection string required to establish the initial connection to a data source. The default value is an empty string. On a closed connection, the currently set value is returned. If no value has been set, an empty string is returned. An attempt was made to set the property after the ’s was initialized. The is initialized either when the instance is constructed through the overload that takes a as a parameter, or when the instance has been opened. An invalid connection string keyword has been provided or a required connection string keyword has not been provided. Gets the number of seconds to wait when attempting to establish a connection before ending the attempt and generating an error. The time (in seconds) to wait for a connection to open. The default value is the underlying data provider's default time-out. The value set is less than 0. Gets the name of the current database, or the database that will be used after a connection is opened. The value of the Database property of the underlying data provider. The underlying data provider is not known. Gets the state of the EntityConnection, which is set up to track the state of the underlying database connection that is wrapped by this EntityConnection. Gets the name or network address of the data source to connect to. The name of the data source. The default value is an empty string. The underlying data provider is not known. Gets a string that contains the version of the data source to which the client is connected. The version of the data source that is contained in the provider connection string. The connection is closed. Gets the provider factory associated with EntityConnection Provides access to the underlying data source connection that is used by the object. The for the data source connection. Gets the current transaction that this connection is enlisted in. May be null. Class representing a connection string builder for the entity client provider Initializes a new instance of the class. Initializes a new instance of the class using the supplied connection string. A provider-specific connection string to the underlying data source. Clears the contents of the instance. Determines whether the contains a specific key. Returns true if the contains an element that has the specified key; otherwise, false. The key to locate in the . Retrieves a value corresponding to the supplied key from this . Returns true if keyword was found in the connection string; otherwise, false. The key of the item to retrieve. The value corresponding to keyword. keyword contains a null value (Nothing in Visual Basic). Removes the entry with the specified key from the instance. Returns true if the key existed in the connection string and was removed; false if the key did not exist. The key of the keyword/value pair to be removed from the connection string in this . keyword is null (Nothing in Visual Basic) Gets or sets the name of a section as defined in a configuration file. The name of a section in a configuration file. Gets or sets the name of the underlying .NET Framework data provider in the connection string. The invariant name of the underlying .NET Framework data provider. Gets or sets the metadata locations in the connection string. Gets or sets the metadata locations in the connection string. Gets or sets the inner, provider-specific connection string. The inner, provider-specific connection string. Gets a value that indicates whether the has a fixed size. Returns true in every case, because the supplies a fixed-size collection of keyword/value pairs. Gets an that contains the keys in the . An that contains the keys in the . Gets or sets the value associated with the specified key. In C#, this property is the indexer. The value associated with the specified key. The key of the item to get or set. keyword is a null reference (Nothing in Visual Basic). Tried to add a key that does not exist in the available keys. Invalid value in the connection string (specifically, a Boolean or numeric value was expected but not supplied). A data reader class for the entity client provider Closes the object. Releases the resources consumed by this and calls . true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the value of the specified column as a Boolean. The value of the specified column. The zero-based column ordinal. Gets the value of the specified column as a byte. The value of the specified column. The zero-based column ordinal. Reads a stream of bytes from the specified column, starting at location indicated by dataIndex , into the buffer, starting at the location indicated by bufferIndex . The actual number of bytes read. The zero-based column ordinal. The index within the row from which to begin the read operation. The buffer into which to copy the data. The index with the buffer to which the data will be copied. The maximum number of characters to read. Gets the value of the specified column as a single character. The value of the specified column. The zero-based column ordinal. Reads a stream of characters from the specified column, starting at location indicated by dataIndex , into the buffer, starting at the location indicated by bufferIndex . The actual number of characters read. The zero-based column ordinal. The index within the row from which to begin the read operation. The buffer into which to copy the data. The index with the buffer to which the data will be copied. The maximum number of characters to read. Gets the name of the data type of the specified column. The name of the data type. The zero-based column ordinal. Gets the value of the specified column as a object. The value of the specified column. The zero-based column ordinal. Returns a object for the requested column ordinal that can be overridden with a provider-specific implementation. A data reader. The zero-based column ordinal. Gets the value of the specified column as a object. The value of the specified column. The zero-based column ordinal. Gets the value of the specified column as a double-precision floating point number. The value of the specified column. The zero-based column ordinal. Gets the data type of the specified column. The data type of the specified column. The zero-based column ordinal. Gets the value of the specified column as a single-precision floating point number. The value of the specified column. The zero-based column ordinal. Gets the value of the specified column as a globally-unique identifier (GUID). The value of the specified column. The zero-based column ordinal. Gets the value of the specified column as a 16-bit signed integer. The value of the specified column. The zero-based column ordinal. Gets the value of the specified column as a 32-bit signed integer. The value of the specified column. The zero-based column ordinal. Gets the value of the specified column as a 64-bit signed integer. The value of the specified column. The zero-based column ordinal. Gets the name of the column, given the zero-based column ordinal. The name of the specified column. The zero-based column ordinal. Gets the column ordinal given the name of the column. The zero-based column ordinal. The name of the column. The name specified is not a valid column name. Returns the provider-specific field type of the specified column. The object that describes the data type of the specified column. The zero-based column ordinal. Gets the value of the specified column as an instance of . The value of the specified column. The zero-based column ordinal. Gets all provider-specific attribute columns in the collection for the current row. The number of instances of in the array. An array of into which to copy the attribute columns. Returns a that describes the column metadata of the . A that describes the column metadata. Gets the value of the specified column as an instance of . The value of the specified column. The zero-based column ordinal. Gets the value of the specified column as an instance of . The value of the specified column. The zero-based column ordinal. Populates an array of objects with the column values of the current row. The number of instances of in the array. An array of into which to copy the attribute columns. Gets a value that indicates whether the column contains nonexistent or missing values. true if the specified column is equivalent to ; otherwise, false. The zero-based column ordinal. Advances the reader to the next result when reading the results of a batch of statements. true if there are more result sets; otherwise, false. Asynchronously moves the reader to the next result set when reading a batch of statements A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains true if there are more result sets; false otherwise. Advances the reader to the next record in a result set. true if there are more rows; otherwise, false. Asynchronously moves the reader to the next row of the current result set A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains true if there are more rows; false otherwise. Returns an that can be used to iterate through the rows in the data reader. An that can be used to iterate through the rows in the data reader. Returns a nested . The nested data record. The number of the DbDataRecord to return. Returns nested readers as objects. The nested readers as objects. The ordinal of the column. Gets a value indicating the depth of nesting for the current row. The depth of nesting for the current row. Gets the number of columns in the current row. The number of columns in the current row. Gets a value that indicates whether this contains one or more rows. true if the contains one or more rows; otherwise, false. Gets a value indicating whether the is closed. true if the is closed; otherwise, false. Gets the number of rows changed, inserted, or deleted by execution of the SQL statement. The number of rows changed, inserted, or deleted. Returns -1 for SELECT statements; 0 if no rows were affected or the statement failed. Gets the value of the specified column as an instance of . The value of the specified column. The zero-based column ordinal Gets the value of the specified column as an instance of . The value of the specified column. The name of the column. Gets the number of fields in the that are not hidden. The number of fields that are not hidden. Gets for this . The information of a data record. Class representing a parameter used in EntityCommand Initializes a new instance of the class using the default values. Initializes a new instance of the class using the specified parameter name and data type. The name of the parameter. One of the values. Initializes a new instance of the class using the specified parameter name, data type and size. The name of the parameter. One of the values. The size of the parameter. Initializes a new instance of the class using the specified properties. The name of the parameter. One of the values. The size of the parameter. The name of the source column. Initializes a new instance of the class using the specified properties. The name of the parameter. One of the values. The size of the parameter. One of the values. true to indicate that the parameter accepts null values; otherwise, false. The number of digits used to represent the value. The number of decimal places to which value is resolved. The name of the source column. One of the values. The value of the parameter. Resets the type associated with the . Returns a string representation of the parameter. A string representation of the parameter. Gets or sets the name of the entity parameter. The name of the entity parameter. Gets or sets the of the parameter. One of the values. Gets or sets the type of the parameter, expressed as an EdmType. The type of the parameter, expressed as an EdmType. Gets or sets the number of digits used to represent the property. The number of digits used to represent the value. Gets or sets the number of decimal places to which is resolved. The number of decimal places to which value is resolved. Gets or sets the value of the parameter. The value of the parameter. Gets or sets the direction of the parameter. One of the values. Gets or sets a value that indicates whether the parameter accepts null values. true if null values are accepted; otherwise, false. Gets or sets the maximum size of the data within the column. The maximum size of the data within the column. Gets or sets the name of the source column mapped to the and used for loading or returning the . The name of the source column mapped to the dataset and used for loading or returning the value. Gets or sets a value that indicates whether source column is nullable. true if source column is nullable; otherwise, false. Gets or sets the to use when loading the value. One of the values. Class representing a provider factory for the entity client provider A singleton object for the entity client provider factory object. This remains a public field (not property) because DbProviderFactory expects a field. Returns a new instance of the provider's class that implements the class. A new instance of . Throws a . This method is currently not supported. This method is currently not supported. Returns a new instance of the provider's class that implements the class. A new instance of . Returns a new instance of the provider's class that implements the class. A new instance of . Throws a . This method is currently not supported. This method is currently not supported. Returns a new instance of the provider's class that implements the class. A new instance of . Throws a . This method is currently not supported. This method is currently not supported. This method is currently not supported. Returns the requested class. A new instance of . The supported types are , , and . Returns null (or Nothing in Visual Basic) for every other type. The to return. Class representing a transaction for the conceptual layer Commits the underlying transaction. Rolls back the underlying transaction. Cleans up this transaction object true to release both managed and unmanaged resources; false to release only unmanaged resources Gets for this . An to the underlying data source. The connection object owning this transaction object Gets the isolation level of this . An enumeration value that represents the isolation level of the underlying transaction. Gets the DbTransaction for the underlying provider transaction. Represents a failure while trying to prepare or execute a CommandCompilation This exception is intended to provide a common exception that people can catch to hold provider exceptions (SqlException, OracleException) when using the EntityCommand to execute statements. Initializes a new instance of . Initializes a new instance of . The message that describes the error. Initializes a new instance of . The error message that explains the reason for the exception. The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Represents a failure while trying to prepare or execute a CommandExecution This exception is intended to provide a common exception that people can catch to hold provider exceptions (SqlException, OracleException) when using the EntityCommand to execute statements. Initializes a new instance of . Initializes a new instance of . The message that describes the error. Initializes a new instance of . The error message that explains the reason for the exception. The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. An identifier for an entity. Initializes a new instance of the class. Initializes a new instance of the class with an entity set name and a generic collection. A that is the entity set name qualified by the entity container name. A generic collection.Each key/value pair has a property name as the key and the value of that property as the value. There should be one pair for each property that is part of the . The order of the key/value pairs is not important, but each key property should be included. The property names are simple names that are not qualified with an entity type name or the schema name. Initializes a new instance of the class with an entity set name and an collection of objects. A that is the entity set name qualified by the entity container name. An collection of objects with which to initialize the key. Initializes a new instance of the class with an entity set name and specific entity key pair. A that is the entity set name qualified by the entity container name. A that is the name of the key. An that is the key value. Gets the entity set for this entity key from the given metadata workspace. The for the entity key. The metadata workspace that contains the entity. The entity set could not be located in the specified metadata workspace. Returns a value that indicates whether this instance is equal to a specified object. true if this instance and obj have equal values; otherwise, false. An to compare with this instance. Returns a value that indicates whether this instance is equal to a specified . true if this instance and other have equal values; otherwise, false. An object to compare with this instance. Serves as a hash function for the current object. is suitable for hashing algorithms and data structures such as a hash table. A hash code for the current . Compares two objects. true if the key1 and key2 values are equal; otherwise, false. A to compare. A to compare. Compares two objects. true if the key1 and key2 values are not equal; otherwise, false. A to compare. A to compare. Helper method that is used to deserialize an . Describes the source and destination of a given serialized stream, and provides an additional caller-defined context. Helper method that is used to deserialize an . Describes the source and destination of a given serialized stream and provides an additional caller-defined context. Gets a singleton EntityKey by which a read-only entity is identified. Gets a singleton EntityKey identifying an entity resulted from a failed TREAT. Gets or sets the name of the entity set. A value that is the name of the entity set for the entity to which the belongs. Gets or sets the name of the entity container. A value that is the name of the entity container for the entity to which the belongs. Gets or sets the key values associated with this . A of key values for this . Gets a value that indicates whether the is temporary. true if the is temporary; otherwise, false. Information about a key that is part of an EntityKey. A key member contains the key name and value. Initializes a new instance of the class. Initializes a new instance of the class with the specified entity key pair. The name of the key. The key value. Returns a string representation of the entity key. A string representation of the entity key. Gets or sets the name of the entity key. The key name. Gets or sets the value of the entity key. The key value. Kind of collection (applied to Properties) Property is not a Collection Collection has Bag semantics( unordered and duplicates ok) Collection has List semantics (Order is deterministic and duplicates ok) The concurrency mode for properties. Default concurrency mode: the property is never validated at write time Fixed concurrency mode: the property is always validated at write time The pattern for Server Generated Properties. Not a Server Generated Property. This is the default. A value is generated on INSERT, and remains unchanged on update. A value is generated on both INSERT and UPDATE. Represents an eSQL Query compilation exception; The class of exceptional conditions that may cause this exception to be raised are mainly: 1) Syntax Errors: raised during query text parsing and when a given query does not conform to eSQL formal grammar; 2) Semantic Errors: raised when semantic rules of eSQL language are not met such as metadata or schema information not accurate or not present, type validation errors, scoping rule violations, user of undefined variables, etc. For more information, see eSQL Language Spec. Initializes a new instance of . Initializes a new instance of with a specialized error message. The message that describes the error. Initializes a new instance of the class that uses a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Gets a description of the error. A string that describes the error. Gets the approximate context where the error occurred, if available. A string that describes the approximate context where the error occurred, if available. Gets the approximate line number where the error occurred. An integer that describes the line number where the error occurred. Gets the approximate column number where the error occurred. An integer that describes the column number where the error occurred. Thrown to indicate that a command tree is invalid. Initializes a new instance of the class with a default message. Initializes a new instance of the class with the specified message. The exception message. Initializes a new instance of the class with the specified message and inner exception. The exception message. The exception that is the cause of this . Mapping exception class. Note that this class has state - so if you change even its internals, it can be a breaking change Initializes a new instance of . Initializes a new instance of with a specialized error message. The message that describes the error. Initializes a new instance of that uses a specified error message and a reference to the inner exception. The message that describes the error. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Class for representing a collection of mapping items in Edm space. Base class for the type created at design time to store the generated views. Returns the key/value pair at the specified index, which contains the view and its key. The key/value pair at index , which contains the view and its key. The index of the view. Gets or sets the name of . The container name. Gets or sets in storage schema. Container name. Hash value. Hash value. Hash value of views. Hash value. Gets or sets view count. View count. Attribute to mark the assemblies that contain the generated views type. Initializes a new instance of the class. The view type. Gets the T:System.Type of the view. The T:System.Type of the view. Represents a complex type mapping for a function import result. Specifies a function import structural type mapping. Gets the property mappings for the result type of a function import. Initializes a new FunctionImportComplexTypeMapping instance. The return type. The property mappings for the result type of a function import. Ges the return type. Represents a function import entity type mapping. Initializes a new FunctionImportEntityTypeMapping instance. The entity types at the base of the type hierarchies to be mapped. The entity types to be mapped. The property mappings for the result types of a function import. The mapping conditions. Gets the entity types being mapped. Gets the entity types at the base of the hierarchies being mapped. Gets the mapping conditions. Represents a mapping condition for a function import result. Gets the name of the column used to evaluate the condition. Represents a mapping condition for the result of a function import evaluated by checking null or not null. Initializes a new FunctionImportEntityTypeMappingConditionIsNull instance. The name of the column used to evaluate the condition. Flag that indicates whether a null or not null check is performed. Gets a flag that indicates whether a null or not null check is performed. Represents a mapping condition for the result of a function import, evaluated by comparison with a specified value. Initializes a new FunctionImportEntityTypeMappingConditionValue instance. The name of the column used to evaluate the condition. The value to compare with. Gets the value used for comparison. Represents a mapping from a model function import to a store composable or non-composable function. Gets model function (or source of the mapping) Gets store function (or target of the mapping) Represents a mapping from a model function import to a store composable function. Initializes a new FunctionImportMappingComposable instance. The model function import. The store composable function. The result mapping for the function import. The parent container mapping. Gets the result mapping for the function import. Represents a mapping from a model function import to a store non-composable function. Initializes a new FunctionImportMappingNonComposable instance. The model function import. The store non-composable function. The function import result mappings. The parent container mapping. Gets the function import result mappings. Base class for mapping a property of a function import return type. Maps a function import return type property to a table column. Initializes a new FunctionImportReturnTypeScalarPropertyMapping instance. The mapped property name. The mapped column name. Gets the mapped property name. Gets the mapped column name. Represents the base item class for all the mapping metadata Represents the base item class for all the metadata Describes modification function mappings for an association set. Initalizes a new AssociationSetModificationFunctionMapping instance. An association set. A delete function mapping. An insert function mapping. Gets the association set. Gets the delete function mapping. Gets the insert function mapping. Describes modification function mappings for an entity type within an entity set. Initializes a new EntityTypeModificationFunctionMapping instance. An entity type. A delete function mapping. An insert function mapping. An updated function mapping. Gets the entity type. Gets the delete function mapping. Gets the insert function mapping. Gets hte update function mapping. Describes the location of a member within an entity or association type structure. Initializes a new ModificationFunctionMemberPath instance. Gets the members in the path from the leaf (the member being bound) to the root of the structure. Gets the association set to which we are navigating via this member. If the value is null, this is not a navigation member path. Gets the members in the path from the leaf (the member being bound) to the Root of the structure. Gets the association set to which we are navigating via this member. If the value is null, this is not a navigation member path. Binds a modification function parameter to a member of the entity or association being modified. Initializes a new ModificationFunctionParameterBinding instance. The parameter taking the value. The path to the entity or association member defining the value. A flag indicating whether the current or original member value is being bound. Gets the parameter taking the value. Gets the path to the entity or association member defining the value. Gets a flag indicating whether the current or original member value is being bound. Defines a binding from a named result set column to a member taking the value. Initializes a new ModificationFunctionResultBinding instance. The name of the column to bind from the function result set. The property to be set on the entity. Gets the name of the column to bind from the function result set. Gets the property to be set on the entity. Represents the Mapping metadata for an AssociationSet in CS space. For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityTypeMapping --MappingFragment --AssociationSetMapping --AssociationTypeMapping --MappingFragment This class represents the metadata for the AssociationSetMapping elements in the above example. And it is possible to access the AssociationTypeMap underneath it. There will be only one TypeMap under AssociationSetMap. Represents the Mapping metadata for an Extent in CS space. For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityTypeMapping --MappingFragment --AssociationSetMapping --AssociationTypeMapping --MappingFragment This class represents the metadata for all the extent map elements in the above example namely EntitySetMapping, AssociationSetMapping and CompositionSetMapping. The EntitySetBaseMapping elements that are children of the EntityContainerMapping element can be accessed through the properties on this type. Gets the parent container mapping. Gets or sets the query view associated with this mapping. Initializes a new AssociationSetMapping instance. The association set to be mapped. The store entity set to be mapped. The parent container mapping. Adds a property mapping condition. The condition to add. Removes a property mapping condition. The property mapping condition to remove. Gets the association set that is mapped. Gets the contained association type mapping. Gets or sets the corresponding function mapping. Can be null. Gets the store entity set that is mapped. Gets or sets the source end property mapping. Gets or sets the target end property mapping. Gets the property mapping conditions. Represents the Mapping metadata for an association type map in CS space. For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap --ScalarPropertyMap --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap --ComplexPropertyMap --ComplexTypeMap --ScalarPropertyMap --ScalarProperyMap --ScalarPropertyMap --AssociationSetMapping --AssociationTypeMapping --MappingFragment --EndPropertyMap --ScalarPropertyMap --ScalarProperyMap --EndPropertyMap --ScalarPropertyMap This class represents the metadata for all association Type map elements in the above example. Users can access the table mapping fragments under the association type mapping through this class. Represents the Mapping metadata for a type map in CS space. For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap --ScalarPropertyMap --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap --ComplexPropertyMap --ScalarPropertyMap --ScalarProperyMap --ScalarPropertyMap --AssociationSetMapping --AssociationTypeMapping --MappingFragment --EndPropertyMap --ScalarPropertyMap --ScalarProperyMap --EndPropertyMap --ScalarPropertyMap This class represents the metadata for all the Type map elements in the above example namely EntityTypeMapping, AssociationTypeMapping and CompositionTypeMapping. The TypeMapping elements contain TableMappingFragments which in turn contain the property maps. Creates an AssociationTypeMapping instance. The AssociationSetMapping that the contains this AssociationTypeMapping. Gets the AssociationSetMapping that contains this AssociationTypeMapping. Gets the association type being mapped. Gets the single mapping fragment. Mapping metadata for Complex properties. For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ComplexPropertyMap --ComplexTypeMapping --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) --ComplexTypeMapping --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --AssociationSetMapping --AssociationTypeMapping --MappingFragment --EndPropertyMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --EndPropertyMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) This class represents the metadata for all the complex property map elements in the above example. ComplexPropertyMaps contain ComplexTypeMaps which define mapping based on the type of the ComplexProperty in case of inheritance. Construct a new Complex Property mapping object The MemberMetadata object that represents this Complex member Adds a type mapping corresponding to a nested complex type. The complex type mapping to be added. Removes a type mapping corresponding to a nested complex type. The complex type mapping to be removed. Gets a read only collections of type mappings corresponding to the nested complex types. Mapping metadata for Complex Types. Creates a ComplexTypeMapping instance. The ComplexType being mapped. Adds a property mapping. The property mapping to be added. Removes a property mapping. The property mapping to be removed. Adds a property mapping condition. The property mapping condition to be added. Removes a property mapping condition. The property mapping condition to be removed. Gets the ComplexType being mapped. Gets a read-only collection of property mappings. Gets a read-only collection of property mapping conditions. Mapping metadata for End property of an association. For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ComplexPropertyMap --ComplexTypeMapping --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) --ComplexTypeMapping --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --AssociationSetMapping --AssociationTypeMapping --MappingFragment --EndPropertyMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --EndPropertyMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) This class represents the metadata for all the end property map elements in the above example. EndPropertyMaps provide mapping for each end of the association. Creates an association end property mapping. An AssociationEndMember that specifies the association end to be mapped. Adds a child property-column mapping. A ScalarPropertyMapping that specifies the property-column mapping to be added. Removes a child property-column mapping. A ScalarPropertyMapping that specifies the property-column mapping to be removed. Gets an AssociationEndMember that specifies the mapped association end. Gets a ReadOnlyCollection of ScalarPropertyMapping that specifies the children of this association end property mapping. Represents the Mapping metadata for the EntityContainer map in CS space. Only one EntityContainerMapping element is allowed in the MSL file for CS mapping. For Example if conceptually you could represent the CS MSL file as following ---Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --AssociationSetMapping The type represents the metadata for EntityContainerMapping element in the above example. The EntitySetBaseMapping elements that are children of the EntityContainerMapping element can be accessed through the properties on this type. We currently assume that an Entity Container on the C side is mapped to a single Entity Container in the S - space. Initializes a new EntityContainerMapping instance. The conceptual entity container to be mapped. The store entity container to be mapped. The parent mapping item collection. Flag indicating whether to generate update views. Adds an entity set mapping. The entity set mapping to add. Removes an association set mapping. The association set mapping to remove. Adds an association set mapping. The association set mapping to add. Removes an association set mapping. The association set mapping to remove. Adds a function import mapping. The function import mapping to add. Removes a function import mapping. The function import mapping to remove. Gets the parent mapping item collection. Gets the type kind for this item Gets the conceptual entity container. Gets the store entity container. Gets the entity set mappings. Gets the association set mappings. Gets the function import mappings. Gets a flag that indicates whether to generate the update views or not. Represents the Mapping metadata for an EnitytSet in CS space. For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityTypeMapping --MappingFragment --AssociationSetMapping --AssociationTypeMapping --MappingFragment This class represents the metadata for the EntitySetMapping elements in the above example. And it is possible to access the EntityTypeMaps underneath it. Initialiazes a new EntitySetMapping instance. The entity set to be mapped. The parent container mapping. Adds a type mapping. The type mapping to add. Removes a type mapping. The type mapping to remove. Adds a function mapping. The function mapping to add. Removes a function mapping. The function mapping to remove. Gets the entity set that is mapped. Gets the contained entity type mappings. Gets the corresponding function mappings. Mapping metadata for Entity type. If an EntitySet represents entities of more than one type, than we will have more than one EntityTypeMapping for an EntitySet( For ex : if PersonSet Entity extent represents entities of types Person and Customer, than we will have two EntityType Mappings under mapping for PersonSet). For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap --ScalarPropertyMap --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap --ComplexPropertyMap --ScalarPropertyMap --ScalarProperyMap --ScalarPropertyMap --AssociationSetMapping --AssociationTypeMapping --MappingFragment --EndPropertyMap --ScalarPropertyMap --ScalarProperyMap --EndPropertyMap --ScalarPropertyMap This class represents the metadata for all entity Type map elements in the above example. Users can access the table mapping fragments under the entity type mapping through this class. Creates an EntityTypeMapping instance. The EntitySetMapping that contains this EntityTypeMapping. Adds an entity type to the mapping. The EntityType to be added. Removes an entity type from the mapping. The EntityType to be removed. Adds an entity type hierarchy to the mapping. The hierarchy is represented by the specified root entity type. The root EntityType of the hierarchy to be added. Removes an entity type hierarchy from the mapping. The hierarchy is represented by the specified root entity type. The root EntityType of the hierarchy to be removed. Adds a mapping fragment. The mapping fragment to be added. Removes a mapping fragment. The mapping fragment to be removed. Gets the EntitySetMapping that contains this EntityTypeMapping. Gets the single EntityType being mapped. Throws exception in case of hierarchy type mapping. Gets a flag that indicates whether this is a type hierarchy mapping. Gets a read-only collection of mapping fragments. Gets the mapped entity types. Gets the mapped base types for a hierarchy mapping. Represents the metadata for mapping fragment. A set of mapping fragments makes up the Set mappings( EntitySet, AssociationSet or CompositionSet ) Each MappingFragment provides mapping for those properties of a type that map to a single table. For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ComplexPropertyMap --ComplexTypeMapping --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) --ComplexTypeMapping --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --AssociationSetMapping --AssociationTypeMapping --MappingFragment --EndPropertyMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --EndPropertyMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) This class represents the metadata for all the mapping fragment elements in the above example. Users can access all the top level constructs of MappingFragment element like EntityKey map, Property Maps, Discriminator property through this mapping fragment class. Creates a MappingFragment instance. The EntitySet corresponding to the table of view being mapped. The TypeMapping that contains this MappingFragment. Flag that indicates whether to include 'DISTINCT' when generating queries. Adds a property mapping. The property mapping to be added. Removes a property mapping. The property mapping to be removed. Adds a property mapping condition. The property mapping condition to be added. Removes a property mapping condition. The property mapping condition to be removed. Gets the EntitySet corresponding to the table or view being mapped. Gets the TypeMapping that contains this MappingFragment. Gets a flag that indicates whether to include 'DISTINCT' when generating queries. Gets a read-only collection of property mappings. Gets a read-only collection of property mapping conditions. Represents a collection of items in Storage Mapping (CS Mapping) space. Initializes a new instance of the class using the specified , and a collection of string indicating the metadata file paths. The that this mapping is to use. The that this mapping is to use. The file paths that this mapping is to use. Initializes a new instance of the class using the specified , and XML readers. The that this mapping is to use. The that this mapping is to use. The XML readers that this mapping is to use. Computes a hash value for the container mapping specified by the names of the mapped containers. The name of a container in the conceptual model. The name of a container in the store model. A string that specifies the computed hash value. Computes a hash value for the single container mapping in the collection. A string that specifies the computed hash value. Creates a dictionary of (extent, generated view) for a container mapping specified by the names of the mapped containers. The name of a container in the conceptual model. The name of a container in the store model. A list that accumulates potential errors. A dictionary of (, ) that specifies the generated views. Creates a dictionary of (extent, generated view) for the single container mapping in the collection. A list that accumulates potential errors. A dictionary of (, ) that specifies the generated views. Factory method that creates a . The edm metadata collection to map. Must not be null. The store metadata collection to map. Must not be null. MSL artifacts to load. Must not be null. Paths to MSL artifacts. Used in error messages. Can be null in which case the base Uri of the XmlReader will be used as a path. The collection of errors encountered while loading. instance if no errors encountered. Otherwise null. Gets or sets a for creating instances that are used to retrieve pre-generated mapping views. Gets the version of this represents. The version of this represents. Describes modification function binding for change processing of entities or associations. Initializes a new ModificationFunctionMapping instance. The entity or association set. The entity or association type. The metadata of function to which we should bind. Bindings for function parameters. The output parameter producing number of rows affected. Bindings for the results of function evaluation Gets output parameter producing number of rows affected. May be null. Gets Metadata of function to which we should bind. Gets bindings for function parameters. Gets bindings for the results of function evaluation. Mapping metadata for scalar properties. For Example if conceptually you could represent the CS MSL file as following --Mapping --EntityContainerMapping ( CNorthwind-->SNorthwind ) --EntitySetMapping --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --EntityTypeMapping --MappingFragment --EntityKey --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ComplexPropertyMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --AssociationSetMapping --AssociationTypeMapping --MappingFragment --EndPropertyMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) --EndPropertyMap --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) This class represents the metadata for all the scalar property map elements in the above example. Creates a mapping between a simple property and a column. The property to be mapped. The column to be mapped. Gets an EdmProperty that specifies the mapped column. metadata exception class Initializes a new instance of the class with a default message. Initializes a new instance of the class with the specified message. The exception message. Initializes a new instance of the class with the specified message and inner exception. The exception message. The exception that is the cause of this . DataSpace OSpace indicates the item in the clr space CSpace indicates the item in the CSpace - edm primitive types + types defined in csdl SSpace indicates the item in the SSpace Mapping between OSpace and CSpace Mapping between CSpace and SSpace This class encapsulates the error information for a generic EDM error. Gets the error message. The error message. Class for representing a collection of items in Edm space. Initializes a new instance of the class by using the collection of the XMLReader objects where the conceptual schema definition language (CSDL) files exist. The collection of the XMLReader objects where the conceptual schema definition language (CSDL) files exist. Initializes a new instance of the class. The entity data model. Initializes a new instance of the class by using the paths where the conceptual schema definition language (CSDL) files exist. The paths where the conceptual schema definition language (CSDL) files exist. Returns a collection of the objects. A ReadOnlyCollection object that represents a collection of the objects. Returns a collection of the objects with the specified conceptual model version. A ReadOnlyCollection object that represents a collection of the objects. The conceptual model version. Factory method that creates an . CSDL artifacts to load. Must not be null. Paths to CSDL artifacts. Used in error messages. Can be null in which case the base Uri of the XmlReader will be used as a path. The collection of errors encountered while loading. instance if no errors encountered. Otherwise null. Gets the conceptual model version for this collection. The conceptual model version for this collection. This class encapsulates the error information for a schema error that was encountered. Constructs a EdmSchemaError object. The explanation of the error. The code associated with this error. The severity of the error. Returns the error message. The error message. Gets the error code. The error code. Gets the severity level of the error. One of the values. The default is . Gets the line number where the error occurred. The line number where the error occurred. Gets the column where the error occurred. The column where the error occurred. Gets the location of the schema that contains the error. This string also includes the name of the schema at the end. The location of the schema that contains the error. Gets the name of the schema that contains the error. The name of the schema that contains the error. Gets a string representation of the stack trace at the time the error occurred. A string representation of the stack trace at the time the error occurred. Defines the different severities of errors that can occur when validating an Entity Framework model. A warning that does not prevent the model from being used. An error that prevents the model from being used. Represents a end of a Association Type Initializes a new instance of the RelationshipEndMember class Represents the edm member class Returns the name of this member. The name of this member. Gets or sets the name of the property. Setting this from a store-space model-convention will change the name of the database column for this property. In the conceptual model, this should align with the corresponding property from the entity class and should not be changed. The name of this member. Gets the type on which this member is declared. A object that represents the type on which this member is declared. Gets the instance of the class that contains both the type of the member and facets for the type. A object that contains both the type of the member and facets for the type. Tells whether this member is marked as a Computed member in the EDM definition Tells whether this member's Store generated pattern is marked as Identity in the EDM definition Access the EntityType of the EndMember in an association. The EntityType of the EndMember in an association. Gets the operational behavior of this relationship end member. One of the values. The default is . Gets the multiplicity of this relationship end member. One of the values. Creates a read-only AssociationEndMember instance. The name of the association end member. The reference type for the end. The multiplicity of the end. Flag that indicates the delete behavior of the end. Metadata properties to be associated with the instance. The newly created AssociationEndMember instance. The specified name is null or empty. The specified reference type is null. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Class for representing an Association set Class for representing a relationship set Class for representing a entity set Returns the name of the current entity or relationship set. The name of the current entity or relationship set. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets escaped provider specific SQL describing this entity set. Gets or sets the name of the current entity or relationship set. If this property is changed from store-space, the mapping layer must also be updated to reflect the new name. To change the table name of a store space use the Table property. The name of the current entity or relationship set. Thrown if the setter is called when EntitySetBase instance is in ReadOnly state Gets the entity container of the current entity or relationship set. An object that represents the entity container of the current entity or relationship set. Thrown if the setter is called when the EntitySetBase instance or the EntityContainer passed into the setter is in ReadOnly state Gets the entity type of this . An object that represents the entity type of this . Thrown if the setter is called when EntitySetBase instance is in ReadOnly state Gets or sets the database table name for this entity set. if value passed into setter is null Thrown if the setter is called when EntitySetBase instance is in ReadOnly state Gets or sets the database schema for this entity set. if value passed into setter is null Thrown if the setter is called when EntitySetBase instance is in ReadOnly state Gets the relationship type of this . An object that represents the relationship type of this . Gets the built-in type kind for this . A object that represents the built-in type kind for this . Creates a read-only AssociationSet instance from the specified parameters. The name of the association set. The association type of the elements in the association set. The entity set for the source association set end. The entity set for the target association set end. Metadata properties to be associated with the instance. The newly created AssociationSet instance. The specified name is null or empty. The specified association type is null. The entity type of one of the ends of the specified association type does not match the entity type of the corresponding entity set end. Gets the association related to this . An object that represents the association related to this . Gets the ends of this . A collection of type that contains the ends of this . Gets the built-in type kind for this . A object that represents built-in type kind for this . Class representing a AssociationSet End Returns the name of the End role for this . The name of the End role for this . Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the parent association set of this . An object that represents the parent association set of this . Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state Gets the End member that this object corresponds to. An object that represents the End member that this object corresponds to. Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state Gets the name of the End for this . The name of the End for this . Gets the name of the End role for this . The name of the End role for this . Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state Gets the entity set referenced by this End role. An object that represents the entity set referred by this End role. Describes an association/relationship between two entities in the conceptual model or a foreign key relationship between two tables in the store model. In the conceptual model the dependant class may or may not define a foreign key property. If a foreign key is defined the property will be true and the property will contain details of the foreign keys Represents the Relationship type Represents the Entity Type Represents the Structural Type Base EdmType class for all the model types Returns the full name of this type. The full name of this type. Returns an instance of the whose element type is this type. The object whose element type is this type. Gets the name of this type. The name of this type. Gets the namespace of this type. The namespace of this type. Gets a value indicating whether this type is abstract or not. true if this type is abstract; otherwise, false. Thrown if the setter is called on instance that is in ReadOnly state Gets the base type of this type. The base type of this type. Thrown if the setter is called on instance that is in ReadOnly state Thrown if the value passed in for setter will create a loop in the inheritance chain Gets the full name of this type. The full name of this type. Adds a member to this type The member to add Removes a member from this type. The member to remove. Gets the list of members on this type. A collection of type that contains a set of members on this type. Adds the specified property to the list of keys for the current entity. The property to add. if member argument is null Thrown if the EntityType has a base type of another EntityTypeBase. In this case KeyMembers should be added to the base type If the EntityType instance is in ReadOnly state Removes the specified key member from the collection. The key member to remove. Gets the list of all the key members for the current entity or relationship type. A object that represents the list of key members for the current entity or relationship type. Gets the list of all the key properties for this entity type. The list of all the key properties for this entity type. Gets the list of ends for this relationship type. A collection of type that contains the list of Ends for this relationship type. Creates a read-only AssociationType instance from the specified parameters. The name of the association type. The namespace of the association type. Flag that indicates a foreign key (FK) relationship. The data space for the association type. The source association end member. The target association end member. A referential constraint. Metadata properties to be associated with the instance. The newly created AssociationType instance. The specified name is null or empty. The specified namespace is null or empty. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the list of ends for this . A collection of type that contains the list of ends for this . Gets or sets the referential constraint. The referential constraint. Gets the list of constraints for this . A collection of type that contains the list of constraints for this . Gets the Boolean property value that specifies whether the column is a foreign key. A Boolean value that specifies whether the column is a foreign key. If true, the column is a foreign key. If false (default), the column is not a foreign key. Represents the structure of an . In the conceptual-model this represents the shape and structure of an entity. In the store model this represents the structure of a table. To change the Schema and Table name use EntitySet. Returns a object that references this . A object that references this . The factory method for constructing the EntityType object. The name of the entity type. The namespace of the entity type. The dataspace in which the EntityType belongs to. Name of key members for the type. Members of the entity type (primitive and navigation properties). Metadata properties to be associated with the instance. The EntityType object. Thrown if either name, namespace arguments are null. The newly created EntityType will be read only. The factory method for constructing the EntityType object. The name of the entity type. The namespace of the entity type. The dataspace in which the EntityType belongs to. The base type. Name of key members for the type. Members of the entity type (primitive and navigation properties). Metadata properties to be associated with the instance. The EntityType object. Thrown if either name, namespace arguments are null. The newly created EntityType will be read only. Adds the specified navigation property to the members of this type. The navigation property is added regardless of the read-only flag. The navigation property to be added. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the declared navigation properties associated with the entity type. The declared navigation properties associated with the entity type. Gets the navigation properties of this . A collection of type that contains the list of navigation properties on this . Gets the list of declared properties for the entity type. The declared properties for the entity type. Gets the collection of declared members for the entity type. The collection of declared members for the entity type. Gets the list of properties for this . A collection of type that contains the list of properties for this . Represents an enumeration type. Class representing a simple type Creates a read-only EnumType instance. The name of the enumeration type. The namespace of the enumeration type. The underlying type of the enumeration type. Indicates whether the enumeration type can be treated as a bit field; that is, a set of flags. The members of the enumeration type. Metadata properties to be associated with the enumeration type. The newly created EnumType instance. underlyingType is null. name is null or empty. -or- namespaceName is null or empty. -or- underlyingType is not a supported underlying type. -or- The specified members do not have unique names. -or- The value of a specified member is not in the range of the underlying type. Returns the kind of the type Gets a collection of enumeration members for this enumeration type. Gets a value indicating whether the enum type is defined as flags (i.e. can be treated as a bit field) Gets the underlying type for this enumeration type. Specifies the kinds of item attributes in the conceptual model. An enumeration member indicating that an item attribute is System An enumeration member indicating that an item attribute is Extended. List of all the built in types Association Type Kind AssociationSetEnd Kind AssociationSet Kind Association Type Kind EntitySetBase Kind Entity Type Base Kind Collection Type Kind Collection Kind Complex Type Kind Documentation Kind DeleteAction Type Kind Edm Type Kind Entity Container Kind Entity Set Kind Entity Type Kind Enumeration Type Kind Enum Member Kind Facet Kind EdmFunction Kind Function Parameter Kind Global Item Type Kind Metadata Property Kind Navigation Property Kind Metadata Item Type Kind EdmMember Type Kind Parameter Mode Kind Primitive Type Kind Primitive Type Kind Kind EdmProperty Type Kind ProviderManifest Type Kind Referential Constraint Type Kind Ref Type Kind RelationshipEnd Type Kind Relationship Multiplicity Type Kind Relationship Set Type Kind Relationship Type Row Type Kind Simple Type Kind Structural Type Kind Type Information Kind Represents the Edm Collection Type Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the instance of the class that contains the type of the element that this current object includes and facets for that type. The instance of the class that contains the type of the element that this current object includes and facets for that type. Represents the Edm Complex Type. This can be used to configure complex types from a conceptual-space model-based convention. Complex types are not supported in the store model. Creates a new instance of the type. The name of the complex type. The namespace of the complex type. The dataspace to which the complex type belongs to. Members of the complex type. Metadata properties to be associated with the instance. Thrown if either name, namespace or members argument is null. A new instance a the type. The newly created will be read only. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the list of properties for this . A collection of type that contains the list of properties for this . Class representing the Documentation associated with an item Initializes a new Documentation instance. A summary string. A long description string. Returns the summary for this . The summary for this . Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the summary for this . The summary for this . Gets the long description for this . The long description for this . Gets a value indicating whether this object contains only a null or an empty and a . true if this object contains only a null or an empty and a ; otherwise, false. Class for representing a function Adds a parameter to this function. The parameter to be added. The factory method for constructing the object. The name of the function. The namespace of the function. The namespace the function belongs to. Additional function attributes and properties. Metadata properties that will be added to the function. Can be null. A new, read-only instance of the type. Gets the built-in type kind for this . One of the enumeration values of the enumeration. Returns the full name (namespace plus name) of this type. The full name of the type. Gets the parameters of this . A collection of type that contains the parameters of this . Gets the return parameter of this . A object that represents the return parameter of this . Gets the return parameters of this . A collection of type that represents the return parameters of this . Gets the store function name attribute of this function. Gets the parameter type semantics attribute of this function. Gets the aggregate attribute of this function. Gets a value indicating whether built in attribute is present on this function. true if the attribute is present; otherwise, false. Gets a value indicating whether this instance is from the provider manifest. true if this instance is from the provider manifest; otherwise, false. Gets a value indicating whether the is a niladic function (a function that accepts no arguments). true if the function is niladic; otherwise, false. Gets whether this instance is mapped to a function or to a stored procedure. true if this instance is mapped to a function; false if this instance is mapped to a stored procedure. Gets a query in the language that is used by the database management system or storage model. A string value in the syntax used by the database management system or storage model that contains the query or update statement of the . Gets or sets the schema associated with the function. The schema associated with the function. In conceptual-space, EdmProperty represents a property on an Entity. In store-space, EdmProperty represents a column in a table. Creates a new primitive property. The newly created property. The name of the property. The type of the property. Creates a new enum property. The newly created property. The name of the property. The type of the property. Creates a new complex property. The newly created property. The name of the property. The type of the property. Creates a new instance of EdmProperty type. Name of the property. Property A new instance of EdmProperty type Sets the metadata properties. The metadata properties to be set. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets a value indicating whether this can have a null value. Nullability in the conceptual model and store model is a simple indication of whether or not the property is considered nullable. Nullability in the object model is more complex. When using convention based mapping (as usually happens with POCO entities), a property in the object model is considered nullable if and only if the underlying CLR type is nullable and the property is not part of the primary key. When using attribute based mapping (usually used with entities that derive from the EntityObject base class), a property is considered nullable if the IsNullable flag is set to true in the attribute. This flag can be set to true even if the underlying type is not nullable, and can be set to false even if the underlying type is nullable. The latter case happens as part of default code generation when a non-nullable property in the conceptual model is mapped to a nullable CLR type such as a string. In such a case, the Entity Framework treats the property as non-nullable even though the CLR would allow null to be set. There is no good reason to set a non-nullable CLR type as nullable in the object model and this should not be done even though the attribute allows it. true if this can have a null value; otherwise, false. Thrown if the setter is called when the EdmProperty instance is in ReadOnly state Gets the type name of the property. The type name of the property. Gets the default value for this . The default value for this . Thrown if the setter is called when the EdmProperty instance is in ReadOnly state Gets whether the property is a collection type property. true if the property is a collection type property; otherwise, false. Gets whether this property is a complex type property. true if this property is a complex type property; otherwise, false. Gets whether this property is a primitive type. true if this property is a primitive type; otherwise, false. Gets whether this property is an enumeration type property. true if this property is an enumeration type property; otherwise, false. Gets whether this property is an underlying primitive type. true if this property is an underlying primitive type; otherwise, false. Gets the complex type information for this property. The complex type information for this property. Gets the primitive type information for this property. The primitive type information for this property. Gets the enumeration type information for this property. The enumeration type information for this property. Gets the underlying primitive type information for this property. The underlying primitive type information for this property. Gets or sets the concurrency mode for the property. The concurrency mode for the property. Gets or sets the database generation method for the database column associated with this property The store generated pattern for the property. Gets or sets the kind of collection for this model. The kind of collection for this model. Gets whether the maximum length facet is constant for the database provider. true if the facet is constant; otherwise, false. Gets or sets the maximum length of the property. The maximum length of the property. Gets or sets whether this property uses the maximum length supported by the provider. true if this property uses the maximum length supported by the provider; otherwise, false. Gets whether the fixed length facet is constant for the database provider. true if the facet is constant; otherwise, false. Gets or sets whether the length of this property is fixed. true if the length of this property is fixed; otherwise, false. Gets whether the Unicode facet is constant for the database provider. true if the facet is constant; otherwise, false. Gets or sets whether this property is a Unicode property. true if this property is a Unicode property; otherwise, false. Gets whether the precision facet is constant for the database provider. true if the facet is constant; otherwise, false. Gets or sets the precision of this property. The precision of this property. Gets whether the scale facet is constant for the database provider. true if the facet is constant; otherwise, false. Gets or sets the scale of this property. The scale of this property. Class for representing an entity container Creates an entity container with the specified name and data space. The entity container name. The entity container data space. Thrown if the name argument is null. Thrown if the name argument is empty string. Returns an object by using the specified name for the entity set. An object that represents the entity set that has the specified name. The name of the entity set that is searched for. true to perform the case-insensitive search; otherwise, false. Returns an object by using the specified name for the entity set. true if there is an entity set that matches the search criteria; otherwise, false. The name of the entity set that is searched for. true to perform the case-insensitive search; otherwise, false. When this method returns, contains an object. If there is no entity set, this output parameter contains null. Returns a object by using the specified name for the relationship set. An object that represents the relationship set that has the specified name. The name of the relationship set that is searched for. true to perform the case-insensitive search; otherwise, false. Returns a object by using the specified name for the relationship set. true if there is a relationship set that matches the search criteria; otherwise, false. The name of the relationship set that is searched for. true to perform the case-insensitive search; otherwise, false. When this method returns, contains a object. Returns the name of this . The name of this . Adds the specified entity set to the container. The entity set to add. Removes a specific entity set from the container. The entity set to remove. Adds a function import to the container. The function import to add. The factory method for constructing the EntityContainer object. The name of the entity container to be created. DataSpace in which this entity container belongs to. Entity sets that will be included in the new container. Can be null. Functions that will be included in the new container. Can be null. Metadata properties to be associated with the instance. The EntityContainer object. Thrown if the name argument is null or empty string. The newly created EntityContainer will be read only. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the name of this . The name of this . Gets a list of entity sets and association sets that this includes. A object that contains a list of entity sets and association sets that this includes. Gets the association sets for this entity container. The association sets for this entity container . Gets the entity sets for this entity container. The entity sets for this entity container . Specifies a collection of elements. Each function contains the details of a stored procedure that exists in the database or equivalent CommandText that is mapped to an entity and its properties. A that contains elements. Represents a particular usage of a structure defined in EntityType. In the conceptual-model, this represents a set that can query and persist entities. In the store-model it represents a table. From a store-space model-convention it can be used to configure table name with property and table schema with property. The factory method for constructing the EntitySet object. The name of the EntitySet. The db schema. Can be null. The db table. Can be null. The provider specific query that should be used to retrieve data for this EntitySet. Can be null. The entity type of the entities that this entity set type contains. Metadata properties that will be added to the newly created EntitySet. Can be null. The EntitySet object. Thrown if the name argument is null or empty string. The newly created EntitySet will be read only. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the entity type of this . An object that represents the entity type of this . Represents an enumeration member. Overriding System.Object.ToString to provide better String representation for this type. The name of this enumeration member. Creates a read-only EnumMember instance. The name of the enumeration member. The value of the enumeration member. Metadata properties to be associated with the enumeration member. The newly created EnumMember instance. name is null or empty. Creates a read-only EnumMember instance. The name of the enumeration member. The value of the enumeration member. Metadata properties to be associated with the enumeration member. The newly created EnumMember instance. name is null or empty. Creates a read-only EnumMember instance. The name of the enumeration member. The value of the enumeration member. Metadata properties to be associated with the enumeration member. The newly created EnumMember instance. name is null or empty. Creates a read-only EnumMember instance. The name of the enumeration member. The value of the enumeration member. Metadata properties to be associated with the enumeration member. The newly created EnumMember instance. name is null or empty. Creates a read-only EnumMember instance. The name of the enumeration member. The value of the enumeration member. Metadata properties to be associated with the enumeration member. The newly created EnumMember instance. name is null or empty. Gets the kind of this type. Gets the name of this enumeration member. Gets the value of this enumeration member. Class for representing a Facet object This object is Immutable (not just set to readonly) and some parts of the system are depending on that behavior Returns the name of this . The name of this . Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the description of this . The object that represents the description of this . Gets the name of this . The name of this . Gets the type of this . The object that represents the type of this . Gets the value of this . The value of this . Thrown if the Facet instance is in ReadOnly state Gets a value indicating whether the value of the facet is unbounded. true if the value of the facet is unbounded; otherwise, false. Class for representing a FacetDescription object Returns the name of this facet. The name of this facet. Gets the name of this facet. The name of this facet. Gets the type of this facet. An object that represents the type of this facet. Gets the minimum value for this facet. The minimum value for this facet. Gets the maximum value for this facet. The maximum value for this facet. Gets the default value of a facet with this facet description. The default value of a facet with this facet description. Gets a value indicating whether the value of this facet is a constant. true if this facet is a constant; otherwise, false. Gets a value indicating whether this facet is a required facet. true if this facet is a required facet; otherwise, false. Class representing a function parameter Returns the name of this . The name of this . The factory method for constructing the object. The name of the parameter. The EdmType of the parameter. The of the parameter. A new, read-only instance of the type. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the mode of this . One of the values. Thrown if the FunctionParameter instance is in ReadOnly state Gets the name of this . The name of this . Gets the instance of the class that contains both the type of the parameter and facets for the type. A object that contains both the type of the parameter and facets for the type. Gets the type name of this parameter. The type name of this parameter. Gets whether the max length facet is constant for the database provider. true if the facet is constant; otherwise, false. Gets the maximum length of the parameter. The maximum length of the parameter. Gets whether the parameter uses the maximum length supported by the database provider. true if parameter uses the maximum length supported by the database provider; otherwise, false. Gets whether the precision facet is constant for the database provider. true if the facet is constant; otherwise, false. Gets the precision value of the parameter. The precision value of the parameter. Gets whether the scale facet is constant for the database provider. true if the facet is constant; otherwise, false. Gets the scale value of the parameter. The scale value of the parameter. Gets the on which this parameter is declared. A object that represents the function on which this parameter is declared. Class representing a metadata attribute for an item The factory method for constructing the MetadataProperty object. The name of the metadata property. The type usage of the metadata property. The value of the metadata property. The MetadataProperty object. Thrown is null. The newly created MetadataProperty will be read only. Creates a metadata annotation having the specified name and value. The annotation name. The annotation value. A MetadataProperty instance representing the created annotation. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the name of this . The name of this . Gets the value of this . The value of this . Thrown if the MetadataProperty instance is in readonly state Gets the instance of the class that contains both the type of this and facets for the type. A object that contains both the type of this and facets for the type. Thrown if the MetadataProperty instance is in readonly state Gets the value of this . The value of this . Gets a boolean that indicates whether the metadata property is an annotation. Represent the edm navigation property class Where the given navigation property is on the dependent end of a referential constraint, returns the foreign key properties. Otherwise, returns an empty set. We will return the members in the order of the principal end key properties. A collection of the foreign key properties. Creates a NavigationProperty instance from the specified parameters. The name of the navigation property. Specifies the navigation property type and its facets. The relationship type for the navigation. The source end member in the navigation. The target end member in the navigation. The metadata properties of the navigation property. The newly created NavigationProperty instance. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the relationship type that this navigation property operates on. The relationship type that this navigation property operates on. Thrown if the NavigationProperty instance is in ReadOnly state Gets the "to" relationship end member of this navigation. The "to" relationship end member of this navigation. Thrown if the NavigationProperty instance is in ReadOnly state Gets the "from" relationship end member in this navigation. The "from" relationship end member in this navigation. Thrown if the NavigationProperty instance is in ReadOnly state Represents the list of possible actions for delete operation no action Cascade to other ends The enumeration defining the mode of a parameter In parameter Out parameter Both in and out parameter Return Parameter Class representing a primitive type Returns the equivalent of this . For example if this instance is nvarchar and it's base type is Edm String then the return type is Edm String. If the type is actually already a model type then the return type is "this". An object that is an equivalent of this . Returns the list of primitive types. A collection of type that contains the list of primitive types. Returns the equivalent of a . An object that is an equivalent of a specified . A value of type . Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets a enumeration value that indicates a primitive type of this . A enumeration value that indicates a primitive type of this . Gets the list of facet descriptions for this . A collection of type that contains the list of facet descriptions for this . Returns an equivalent common language runtime (CLR) type of this . Note that the property always returns a non-nullable type value. A object that represents an equivalent common language runtime (CLR) type of this . Primitive Types as defined by EDM Binary Type Kind Boolean Type Kind Byte Type Kind DateTime Type Kind Decimal Type Kind Double Type Kind Guid Type Kind Single Type Kind SByte Type Kind Int16 Type Kind Int32 Type Kind Int64 Type Kind String Type Kind Time Type Kind DateTimeOffset Type Kind Geometry Type Kind Geography Type Kind Geometric point type kind Geometric linestring type kind Geometric polygon type kind Geometric multi-point type kind Geometric multi-linestring type kind Geometric multi-polygon type kind Geometric collection type kind Geographic point type kind Geographic linestring type kind Geographic polygon type kind Geographic multi-point type kind Geographic multi-linestring type kind Geographic multi-polygon type kind Geographic collection type kind This class represents a referential constraint between two entities specifying the "to" and "from" ends of the relationship. Constructs a new constraint on the relationship role from which the relationship originates role to which the relationship is linked/targeted to properties on entity type of to role which take part in the constraint properties on entity type of from role which take part in the constraint Argument Null exception if any of the arguments is null Returns the combination of the names of the and the . The combination of the names of the and the . Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the "from role" that takes part in this . A object that represents the "from role" that takes part in this . Thrown if value passed into setter is null Thrown if the ReferentialConstraint instance is in ReadOnly state Gets the "to role" that takes part in this . A object that represents the "to role" that takes part in this . Thrown if value passed into setter is null Thrown if the ReferentialConstraint instance is in ReadOnly state Gets the list of properties for the "from role" on which this is defined. A collection of type that contains the list of properties for "from role" on which this is defined. Gets the list of properties for the "to role" on which this is defined. A collection of type that contains the list of properties for the "to role" on which this is defined. Class representing a ref type Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the entity type referenced by this . An object that represents the entity type referenced by this . Represents the multiplicity information about the end of a relationship type Lower Bound is Zero and Upper Bound is One Both lower bound and upper bound is one Lower bound is zero and upper bound is null Represents the Edm Row Type The factory method for constructing the object. Properties of the row type object. Metadata properties that will be added to the function. Can be null. A new, read-only instance of the object. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the list of properties on this . A collection of type that contains the list of properties on this . Gets a collection of the properties defined by the current type. A collection of the properties defined by the current type. Class representing a type information for an item Factory method for creating a TypeUsage with specified EdmType and facets EdmType for which to create a type usage facets to be copied into the new TypeUsage new TypeUsage instance Creates a object with the specified conceptual model type. A object with the default facet values for the specified . A for which the object is created. Creates a object to describe a string type by using the specified facet values. A object describing a string type by using the specified facet values. A for which the object is created. true to set the character-encoding standard of the string type to Unicode; otherwise, false. true to set the character-encoding standard of the string type to Unicode; otherwise, false. true to set the length of the string type to fixed; otherwise, false. Creates a object to describe a string type by using the specified facet values and unbounded MaxLength. A object describing a string type by using the specified facet values and unbounded MaxLength. A for which the object is created. true to set the character-encoding standard of the string type to Unicode; otherwise, false. true to set the length of the string type to fixed; otherwise, false Creates a object to describe a binary type by using the specified facet values. A object describing a binary type by using the specified facet values. A for which the object is created. true to set the length of the binary type to fixed; otherwise, false. The maximum length of the binary type. Creates a object to describe a binary type by using the specified facet values. A object describing a binary type by using the specified facet values. A for which the object is created. true to set the length of the binary type to fixed; otherwise, false. Creates a object of the type that the parameters describe. A object. The simple type that defines the units of measurement of the DateTime object. The degree of granularity of the DateTimeOffset in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds. Creates a object of the type that the parameters describe. A object. The simple type that defines the units of measurement of the offset. The degree of granularity of the DateTimeOffset in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds. Creates a object of the type that the parameters describe. A object. The simple type that defines the units of measurement of the DateTime object. The degree of granularity of the DateTimeOffset in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds. Creates a object to describe a decimal type by using the specified facet values. A object describing a decimal type by using the specified facet values. A for which the object is created. The precision of the decimal type as type . The scale of the decimal type as type . Creates a object to describe a decimal type with unbounded precision and scale facet values. A object describing a decimal type with unbounded precision and scale facet values. A for which the object is created. Checks whether this is a subtype of the specified . true if this is a subtype of the specified ; otherwise, false. The object to be checked. Returns the full name of the type described by this . The full name of the type described by this as string. Gets the built-in type kind for this . A object that represents the built-in type kind for this . Gets the type information described by this . An object that represents the type information described by this . Gets the list of facets for the type that is described by this . A collection of type that contains the list of facets for the type that is described by this . Returns a Model type usage for a provider type Model (CSpace) type usage Do not perform any extension check Check the extension against a specific value Check the extension against the set of acceptable extensions Runtime Metadata Workspace Initializes a new instance of the class. Constructs a with loaders for all item collections () needed by EF except the o/c mapping which will be created automatically based on the given o-space and c-space loaders. The item collection delegates are executed lazily when a given collection is used for the first time. It is acceptable to pass a delegate that returns null if the collection will never be used, but this is rarely done, and any attempt by EF to use the collection in such cases will result in an exception. Delegate to return the c-space (CSDL) item collection. Delegate to return the s-space (SSDL) item collection. Delegate to return the c/s mapping (MSL) item collection. Delegate to return the o-space item collection. Constructs a with loaders for all item collections () that come from traditional EDMX mapping. Default o-space and o/c mapping collections will be used. The item collection delegates are executed lazily when a given collection is used for the first time. It is acceptable to pass a delegate that returns null if the collection will never be used, but this is rarely done, and any attempt by EF to use the collection in such cases will result in an exception. Delegate to return the c-space (CSDL) item collection. Delegate to return the s-space (SSDL) item collection. Delegate to return the c/s mapping (MSL) item collection. Initializes a new instance of the class using the specified paths and assemblies. The paths to workspace metadata. The names of assemblies used to construct workspace. Creates an configured to use the data space. The created parser object. Creates a new bound to this metadata workspace based on the specified query expression. A new with the specified expression as it's property. A that defines the query. If is null If contains metadata that cannot be resolved in this metadata workspace If is not structurally valid because it contains unresolvable variable references Gets items. The items. The from which to retrieve items. Registers the item collection with each associated data model. The output parameter collection that needs to be filled up. Loads metadata from the given assembly. The assembly from which the metadata will be loaded. Loads metadata from the given assembly. The assembly from which the metadata will be loaded. The delegate for logging the load messages. Returns an item by using the specified identity and the data model. The item that matches the given identity in the specified data model. The identity of the item. The conceptual model in which the item is searched. The type returned by the method. Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace Returns an item by using the specified identity and the data model. true if there is an item that matches the search criteria; otherwise, false. The conceptual model on which the item is searched. The conceptual model on which the item is searched. When this method returns, contains a object. This parameter is passed uninitialized. The type returned by the method. Returns an item by using the specified identity and the data model. The item that matches the given identity in the specified data model. The identity of the item. true to perform the case-insensitive search; otherwise, false. The conceptual model on which the item is searched. The type returned by the method. Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace Returns an item by using the specified identity and the data model. true if there is an item that matches the search criteria; otherwise, false. The conceptual model on which the item is searched. true to perform the case-insensitive search; otherwise, false. The conceptual model on which the item is searched. When this method returns, contains a object. This parameter is passed uninitialized. The type returned by the method. Gets all the items in the specified data model. A collection of type that contains all the items in the specified data model. The conceptual model for which the list of items is needed. The type returned by the method. Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace Returns an object by using the specified type name, namespace name, and data model. An object that represents the type that matches the given type name and the namespace name in the specified data model. If there is no matched type, this method returns null. The name of the type. The namespace of the type. The conceptual model on which the type is searched. Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace Returns an object by using the specified type name, namespace name, and data model. true if there is a type that matches the search criteria; otherwise, false. The name of the type. The namespace of the type. The conceptual model on which the type is searched. When this method returns, contains an object. This parameter is passed uninitialized. Returns an object by using the specified type name, namespace name, and data model. An object. The name of the type. The namespace of the type. true to perform the case-insensitive search; otherwise, false. The conceptual model on which the type is searched. Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace Returns an object by using the specified type name, namespace name, and data model. true if there is a type that matches the search criteria; otherwise, false. The name of the type. The namespace of the type. true to perform the case-insensitive search; otherwise, false. The conceptual model on which the type is searched. When this method returns, contains an object. This parameter is passed uninitialized. Returns an object by using the specified entity container name and the data model. If there is no entity container, this method returns null; otherwise, it returns the first entity container. The name of the entity container. The conceptual model on which the entity container is searched. Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace Returns an object by using the specified entity container name and the data model. true if there is an entity container that matches the search criteria; otherwise, false. The name of the entity container. The conceptual model on which the entity container is searched. When this method returns, contains an object. If there is no entity container, this output parameter contains null; otherwise, it returns the first entity container. This parameter is passed uninitialized. Returns an object by using the specified entity container name and the data model. If there is no entity container, this method returns null; otherwise, it returns the first entity container. The name of the entity container. true to perform the case-insensitive search; otherwise, false. The conceptual model on which the entity container is searched. Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace Returns an object by using the specified entity container name and the data model. true if there is an entity container that matches the search criteria; otherwise, false. The name of the entity container. true to perform the case-insensitive search; otherwise, false. The conceptual model on which the entity container is searched. When this method returns, contains an object. If there is no entity container, this output parameter contains null; otherwise, it returns the first entity container. This parameter is passed uninitialized. Returns all the overloads of the functions by using the specified name, namespace name, and data model. A collection of type that contains all the functions that match the specified name in a given namespace and a data model. The name of the function. The namespace of the function. The conceptual model in which the functions are searched. Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace Returns all the overloads of the functions by using the specified name, namespace name, and data model. A collection of type that contains all the functions that match the specified name in a given namespace and a data model. The name of the function. The namespace of the function. The conceptual model in which the functions are searched. true to perform the case-insensitive search; otherwise, false. Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace Returns the list of primitive types in the specified data model. A collection of type that contains all the primitive types in the specified data model. The data model for which you need the list of primitive types. Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace Gets all the items in the specified data model. A collection of type that contains all the items in the specified data model. The conceptual model for which the list of items is needed. Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace Tests the retrieval of . true if the retrieval was successful; otherwise, false. The from which to attempt retrieval of . When this method returns, contains the item collection. This parameter is passed uninitialized. Returns a object that represents the object space type that matches the type supplied by the parameter edmSpaceType . A object that represents the Object space type. If there is no matched type, this method returns null. A object that represents the . Returns a object via the out parameter objectSpaceType that represents the type that matches the supplied by the parameter edmSpaceType . true if there is a type that matches the search criteria; otherwise, false. A object that represents the . When this method returns, contains a object that represents the Object space type. This parameter is passed uninitialized. Returns a object that represents the object space type that matches the type supplied by the parameter edmSpaceType . A object that represents the Object space type. If there is no matched type, this method returns null. A object that represents the . Returns a object via the out parameter objectSpaceType that represents the type that matches the supplied by the parameter edmSpaceType . true if there is a type that matches the search criteria; otherwise, false. A object that represents the . When this method returns, contains a object that represents the Object space type. This parameter is passed uninitialized. Returns a object that represents the that matches the type supplied by the parameter objectSpaceType . A object that represents the . If there is no matched type, this method returns null. A that supplies the type in the object space. Returns a object via the out parameter edmSpaceType that represents the that matches the type supplied by the parameter objectSpaceType . true if there is a type that matches the search criteria; otherwise, false. A object that represents the object space type. When this method returns, contains a object that represents the . This parameter is passed uninitialized. Returns a object that represents the that matches the type supplied by the parameter objectSpaceType . A object that represents the . If there is no matched type, this method returns null. A that supplies the type in the object space. Returns a object via the out parameter edmSpaceType that represents the that matches the type supplied by the parameter objectSpaceType . true on success, false on failure. A object that represents the object space type. When this method returns, contains a object that represents the . This parameter is passed uninitialized. Clears all the metadata cache entries. Gets original value members from an entity set and entity type. The original value members from an entity set and entity type. The entity set from which to retrieve original values. The entity type of which to retrieve original values. Returns members of a given / for which original values are needed when modifying an entity. The s for which original value is required. An belonging to the C-Space. An that participates in the given . true if entities may be updated partially; otherwise, false. The Max EDM version thats going to be supported by the runtime. Class for representing a collection of items for the object layer. Most of the implementation for actual maintenance of the collection is done by ItemCollection Initializes a new instance of the class. Loads metadata from the given assembly. The assembly from which the metadata will be loaded. Loads metadata from the given assembly. The assembly from which the metadata will be loaded. The EDM metadata source for the O space metadata. The delegate to which log messages are sent. Loads metadata from the specified assembly. The assembly from which the metadata will be loaded. The EDM metadata source for the O space metadata. Returns a collection of primitive type objects. A collection of primitive type objects. Returns the CLR type that corresponds to the supplied by the objectSpaceType parameter. The CLR type of the OSpace argument. A that represents the object space type. Returns a CLR type corresponding to the supplied by the objectSpaceType parameter. true if there is a type that matches the search criteria; otherwise, false. A that represents the object space type. The CLR type. The method returns the underlying CLR type for the specified OSpace type argument. If the DataSpace of the parameter is not OSpace, an ArgumentException is thrown. The CLR type of the OSpace argument. The OSpace type to look up. Returns the underlying CLR type for the specified OSpace enum type argument. If the DataSpace of the parameter is not OSpace, the method returns false and sets the out parameter to null. true on success, false on failure The OSpace enum type to look up The CLR enum type of the OSpace argument Returns all the items of the specified type from this item collection. A collection of type that contains all items of the specified type. The type returned by the method. The enumeration defining the type semantics used to resolve function overloads. These flags are defined in the provider manifest per function definition. Allow Implicit Conversion between given and formal argument types (default). Allow Type Promotion between given and formal argument types. Use strict Equivalence only. Class for representing a collection of items in Store space. Initializes a new instance of the class using the specified XMLReader. The XMLReader used to create metadata. Initializes a new instances of the class. The model of the . Initializes a new instance of the class using the specified file paths. The file paths used to create metadata. Returns a collection of the objects. A object that represents the collection of the objects. Factory method that creates a . SSDL artifacts to load. Must not be null. Paths to SSDL artifacts. Used in error messages. Can be null in which case the base Uri of the XmlReader will be used as a path. Custom resolver. Currently used to resolve DbProviderServices implementation. If null the default resolver will be used. The collection of errors encountered while loading. instance if no errors encountered. Otherwise null. Gets the provider factory of the StoreItemCollection. The provider factory of the StoreItemCollection. Gets the provider manifest of the StoreItemCollection. The provider manifest of the StoreItemCollection. Gets the manifest token of the StoreItemCollection. The manifest token of the StoreItemCollection. Gets the invariant name of the StoreItemCollection. The invariant name of the StoreItemCollection. Gets the version of the store schema for this collection. The version of the store schema for this collection. This exception is thrown when a requested object is not found in the store. Initializes a new instance of . Initializes a new instance of with a specialized error message. The message that describes the error. Initializes a new instance of class that uses a specified error message and a reference to the inner exception. The message that describes the error. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Caches an ELinq query Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg13 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg14 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg15 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg13 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg14 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg13 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. The type T of the query results returned by executing the delegate returned by the method. Creates a new delegate that represents the compiled LINQ to Entities query. , a generic delegate that represents the compiled LINQ to Entities query. The lambda expression to compile. A type derived from . The type T of the query results returned by executing the delegate returned by the method. The values currently assigned to the properties of an entity. Provides access to the original values of object data. The DbUpdatableDataRecord implements methods that allow updates to the original values of an object. Retrieves the field value as a Boolean. The field value as a Boolean. The ordinal of the field. Retrieves the field value as a byte. The field value as a byte. The ordinal of the field. Retrieves the field value as a byte array. The number of bytes copied. The ordinal of the field. The index at which to start copying data. The destination buffer where data is copied. The index in the destination buffer where copying will begin. The number of bytes to copy. Retrieves the field value as a char. The field value as a char. The ordinal of the field. Retrieves the field value as a char array. The number of characters copied. The ordinal of the field. The index at which to start copying data. The destination buffer where data is copied. The index in the destination buffer where copying will begin. The number of characters to copy. Retrieves the field value as an . The field value as an . The ordinal of the field. Retrieves the field value as a The field value as a . The ordinal of the field. Retrieves the name of the field data type. The name of the field data type. The ordinal of the field. Retrieves the field value as a . The field value as a . The ordinal of the field. Retrieves the field value as a decimal. The field value as a decimal. The ordinal of the field. Retrieves the field value as a double. The field value as a double. The ordinal of the field. Retrieves the type of a field. The field type. The ordinal of the field. Retrieves the field value as a float. The field value as a float. The ordinal of the field. Retrieves the field value as a . The field value as a . The ordinal of the field. Retrieves the field value as an . The field value as an . The ordinal of the field. Retrieves the field value as an . The field value as an . The ordinal of the field. Retrieves the field value as an . The field value as an . The ordinal of the field. Retrieves the name of a field. The name of the field. The ordinal of the field. Retrieves the ordinal of a field by using the name of the field. The ordinal of the field. The name of the field. Retrieves the field value as a string. The field value. The ordinal of the field. Retrieves the value of a field. The field value. The ordinal of the field. Retrieves the value of a field. The field value. The ordinal of the field. Populates an array of objects with the field values of the current record. The number of field values returned. An array of objects to store the field values. Returns whether the specified field is set to . true if the field is set to ; otherwise false. The ordinal of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Sets field values in a record. The number of the fields that were set. The values of the field. Sets a field to the value. The ordinal of the field. Retrieves a field value as a . A field value as a . The ordinal of the field. Retrieves the field value as a . The field value as a . The ordinal of the field. Sets the value of a field in a record. The ordinal of the field. The value of the field. Gets the number of fields in the record. An integer value that is the field count. Returns a value that has the given field ordinal. The value that has the given field ordinal. The ordinal of the field. Gets a value that has the given field name. The field value. The name of the field. Gets data record information. A object. This is the interface that represent the minimum interface required to be an entity in ADO.NET. This class contains the common methods need for an date object. Public constant name used for change tracking Providing this definition allows users to use this constant instead of hard-coding the string. This helps to ensure the property name is correct and allows faster comparisons in places where we are looking for this specific string. Users can still use the case-sensitive string directly instead of the constant, it will just be slightly slower on comparison. Including the dash (-) character around the name ensures that this will not conflict with a real data property, because -EntityKey- is not a valid identifier name Raises the event. The name of the changed property. Raises the event. The name of the property changing. Returns the minimum date time value supported by the data source. A value that is the minimum date time that is supported by the data source. Raises an event that is used to report that a property change is pending. The name of the changing property. Raises an event that is used to report that a property change has occurred. The name for the changed property. Returns a complex type for the specified property. Unlike most of the other helper methods in this class, this one is not static because it references the SetValidValue for complex objects, which is also not static because it needs a reference to this. A complex type object for the property. A complex object that inherits from complex object. The name of the complex property that is the complex object. Indicates whether the type supports null values. Indicates whether the type is initialized. The type of the complex object being requested. Determines whether the specified byte arrays contain identical values. true if both arrays are of the same length and contain the same byte values or if both arrays are null; otherwise, false. The first byte array value to compare. The second byte array to compare. Returns a copy of the current byte value. A copy of the current value. The current byte array value. Makes sure the value being set for a property is valid. The value being validated. The value passed into the property setter. Flag indicating if this property is allowed to be null. The name of the property that is being validated. If value is null for a non nullable value. Makes sure the value being set for a property is valid. A value being set. The value being set. Indicates whether the property is nullable. Makes sure the value being set for a property is valid. The value being set. The Boolean value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The Boolean value. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. A that is set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value that is set. The value that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. A value being set. The value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the Single value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the Single value being set for a property is valid. The value being set. The value. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. The value being set. The value. Name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable value being set. The nullable value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the UInt16 value being set for a property is valid. The nullable UInt16 value being set. The nullable UInt16 value. The name of the property that is being validated. Makes sure the UInt16 value being set for a property is valid. The nullable UInt16 value being set. The nullable UInt16 value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the UInt32 value being set for a property is valid. The nullable UInt32 value being set. The nullable UInt32 value. The name of the property that is being validated. Makes sure the UInt32 value being set for a property is valid. The nullable UInt32 value being set. The nullable UInt32 value. Makes sure the value being set for a property is valid. The value being set. The value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The value being set. The value. Makes sure the value being set for a property is valid. The nullable UInt64 value being set. The nullable UInt64 value. The name of the property that is being validated. Makes sure the value being set for a property is valid. The nullable UInt64 value being set. The nullable UInt64 value. Validates that the property is not null, and throws if it is. The validated property. The string value to be checked. Flag indicating if this property is allowed to be null. The name of the property that is being validated. The string value is null for a non-nullable string. Validates that the property is not null, and throws if it is. The validated value. The string value to be checked. Flag indicating if this property is allowed to be null. Validates that the property is not null, and throws if it is. The value being set. The value to be checked. Flag indicating if this property is allowed to be null. Name of the property that is being validated. The value is null for a non-nullable property. Validates that the property is not null, and throws if it is. The value being set. value to be checked. Flag indicating if this property is allowed to be null. The value is null for a non-nullable property. Validates that the property is not null, and throws if it is. The value being set. value to be checked. Flag indicating if this property is allowed to be null. The name of the property that is being validated. The value is null for a non-nullable property. Validates that the property is not null, and throws if it is. The value being set. The value to be checked. Flag indicating if this property is allowed to be null. The value is null for a non-nullable property. Sets a complex object for the specified property. A complex type that derives from complex object. The original complex object for the property, if any. The complex object is being set. The complex property that is being set to the complex object. The type of the object being replaced. Verifies that a complex object is not null. The complex object being validated. The complex object that is being validated. The complex property on the parent object that is associated with complexObject . The type of the complex object being verified. Notification that a property has been changed. The PropertyChanged event can indicate all properties on the object have changed by using either a null reference (Nothing in Visual Basic) or String.Empty as the property name in the PropertyChangedEventArgs. Notification that a property is about to be changed. The PropertyChanging event can indicate all properties on the object are changing by using either a null reference (Nothing in Visual Basic) or String.Empty as the property name in the PropertyChangingEventArgs. Notifies the change tracker that a property change is pending on a complex object. The name of the changing property. property is null. Notifies the change tracker that a property of a complex object has changed. The name of the changed property. property is null. Attribute for complex properties Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, The metadata system expects this and will only look at the first of each of these attributes, even if there are more. Base attribute for properties mapped to store elements. Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, The metadata system expects this and will only look at the first of each of these attributes, even if there are more. attribute for complex types Base attribute for schematized types The name of the type in the conceptual schema that maps to the class to which this attribute is applied. A that is the name. The namespace name of the entity object type or complex type in the conceptual schema that maps to this type. A that is the namespace name. Attribute identifying the Edm base class Attribute indicating an enum type. Attribute identifying the Ends defined for a RelationshipSet Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, The metadata system expects this and will only look at the first of each of these attributes, even if there are more. Initializes a new instance of the class. The namespace name of the relationship property. The name of the relationship. The relationship name is not namespace qualified. The role name at the other end of the relationship. The namespace name of the navigation property. A that is the namespace name. Gets the unqualified relationship name. The relationship name. Gets the role name at the other end of the relationship. The target role name is specified by the Role attribute of the other End element in the association that defines this relationship in the conceptual model. For more information, see Association (EDM). Defines a relationship between two entity types based on an association in the conceptual model. Creates an instance of the class. The name of the namespace for the association in which this entity participates. The name of a relationship in which this entity participates. Name of the role for the type at one end of the association. A value of that indicates the multiplicity at one end of the association, such as one or many. The type of the entity at one end of the association. Name of the role for the type at the other end of the association. A value of that indicates the multiplicity at the other end of the association, such as one or many. The type of the entity at the other end of the association. Initializes a new instance of the class. The name of the namespace for the association in which this entity participates. The name of a relationship in which this entity participates. Name of the role for the type at one end of the association. A value of that indicates the multiplicity at one end of the association, such as one or many. The type of the entity at one end of the association. Name of the role for the type at the other end of the association. A value of that indicates the multiplicity at the other end of the association, such as one or many. The type of the entity at the other end of the association. A value that indicates whether the relationship is based on the foreign key value. The namespace for the relationship. A that is the namespace for the relationship. Name of the relationship. A that is the name of a relationship that is defined by this . Name of the role at one end of the relationship. A that is the name of the role. Multiplicity at one end of the relationship. A value that indicates the multiplicity. Type of the entity at one end of the relationship. A that is the type of the object at this end of the association. Name of the role at the other end of the relationship. A that is the name of the role. Multiplicity at the other end of the relationship. A value that indicates the multiplicity. Type of the entity at the other end of the relationship. A that is the type of the object t the other end of the association. Gets a Boolean value that indicates whether the relationship is based on the foreign key value. true if the relationship is based on the foreign key value; otherwise false. Attribute for scalar properties in an IEntity. Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, The metadata system expects this and will only look at the first of each of these attributes, even if there are more. Gets or sets the value that indicates whether the property can have a null value. The value that indicates whether the property can have a null value. Gets or sets the value that indicates whether the property is part of the entity key. The value that indicates whether the property is part of the entity key. Attribute for static types Initializes a new instance of the class. Initializes a new instance of the class with a unique value for each model referenced by the assembly. Setting this parameter to a unique value for each model file in a Visual Basic assembly will prevent the following error: "'System.Data.Entity.Core.Objects.DataClasses.EdmSchemaAttribute' cannot be specified more than once in this project, even with identical parameter values." A string that is a unique GUID value for the model in the assembly. Collection of entities modeling a particular EDM construct which can either be all entities of a particular type or entities participating in a particular relationship. The type of entities in this collection. Base class for EntityCollection and EntityReference Represents one end of a relationship. Loads the related object or objects into this related end with the default merge option. Asynchronously loads the related object or objects into this related end with the default merge option. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. Loads the related object or objects into the related end with the specified merge option. The to use when merging objects into an existing . Asynchronously loads the related object or objects into the related end with the specified merge option. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The to use when merging objects into an existing . A to observe while waiting for the task to complete. A task that represents the asynchronous operation. Adds an object to the related end. An object to add to the collection. entity must implement . Adds an object to the related end. An object to add to the collection. Removes an object from the collection of objects at the related end. true if entity was successfully removed, false if entity was not part of the . The object to remove from the collection. entity must implement . Removes an object from the collection of objects at the related end. true if entity was successfully removed; false if entity was not part of the . An object to remove from the collection. Defines a relationship between two attached objects. The object being attached. entity must implement . Defines a relationship between two attached objects. The object being attached. Returns an that represents the objects that belong to the related end. An that represents the objects that belong to the related end. Returns an that iterates through the collection of related objects. An that iterates through the collection of related objects. Gets or sets a value indicating whether the entity (for an or all entities in the collection (for an have been loaded from the database. Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly with one of the Load methods will set the IsLoaded flag to true. IsLoaded can be explicitly set to true to prevent the related entities from being lazy-loaded. This can be useful if the application has caused a subset of related entities to be loaded and wants to prevent any other entities from being loaded automatically. Note that explicit loading using will load all related entities from the database regardless of whether or not IsLoaded is true. When any related entity is detached the IsLoaded flag is reset to false indicating that not all related entities are now loaded. True if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise false. Gets the name of the relationship in which this related end participates. The name of the relationship in which this is participating. The relationship name is not namespace qualified. Gets the role name at the source end of the relationship. The role name at the source end of the relationship. Gets the role name at the target end of the relationship. The role name at the target end of the relationship. Returns a reference to the metadata for the related end. A object that contains metadata for the end of a relationship. Returns an that represents the objects that belong to the related end. An that represents the objects that belong to the related end. Loads the related object or objects into the related end with the default merge option. When the source object was retrieved by using a query and the is not or the related objects are already loaded or when the source object is not attached to the or when the source object is being tracked but is in the or state or the used for is . Asynchronously loads the related object or objects into the related end with the default merge option. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. When the source object was retrieved by using a query and the is not or the related objects are already loaded or when the source object is not attached to the or when the source object is being tracked but is in the or state or the used for is . Loads an object or objects from the related end with the specified merge option. The to use when merging objects into an existing . When the source object was retrieved by using a query and the is not or the related objects are already loaded or when the source object is not attached to the or when the source object is being tracked but is in the or state or the used for is . Asynchronously loads an object or objects from the related end with the specified merge option. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The to use when merging objects into an existing . A to observe while waiting for the task to complete. A task that represents the asynchronous operation. When the source object was retrieved by using a query and the is not or the related objects are already loaded or when the source object is not attached to the or when the source object is being tracked but is in the or state or the used for is . Attaches an entity to the related end. This method works in exactly the same way as Attach(object). It is maintained for backward compatibility with previous versions of IRelatedEnd. The entity to attach to the related end Thrown when is null. Thrown when the entity cannot be related via the current relationship end. Attaches an entity to the related end. If the related end is already filled or partially filled, this merges the existing entities with the given entity. The given entity is not assumed to be the complete set of related entities. Owner and all entities passed in must be in Unchanged or Modified state. Deleted elements are allowed only when the state manager is already tracking the relationship instance. The entity to attach to the related end Thrown when is null. Thrown when the entity cannot be related via the current relationship end. Adds an entity to the related end. This method works in exactly the same way as Add(object). It is maintained for backward compatibility with previous versions of IRelatedEnd. Entity instance to add to the related end Adds an entity to the related end. If the owner is attached to a cache then the all the connected ends are added to the object cache and their corresponding relationships are also added to the ObjectStateManager. The RelatedEnd of the relationship is also fixed. Entity instance to add to the related end Removes an entity from the related end. This method works in exactly the same way as Remove(object). It is maintained for backward compatibility with previous versions of IRelatedEnd. Entity instance to remove from the related end Returns true if the entity was successfully removed, false if the entity was not part of the RelatedEnd. Removes an entity from the related end. If owner is attached to a cache, marks relationship for deletion and if the relationship is composition also marks the entity for deletion. Entity instance to remove from the related end Returns true if the entity was successfully removed, false if the entity was not part of the RelatedEnd. Returns an that iterates through the collection of related objects. An that iterates through the collection of related objects. Used internally to deserialize entity objects along with the instances. The serialized stream. Occurs when a change is made to a related end. Gets the name of the relationship in which this related end participates. The name of the relationship in which this participates. The relationship name is not namespace qualified. Gets the role name at the source end of the relationship. A that is the role name. Gets the role name at the target end of the relationship. A that is the role name. Gets a reference to the metadata for the related end. A object that contains metadata for the end of a relationship. Initializes a new instance of the class. Returns the collection as an used for data binding. An of entity objects. Loads related objects into the collection, using the specified merge option. Specifies how the objects in this collection should be merged with the objects that might have been returned from previous queries against the same . Defines relationships between an object and a collection of related objects in an object context. Loads related entities into the local collection. If the collection is already filled or partially filled, merges existing entities with the given entities. The given entities are not assumed to be the complete set of related entities. Owner and all entities passed in must be in Unchanged or Modified state. We allow deleted elements only when the state manager is already tracking the relationship instance. Collection of objects in the object context that are related to the source object. entities collection is null. The source object or an object in the entities collection is null or is not in an or state.-or-The relationship cannot be defined based on the EDM metadata. This can occur when the association in the conceptual schema does not support a relationship between the two types. Defines a relationship between two attached objects in an object context. The object being attached. When the entity is null. When the entity cannot be related to the source object. This can occur when the association in the conceptual schema does not support a relationship between the two types.-or-When either object is null or is not in an or state. Adds an object to the collection. An object to add to the collection. entity must implement . entity is null. Removes an object from the collection and marks the relationship for deletion. true if item was successfully removed; otherwise, false. The object to remove from the collection. entity object is null. The entity object is not attached to the same object context.-or-The entity object does not have a valid relationship manager. Returns an enumerator that is used to iterate through the objects in the collection. An that iterates through the set of values cached by . Returns an enumerator that is used to iterate through the set of values cached by . An that iterates through the set of values cached by . Removes all entities from the collection. Determines whether a specific object exists in the collection. true if the object is found in the ; otherwise, false. The object to locate in the . Copies all the contents of the collection to an array, starting at the specified index of the target array. The array to copy to. The zero-based index in the array at which copying begins. Used internally to serialize entity objects. The streaming context. Used internally to deserialize entity objects. The streaming context. Returns an object query that, when it is executed, returns the same set of objects that exists in the current collection. An that represents the entity collection. When the object is in an state or when the object is in a state with a other than . Gets the number of objects that are contained in the collection. The number of elements that are contained in the . Gets a value that indicates whether the is read-only. Always returns false. IListSource.ContainsListCollection implementation. Always returns false. This means that the IList we return is the one which contains our actual data, it is not a list of collections. This is the class is the basis for all perscribed EntityObject classes. Interface that defines an entity containing a key. Gets or sets the for instances of entity types that implement this interface. If an object is being managed by a change tracker, it is expected that IEntityChangeTracker methods EntityMemberChanging and EntityMemberChanged will be used to report changes on EntityKey. This allows the change tracker to validate the EntityKey's new value and to verify if the change tracker is in a state where it can allow updates to the EntityKey. The for instances of entity types that implement this interface. Minimum interface that a data class must implement in order to be managed by a change tracker. Gets or sets the used to report changes. The used to report changes. Interface that a data class must implement if exposes relationships Returns the relationship manager that manages relationships for an instance of an entity type. Classes that expose relationships must implement this property by constructing and setting RelationshipManager in their constructor. The implementation of this property should use the static method RelationshipManager.Create to create a new RelationshipManager when needed. Once created, it is expected that this object will be stored on the entity and will be provided through this property. The for this entity. Used by the ObjectStateManager to attach or detach this EntityObject to the cache. Reference to the ObjectStateEntry that contains this entity Notifies the change tracker that a property change is pending. The name of the changing property. property is null. Notifies the change tracker that a property has changed. The name of the changed property. property is null. Gets the entity state of the object. The of this object. Gets or sets the key for this object. The for this object. Returns the container for the lazily created relationship navigation property objects, collections and refs. This interface is implemented by a change tracker and is used by data classes to report changes Notifies the change tracker of a pending change to a property of an entity type. The name of the property that is changing. Notifies the change tracker that a property of an entity type has changed. The name of the property that has changed. Notifies the change tracker of a pending change to a complex property. The name of the top-level entity property that is changing. The complex type that contains the property that is changing. The name of the property that is changing on complex type. Notifies the change tracker that a property of a complex type has changed. The name of the complex property of the entity type that has changed. The complex type that contains the property that changed. The name of the property that changed on complex type. Gets current state of a tracked object. An that is the state of the tracked object.For more information, see Identity Resolution, State Managment, and Change Tracking and Tracking Changes in POCO Entities. Models a relationship end with multiplicity 1. Returns the key for the related object. Returns the EntityKey of the target entity associated with this EntityReference. Is non-null in the following scenarios: (a) Entities are tracked by a context and an Unchanged or Added client-side relationships exists for this EntityReference's owner with the same RelationshipName and source role. This relationship could have been created explicitly by the user (e.g. by setting the EntityReference.Value, setting this property directly, or by calling EntityCollection.Add) or automatically through span queries. (b) If the EntityKey was non-null before detaching an entity from the context, it will still be non-null after detaching, until any operation occurs that would set it to null, as described below. (c) Entities are detached and the EntityKey is explicitly set to non-null by the user. (d) Entity graph was created using a NoTracking query with full span Is null in the following scenarios: (a) Entities are tracked by a context but there is no Unchanged or Added client-side relationship for this EntityReference's owner with the same RelationshipName and source role. (b) Entities are tracked by a context and a relationship exists, but the target entity has a temporary key (i.e. it is Added) or the key is one of the special keys (c) Entities are detached and the relationship was explicitly created by the user. An that is the key of the related object. Models a relationship end with multiplicity 1. The type of the entity being referenced. Creates a new instance of . The default constructor is required for some serialization scenarios. It should not be used to create new EntityReferences. Use the GetRelatedReference or GetRelatedEnd methods on the RelationshipManager class instead. Loads the related object for this with the specified merge option. Specifies how the object should be returned if it already exists in the . The source of the is null or a query returned more than one related end or a query returned zero related ends, and one related end was expected. Creates a many-to-one or one-to-one relationship between two objects in the object context. The object being attached. When the entity is null. When the entity cannot be related to the current related end. This can occur when the association in the conceptual schema does not support a relationship between the two types. Creates an equivalent object query that returns the related object. An that returns the related object. When the object is in an state or when the object is in a state with a other than . This method is used internally to serialize related entity objects. The serialized stream. This method is used internally to serialize related entity objects. The serialized stream. Gets or sets the related object returned by this . The object returned by this . Identifies the kind of a relationship The relationship is an Association Container for the lazily created relationship navigation property objects (collections and refs). Creates a new object. Used by data classes that support relationships. If the change tracker requests the RelationshipManager property and the data class does not already have a reference to one of these objects, it calls this method to create one, then saves a reference to that object. On subsequent accesses to that property, the data class should return the saved reference. The reason for using a factory method instead of a public constructor is to emphasize that this is not something you would normally call outside of a data class. By requiring that these objects are created via this method, developers should give more thought to the operation, and will generally only use it when they explicitly need to get an object of this type. It helps define the intended usage. The requested . Reference to the entity that is calling this method. Returns either an or of the correct type for the specified target role in a relationship. representing the or that was retrieved. Name of the relationship in which targetRoleName is defined. The relationship name is not namespace qualified. Target role to use to retrieve the other end of relationshipName . relationshipName or targetRoleName is null. The source type does not match the type of the owner. targetRoleName is invalid or unable to find the relationship type in the metadata. Takes an existing EntityReference that was created with the default constructor and initializes it using the provided relationship and target role names. This method is designed to be used during deserialization only, and will throw an exception if the provided EntityReference has already been initialized, if the relationship manager already contains a relationship with this name and target role, or if the relationship manager is already attached to a ObjectContext.W The relationship name. The role name of the related end. The to initialize. The type of the being initialized. When the provided is already initialized.-or-When the relationship manager is already attached to an or when the relationship manager already contains a relationship with this name and target role. Takes an existing EntityCollection that was created with the default constructor and initializes it using the provided relationship and target role names. This method is designed to be used during deserialization only, and will throw an exception if the provided EntityCollection has already been initialized, or if the relationship manager is already attached to a ObjectContext. The relationship name. The target role name. An existing EntityCollection. Type of the entity represented by targetRoleName Gets an of related objects with the specified relationship name and target role name. The of related objects. Name of the relationship to navigate. The relationship name is not namespace qualified. Name of the target role for the navigation. Indicates the direction of navigation across the relationship. The type of the returned . The specified role returned an instead of an . Gets the for a related object by using the specified combination of relationship name and target role name. The of a related object. Name of the relationship to navigate. The relationship name is not namespace qualified. Name of the target role for the navigation. Indicates the direction of navigation across the relationship. The type of the returned . The specified role returned an instead of an . Returns an enumeration of all the related ends managed by the relationship manager. An of objects that implement . An empty enumeration is returned when the relationships have not yet been populated. Called by Object Services to prepare an for binary serialization with a serialized relationship. Describes the source and destination of a given serialized stream, and provides an additional caller-defined context. Used internally to deserialize entity objects along with the instances. The serialized stream. Represents either a entity, entity stub or relationship Gets the updatable version of original values of the object associated with this . The updatable original values of object data. Accepts the current values as original values. Marks an entity as deleted. Returns the names of an object’s properties that have changed since the last time was called. An collection of names as string. Sets the state of the object or relationship to modify. If State is not Modified or Unchanged Marks the specified property as modified. The name of the property. If State is not Modified or Unchanged Rejects any changes made to the property with the given name since the property was last loaded, attached, saved, or changes were accepted. The orginal value of the property is stored and the property will no longer be marked as modified. The name of the property to change. Uses DetectChanges to determine whether or not the current value of the property with the given name is different from its original value. Note that this may be different from the property being marked as modified since a property which has not changed can still be marked as modified. Note that this property always returns the same result as the modified state of the property for change tracking proxies and entities that derive from the EntityObject base class. This is because original values are not tracked for these entity types and hence there is no way to know if the current value is really different from the original value. true if the property has changed; otherwise, false. The name of the property. Changes state of the entry to the specified value. The value to set for the property of the entry. Sets the current values of the entry to match the property values of a supplied object. The detached object that has updated values to apply to the object. currentEntity can also be the object’s entity key. Sets the original values of the entry to match the property values of a supplied object. The detached object that has original values to apply to the object. originalEntity can also be the object’s entity key. Used to report that a scalar entity property is about to change The current value of the specified property is cached when this method is called. The name of the entity property that is changing Used to report that a scalar entity property has been changed The property value that was cached during EntityMemberChanging is now added to OriginalValues The name of the entity property that has changing Used to report that a complex property is about to change The current value of the specified property is cached when this method is called. The name of the top-level entity property that is changing The complex object that contains the property that is changing The name of the property that is changing on complexObject Used to report that a complex property has been changed The property value that was cached during EntityMemberChanging is now added to OriginalValues The name of the top-level entity property that has changed The complex object that contains the property that changed The name of the property that changed on complexObject Gets the for the . The for the . Gets the for the object or relationship. The for the object or relationship. Gets the state of the . The state of the . Gets the entity object. The entity object. Gets the entity key. The entity key. Gets a value that indicates whether the represents a relationship. true if the represents a relationship; otherwise, false. Gets the read-only version of original values of the object or relationship. The read-only version of original values of the relationship set entry or entity. Gets the current property values of the object or relationship associated with this . A that contains the current values of the object or relationship associated with this . Gets the instance for the object represented by entry. The object. The entry is a stub or represents a relationship Returns the EntityState from the ObjectStateEntry Defines behavior for implementations of IQueryable that allow modifications to the membership of the resulting set. Type of entities returned from the queryable. Notifies the set that an object that represents a new entity must be added to the set. Depending on the implementation, the change to the set may not be visible in an enumeration of the set until changes to that set have been persisted in some manner. The new object to add to the set. Notifies the set that an object that represents an existing entity must be added to the set. Depending on the implementation, the change to the set may not be visible in an enumeration of the set until changes to that set have been persisted in some manner. The existing object to add to the set. Notifies the set that an object that represents an existing entity must be deleted from the set. Depending on the implementation, the change to the set may not be visible in an enumeration of the set until changes to that set have been persisted in some manner. The existing object to delete from the set. Notifies the set that an object that represents an existing entity must be detached from the set. Depending on the implementation, the change to the set may not be visible in an enumeration of the set until changes to that set have been persisted in some manner. The object to detach from the set. The different ways that new objects loaded from the database can be merged with existing objects already in memory. Will only append new (top level-unique) rows. This is the default behavior. Same behavior as LoadOption.OverwriteChanges. Same behavior as LoadOption.PreserveChanges. Will not modify cache. ObjectContext is the top-level object that encapsulates a connection between the CLR and the database, serving as a gateway for Create, Read, Update, and Delete operations. Initializes a new instance of the class with the given connection. During construction, the metadata workspace is extracted from the object. An that contains references to the model and to the data source connection. The connection is null. The connection is invalid or the metadata workspace is invalid. Creates an ObjectContext with the given connection and metadata workspace. connection to the store If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. Initializes a new instance of the class with the given connection string and default entity container name. The connection string, which also provides access to the metadata information. The connectionString is null. The connectionString is invalid or the metadata workspace is not valid. Initializes a new instance of the class with a given connection string and entity container name. The connection string, which also provides access to the metadata information. The name of the default entity container. When the defaultContainerName is set through this method, the property becomes read-only. The connectionString is null. The connectionString , defaultContainerName , or metadata workspace is not valid. Initializes a new instance of the class with a given connection and entity container name. An that contains references to the model and to the data source connection. The name of the default entity container. When the defaultContainerName is set through this method, the property becomes read-only. The connection is null. The connection , defaultContainerName , or metadata workspace is not valid. Accepts all changes made to objects in the object context. Adds an object to the object context. Represents the entity set name, which may optionally be qualified by the entity container name. The to add. The entity parameter is null or the entitySetName does not qualify. Explicitly loads an object related to the supplied object by the specified navigation property and using the default merge option. The entity for which related objects are to be loaded. The name of the navigation property that returns the related objects to be loaded. The entity is in a , or state or the entity is attached to another instance of . Explicitly loads an object that is related to the supplied object by the specified navigation property and using the specified merge option. The entity for which related objects are to be loaded. The name of the navigation property that returns the related objects to be loaded. The value to use when you load the related objects. The entity is in a , or state or the entity is attached to another instance of . Explicitly loads an object that is related to the supplied object by the specified LINQ query and by using the default merge option. The type of the entity. The source object for which related objects are to be loaded. A LINQ expression that defines the related objects to be loaded. selector does not supply a valid input parameter. selector is null. The entity is in a , or state or the entity is attached to another instance of . Explicitly loads an object that is related to the supplied object by the specified LINQ query and by using the specified merge option. The type of the entity. The source object for which related objects are to be loaded. A LINQ expression that defines the related objects to be loaded. The value to use when you load the related objects. selector does not supply a valid input parameter. selector is null. The entity is in a , or state or the entity is attached to another instance of . Applies property changes from a detached object to an object already attached to the object context. The name of the entity set to which the object belongs. The detached object that has property updates to apply to the original object. When entitySetName is null or an empty string or when changed is null. When the from entitySetName does not match the of the object or when the entity is in a state other than or or the original object is not attached to the context. When the type of the changed object is not the same type as the original object. Copies the scalar values from the supplied object into the object in the that has the same key. The updated object. The name of the entity set to which the object belongs. The detached object that has property updates to apply to the original object. The entity key of currentEntity must match the property of an entry in the . The entity type of the object. entitySetName or current is null. The from entitySetName does not match the of the object or the object is not in the or it is in a state or the entity key of the supplied object is invalid. entitySetName is an empty string. Copies the scalar values from the supplied object into set of original values for the object in the that has the same key. The updated object. The name of the entity set to which the object belongs. The detached object that has original values to apply to the object. The entity key of originalEntity must match the property of an entry in the . The type of the entity object. entitySetName or original is null. The from entitySetName does not match the of the object or an for the object cannot be found in the or the object is in an or a state or the entity key of the supplied object is invalid or has property changes. entitySetName is an empty string. Attaches an object or object graph to the object context in a specific entity set. Represents the entity set name, which may optionally be qualified by the entity container name. The to attach. The entity is null. Invalid entity set or the object has a temporary key or the object has an and the does not match with the entity set passed in as an argument of the method or the object does not have an and no entity set is provided or any object from the object graph has a temporary or any object from the object graph has an invalid (for example, values in the key do not match values in the object) or the entity set could not be found from a given entitySetName name and entity container name or any object from the object graph already exists in another state manager. Attaches an object or object graph to the object context when the object has an entity key. The object to attach. The entity is null. Invalid entity key. Creates the entity key for a specific object, or returns the entity key if it already exists. The of the object. The fully qualified name of the entity set to which the entity object belongs. The object for which the entity key is being retrieved. When either parameter is null. When entitySetName is empty or when the type of the entity object does not exist in the entity set or when the entitySetName is not fully qualified. When the entity key cannot be constructed successfully based on the supplied parameters. Creates a new instance that is used to query, add, modify, and delete objects of the specified entity type. The new instance. Entity type of the requested . The property is not set on the or the specified type belongs to more than one entity set. Creates a new instance that is used to query, add, modify, and delete objects of the specified type and with the specified entity set name. The new instance. Name of the entity set for the returned . The string must be qualified by the default container name if the property is not set on the . Entity type of the requested . The from entitySetName does not match the of the object or the property is not set on the and the name is not qualified as part of the entitySetName parameter or the specified type belongs to more than one entity set. Creates an in the current object context by using the specified query string. An of the specified type. The query string to be executed. Parameters to pass to the query. The entity type of the returned . The queryString or parameters parameter is null. Marks an object for deletion. An object that specifies the entity to delete. The object can be in any state except . Removes the object from the object context. Object to be detached. Only the entity is removed; if there are any related objects that are being tracked by the same , those will not be detached automatically. The entity is null. The entity is not associated with this (for example, was newly created and not associated with any context yet, or was obtained through some other context, or was already detached). Finalizes an instance of the class. Releases the resources used by the object context. Releases the resources used by the object context. true to release both managed and unmanaged resources; false to release only unmanaged resources. Returns an object that has the specified entity key. An that is an instance of an entity type. The key of the object to be found. The key parameter is null. The object is not found in either the or the data source. Updates a collection of objects in the object context with data from the database. A value that indicates whether property changes in the object context are overwritten with property values from the database. An collection of objects to refresh. collection is null. refreshMode is not valid. collection is empty or an object is not attached to the context. Updates an object in the object context with data from the database. A value that indicates whether property changes in the object context are overwritten with property values from the database. The object to be refreshed. entity is null. refreshMode is not valid. entity is not attached to the context. Asynchronously updates a collection of objects in the object context with data from the database. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A value that indicates whether property changes in the object context are overwritten with property values from the database. An collection of objects to refresh. A task that represents the asynchronous operation. collection is null. refreshMode is not valid. collection is empty or an object is not attached to the context. Asynchronously updates a collection of objects in the object context with data from the database. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A value that indicates whether property changes in the object context are overwritten with property values from the database. An collection of objects to refresh. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. collection is null. refreshMode is not valid. collection is empty or an object is not attached to the context. Asynchronously updates an object in the object context with data from the database. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A value that indicates whether property changes in the object context are overwritten with property values from the database. The object to be refreshed. A task that represents the asynchronous operation. entity is null. refreshMode is not valid. entity is not attached to the context. Asynchronously updates an object in the object context with data from the database. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A value that indicates whether property changes in the object context are overwritten with property values from the database. The object to be refreshed. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. entity is null. refreshMode is not valid. entity is not attached to the context. Persists all updates to the database and resets change tracking in the object context. The number of state entries written to the underlying database. This can include state entries for entities and/or relationships. Relationship state entries are created for many-to-many relationships and relationships where there is no foreign key property included in the entity class (often referred to as independent associations). An optimistic concurrency violation has occurred while saving changes. Asynchronously persists all updates to the database and resets change tracking in the object context. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A task that represents the asynchronous save operation. The task result contains the number of state entries written to the underlying database. This can include state entries for entities and/or relationships. Relationship state entries are created for many-to-many relationships and relationships where there is no foreign key property included in the entity class (often referred to as independent associations). An optimistic concurrency violation has occurred while saving changes. Asynchronously persists all updates to the database and resets change tracking in the object context. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous save operation. The task result contains the number of state entries written to the underlying database. This can include state entries for entities and/or relationships. Relationship state entries are created for many-to-many relationships and relationships where there is no foreign key property included in the entity class (often referred to as independent associations). An optimistic concurrency violation has occurred while saving changes. Persists all updates to the database and optionally resets change tracking in the object context. This parameter is needed for client-side transaction support. If true, the change tracking on all objects is reset after finishes. If false, you must call the method after . The number of state entries written to the underlying database. This can include state entries for entities and/or relationships. Relationship state entries are created for many-to-many relationships and relationships where there is no foreign key property included in the entity class (often referred to as independent associations). An optimistic concurrency violation has occurred while saving changes. Persists all updates to the database and optionally resets change tracking in the object context. A value that determines the behavior of the operation. The number of state entries written to the underlying database. This can include state entries for entities and/or relationships. Relationship state entries are created for many-to-many relationships and relationships where there is no foreign key property included in the entity class (often referred to as independent associations). An optimistic concurrency violation has occurred while saving changes. Asynchronously persists all updates to the database and optionally resets change tracking in the object context. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A value that determines the behavior of the operation. A task that represents the asynchronous save operation. The task result contains the number of state entries written to the underlying database. This can include state entries for entities and/or relationships. Relationship state entries are created for many-to-many relationships and relationships where there is no foreign key property included in the entity class (often referred to as independent associations). An optimistic concurrency violation has occurred while saving changes. Asynchronously persists all updates to the database and optionally resets change tracking in the object context. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A value that determines the behavior of the operation. A to observe while waiting for the task to complete. A task that represents the asynchronous save operation. The task result contains the number of state entries written to the underlying database. This can include state entries for entities and/or relationships. Relationship state entries are created for many-to-many relationships and relationships where there is no foreign key property included in the entity class (often referred to as independent associations). An optimistic concurrency violation has occurred while saving changes. Ensures that changes are synchronized with changes in all objects that are tracked by the . Returns an object that has the specified entity key. true if the object was retrieved successfully. false if the key is temporary, the connection is null, or the value is null. The key of the object to be found. When this method returns, contains the object. Incompatible metadata for key . key is null. Executes a stored procedure or function that is defined in the data source and mapped in the conceptual model, with the specified parameters. Returns a typed . An for the data that is returned by the stored procedure. The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required. An array of objects. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. The entity type of the returned when the function is executed against the data source. This type must implement . function is null or empty or function is not found. The entity reader does not support this function or there is a type mismatch on the reader and the function . Executes the given stored procedure or function that is defined in the data source and expressed in the conceptual model, with the specified parameters, and merge option. Returns a typed . An for the data that is returned by the stored procedure. The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required. The to use when executing the query. An array of objects. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. The entity type of the returned when the function is executed against the data source. This type must implement . function is null or empty or function is not found. The entity reader does not support this function or there is a type mismatch on the reader and the function . Executes the given function on the default container. Element type for function results. Name of function. May include container (e.g. ContainerName.FunctionName) or just function name when DefaultContainerName is known. The options for executing this function. The parameter values to use for the function. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. An object representing the result of executing this function. If function is null or empty If function is invalid (syntax, does not exist, refers to a function with return type incompatible with T) Executes a stored procedure or function that is defined in the data source and expressed in the conceptual model; discards any results returned from the function; and returns the number of rows affected by the execution. The number of rows affected. The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required. An array of objects. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. function is null or empty or function is not found. The entity reader does not support this function or there is a type mismatch on the reader and the function . Generates an equivalent type that can be used with the Entity Framework for each type in the supplied enumeration. An enumeration of objects that represent custom data classes that map to the conceptual model. Returns all the existing proxy types. An of all the existing proxy types. Returns the entity type of the POCO entity associated with a proxy object of a specified type. The of the associated POCO entity. The of the proxy object. Creates and returns an instance of the requested type . An instance of the requested type T , or an instance of a derived type that enables T to be used with the Entity Framework. The returned object is either an instance of the requested type or an instance of a derived type that enables the requested type to be used with the Entity Framework. Type of object to be returned. Executes an arbitrary command directly against the data source using the existing connection. The command is specified using the server's native query language, such as SQL. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); If there isn't an existing local transaction a new transaction will be used to execute the command. The command specified in the server's native query language. The parameter values to use for the query. The number of rows affected. Executes an arbitrary command directly against the data source using the existing connection. The command is specified using the server's native query language, such as SQL. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); Controls the creation of a transaction for this command. The command specified in the server's native query language. The parameter values to use for the query. The number of rows affected. Asynchronously executes an arbitrary command directly against the data source using the existing connection. The command is specified using the server's native query language, such as SQL. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. If there isn't an existing local transaction a new transaction will be used to execute the command. The command specified in the server's native query language. The parameter values to use for the query. A task that represents the asynchronous operation. The task result contains the number of rows affected. Asynchronously executes an arbitrary command directly against the data source using the existing connection. The command is specified using the server's native query language, such as SQL. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. Controls the creation of a transaction for this command. The command specified in the server's native query language. The parameter values to use for the query. A task that represents the asynchronous operation. The task result contains the number of rows affected. Asynchronously executes an arbitrary command directly against the data source using the existing connection. The command is specified using the server's native query language, such as SQL. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. If there isn't an existing local transaction a new transaction will be used to execute the command. The command specified in the server's native query language. A to observe while waiting for the task to complete. The parameter values to use for the query. A task that represents the asynchronous operation. The task result contains the number of rows affected. Asynchronously executes an arbitrary command directly against the data source using the existing connection. The command is specified using the server's native query language, such as SQL. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. Controls the creation of a transaction for this command. The command specified in the server's native query language. A to observe while waiting for the task to complete. The parameter values to use for the query. A task that represents the asynchronous operation. The task result contains the number of rows affected. Executes a query directly against the data source and returns a sequence of typed results. The query is specified using the server's native query language, such as SQL. Results are not tracked by the context, use the overload that specifies an entity set name to track results. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); The element type of the result sequence. The query specified in the server's native query language. The parameter values to use for the query. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. An enumeration of objects of type . Executes a query directly against the data source and returns a sequence of typed results. The query is specified using the server's native query language, such as SQL. Results are not tracked by the context, use the overload that specifies an entity set name to track results. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); The element type of the result sequence. The query specified in the server's native query language. The options for executing this query. The parameter values to use for the query. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. An enumeration of objects of type . Executes a query directly against the data source and returns a sequence of typed results. The query is specified using the server's native query language, such as SQL. If an entity set name is specified, results are tracked by the context. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); The element type of the result sequence. The query specified in the server's native query language. The entity set of the TResult type. If an entity set name is not provided, the results are not going to be tracked. The to use when executing the query. The default is . The parameter values to use for the query. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. An enumeration of objects of type . Executes a query directly against the data source and returns a sequence of typed results. The query is specified using the server's native query language, such as SQL. If an entity set name is specified, results are tracked by the context. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); The element type of the result sequence. The query specified in the server's native query language. The entity set of the TResult type. If an entity set name is not provided, the results are not going to be tracked. The options for executing this query. The parameter values to use for the query. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. An enumeration of objects of type . Asynchronously executes a query directly against the data source and returns a sequence of typed results. The query is specified using the server's native query language, such as SQL. Results are not tracked by the context, use the overload that specifies an entity set name to track results. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The element type of the result sequence. The query specified in the server's native query language. The parameter values to use for the query. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. A task that represents the asynchronous operation. The task result contains an enumeration of objects of type . Asynchronously executes a query directly against the data source and returns a sequence of typed results. The query is specified using the server's native query language, such as SQL. Results are not tracked by the context, use the overload that specifies an entity set name to track results. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The element type of the result sequence. The query specified in the server's native query language. A to observe while waiting for the task to complete. The parameter values to use for the query. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. A task that represents the asynchronous operation. The task result contains an enumeration of objects of type . Asynchronously executes a query directly against the data source and returns a sequence of typed results. The query is specified using the server's native query language, such as SQL. Results are not tracked by the context, use the overload that specifies an entity set name to track results. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The element type of the result sequence. The query specified in the server's native query language. The options for executing this query. The parameter values to use for the query. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. A task that represents the asynchronous operation. The task result contains an enumeration of objects of type . Asynchronously executes a query directly against the data source and returns a sequence of typed results. The query is specified using the server's native query language, such as SQL. Results are not tracked by the context, use the overload that specifies an entity set name to track results. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The element type of the result sequence. The query specified in the server's native query language. The options for executing this query. A to observe while waiting for the task to complete. The parameter values to use for the query. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. A task that represents the asynchronous operation. The task result contains an enumeration of objects of type . Asynchronously executes a query directly against the data source and returns a sequence of typed results. The query is specified using the server's native query language, such as SQL. If an entity set name is specified, results are tracked by the context. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The element type of the result sequence. The query specified in the server's native query language. The entity set of the TResult type. If an entity set name is not provided, the results are not going to be tracked. The options for executing this query. The parameter values to use for the query. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. A task that represents the asynchronous operation. The task result contains an enumeration of objects of type . Asynchronously executes a query directly against the data source and returns a sequence of typed results. The query is specified using the server's native query language, such as SQL. If an entity set name is specified, results are tracked by the context. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The element type of the result sequence. The query specified in the server's native query language. The entity set of the TResult type. If an entity set name is not provided, the results are not going to be tracked. The options for executing this query. A to observe while waiting for the task to complete. The parameter values to use for the query. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. A task that represents the asynchronous operation. The task result contains an enumeration of objects of type . Translates a that contains rows of entity data to objects of the requested entity type. The entity type. An enumeration of objects of type TResult . The that contains entity data to translate into entity objects. When reader is null. Translates a that contains rows of entity data to objects of the requested entity type, in a specific entity set, and with the specified merge option. The entity type. An enumeration of objects of type TResult . The that contains entity data to translate into entity objects. The entity set of the TResult type. The to use when translated objects are added to the object context. The default is . When reader is null. When the supplied mergeOption is not a valid value. When the supplied entitySetName is not a valid entity set for the TResult type. Creates the database by using the current data source connection and the metadata in the . Deletes the database that is specified as the database in the current data source connection. Checks if the database that is specified as the database in the current store connection exists on the store. Most of the actual work is done by the DbProviderServices implementation for the current store connection. true if the database exists; otherwise, false. Generates a data definition language (DDL) script that creates schema objects (tables, primary keys, foreign keys) for the metadata in the . The loads metadata from store schema definition language (SSDL) files. A DDL script that creates schema objects for the metadata in the . Gets the connection used by the object context. A object that is the connection. When the instance has been disposed. Gets or sets the default container name. A that is the default container name. Gets the metadata workspace used by the object context. The object associated with this . Gets the object state manager used by the object context to track object changes. The used by this . Gets or sets the timeout value, in seconds, for all object context operations. A null value indicates that the default value of the underlying provider will be used. An value that is the timeout value, in seconds. The timeout value is less than 0. Gets the LINQ query provider associated with this object context. The instance used by this object context. Gets the instance that contains options that affect the behavior of the . The instance that contains options that affect the behavior of the . Returns itself. ObjectContext implements to provide a common interface for and ObjectContext both of which will return the underlying ObjectContext. Gets the transaction handler in use by this context. May be null if no transaction have been started. The transaction handler. Returns the being used for this context. Occurs when changes are saved to the data source. Occurs when a new entity object is created from data in the data source as part of a query or load operation. Defines options that affect the behavior of the ObjectContext. Gets or sets the value that determines whether SQL functions and commands should be always executed in a transaction. This flag determines whether a new transaction will be started when methods such as and are executed outside of a transaction. Note that this does not change the behavior of . The default transactional behavior. Gets or sets a Boolean value that determines whether related objects are loaded automatically when a navigation property is accessed. true if lazy loading is enabled; otherwise, false. Gets or sets a Boolean value that determines whether proxy instances are created for custom data classes that are persistence ignorant. true if proxies are created; otherwise, false. The default value is true. Gets or sets a Boolean value that determines whether to use the legacy PreserveChanges behavior. true if the legacy PreserveChanges behavior should be used; otherwise, false. Gets or sets a Boolean value that determines whether to use the consistent NullReference behavior. If this flag is set to false then setting the Value property of the for an FK relationship to null when it is already null will have no effect. When this flag is set to true, then setting the value to null will always cause the FK to be nulled and the relationship to be deleted even if the value is currently null. The default value is false when using ObjectContext and true when using DbContext. true if the consistent NullReference behavior should be used; otherwise, false. Gets or sets a Boolean value that determines whether to use the C# NullComparison behavior. This flag determines whether C# behavior should be exhibited when comparing null values in LinqToEntities. If this flag is set, then any equality comparison between two operands, both of which are potentially nullable, will be rewritten to show C# null comparison semantics. As an example: (operand1 = operand2) will be rewritten as (((operand1 = operand2) AND NOT (operand1 IS NULL OR operand2 IS NULL)) || (operand1 IS NULL && operand2 IS NULL)) The default value is false when using . true if the C# NullComparison behavior should be used; otherwise, false. EventArgs for the ObjectMaterialized event. Gets the entity object that was created. The entity object that was created. Delegate for the ObjectMaterialized event. The ObjectContext responsable for materializing the object. EventArgs containing a reference to the materialized object. This class represents a query parameter at the object layer, which consists of a Name, a Type and a Value. Initializes a new instance of the class with the specified name and type. The parameter name. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name. The first character of the expression must be a letter. Any successive characters in the expression must be either letters, numbers, or an underscore (_) character. The common language runtime (CLR) type of the parameter. If the value of either argument is null. If the value of the name argument is invalid. Parameter names must start with a letter and can only contain letters, numbers, and underscores. Initializes a new instance of the class with the specified name and value. The parameter name. This name should not include the "@" parameter marker that is used in Entity SQL statements, only the actual name. The first character of the expression must be a letter. Any successive characters in the expression must be either letters, numbers, or an underscore (_) character. The initial value (and inherently, the type) of the parameter. If the value of either argument is null. If the value of the name argument is not valid. Parameter names must start with a letter and can only contain letters, numbers, and underscores. Gets the parameter name, which can only be set through a constructor. The parameter name, which can only be set through a constructor. Gets the parameter type. The of the parameter. Gets or sets the parameter value. The parameter value. This class represents a collection of query parameters at the object layer. Adds the specified to the collection. The parameter to add to the collection. The parameter argument is null. The parameter argument already exists in the collection. This behavior differs from that of most collections that allow duplicate entries. -or-Another parameter with the same name as the parameter argument already exists in the collection. Note that the lookup is case-insensitive. This behavior differs from that of most collections, and is more like that of a . The type of the parameter is not valid. Deletes all instances from the collection. Checks for the existence of a specified in the collection by reference. Returns true if the parameter object was found in the collection; otherwise, false. The to find in the collection. The parameter argument is null. Determines whether an with the specified name is in the collection. Returns true if a parameter with the specified name was found in the collection; otherwise, false. The name of the parameter to look for in the collection. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name. The name parameter is null. Allows the parameters in the collection to be copied into a supplied array, starting with the object at the specified index. The array into which to copy the parameters. The index in the array at which to start copying the parameters. Removes an instance of an from the collection by reference if it exists in the collection. Returns true if the parameter object was found and removed from the collection; otherwise, false. An object to remove from the collection. The parameter argument is null. These methods return enumerator instances, which allow the collection to be iterated through and traversed. An object that can be used to iterate through the collection. Returns an untyped enumerator over the collection. An instance. Gets the number of parameters currently in the collection. The number of objects that are currently in the collection. This collection is read-write - parameters may be added, removed and [somewhat] modified at will (value only) - provided that the implementation the collection belongs to has not locked its parameters because it's command definition has been prepared. Provides an indexer that allows callers to retrieve parameters by name. The instance. The name of the parameter to find. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name. No parameter with the specified name is found in the collection. This class implements untyped queries at the object-layer. Returns the commands to execute against the data source. A string that represents the commands that the query executes against the data source. Returns information about the result type of the query. A value that contains information about the result type of the query. Executes the untyped object query with the specified merge option. The to use when executing the query. The default is . An that contains a collection of entity objects returned by the query. Asynchronously executes the untyped object query with the specified merge option. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The to use when executing the query. The default is . A task that represents the asynchronous operation. The task result contains an an that contains a collection of entity objects returned by the query. Asynchronously executes the untyped object query with the specified merge option. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The to use when executing the query. The default is . A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains an an that contains a collection of entity objects returned by the query. Returns the collection as an used for data binding. An of entity objects. Returns an enumerator that iterates through a collection. An that can be used to iterate through the collection. Returns an which when enumerated will execute the given SQL query against the database. The query results. Returns the command text for the query. A string value. Gets the object context associated with this object query. The associated with this instance. Gets or sets how objects returned from a query are added to the object context. The query . Whether the query is streaming or buffering Gets the parameter collection for this object query. The parameter collection for this . Gets or sets a value that indicates whether the query plan should be cached. A value that indicates whether the query plan should be cached. Gets the result element type for this query instance. Gets the expression describing this query. For queries built using LINQ builder patterns, returns a full LINQ expression tree; otherwise, returns a constant expression wrapping this query. Note that the default expression is not cached. This allows us to differentiate between LINQ and Entity-SQL queries. Gets the associated with this query instance. ObjectQuery implements strongly-typed queries at the object-layer. Queries are specified using Entity-SQL strings and may be created by calling the Entity-SQL-based query builder methods declared by ObjectQuery. The result type of this ObjectQuery Creates a new instance using the specified Entity SQL command as the initial query. The Entity SQL query. The on which to execute the query. Creates a new instance using the specified Entity SQL command as the initial query and the specified merge option. The Entity SQL query. The on which to execute the query. Specifies how the entities that are retrieved through this query should be merged with the entities that have been returned from previous queries against the same . Executes the object query with the specified merge option. The to use when executing the query. The default is . An that contains a collection of entity objects returned by the query. Asynchronously executes the object query with the specified merge option. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The to use when executing the query. The default is . A task that represents the asynchronous operation. The task result contains an that contains a collection of entity objects returned by the query. Asynchronously executes the object query with the specified merge option. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The to use when executing the query. The default is . A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains an that contains a collection of entity objects returned by the query. Specifies the related objects to include in the query results. A new with the defined query path. Dot-separated list of related objects to return in the query results. path is null. path is empty. Limits the query to unique results. A new instance that is equivalent to the original instance with SELECT DISTINCT applied. This query-builder method creates a new query whose results are all of the results of this query, except those that are also part of the other query specified. A query representing the results to exclude. a new ObjectQuery instance. If the query parameter is null. Groups the query results by the specified criteria. A new instance of type that is equivalent to the original instance with GROUP BY applied. The key columns by which to group the results. The list of selected properties that defines the projection. Zero or more parameters that are used in this method. The query parameter is null or an empty string or the projection parameter is null or an empty string. This query-builder method creates a new query whose results are those that are both in this query and the other query specified. A query representing the results to intersect with. a new ObjectQuery instance. If the query parameter is null. Limits the query to only results of a specific type. A new instance that is equivalent to the original instance with OFTYPE applied. The type of the returned when the query is executed with the applied filter. The type specified is not valid. Orders the query results by the specified criteria. A new instance that is equivalent to the original instance with ORDER BY applied. The key columns by which to order the results. Zero or more parameters that are used in this method. The keys or parameters parameter is null. The key is an empty string. Limits the query results to only the properties that are defined in the specified projection. A new instance of type that is equivalent to the original instance with SELECT applied. The list of selected properties that defines the projection. Zero or more parameters that are used in this method. projection is null or parameters is null. The projection is an empty string. Limits the query results to only the property specified in the projection. A new instance of a type compatible with the specific projection. The returned is equivalent to the original instance with SELECT VALUE applied. The projection list. An optional set of query parameters that should be in scope when parsing. The type of the returned by the method. projection is null or parameters is null. The projection is an empty string. Orders the query results by the specified criteria and skips a specified number of results. A new instance that is equivalent to the original instance with both ORDER BY and SKIP applied. The key columns by which to order the results. The number of results to skip. This must be either a constant or a parameter reference. An optional set of query parameters that should be in scope when parsing. Any argument is null. keys is an empty string or count is an empty string. Limits the query results to a specified number of items. A new instance that is equivalent to the original instance with TOP applied. The number of items in the results as a string. An optional set of query parameters that should be in scope when parsing. count is null. count is an empty string. This query-builder method creates a new query whose results are all of the results of this query, plus all of the results of the other query, without duplicates (i.e., results are unique). A query representing the results to add. a new ObjectQuery instance. If the query parameter is null. This query-builder method creates a new query whose results are all of the results of this query, plus all of the results of the other query, including any duplicates (i.e., results are not necessarily unique). A query representing the results to add. a new ObjectQuery instance. If the query parameter is null. Limits the query to results that match specified filtering criteria. A new instance that is equivalent to the original instance with WHERE applied. The filter predicate. Zero or more parameters that are used in this method. predicate is null or parameters is null. The predicate is an empty string. Returns an which when enumerated will execute the given SQL query against the database. The query results. Returns an which when enumerated will execute the given SQL query against the database. The query results. Gets or sets the name of this object query. A string value that is the name of this . The value specified on set is not valid. This class implements IEnumerable and IDisposable. Instance of this class is returned from ObjectQuery.Execute method. This constructor is intended only for use when creating test doubles that will override members with mocked or faked behavior. Use of this constructor for other purposes may result in unexpected behavior including but not limited to throwing . Returns an enumerator that iterates through the query results. An enumerator that iterates through the query results. Returns the results in a format useful for data binding. An of entity objects. Performs tasks associated with freeing, releasing, or resetting resources. Releases the resources used by the object result. true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the next result set of a stored procedure. An ObjectResult that enumerates the values of the next result set. Null, if there are no more, or if the ObjectResult is not the result of a stored procedure call. The type of the element. IListSource.ContainsListCollection implementation. Always returns false. When overridden in a derived class, gets the type of the generic . The type of the generic . This class represents the result of the method. The type of the result. This constructor is intended only for use when creating test doubles that will override members with mocked or faked behavior. Use of this constructor for other purposes may result in unexpected behavior including but not limited to throwing . Returns an enumerator that iterates through the query results. An enumerator that iterates through the query results. Releases the unmanaged resources used by the and optionally releases the managed resources. true to release managed and unmanaged resources; false to release only unmanaged resources. Gets the type of the . A that is the type of the . Represents a typed entity set that is used to perform create, read, update, and delete operations. The type of the entity. Adds an object to the object context in the current entity set. The object to add. Attaches an object or object graph to the object context in the current entity set. The object to attach. Marks an object for deletion. An object that represents the entity to delete. The object can be in any state except . Removes the object from the object context. Object to be detached. Only the entity is removed; if there are any related objects that are being tracked by the same , those will not be detached automatically. Copies the scalar values from the supplied object into the object in the that has the same key. The updated object. The detached object that has property updates to apply to the original object. The entity key of currentEntity must match the property of an entry in the . Sets the property of an to match the property values of a supplied object. The updated object. The detached object that has property updates to apply to the original object. The entity key of originalEntity must match the property of an entry in the . Creates a new entity type object. The new entity type object, or an instance of a proxy type that corresponds to the entity type. Creates an instance of the specified type. An instance of the requested type T , or an instance of a proxy type that corresponds to the type T . Type of object to be returned. Gets the metadata of the entity set represented by this instance. An object. The original values of the properties of an entity when it was retrieved from the database. Maintains object state and identity management for entity type instances and relationship instances. Initializes a new instance of the class. The , which supplies mapping and metadata information. Returns a collection of objects for objects or relationships with the given state. A collection of objects in the given . An used to filter the returned objects. When state is . Changes state of the for a specific object to the specified entityState . The for the supplied entity . The object for which the state must be changed. The new state of the object. When entity is null. When the object is not detached and does not have an entry in the state manager or when you try to change the state to from any other or when state is not a valid value. Changes the state of the relationship between two entity objects that is specified based on the two related objects and the name of the navigation property. The for the relationship that was changed. The object instance or of the source entity at one end of the relationship. The object instance or of the target entity at the other end of the relationship. The name of the navigation property on source that returns the specified target . The requested of the specified relationship. When source or target is null. When trying to change the state of the relationship to a state other than or when either source or target is in a state or when you try to change the state of the relationship to a state other than or when either source or target is in an state or when state is not a valid value Changes the state of the relationship between two entity objects that is specified based on the two related objects and a LINQ expression that defines the navigation property. The for the relationship that was changed. The object instance or of the source entity at one end of the relationship. The object instance or of the target entity at the other end of the relationship. A LINQ expression that selects the navigation property on source that returns the specified target . The requested of the specified relationship. The entity type of the source object. When source , target , or selector is null. selector is malformed or cannot return a navigation property. When you try to change the state of the relationship to a state other than or when either source or target is in a state or when you try to change the state of the relationship to a state other than or when either source or target is in an state or when state is not a valid value. Changes the state of the relationship between two entity objects that is specified based on the two related objects and the properties of the relationship. The for the relationship that was changed. The object instance or of the source entity at one end of the relationship. The object instance or of the target entity at the other end of the relationship. The name of the relationship. The role name at the target end of the relationship. The requested of the specified relationship. When source or target is null. When you try to change the state of the relationship to a state other than or when either source or target is in a state or when you try to change the state of the relationship to a state other than or when either source or target is in an state or when state is not a valid value. Returns an for the object or relationship entry with the specified key. The corresponding for the given . The . When key is null. When the specified key cannot be found in the state manager. No entity with the specified exists in the . Returns an for the specified object. The corresponding for the given . The to which the retrieved belongs. No entity for the specified exists in the . Tries to retrieve the corresponding for the specified . A Boolean value that is true if there is a corresponding for the given object; otherwise, false. The to which the retrieved belongs. When this method returns, contains the for the given This parameter is passed uninitialized. Tries to retrieve the corresponding for the object or relationship with the specified . A Boolean value that is true if there is a corresponding for the given ; otherwise, false. The given . When this method returns, contains an for the given This parameter is passed uninitialized. A null (Nothing in Visual Basic) value is provided for key . Returns the that is used by the specified object. The for the specified object. The object for which to return the . The entity does not implement IEntityWithRelationships and is not tracked by this ObjectStateManager Returns the that is used by the specified object. true if a instance was returned for the supplied entity ; otherwise false. The object for which to return the . When this method returns, contains the for the entity . Gets the associated with this state manager. The associated with this . Occurs when entities are added to or removed from the state manager. A DataContractResolver that knows how to resolve proxy types created for persistent ignorant classes to their base types. This is used with the DataContractSerializer. During deserialization, maps any xsi:type information to the actual type of the persistence-ignorant object. Returns the type that the xsi:type is mapped to. Returns null if no known type was found that matches the xsi:type. The xsi:type information to map. The namespace of the xsi:type. The declared type. An instance of . During serialization, maps actual types to xsi:type information. true if the type was resolved; otherwise, false. The actual type of the persistence-ignorant object. The declared type. An instance of . When this method returns, contains a list of xsi:type declarations. When this method returns, contains a list of namespaces used. Defines the different ways to handle modified properties when refreshing in-memory data from the database. For unmodified client objects, same behavior as StoreWins. For modified client objects, Refresh original values with store value, keeping all values on client object. The next time an update happens, all the client change units will be considered modified and require updating. Discard all changes on the client and refresh values with store values. Client original values is updated to match the store. Flags used to modify behavior of ObjectContext.SaveChanges() Changes are saved without the DetectChanges or the AcceptAllChangesAfterSave methods being called. After changes are saved, the AcceptAllChangesAfterSave method is called, which resets change tracking in the ObjectStateManager. Before changes are saved, the DetectChanges method is called to synchronize the property values of objects that are attached to the object context with data in the ObjectStateManager. This exception is thrown when a update operation violates the concurrency constraint. Exception during save changes to store Initializes a new instance of . Initializes a new instance of with a specialized error message. The message that describes the error. Initializes a new instance of the class that uses a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the class that uses a specified error message, a reference to the inner exception, and an enumerable collection of objects. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. The collection of objects. Initializes a new instance of with serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. Gets the objects for this . A collection of objects comprised of either a single entity and 0 or more relationships, or 0 entities and 1 or more relationships. Initializes a new instance of . Initializes a new instance of with a specialized error message. The message that describes the error. Initializes a new instance of that uses a specified error message and a reference to the inner exception. The message that describes the error. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of that uses a specified error message, a reference to the inner exception, and an enumerable collection of objects. The message that describes the error. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. The enumerable collection of objects. Property constraint exception class. Note that this class has state - so if you change even its internals, it can be a breaking change Initializes a new instance of the class with default message. Initializes a new instance of the class with supplied message. A localized error message. Initializes a new instance of the class with supplied message and inner exception. A localized error message. The inner exception. Initializes a new instance of the class. A localized error message. The name of the property. Initializes a new instance of the class. A localized error message. The name of the property. The inner exception. Gets the name of the property that violated the constraint. The name of the property that violated the constraint. This exception is thrown when the store provider exhibits a behavior incompatible with the entity client provider Initializes a new instance of . Initializes a new instance of with a specialized error message. The message that describes the error. Initializes a new instance of that uses a specified error message. The message that describes the error. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Provides common language runtime (CLR) methods that expose EDM canonical functions for use in or LINQ to Entities queries. Note that this class was called EntityFunctions in some previous versions of Entity Framework. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate the standard deviation of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate the standard deviation for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The standard deviation for the population. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate the variance of the collection. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate the variance for the population. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The collection over which to perform the calculation. The variance for the population. When used as part of a LINQ to Entities query, this method invokes the canonical Left EDM function to return a given number of the leftmost characters in a string. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input string. The number of characters to return A string containing the number of characters asked for from the left of the input string. When used as part of a LINQ to Entities query, this method invokes the canonical Right EDM function to return a given number of the rightmost characters in a string. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input string. The number of characters to return A string containing the number of characters asked for from the right of the input string. When used as part of a LINQ to Entities query, this method invokes the canonical Reverse EDM function to return a given string with the order of the characters reversed. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input string. The input string with the order of the characters reversed. When used as part of a LINQ to Entities query, this method invokes the canonical GetTotalOffsetMinutes EDM function to return the number of minutes that the given date/time is offset from UTC. This is generally between +780 and -780 (+ or - 13 hrs). You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The date/time value to use. The offset of the input from UTC. When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return the given date with the time portion cleared. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The date/time value to use. The input date with the time portion cleared. When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return the given date with the time portion cleared. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The date/time value to use. The input date with the time portion cleared. When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTime EDM function to create a new object. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The year. The month (1-based). The day (1-based). The hours. The minutes. The seconds, including fractional parts of the seconds if desired. The new date/time. When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTimeOffset EDM function to create a new object. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The year. The month (1-based). The day (1-based). The hours. The minutes. The seconds, including fractional parts of the seconds if desired. The time zone offset part of the new date. The new date/time. When used as part of a LINQ to Entities query, this method invokes the canonical CreateTime EDM function to create a new object. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The hours. The minutes. The seconds, including fractional parts of the seconds if desired. The new time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to add the given number of years to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of years to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to add the given number of years to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of years to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to add the given number of months to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of months to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to add the given number of months to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of months to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to add the given number of days to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of days to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to add the given number of days to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of days to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to add the given number of hours to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of hours to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to add the given number of hours to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of hours to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to add the given number of hours to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of hours to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to add the given number of minutes to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of minutes to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to add the given number of minutes to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of minutes to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to add the given number of minutes to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of minutes to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to add the given number of seconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of seconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to add the given number of seconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of seconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to add the given number of seconds to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of seconds to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to add the given number of milliseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of milliseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to add the given number of milliseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of milliseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to add the given number of milliseconds to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of milliseconds to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to add the given number of microseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of microseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to add the given number of microseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of microseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to add the given number of microseconds to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of microseconds to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to add the given number of nanoseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of nanoseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to add the given number of nanoseconds to a date/time. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of nanoseconds to add. A resulting date/time. When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to add the given number of nanoseconds to a time span. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The input date/time. The number of nanoseconds to add. A resulting time span. When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to calculate the number of years between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of years between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to calculate the number of years between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of years between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to calculate the number of months between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of months between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to calculate the number of months between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of months between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to calculate the number of days between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of days between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to calculate the number of days between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of days between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to calculate the number of hours between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of hours between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to calculate the number of hours between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of hours between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to calculate the number of hours between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of hours between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to calculate the number of minutes between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of minutes between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to calculate the number of minutes between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of minutes between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to calculate the number of minutes between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of minutes between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to calculate the number of seconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of seconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to calculate the number of seconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of seconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to calculate the number of seconds between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of seconds between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to calculate the number of milliseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of milliseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to calculate the number of milliseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of milliseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to calculate the number of milliseconds between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of milliseconds between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to calculate the number of microseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of microseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to calculate the number of microseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of microseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to calculate the number of microseconds between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of microseconds between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to calculate the number of nanoseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of nanoseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to calculate the number of nanoseconds between two date/times. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first date/time. The second date/time. The number of nanoseconds between the first and second date/times. When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to calculate the number of nanoseconds between two time spans. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The first time span. The second time span. The number of nanoseconds between the first and second time spans. When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to truncate the given value to the number of specified digits. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The value to truncate. The number of digits to preserve. The truncated value. When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to truncate the given value to the number of specified digits. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function is translated to a corresponding function in the database. The value to truncate. The number of digits to preserve. The truncated value. When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input is treated as a Unicode string. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function impacts the way the LINQ query is translated to a query that can be run in the database. The input string. The input string treated as a Unicode string. When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input is treated as a non-Unicode string. You cannot call this function directly. This function can only appear within a LINQ to Entities query. This function impacts the way the LINQ query is translated to a query that can be run in the database. The input string. The input string treated as a non-Unicode string. Describes the state of an entity. The entity is not being tracked by the context. An entity is in this state immediately after it has been created with the new operator or with one of the Create methods. The entity is being tracked by the context and exists in the database, and its property values have not changed from the values in the database. The entity is being tracked by the context but does not yet exist in the database. The entity is being tracked by the context and exists in the database, but has been marked for deletion from the database the next time SaveChanges is called. The entity is being tracked by the context and exists in the database, and some or all of its property values have been modified. Represents information about a database connection. Creates a new instance of DbConnectionInfo representing a connection that is specified in the application configuration file. The name of the connection string in the application configuration. Creates a new instance of DbConnectionInfo based on a connection string. The connection string to use for the connection. The name of the provider to use for the connection. Use 'System.Data.SqlClient' for SQL Server. Gets the of the current instance. The exact runtime type of the current instance. Instances of this class are used to create DbConnection objects for SQL Server LocalDb based on a given database name or connection string. An instance of this class can be set on the class or in the app.config/web.config for the application to cause all DbContexts created with no connection information or just a database name to use SQL Server LocalDb by default. This class is immutable since multiple threads may access instances simultaneously when creating connections. Implementations of this interface are used to create DbConnection objects for a type of database server based on a given database name. An Instance is set on the class to cause all DbContexts created with no connection information or just a database name or connection string to use a certain type of database server by default. Two implementations of this interface are provided: is used to create connections to Microsoft SQL Server, including EXPRESS editions. is used to create connections to Microsoft SQL Server Compact Editions. Other implementations for other database servers can be added as needed. Note that implementations should be thread safe or immutable since they may be accessed by multiple threads at the same time. Creates a connection based on the given database name or connection string. The database name or connection string. An initialized DbConnection. Creates a new instance of the connection factory for the given version of LocalDb. For SQL Server 2012 LocalDb use "v11.0". For SQL Server 2014 and later LocalDb use "mssqllocaldb". The LocalDb version to use. Creates a new instance of the connection factory for the given version of LocalDb. For SQL Server 2012 LocalDb use "v11.0". For SQL Server 2014 and later LocalDb use "mssqllocaldb". The LocalDb version to use. The connection string to use for options to the database other than the 'Initial Catalog', 'Data Source', and 'AttachDbFilename'. The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the database name when CreateConnection is called. The 'Data Source' will be set based on the LocalDbVersion argument. Creates a connection for SQL Server LocalDb based on the given database name or connection string. If the given string contains an '=' character then it is treated as a full connection string, otherwise it is treated as a database name only. The database name or connection string. An initialized DbConnection. The connection string to use for options to the database other than the 'Initial Catalog', 'Data Source', and 'AttachDbFilename'. The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the database name when CreateConnection is called. The 'Data Source' will be set based on the LocalDbVersion argument. The default is 'Integrated Security=True;'. An implementation of that will use Code First Migrations to update the database to the latest version. The type of the context. The type of the migrations configuration to use during initialization. Initializes a new instance of the MigrateDatabaseToLatestVersion class that will use the connection information from a context constructed using the default constructor or registered factory if applicable Initializes a new instance of the MigrateDatabaseToLatestVersion class specifying whether to use the connection information from the context that triggered initialization to perform the migration. If set to true the initializer is run using the connection information from the context that triggered initialization. Otherwise, the connection information will be taken from a context constructed using the default constructor or registered factory if applicable. Initializes a new instance of the MigrateDatabaseToLatestVersion class specifying whether to use the connection information from the context that triggered initialization to perform the migration. Also allows specifying migrations configuration to use during initialization. If set to true the initializer is run using the connection information from the context that triggered initialization. Otherwise, the connection information will be taken from a context constructed using the default constructor or registered factory if applicable. Migrations configuration to use during initialization. Initializes a new instance of the MigrateDatabaseToLatestVersion class that will use a specific connection string from the configuration file to connect to the database to perform the migration. The name of the connection string to use for migration. Helper class that is used to configure a column. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Creates a new column definition to store Binary data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. The maximum allowable length of the array data. Value indicating whether or not all data should be padded to the maximum length. Constant value to use as the default value for this column. SQL expression used as the default value for this column. Value indicating whether or not this column should be configured as a timestamp. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store Boolean data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store Byte data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. Value indicating whether or not the database will generate values for this column during insert. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store DateTime data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. The precision of the column. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store Decimal data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. The numeric precision of the column. The numeric scale of the column. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Value indicating whether or not the database will generate values for this column during insert. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store Double data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store GUID data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. Value indicating whether or not the database will generate values for this column during insert. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store Single data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store Short data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. Value indicating whether or not the database will generate values for this column during insert. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store Integer data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. Value indicating whether or not the database will generate values for this column during insert. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store Long data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. Value indicating whether or not the database will generate values for this column during insert. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store String data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. The maximum allowable length of the string data. Value indicating whether or not all data should be padded to the maximum length. Value indicating whether or not the column supports Unicode content. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store Time data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. The precision of the column. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store DateTimeOffset data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. The precision of the column. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store geography data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Creates a new column definition to store geometry data. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Value indicating whether or not the column allows null values. Constant value to use as the default value for this column. SQL expression used as the default value for this column. The name of the column. Provider specific data type to use for this column. Custom annotations usually from the Code First model. The newly constructed column definition. Gets the of the current instance. The exact runtime type of the current instance. Creates a shallow copy of the current . A shallow copy of the current . Helper class that is used to further configure a table being created from a CreateTable call on . Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The type that represents the table's columns. Initializes a new instance of the TableBuilder class. The table creation operation to be further configured. The migration the table is created in. Specifies a primary key for the table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } The name of the primary key. If null is supplied, a default name will be generated. A value indicating whether or not this is a clustered primary key. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Itself, so that multiple calls can be chained. Specifies an index to be created on the table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. A lambda expression representing the property to be indexed. C#: t => t.PropertyOne VB.Net: Function(t) t.PropertyOne If multiple properties are to be indexed then specify an anonymous type including the properties. C#: t => new { t.PropertyOne, t.PropertyTwo } VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } The name of the index. A value indicating whether or not this is a unique index. A value indicating whether or not this is a clustered index. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Itself, so that multiple calls can be chained. Specifies a foreign key constraint to be created on the table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Name of the table that the foreign key constraint targets. A lambda expression representing the properties of the foreign key. C#: t => t.PropertyOne VB.Net: Function(t) t.PropertyOne If multiple properties make up the foreign key then specify an anonymous type including the properties. C#: t => new { t.PropertyOne, t.PropertyTwo } VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } A value indicating whether or not cascade delete should be configured on the foreign key constraint. The name of this foreign key constraint. If no name is supplied, a default name will be calculated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Itself, so that multiple calls can be chained. Gets the of the current instance. The exact runtime type of the current instance. Creates a shallow copy of the current . A shallow copy of the current . Base class for code-based migrations. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Operations to be performed during the upgrade process. Operations to be performed during the downgrade process. Adds an operation to create a new stored procedure. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is assumed. The body of the stored procedure. The additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. Adds an operation to create a new stored procedure. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is assumed. The action that specifies the parameters of the stored procedure. The body of the stored procedure. The additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. The parameters in this create stored procedure operation. You do not need to specify this type, it will be inferred from the parameter you supply. Adds an operation to alter a stored procedure. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is assumed. The body of the stored procedure. The additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. Adds an operation to alter a stored procedure. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The parameters in this alter stored procedure operation. You do not need to specify this type, it will be inferred from the parameter you supply. The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is assumed. The action that specifies the parameters of the stored procedure. The body of the stored procedure. The additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an existing stored procedure with the specified name. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the procedure to drop. Schema name is optional, if no schema is specified then dbo is assumed. The additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. Adds an operation to create a new table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The columns in this create table operation. You do not need to specify this type, it will be inferred from the columnsAction parameter you supply. The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. An action that specifies the columns to be included in the table. i.e. t => new { Id = t.Int(identity: true), Name = t.String() } Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. An object that allows further configuration of the table creation operation. Adds an operation to create a new table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The columns in this create table operation. You do not need to specify this type, it will be inferred from the columnsAction parameter you supply. The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. An action that specifies the columns to be included in the table. i.e. t => new { Id = t.Int(identity: true), Name = t.String() } Custom annotations that exist on the table to be created. May be null or empty. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. An object that allows further configuration of the table creation operation. Adds an operation to handle changes in the annotations defined on tables. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The columns in this operation. You do not need to specify this type, it will be inferred from the columnsAction parameter you supply. The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. An action that specifies the columns to be included in the table. i.e. t => new { Id = t.Int(identity: true), Name = t.String() } The custom annotations on the table that have changed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to create a new foreign key constraint. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The table that contains the foreign key column. Schema name is optional, if no schema is specified then dbo is assumed. The foreign key column. The table that contains the column this foreign key references. Schema name is optional, if no schema is specified then dbo is assumed. The column this foreign key references. If no value is supplied the primary key of the principal table will be referenced. A value indicating if cascade delete should be configured for the foreign key relationship. If no value is supplied, cascade delete will be off. The name of the foreign key constraint in the database. If no value is supplied a unique name will be generated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to create a new foreign key constraint. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The table that contains the foreign key columns. Schema name is optional, if no schema is specified then dbo is assumed. The foreign key columns. The table that contains the columns this foreign key references. Schema name is optional, if no schema is specified then dbo is assumed. The columns this foreign key references. If no value is supplied the primary key of the principal table will be referenced. A value indicating if cascade delete should be configured for the foreign key relationship. If no value is supplied, cascade delete will be off. The name of the foreign key constraint in the database. If no value is supplied a unique name will be generated. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a foreign key constraint based on its name. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The table that contains the foreign key column. Schema name is optional, if no schema is specified then dbo is assumed. The name of the foreign key constraint in the database. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a foreign key constraint based on the column it targets. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The table that contains the foreign key column. Schema name is optional, if no schema is specified then dbo is assumed. The foreign key column. The table that contains the column this foreign key references. Schema name is optional, if no schema is specified then dbo is assumed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a foreign key constraint based on the column it targets. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The table that contains the foreign key column. Schema name is optional, if no schema is specified then dbo is assumed. The foreign key column. The table that contains the column this foreign key references. Schema name is optional, if no schema is specified then dbo is assumed. The columns this foreign key references. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a foreign key constraint based on the columns it targets. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The table that contains the foreign key columns. Schema name is optional, if no schema is specified then dbo is assumed. The foreign key columns. The table that contains the columns this foreign key references. Schema name is optional, if no schema is specified then dbo is assumed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is assumed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is assumed. Custom annotations that exist on columns of the table that is being dropped. May be null or empty. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is assumed. Custom annotations that exist on the table that is being dropped. May be null or empty. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is assumed. Custom annotations that exist on the table that is being dropped. May be null or empty. Custom annotations that exist on columns of the table that is being dropped. May be null or empty. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to move a table to a new schema. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to be moved. Schema name is optional, if no schema is specified then dbo is assumed. The schema the table is to be moved to. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to move a stored procedure to a new schema. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the stored procedure to be moved. Schema name is optional, if no schema is specified then dbo is assumed. The schema the stored procedure is to be moved to. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to rename a table. To change the schema of a table use MoveTable. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to be renamed. Schema name is optional, if no schema is specified then dbo is assumed. The new name for the table. Schema name is optional, if no schema is specified then dbo is assumed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to rename a stored procedure. To change the schema of a stored procedure use MoveStoredProcedure Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the stored procedure to be renamed. Schema name is optional, if no schema is specified then dbo is assumed. The new name for the stored procedure. Schema name is optional, if no schema is specified then dbo is assumed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to rename a column. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table that contains the column to be renamed. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column to be renamed. The new name for the column. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to add a column to an existing table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to add the column to. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column to be added. An action that specifies the column to be added. i.e. c => c.Int(nullable: false, defaultValue: 3) Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an existing column. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to drop the column from. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column to be dropped. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an existing column. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to drop the column from. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column to be dropped. Custom annotations that exist on the column that is being dropped. May be null or empty. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to alter the definition of an existing column. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table the column exists in. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column to be changed. An action that specifies the new definition for the column. i.e. c => c.String(nullable: false, defaultValue: "none") Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to create a new primary key. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The table that contains the primary key column. Schema name is optional, if no schema is specified then dbo is assumed. The primary key column. The name of the primary key in the database. If no value is supplied a unique name will be generated. A value indicating whether or not this is a clustered primary key. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to create a new primary key based on multiple columns. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The table that contains the primary key columns. Schema name is optional, if no schema is specified then dbo is assumed. The primary key columns. The name of the primary key in the database. If no value is supplied a unique name will be generated. A value indicating whether or not this is a clustered primary key. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an existing primary key that does not have the default name. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The table that contains the primary key column. Schema name is optional, if no schema is specified then dbo is assumed. The name of the primary key to be dropped. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an existing primary key that was created with the default name. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The table that contains the primary key column. Schema name is optional, if no schema is specified then dbo is assumed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to create an index on a single column. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to create the index on. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column to create the index on. A value indicating if this is a unique index. If no value is supplied a non-unique index will be created. The name to use for the index in the database. If no value is supplied a unique name will be generated. A value indicating whether or not this is a clustered index. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to create an index on multiple columns. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to create the index on. Schema name is optional, if no schema is specified then dbo is assumed. The name of the columns to create the index on. A value indicating if this is a unique index. If no value is supplied a non-unique index will be created. The name to use for the index in the database. If no value is supplied a unique name will be generated. A value indicating whether or not this is a clustered index. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an index based on its name. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to drop the index from. Schema name is optional, if no schema is specified then dbo is assumed. The name of the index to be dropped. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to drop an index based on the columns it targets. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to drop the index from. Schema name is optional, if no schema is specified then dbo is assumed. The name of the column(s) the index targets. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to rename an index. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table that contains the index to be renamed. Schema name is optional, if no schema is specified then dbo is assumed. The name of the index to be renamed. The new name for the index. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to execute a SQL command or set of SQL commands. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The SQL to be executed. A value indicating if the SQL should be executed outside of the transaction being used for the migration process. If no value is supplied the SQL will be executed within the transaction. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to execute a SQL file. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The SQL file to be executed. Relative paths are assumed to be relative to the current AppDomain's BaseDirectory. A value indicating if the SQL should be executed outside of the transaction being used for the migration process. If no value is supplied the SQL will be executed within the transaction. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Adds an operation to execute a SQL resource file. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The manifest resource name of the SQL resource file to be executed. The assembly containing the resource file. The calling assembly is assumed if not provided. A value indicating if the SQL should be executed outside of the transaction being used for the migration process. If no value is supplied the SQL will be executed within the transaction. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Configuration relating to the use of migrations for a given model. You will typically create a configuration class that derives from rather than using this class. The default directory that migrations are stored in. Initializes a new instance of the DbMigrationsConfiguration class. Adds a new SQL generator to be used for a given database provider. Name of the database provider to set the SQL generator for. The SQL generator to be used. Gets the SQL generator that is set to be used with a given database provider. Name of the database provider to get the SQL generator for. The SQL generator that is set for the database provider. Adds a new factory for creating instances to be used for a given database provider. Name of the database provider to set the SQL generator for. A factory for creating instances for a given and representing the default schema. Gets the history context factory that is set to be used with a given database provider. Name of the database provider to get thefactory for. The history context factory that is set for the database provider. Gets or sets a value indicating if automatic migrations can be used when migrating the database. Gets or sets the string used to distinguish migrations belonging to this configuration from migrations belonging to other configurations using the same database. This property enables migrations from multiple different models to be applied to applied to a single database. Gets or sets a value indicating if data loss is acceptable during automatic migration. If set to false an exception will be thrown if data loss may occur as part of an automatic migration. Gets or sets the derived DbContext representing the model to be migrated. Gets or sets the namespace used for code-based migrations. Gets or sets the sub-directory that code-based migrations are stored in. Note that this property must be set to a relative path for a sub-directory under the Visual Studio project root; it cannot be set to an absolute path. Gets or sets the code generator to be used when scaffolding migrations. Gets or sets the assembly containing code-based migrations. Gets or sets a value to override the connection of the database to be migrated. Gets or sets the timeout value used for the individual commands within a migration. A null value indicates that the default value of the underlying provider will be used. Configuration relating to the use of migrations for a given model. The context representing the model that this configuration applies to. Initializes a new instance of the DbMigrationsConfiguration class. Runs after upgrading to the latest migration to allow seed data to be updated. Note that the database may already contain seed data when this method runs. This means that implementations of this method must check whether or not seed data is present and/or up-to-date and then only make changes if necessary and in a non-destructive way. The can be used to help with this, but for seeding large amounts of data it may be necessary to do less granular checks if performance is an issue. If the database initializer is being used, then this method will be called each time that the initializer runs. If one of the , , or initializers is being used, then this method will not be called and the Seed method defined in the initializer should be used instead. Context to be used for updating seed data. DbMigrator is used to apply existing migrations to a database. DbMigrator can be used to upgrade and downgrade to any given migration. To scaffold migrations based on changes to your model use Base class for decorators that wrap the core Initializes a new instance of the MigratorBase class. The migrator that this decorator is wrapping. Gets a list of the pending migrations that have not been applied to the database. List of migration Ids Updates the target database to the latest migration. Updates the target database to a given migration. The migration to upgrade/downgrade to. Gets a list of the migrations that are defined in the assembly. List of migration Ids Gets a list of the migrations that have been applied to the database. List of migration Ids Gets the configuration being used for the migrations process. Migration Id representing the state of the database before any migrations are applied. Initializes a new instance of the DbMigrator class. Configuration to be used for the migration process. Gets all migrations that are defined in the configured migrations assembly. The list of migrations. Gets all migrations that have been applied to the target database. The list of migrations. Gets all migrations that are defined in the assembly but haven't been applied to the target database. The list of migrations. Updates the target database to a given migration. The migration to upgrade/downgrade to. Gets the configuration that is being used for the migration process. A set of extension methods for Adds or updates entities by key when SaveChanges is called. Equivalent to an "upsert" operation from database terminology. This method can useful when seeding data using Migrations. The type of entities to add or update. The set to which the entities belong. The entities to add or update. When the parameter is a custom or fake IDbSet implementation, this method will attempt to locate and invoke a public, instance method with the same signature as this extension method. Adds or updates entities by a custom identification expression when SaveChanges is called. Equivalent to an "upsert" operation from database terminology. This method can useful when seeding data using Migrations. The type of entities to add or update. The set to which the entities belong. An expression specifying the properties that should be used when determining whether an Add or Update operation should be performed. The entities to add or update. When the parameter is a custom or fake IDbSet implementation, this method will attempt to locate and invoke a public, instance method with the same signature as this extension method. Generates C# code for a code-based migration. Base class for providers that generate code for code-based migrations. Generates the code that should be added to the users project. Unique identifier of the migration. Operations to be performed by the migration. Source model to be stored in the migration metadata. Target model to be stored in the migration metadata. Namespace that code should be generated in. Name of the class that should be generated. The generated code. Gets the namespaces that must be output as "using" or "Imports" directives to handle the code generated by the given operations. The operations for which code is going to be generated. An ordered list of namespace names. Gets the default namespaces that must be output as "using" or "Imports" directives for any code generated. A value indicating if this class is being generated for a code-behind file. An ordered list of namespace names. Gets the instances that are being used. Generates the primary code file that the user can view and edit. Operations to be performed by the migration. Namespace that code should be generated in. Name of the class that should be generated. The generated code. Generates the code behind file with migration metadata. Unique identifier of the migration. Source model to be stored in the migration metadata. Target model to be stored in the migration metadata. Namespace that code should be generated in. Name of the class that should be generated. The generated code. Generates a property to return the source or target model in the code behind file. Name of the property. Value to be returned. Text writer to add the generated code to. Generates class attributes. Text writer to add the generated code to. A value indicating if this class is being generated for a code-behind file. Generates a namespace, using statements and class definition. Namespace that code should be generated in. Name of the class that should be generated. Text writer to add the generated code to. Base class for the generated class. A value indicating if this class is being generated for a code-behind file. Namespaces for which using directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. Generates the closing code for a class that was started with WriteClassStart. Namespace that code should be generated in. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code for to re-create the given dictionary of annotations for use when passing these annotations as a parameter of a . call. The annotations to generate. The writer to which generated code should be written. Generates code for to re-create the given dictionary of annotations for use when passing these annotations as a parameter of a . call. The annotations to generate. The writer to which generated code should be written. Generates code for the given annotation value, which may be null. The default behavior is to use an if one is registered, otherwise call ToString on the annotation value. Note that a can be registered to generate code for custom annotations without the need to override the entire code generator. The name of the annotation for which code is needed. The annotation value to generate. The writer to which generated code should be written. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to specify the definition for a . The parameter definition to generate code for. Text writer to add the generated code to. A value indicating whether to include the column name in the definition. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code for an . The operation for which code should be generated. The writer to which generated code should be written. Generates code to perform an as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to specify a set of column names using a lambda expression. The columns to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to specify the definition for a . The column definition to generate code for. Text writer to add the generated code to. A value indicating whether to include the column name in the definition. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column of unknown data type. The value to be used as the default. Code representing the default value. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Removes any invalid characters from the name of an database artifact. The name to be scrubbed. The scrubbed name. Gets the type name to use for a column of the given data type. The data type to translate. The type name to use in the generated migration. Quotes an identifier using appropriate escaping to allow it to be stored in a string. The identifier to be quoted. The quoted identifier. Scaffolds code-based migrations to apply pending model changes to the database. Initializes a new instance of the MigrationScaffolder class. Configuration to be used for scaffolding. Scaffolds a code based migration to apply any pending model changes to the database. The name to use for the scaffolded migration. The scaffolded migration. Scaffolds a code based migration to apply any pending model changes to the database. The name to use for the scaffolded migration. Whether or not to include model changes. The scaffolded migration. Scaffolds the initial code-based migration corresponding to a previously run database initializer. The scaffolded migration. Gets or sets the namespace used in the migration's generated code. By default, this is the same as MigrationsNamespace on the migrations configuration object passed into the constructor. For VB.NET projects, this will need to be updated to take into account the project's root namespace. Represents a code-based migration that has been scaffolded and is ready to be written to a file. Gets or sets the unique identifier for this migration. Typically used for the file name of the generated code. Gets or sets the scaffolded migration code that the user can edit. Gets or sets the scaffolded migration code that should be stored in a code behind file. Gets or sets the programming language used for this migration. Typically used for the file extension of the generated code. Gets or sets the subdirectory in the user's project that this migration should be saved in. Gets a dictionary of string resources to add to the migration resource file. Gets or sets whether the migration was re-scaffolded. Helper class that is used by design time tools to run migrations related commands that need to interact with an application that is being edited in Visual Studio. Because the application is being edited the assemblies need to be loaded in a separate AppDomain to ensure the latest version is always loaded. The App/Web.config file from the startup project is also copied to ensure that any configuration is applied. Initializes a new instance of the ToolingFacade class. The name of the assembly that contains the migrations configuration to be used. The name of the assembly that contains the DbContext to be used. The namespace qualified name of migrations configuration to be used. The working directory containing the compiled assemblies. The path of the config file from the startup project. The path of the application data directory from the startup project. Typically the App_Data directory for web applications or the working directory for executables. The connection to the database to be migrated. If null is supplied, the default connection for the context will be used. Releases all unmanaged resources used by the facade. Gets the fully qualified name of all types deriving from . All context types found. Gets the fully qualified name of a type deriving from . The name of the context type. If null, the single context type found in the assembly will be returned. The context type found. Gets a list of all migrations that have been applied to the database. Ids of applied migrations. Gets a list of all migrations that have not been applied to the database. Ids of pending migrations. Updates the database to the specified migration. The Id of the migration to migrate to. If null is supplied, the database will be updated to the latest migration. Value indicating if data loss during automatic migration is acceptable. Generates a SQL script to migrate between two migrations. The migration to update from. If null is supplied, a script to update the current database will be produced. The migration to update to. If null is supplied, a script to update to the latest migration will be produced. Value indicating if data loss during automatic migration is acceptable. The generated SQL script. Scaffolds a code-based migration to apply any pending model changes. The name for the generated migration. The programming language of the generated migration. The root namespace of the project the migration will be added to. Whether or not to include model changes. The scaffolded migration. Scaffolds the initial code-based migration corresponding to a previously run database initializer. The programming language of the generated migration. The root namespace of the project the migration will be added to. The scaffolded migration. Releases all resources used by the facade. true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets or sets an action to be run to log information. Gets or sets an action to be run to log warnings. Gets or sets an action to be run to log verbose information. Base class for loggers that can be used for the migrations process. Logs an informational message. The message to be logged. Logs a warning that the user should be made aware of. The message to be logged. Logs some additional information that should only be presented to the user if they request verbose output. The message to be logged. Generates VB.Net code for a code-based migration. Generates the primary code file that the user can view and edit. Operations to be performed by the migration. Namespace that code should be generated in. Name of the class that should be generated. The generated code. Generates the code behind file with migration metadata. Unique identifier of the migration. Source model to be stored in the migration metadata. Target model to be stored in the migration metadata. Namespace that code should be generated in. Name of the class that should be generated. The generated code. Generates a property to return the source or target model in the code behind file. Name of the property. Value to be returned. Text writer to add the generated code to. Generates class attributes. Text writer to add the generated code to. A value indicating if this class is being generated for a code-behind file. Generates a namespace, using statements and class definition. Namespace that code should be generated in. Name of the class that should be generated. Text writer to add the generated code to. Base class for the generated class. A value indicating if this class is being generated for a code-behind file. Namespaces for which Imports directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. Generates the closing code for a class that was started with WriteClassStart. Namespace that code should be generated in. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code for to re-create the given dictionary of annotations for use when passing these annotations as a parameter of a . call. The annotations to generate. The writer to which generated code should be written. Generates code for to re-create the given dictionary of annotations for use when passing these annotations as a parameter of a . call. The annotations to generate. The writer to which generated code should be written. Generates code for the given annotation value, which may be null. The default behavior is to use an if one is registered, otherwise call ToString on the annotation value. Note that a can be registered to generate code for custom annotations without the need to override the entire code generator. The name of the annotation for which code is needed. The annotation value to generate. The writer to which generated code should be written. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The parameter model definition to generate code for. Text writer to add the generated code to. true to include the column name in the definition; otherwise, false. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code for an . The operation for which code should be generated. The writer to which generated code should be written. Generates code to perform an as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a as part of a . The operation to generate code for. Text writer to add the generated code to. Generates code to specify a set of column names using a lambda expression. The columns to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform an . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to specify the definition for a . The column definition to generate code for. Text writer to add the generated code to. A value indicating whether to include the column name in the definition. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column. The value to be used as the default. Code representing the default value. Generates code to specify the default value for a column of unknown data type. The value to be used as the default. Code representing the default value. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Generates code to perform a . The operation to generate code for. Text writer to add the generated code to. Removes any invalid characters from the name of an database artifact. The name to be scrubbed. The scrubbed name. Gets the type name to use for a column of the given data type. The data type to translate. The type name to use in the generated migration. Quotes an identifier using appropriate escaping to allow it to be stored in a string. The identifier to be quoted. The quoted identifier. Contains extension methods for the class. Configures an awaiter used to await this to avoid marshalling the continuation back to the original context, but preserve the current culture and UI culture. The type of the result produced by the associated . The task to be awaited on. An object used to await this task. Configures an awaiter used to await this to avoid marshalling the continuation back to the original context, but preserve the current culture and UI culture. The task to be awaited on. An object used to await this task. Provides an awaitable object that allows for awaits on that preserve the culture. The type of the result produced by the associated . This type is intended for compiler use only. Constructs a new instance of the class. The task to be awaited on. Gets an awaiter used to await this . An awaiter instance. This method is intended for compiler user rather than use directly in code. Ends the await on the completed . The result of the completed . The awaiter was not properly initialized. The task was canceled. The task completed in a Faulted state. This method is not implemented and should not be called. The action to invoke when the await operation completes. Schedules the continuation onto the associated with this . The action to invoke when the await operation completes. The argument is null (Nothing in Visual Basic). The awaiter was not properly initialized. This method is intended for compiler user rather than use directly in code. Gets whether this Task has completed. will return true when the Task is in one of the three final states: RanToCompletion, Faulted, or Canceled. Provides an awaitable object that allows for awaits on that preserve the culture. This type is intended for compiler use only. Constructs a new instance of the class. The task to be awaited on. Gets an awaiter used to await this . An awaiter instance. This method is intended for compiler user rather than use directly in code. Ends the await on the completed . The awaiter was not properly initialized. The task was canceled. The task completed in a Faulted state. This method is not implemented and should not be called. The action to invoke when the await operation completes. Schedules the continuation onto the associated with this . The action to invoke when the await operation completes. The argument is null (Nothing in Visual Basic). The awaiter was not properly initialized. This method is intended for compiler user rather than use directly in code. Gets whether this Task has completed. will return true when the Task is in one of the three final states: RanToCompletion, Faulted, or Canceled. This class is used by Code First Migrations to read and write migration history from the database. To customize the definition of the migrations history table you can derive from this class and override OnModelCreating. Derived instances can either be registered on a per migrations configuration basis using , or globally using . The default name used for the migrations history table. Initializes a new instance of the HistoryContext class. If you are creating a derived history context you will generally expose a constructor that accepts these same parameters and passes them to this base constructor. An existing connection to use for the new context. The default schema of the model being migrated. This schema will be used for the migrations history table unless a different schema is configured in OnModelCreating. Applies the default configuration for the migrations history table. If you override this method it is recommended that you call this base implementation before applying your custom configuration. The builder that defines the model for the context being created. Gets the key used to locate a model that was previously built for this context. This is used to avoid processing OnModelCreating and calculating the model every time a new context instance is created. By default this property returns the default schema. In most cases you will not need to override this property. However, if your implementation of OnModelCreating contains conditional logic that results in a different model being built for the same database provider and default schema you should override this property and calculate an appropriate key. Gets the default schema of the model being migrated. This schema will be used for the migrations history table unless a different schema is configured in OnModelCreating. Gets or sets a that can be used to read and write instances. This class is used by Code First Migrations to read and write migration history from the database. Gets or sets the Id of the migration this row represents. Gets or sets a key representing to which context the row applies. Gets or sets the state of the model after this migration was applied. Gets or sets the version of Entity Framework that created this entry. Represents an error that occurs when an automatic migration would result in data loss. Initializes a new instance of the AutomaticDataLossException class. Initializes a new instance of the AutomaticDataLossException class. The message that describes the error. Initializes a new instance of the MigrationsException class. The message that describes the error. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Represents an error that occurs when there are pending model changes after applying the last migration and automatic migration is disabled. Initializes a new instance of the AutomaticMigrationsDisabledException class. Initializes a new instance of the AutomaticMigrationsDisabledException class. The message that describes the error. Initializes a new instance of the MigrationsException class. The message that describes the error. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Provides additional metadata about a code-based migration. Gets the unique identifier for the migration. Gets the state of the model before this migration is run. Gets the state of the model after this migration is run. Decorator to provide logging during migrations operations.. Initializes a new instance of the MigratorLoggingDecorator class. The migrator that this decorator is wrapping. The logger to write messages to. Decorator to produce a SQL script instead of applying changes to the database. Using this decorator to wrap will prevent from applying any changes to the target database. Initializes a new instance of the MigratorScriptingDecorator class. The migrator that this decorator is wrapping. Produces a script to update the database. The migration to update from. If null is supplied, a script to update the current database will be produced. The migration to update to. If null is supplied, a script to update to the latest migration will be produced. The generated SQL script. Represents a column being added to a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the AddColumnOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table the column should be added to. Details of the column being added. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table the column should be added to. Gets the details of the column being added. Gets an operation that represents dropping the added column. Represents a foreign key constraint being added to a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Base class for changes that affect foreign key constraints. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the ForeignKeyOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets or sets the name of the table that the foreign key constraint targets. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets or sets the name of the table that the foreign key columns exist in. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The names of the foreign key column(s). Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets a value indicating if a specific name has been supplied for this foreign key constraint. Gets or sets the name of this foreign key constraint. If no name is supplied, a default name will be calculated. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the AddForeignKeyOperation class. The PrincipalTable, PrincipalColumns, DependentTable and DependentColumns properties should also be populated. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation to create an index on the foreign key column(s). An operation to add the index. The names of the column(s) that the foreign key constraint should target. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets or sets a value indicating if cascade delete should be configured on the foreign key constraint. Gets an operation to drop the foreign key constraint. Represents adding a primary key to a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Common base class to represent operations affecting primary keys. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Returns the default name for the primary key. The target table name. The default primary key name. Initializes a new instance of the PrimaryKeyOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets or sets the name of the table that contains the primary key. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets the column(s) that make up the primary key. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets a value indicating if a specific name has been supplied for this primary key. Gets or sets the name of this primary key. If no name is supplied, a default name will be calculated. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the AddPrimaryKeyOperation class. The Table and Columns properties should also be populated. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation to drop the primary key. Gets or sets whether this is a clustered primary key. Represents altering an existing column. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the AlterColumnOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table that the column belongs to. Details of what the column should be altered to. Value indicating if this change will result in data loss. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the AlterColumnOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table that the column belongs to. Details of what the column should be altered to. Value indicating if this change will result in data loss. An operation to revert this alteration of the column. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table that the column belongs to. Gets the new definition for the column. Gets an operation that represents reverting the alteration. The inverse cannot be automatically calculated, if it was not supplied to the constructor this property will return null. Represents information about a column. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the ColumnModel class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The data type for this column. Initializes a new instance of the ColumnModel class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The data type for this column. Additional details about the data type. This includes details such as maximum length, nullability etc. Determines if this column is a narrower data type than another column. Used to determine if altering the supplied column definition to this definition will result in data loss. The column to compare to. Details of the database provider being used. True if this column is of a narrower data type. Gets the CLR type corresponding to the database type of this column. Gets the default value for the CLR type corresponding to the database type of this column. Gets or sets a value indicating if this column can store null values. Gets or sets a value indicating if values for this column will be generated by the database using the identity pattern. Gets or sets a value indicating if this property model should be configured as a timestamp. Gets or sets the custom annotations that have changed on the column. Represents creating a database index. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Common base class for operations affecting indexes. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Creates a default index name based on the supplied column names. The column names used to create a default index name. A default index name. Initializes a new instance of the IndexOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets or sets the table the index belongs to. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets the columns that are indexed. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets a value indicating if a specific name has been supplied for this index. Gets or sets the name of this index. If no name is supplied, a default name will be calculated. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the CreateIndexOperation class. The Table and Columns properties should also be populated. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets or sets a value indicating if this is a unique index. Gets an operation to drop this index. Gets or sets whether this is a clustered index. Represents creating a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the CreateTableOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Name of the table to be created. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the CreateTableOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Name of the table to be created. Custom annotations that exist on the table to be created. May be null or empty. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table to be created. Gets the columns to be included in the new table. Gets or sets the primary key for the new table. Gets custom annotations that exist on the table to be created. Gets an operation to drop the table. Represents a column being dropped from a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the DropColumnOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table the column should be dropped from. The name of the column to be dropped. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropColumnOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table the column should be dropped from. The name of the column to be dropped. Custom annotations that exist on the column that is being dropped. May be null or empty. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropColumnOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table the column should be dropped from. The name of the column to be dropped. The operation that represents reverting the drop operation. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropColumnOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table the column should be dropped from. The name of the column to be dropped. Custom annotations that exist on the column that is being dropped. May be null or empty. The operation that represents reverting the drop operation. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table the column should be dropped from. Gets the name of the column to be dropped. Gets custom annotations that exist on the column that is being dropped. Gets an operation that represents reverting dropping the column. The inverse cannot be automatically calculated, if it was not supplied to the constructor this property will return null. Represents a foreign key constraint being dropped from a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the DropForeignKeyOperation class. The PrincipalTable, DependentTable and DependentColumns properties should also be populated. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropForeignKeyOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc.. The operation that represents reverting dropping the foreign key constraint. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation to drop the associated index on the foreign key column(s). An operation to drop the index. Gets an operation that represents reverting dropping the foreign key constraint. The inverse cannot be automatically calculated, if it was not supplied to the constructor this property will return null. Represents dropping an existing index. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the DropIndexOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropIndexOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The operation that represents reverting dropping the index. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation that represents reverting dropping the index. The inverse cannot be automatically calculated, if it was not supplied to the constructor this property will return null. Represents dropping a primary key from a table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the DropPrimaryKeyOperation class. The Table and Columns properties should also be populated. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets an operation to add the primary key. Used when altering the migrations history table so that the table can be rebuilt rather than just dropping and adding the primary key. The create table operation for the migrations history table. Represents dropping an existing table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the DropTableOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to be dropped. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropTableOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to be dropped. Custom annotations that exist on the table that is being dropped. May be null or empty. Custom annotations that exist on columns of the table that is being dropped. May be null or empty. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropTableOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to be dropped. An operation that represents reverting dropping the table. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Initializes a new instance of the DropTableOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The name of the table to be dropped. Custom annotations that exist on the table that is being dropped. May be null or empty. Custom annotations that exist on columns of the table that is being dropped. May be null or empty. An operation that represents reverting dropping the table. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table to be dropped. Gets custom annotations that exist on the table that is being dropped. Gets custom annotations that exist on columns of the table that is being dropped. Gets an operation that represents reverting dropping the table. The inverse cannot be automatically calculated, if it was not supplied to the constructor this property will return null. Operation representing DML changes to the migrations history table. The migrations history table is used to store a log of the migrations that have been applied to the database. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the HistoryOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. A sequence of command trees representing the operations being applied to the history table. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. A sequence of commands representing the operations being applied to the history table. Represents moving a table from one schema to another. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the MoveTableOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Name of the table to be moved. Name of the schema to move the table to. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table to be moved. Gets the name of the schema to move the table to. Gets an operation that moves the table back to its original schema. Used when altering the migrations history table so that data can be moved to the new table. The context key for the model. Gets a value that indicates whether this is a system table. true if the table is a system table; otherwise, false. Used when altering the migrations history table so that the table can be rebuilt rather than just dropping and adding the primary key. The create table operation for the migrations history table. Represents renaming an existing column. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the RenameColumnOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Name of the table the column belongs to. Name of the column to be renamed. New name for the column. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table the column belongs to. Gets the name of the column to be renamed. Gets the new name for the column. Gets an operation that reverts the rename. Represents renaming an existing table. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the RenameTableOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Name of the table to be renamed. New name for the table. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the name of the table to be renamed. Gets the new name for the table. Gets an operation that reverts the rename. Represents a provider specific SQL statement to be executed directly against the target database. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Initializes a new instance of the SqlOperation class. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The SQL to be executed. Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. Gets the SQL to be executed. Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails. Common base class for providers that convert provider agnostic migration operations into database provider specific SQL commands. Converts a set of migration operations into database provider specific SQL. The operations to be converted. Token representing the version of the database being targeted. A list of SQL statements to be executed to perform the migration operations. Generates the SQL body for a stored procedure. The command trees representing the commands for an insert, update or delete operation. The rows affected parameter name. The provider manifest token. The SQL body for the stored procedure. Builds the store type usage for the specified using the facets from the specified . Name of the store type. The target property. A store-specific TypeUsage Gets or sets the provider manifest. The provider manifest. Represents a migration operation that has been translated into a SQL statement. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets or sets the SQL to be executed to perform this migration operation. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails. Gets or sets the batch terminator for the database provider. Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources (such as the end user of an application). If input is accepted from such sources it should be validated before being passed to these APIs to protect against SQL injection attacks etc. The batch terminator for the database provider. Extension methods for . Returns an implementation that stays in sync with the given . The element type. The collection that the binding list will stay in sync with. The binding list. Represents data in a geodetic (round earth) coordinate system. Creates a new value based on the specified well known binary value. A new DbGeography value as defined by the well known binary value with the default geography coordinate system identifier (SRID)( ). A byte array that contains a well known binary representation of the geography value. Creates a new value based on the specified well known binary value and coordinate system identifier (SRID). A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. A byte array that contains a well known binary representation of the geography value. The identifier of the coordinate system that the new DbGeography value should use. Creates a new line value based on the specified well known binary value and coordinate system identifier (SRID). A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. A byte array that contains a well known binary representation of the geography value. The identifier of the coordinate system that the new DbGeography value should use. Creates a new point value based on the specified well known binary value and coordinate system identifier (SRID). A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. A byte array that contains a well known binary representation of the geography value. The identifier of the coordinate system that the new DbGeography value should use. Creates a new polygon value based on the specified well known binary value and coordinate system identifier (SRID). A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. A byte array that contains a well known binary representation of the geography value. The identifier of the coordinate system that the new DbGeography value should use. Returns the multiline value from a binary value. The multiline value from a binary value. The well-known binary value. The coordinate system identifier. Returns the multipoint value from a well-known binary value. The multipoint value from a well-known binary value. The well-known binary value. The coordinate system identifier. Returns the multi polygon value from a well-known binary value. The multi polygon value from a well-known binary value. The multi polygon well-known binary value. The coordinate system identifier. Creates a new collection value based on the specified well known binary value and coordinate system identifier (SRID). A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. A byte array that contains a well known binary representation of the geography value. The identifier of the coordinate system that the new DbGeography value should use. Creates a new value based on the specified Geography Markup Language (GML) value. A new DbGeography value as defined by the GML value with the default geography coordinate system identifier (SRID) ( ). A string that contains a Geography Markup Language (GML) representation of the geography value. Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). A new DbGeography value as defined by the GML value with the specified coordinate system identifier. A string that contains a Geography Markup Language (GML) representation of the geography value. The identifier of the coordinate system that the new DbGeography value should use. Creates a new value based on the specified well known text value. A new DbGeography value as defined by the well known text value with the default geography coordinate system identifier (SRID) ( ). A string that contains a well known text representation of the geography value. Creates a new value based on the specified well known text value and coordinate system identifier (SRID). A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. A string that contains a well known text representation of the geography value. The identifier of the coordinate system that the new DbGeography value should use. Creates a new line value based on the specified well known text value and coordinate system identifier (SRID). A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. A string that contains a well known text representation of the geography value. The identifier of the coordinate system that the new DbGeography value should use. Creates a new point value based on the specified well known text value and coordinate system identifier (SRID). A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. A string that contains a well known text representation of the geography value. The identifier of the coordinate system that the new DbGeography value should use. Creates a new polygon value based on the specified well known text value and coordinate system identifier (SRID). A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. A string that contains a well known text representation of the geography value. The identifier of the coordinate system that the new DbGeography value should use. Returns the multiline value from a well-known text value. The multiline value from a well-known text value. The well-known text. The coordinate system identifier. Returns the multipoint value from a well-known text value. The multipoint value from a well-known text value. The well-known text value. The coordinate system identifier. Returns the multi polygon value from a well-known text value. The multi polygon value from a well-known text value. The multi polygon well-known text value. The coordinate system identifier. Creates a new collection value based on the specified well known text value and coordinate system identifier (SRID). A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. A string that contains a well known text representation of the geography value. The identifier of the coordinate system that the new DbGeography value should use. Generates the well known text representation of this DbGeography value. Includes only Longitude and Latitude for points. A string containing the well known text representation of this DbGeography value. Generates the well known binary representation of this DbGeography value. The well-known binary representation of this DbGeography value. Generates the Geography Markup Language (GML) representation of this DbGeography value. A string containing the GML representation of this DbGeography value. Determines whether this DbGeography is spatially equal to the specified DbGeography argument. true if other is spatially equal to this geography value; otherwise false. The geography value that should be compared with this geography value for equality. Determines whether this DbGeography is spatially disjoint from the specified DbGeography argument. true if other is disjoint from this geography value; otherwise false. The geography value that should be compared with this geography value for disjointness. Determines whether this DbGeography value spatially intersects the specified DbGeography argument. true if other intersects this geography value; otherwise false. The geography value that should be compared with this geography value for intersection. Returns a geography object that represents the union of all points whose distance from a geography instance is less than or equal to a specified value. A geography object that represents the union of all points The distance. Computes the distance between the closest points in this DbGeography value and another DbGeography value. A double value that specifies the distance between the two closest points in this geography value and other. The geography value for which the distance from this value should be computed. Computes the intersection of this DbGeography value and another DbGeography value. A new DbGeography value representing the intersection between this geography value and other. The geography value for which the intersection with this value should be computed. Computes the union of this DbGeography value and another DbGeography value. A new DbGeography value representing the union between this geography value and other. The geography value for which the union with this value should be computed. Computes the difference of this DbGeography value and another DbGeography value. A new DbGeography value representing the difference between this geography value and other. The geography value for which the difference with this value should be computed. Computes the symmetric difference of this DbGeography value and another DbGeography value. A new DbGeography value representing the symmetric difference between this geography value and other. The geography value for which the symmetric difference with this value should be computed. Returns an element of this DbGeography value from a specific position, if it represents a geography collection. <param name="index">The position within this geography value from which the element should be taken.</param><returns>The element in this geography value at the specified position, if it represents a collection of other geography values; otherwise null.</returns> An element of this DbGeography value from a specific position The index. Returns an element of this DbGeography value from a specific position, if it represents a linestring or linear ring. <param name="index">The position within this geography value from which the element should be taken.</param><returns>The element in this geography value at the specified position, if it represents a linestring or linear ring; otherwise null.</returns> An element of this DbGeography value from a specific position The index. Returns a string representation of the geography value. A string representation of the geography value. Gets the default coordinate system id (SRID) for geography values (WGS 84) The default coordinate system id (SRID) for geography values (WGS 84) Gets a representation of this DbGeography value that is specific to the underlying provider that constructed it. A representation of this DbGeography value. Gets the spatial provider that will be used for operations on this spatial type. Gets or sets a data contract serializable well known representation of this DbGeography value. A data contract serializable well known representation of this DbGeography value. Gets the identifier associated with the coordinate system. The identifier associated with the coordinate system. Gets the dimension of the given value or, if the value is a collections, the largest element dimension. The dimension of the given value. Gets the spatial type name of the DBGeography. The spatial type name of the DBGeography. Gets a nullable Boolean value indicating whether this DbGeography value is empty. True if this DbGeography value is empty; otherwise, false. Gets the number of elements in this DbGeography value, if it represents a geography collection. <returns>The number of elements in this geography value, if it represents a collection of other geography values; otherwise null.</returns> The number of elements in this DbGeography value. Gets the Latitude coordinate of this DbGeography value, if it represents a point. <returns>The Latitude coordinate value of this geography value, if it represents a point; otherwise null.</returns> The Latitude coordinate of this DbGeography value. Gets the Longitude coordinate of this DbGeography value, if it represents a point. <returns>The Longitude coordinate value of this geography value, if it represents a point; otherwise null.</returns> The Longitude coordinate of this DbGeography value. Gets the elevation (Z coordinate) of this DbGeography value, if it represents a point. <returns>The elevation (Z coordinate) value of this geography value, if it represents a point; otherwise null.</returns> The elevation (Z coordinate) of this DbGeography value. Gets the M (Measure) coordinate of this DbGeography value, if it represents a point. <returns>The M (Measure) coordinate value of this geography value, if it represents a point; otherwise null.</returns> The M (Measure) coordinate of this DbGeography value. Gets a nullable double value that indicates the length of this DbGeography value, which may be null if this value does not represent a curve. A nullable double value that indicates the length of this DbGeography value. Gets a DbGeography value representing the start point of this value, which may be null if this DbGeography value does not represent a curve. A DbGeography value representing the start point of this value. Gets a DbGeography value representing the start point of this value, which may be null if this DbGeography value does not represent a curve. A DbGeography value representing the start point of this value. Gets a nullable Boolean value indicating whether this DbGeography value is closed, which may be null if this value does not represent a curve. True if this DbGeography value is closed; otherwise, false. Gets the number of points in this DbGeography value, if it represents a linestring or linear ring. <returns>The number of elements in this geography value, if it represents a linestring or linear ring; otherwise null.</returns> The number of points in this DbGeography value. Gets a nullable double value that indicates the area of this DbGeography value, which may be null if this value does not represent a surface. A nullable double value that indicates the area of this DbGeography value. A data contract serializable representation of a value. Gets or sets the coordinate system identifier (SRID) of this value. Gets or sets the well known text representation of this value. Gets or sets the well known binary representation of this value. Represents geometric shapes. Creates a new value based on the specified well known binary value. A new DbGeometry value as defined by the well known binary value with the default geometry coordinate system identifier ( ). A byte array that contains a well known binary representation of the geometry value. wellKnownBinary Creates a new value based on the specified well known binary value and coordinate system identifier (SRID). A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. A byte array that contains a well known binary representation of the geometry value. The identifier of the coordinate system that the new DbGeometry value should use. wellKnownBinary coordinateSystemId Creates a new line value based on the specified well known binary value and coordinate system identifier (SRID). A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. A byte array that contains a well known binary representation of the geometry value. The identifier of the coordinate system that the new DbGeometry value should use. lineWellKnownBinary coordinateSystemId Creates a new point value based on the specified well known binary value and coordinate system identifier (SRID). A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. A byte array that contains a well known binary representation of the geometry value. The identifier of the coordinate system that the new DbGeometry value should use. pointWellKnownBinary coordinateSystemId Creates a new polygon value based on the specified well known binary value and coordinate system identifier (SRID). A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. A byte array that contains a well known binary representation of the geometry value. The identifier of the coordinate system that the new DbGeometry value should use. polygonWellKnownBinary coordinateSystemId Returns the multiline value from a binary value. The multiline value from a binary value. The well-known binary value. The coordinate system identifier. Returns the multipoint value from a well-known binary value. The multipoint value from a well-known binary value. The well-known binary value. The coordinate system identifier. Returns the multi polygon value from a well-known binary value. The multipoint value from a well-known text value. The multi polygon well-known text value. The coordinate system identifier. Creates a new collection value based on the specified well known binary value and coordinate system identifier (SRID). A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. A byte array that contains a well known binary representation of the geometry value. The identifier of the coordinate system that the new DbGeometry value should use. geometryCollectionWellKnownBinary coordinateSystemId Creates a new value based on the specified Geography Markup Language (GML) value. A new DbGeometry value as defined by the GML value with the default geometry coordinate system identifier (SRID) ( ). A string that contains a Geography Markup Language (GML) representation of the geometry value. geometryMarkup Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). A new DbGeometry value as defined by the GML value with the specified coordinate system identifier. A string that contains a Geography Markup Language (GML) representation of the geometry value. The identifier of the coordinate system that the new DbGeometry value should use. geometryMarkup coordinateSystemId Creates a new value based on the specified well known text value. A new DbGeometry value as defined by the well known text value with the default geometry coordinate system identifier (SRID) ( ). A string that contains a well known text representation of the geometry value. wellKnownText Creates a new value based on the specified well known text value and coordinate system identifier (SRID). A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. A string that contains a well known text representation of the geometry value. The identifier of the coordinate system that the new DbGeometry value should use. wellKnownText coordinateSystemId Creates a new line value based on the specified well known text value and coordinate system identifier (SRID). A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. A string that contains a well known text representation of the geometry value. The identifier of the coordinate system that the new DbGeometry value should use. lineWellKnownText coordinateSystemId Creates a new point value based on the specified well known text value and coordinate system identifier (SRID). A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. A string that contains a well known text representation of the geometry value. The identifier of the coordinate system that the new DbGeometry value should use. pointWellKnownText coordinateSystemId Creates a new polygon value based on the specified well known text value and coordinate system identifier (SRID). A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. A string that contains a well known text representation of the geometry value. The identifier of the coordinate system that the new DbGeometry value should use. polygonWellKnownText coordinateSystemId Returns the multiline value from a well-known text value. The multiline value from a well-known text value. The well-known text. The coordinate system identifier. Returns the multipoint value from a well-known text value. The multipoint value from a well-known text value. The well-known text value. The coordinate system identifier. Returns the multi polygon value from a well-known binary value. The multi polygon value from a well-known binary value. The multi polygon well-known text value. The coordinate system identifier. Creates a new collection value based on the specified well known text value and coordinate system identifier (SRID). A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. A string that contains a well known text representation of the geometry value. The identifier of the coordinate system that the new DbGeometry value should use. geometryCollectionWellKnownText coordinateSystemId Generates the well known text representation of this DbGeometry value. Includes only X and Y coordinates for points. A string containing the well known text representation of this DbGeometry value. Generates the well known binary representation of this DbGeometry value. The well-known binary representation of this DbGeometry value. Generates the Geography Markup Language (GML) representation of this DbGeometry value. A string containing the GML representation of this DbGeometry value. Determines whether this DbGeometry is spatially equal to the specified DbGeometry argument. true if other is spatially equal to this geometry value; otherwise false. The geometry value that should be compared with this geometry value for equality. other Determines whether this DbGeometry is spatially disjoint from the specified DbGeometry argument. true if other is disjoint from this geometry value; otherwise false. The geometry value that should be compared with this geometry value for disjointness. other Determines whether this DbGeometry value spatially intersects the specified DbGeometry argument. true if other intersects this geometry value; otherwise false. The geometry value that should be compared with this geometry value for intersection. other Determines whether this DbGeometry value spatially touches the specified DbGeometry argument. true if other touches this geometry value; otherwise false. The geometry value that should be compared with this geometry value. other Determines whether this DbGeometry value spatially crosses the specified DbGeometry argument. true if other crosses this geometry value; otherwise false. The geometry value that should be compared with this geometry value. other Determines whether this DbGeometry value is spatially within the specified DbGeometry argument. true if this geometry value is within other; otherwise false. The geometry value that should be compared with this geometry value for containment. other Determines whether this DbGeometry value spatially contains the specified DbGeometry argument. true if this geometry value contains other; otherwise false. The geometry value that should be compared with this geometry value for containment. other Determines whether this DbGeometry value spatially overlaps the specified DbGeometry argument. true if this geometry value overlaps other; otherwise false. The geometry value that should be compared with this geometry value for overlap. other Determines whether this DbGeometry value spatially relates to the specified DbGeometry argument according to the given Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern. true if this geometry value relates to other according to the specified intersection pattern matrix; otherwise false. The geometry value that should be compared with this geometry value for relation. A string that contains the text representation of the (DE-9IM) intersection pattern that defines the relation. othermatrix Returns a geometry object that represents the union of all points whose distance from a geometry instance is less than or equal to a specified value. A geometry object that represents the union of all points. The distance. Computes the distance between the closest points in this DbGeometry value and another DbGeometry value. A double value that specifies the distance between the two closest points in this geometry value and other. The geometry value for which the distance from this value should be computed. other Computes the intersection of this DbGeometry value and another DbGeometry value. A new DbGeometry value representing the intersection between this geometry value and other. The geometry value for which the intersection with this value should be computed. other Computes the union of this DbGeometry value and another DbGeometry value. A new DbGeometry value representing the union between this geometry value and other. The geometry value for which the union with this value should be computed. other Computes the difference between this DbGeometry value and another DbGeometry value. A new DbGeometry value representing the difference between this geometry value and other. The geometry value for which the difference with this value should be computed. other Computes the symmetric difference between this DbGeometry value and another DbGeometry value. A new DbGeometry value representing the symmetric difference between this geometry value and other. The geometry value for which the symmetric difference with this value should be computed. other Returns an element of this DbGeometry value from a specific position, if it represents a geometry collection. <param name="index">The position within this geometry value from which the element should be taken.</param><returns>The element in this geometry value at the specified position, if it represents a collection of other geometry values; otherwise null.</returns> An element of this DbGeometry value from a specific position. The index. Returns an element of this DbGeometry value from a specific position, if it represents a linestring or linear ring. <param name="index">The position within this geometry value from which the element should be taken.</param><returns>The element in this geometry value at the specified position, if it represents a linestring or linear ring; otherwise null.</returns> An element of this DbGeometry value from a specific position. The index. Returns an interior ring from this DbGeometry value at a specific position, if it represents a polygon. <param name="index">The position within this geometry value from which the interior ring should be taken.</param><returns>The interior ring in this geometry value at the specified position, if it represents a polygon; otherwise null.</returns> An interior ring from this DbGeometry value at a specific position. The index. Returns a string representation of the geometry value. A string representation of the geometry value. Gets the default coordinate system id (SRID) for geometry values. The default coordinate system id (SRID) for geometry values. Gets a representation of this DbGeometry value that is specific to the underlying provider that constructed it. A representation of this DbGeometry value. Gets the spatial provider that will be used for operations on this spatial type. Gets or sets a data contract serializable well known representation of this DbGeometry value. A data contract serializable well known representation of this DbGeometry value. Gets the coordinate system identifier of the DbGeometry object. The coordinate system identifier of the DbGeometry object. Gets the boundary of the DbGeometry objects. The boundary of the DbGeometry objects. Gets the dimension of the given value or, if the value is a collection, the dimension of its largest element. The dimension of the given value. Gets the envelope (minimum bounding box) of this DbGeometry value, as a geometry value. The envelope (minimum bounding box) of this DbGeometry value. Gets a spatial type name representation of this DbGeometry value. A spatial type name representation of this DbGeometry value. Gets a nullable Boolean value indicating whether this DbGeometry value is empty, which may be null if this value does not represent a curve. True if this DbGeometry value is empty; otherwise, false. Gets a nullable Boolean value indicating whether this DbGeometry value is simple. True if this DbGeometry value is simple; otherwise, false. Gets a nullable Boolean value indicating whether this DbGeometry value is valid. True if this DbGeometry value is valid; otherwise, false. Gets the convex hull of this DbGeometry value as another DbGeometry value. The convex hull of this DbGeometry value as another DbGeometry value. Gets the number of elements in this DbGeometry value, if it represents a geometry collection. <returns>The number of elements in this geometry value, if it represents a collection of other geometry values; otherwise null.</returns> The number of elements in this DbGeometry value. Gets the X coordinate of this DbGeometry value, if it represents a point. <returns>The X coordinate value of this geometry value, if it represents a point; otherwise null.</returns> The X coordinate of this DbGeometry value. Gets the Y coordinate of this DbGeometry value, if it represents a point. <returns>The Y coordinate value of this geometry value, if it represents a point; otherwise null.</returns> The Y coordinate of this DbGeometry value. Gets the elevation (Z coordinate) of this DbGeometry value, if it represents a point. <returns>The elevation (Z coordinate) of this geometry value, if it represents a point; otherwise null.</returns> The elevation (Z coordinate) of this DbGeometry value. Gets the Measure (M coordinate) of this DbGeometry value, if it represents a point. <returns>The Measure (M coordinate) value of this geometry value, if it represents a point; otherwise null.</returns> The Measure (M coordinate) of this DbGeometry value. Gets a nullable double value that indicates the length of this DbGeometry value, which may be null if this value does not represent a curve. The length of this DbGeometry value. Gets a DbGeometry value representing the start point of this value, which may be null if this DbGeometry value does not represent a curve. A DbGeometry value representing the start point of this value. Gets a DbGeometry value representing the start point of this value, which may be null if this DbGeometry value does not represent a curve. A DbGeometry value representing the start point of this value. Gets a nullable Boolean value indicating whether this DbGeometry value is closed, which may be null if this value does not represent a curve. True if this DbGeometry value is closed; otherwise, false. Gets a nullable Boolean value indicating whether this DbGeometry value is a ring, which may be null if this value does not represent a curve. True if this DbGeometry value is a ring; otherwise, false. Gets the number of points in this DbGeometry value, if it represents a linestring or linear ring. <returns>The number of elements in this geometry value, if it represents a linestring or linear ring; otherwise null.</returns> The number of points in this DbGeometry value. Gets a nullable double value that indicates the area of this DbGeometry value, which may be null if this value does not represent a surface. A nullable double value that indicates the area of this DbGeometry value. Gets the DbGeometry value that represents the centroid of this DbGeometry value, which may be null if this value does not represent a surface. The DbGeometry value that represents the centroid of this DbGeometry value. Gets a point on the surface of this DbGeometry value, which may be null if this value does not represent a surface. A point on the surface of this DbGeometry value. Gets the DbGeometry value that represents the exterior ring of this DbGeometry value, which may be null if this value does not represent a polygon. The DbGeometry value that represents the exterior ring of this DbGeometry value. Gets the number of interior rings in this DbGeometry value, if it represents a polygon. <returns>The number of elements in this geometry value, if it represents a polygon; otherwise null.</returns> The number of interior rings in this DbGeometry value. A data contract serializable representation of a value. Gets or sets the coordinate system identifier (SRID) of this value. Gets or sets the well known text representation of this value. Gets or sets the well known binary representation of this value. A provider-independent service API for geospatial (Geometry/Geography) type support. When implemented in derived types, reads an instance of from the column at the specified column ordinal. The instance of DbGeography at the specified column value The ordinal of the column that contains the geography value Asynchronously reads an instance of from the column at the specified column ordinal. Providers should override with an appropriate implementation. The default implementation invokes the synchronous method and returns a completed task, blocking the calling thread. The ordinal of the column that contains the geography value. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the instance of at the specified column value. When implemented in derived types, reads an instance of from the column at the specified column ordinal. The instance of DbGeometry at the specified column value The ordinal of the data record column that contains the provider-specific geometry data Asynchronously reads an instance of from the column at the specified column ordinal. Providers should override with an appropriate implementation. The default implementation invokes the synchronous method and returns a completed task, blocking the calling thread. The ordinal of the data record column that contains the provider-specific geometry data. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the instance of at the specified column value. Returns whether the column at the specified column ordinal is of geography type The column ordinal. true if the column at the specified column ordinal is of geography type; false otherwise. Returns whether the column at the specified column ordinal is of geometry type The column ordinal. true if the column at the specified column ordinal is of geometry type; false otherwise. A provider-independent service API for geospatial (Geometry/Geography) type support. This method is intended for use by derived implementations of after suitable validation of the specified provider value to ensure it is suitable for use with the derived implementation. A new instance that contains the specified providerValue and uses the specified spatialServices as its spatial implementation. The spatial services instance that the returned value will depend on for its implementation of spatial functionality. The provider value. Creates a new value based on a provider-specific value that is compatible with this spatial services implementation. A new value backed by this spatial services implementation and the specified provider value. A provider-specific value that this spatial services implementation is capable of interpreting as a geography value. A new DbGeography value backed by this spatial services implementation and the specified provider value. is null. is not compatible with this spatial services implementation. Creates a provider-specific value compatible with this spatial services implementation based on the specified well-known representation. A provider-specific value that encodes the information contained in wellKnownValue in a fashion compatible with this spatial services implementation. An instance of that contains the well-known representation of a geography value. Creates an instance of that represents the specified value using one or both of the standard well-known spatial formats. The well-known representation of geographyValue, as a new . The geography value. is null. is not compatible with this spatial services implementation. Creates a new value based on the specified well-known binary value. A new value as defined by the well-known binary value with the default coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geography value. Creates a new value based on the specified well-known binary value and coordinate system identifier (SRID). A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geography value. The identifier of the coordinate system that the new value should use. Creates a new line value based on the specified well-known binary value and coordinate system identifier (SRID). A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geography value. The identifier of the coordinate system that the new value should use. Creates a new point value based on the specified well-known binary value and coordinate system identifier (SRID). A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geography value. The identifier of the coordinate system that the new value should use. Creates a new polygon value based on the specified well-known binary value and coordinate system identifier (SRID). A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geography value. The identifier of the coordinate system that the new value should use. Creates a new multiline value based on the specified well-known binary value and coordinate system identifier. The new multiline value. The well-known binary value. The coordinate system identifier. Creates a new multipoint value based on the specified well-known binary value and coordinate system identifier. A new multipoint value. The well-known binary value. The coordinate system identifier. Creates a new multi polygon value based on the specified well-known binary value and coordinate system identifier. A new multi polygon value. The well-known binary value. The coordinate system identifier. Creates a new collection value based on the specified well-known binary value and coordinate system identifier (SRID). A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geography value. The identifier of the coordinate system that the new value should use. Creates a new value based on the specified well-known text value. A new value as defined by the well-known text value with the default coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geography value. Creates a new value based on the specified well-known text value and coordinate system identifier (SRID). A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geography value. The identifier of the coordinate system that the new value should use. Creates a new line value based on the specified well-known text value and coordinate system identifier (SRID). A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geography value. The identifier of the coordinate system that the new value should use. Creates a new point value based on the specified well-known text value and coordinate system identifier (SRID). A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geography value. The identifier of the coordinate system that the new value should use. Creates a new polygon value based on the specified well-known text value and coordinate system identifier (SRID). A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geography value. The identifier of the coordinate system that the new value should use. Creates a new multiline value based on the specified well-known text value and coordinate system identifier. A new multiline value. The well-known text value. The coordinate system identifier. Creates a new multipoint value based on the specified well-known text value and coordinate system identifier. A new multipoint value. The well-known text value. The coordinate system identifier. Creates a new multi polygon value based on the specified well-known text value and coordinate system identifier. A new multi polygon value. The well-known text value. The coordinate system identifier. Creates a new collection value based on the specified well-known text value and coordinate system identifier (SRID). A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geography value. The identifier of the coordinate system that the new value should use. Creates a new value based on the specified Geography Markup Language (GML) value. A new value as defined by the GML value with the default coordinate system identifier (SRID) ( ). A string that contains a Geometry Markup Language (GML) representation of the geography value. Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). A new value as defined by the GML value with the specified coordinate system identifier (SRID). A string that contains a Geometry Markup Language (GML) representation of the geography value. The identifier of the coordinate system that the new value should use. Returns the coordinate system identifier of the given value. The coordinate system identifier of the given value. The geography value. is null. is not compatible with this spatial services implementation. Gets the dimension of the given value or, if the value is a collections, the largest element dimension. The dimension of geographyValue, or the largest element dimension if is a collection. The geography value for which the dimension value should be retrieved. is null. is not compatible with this spatial services implementation. Returns a value that indicates the spatial type name of the given value. The spatial type name of the given value. The geography value. is null. is not compatible with this spatial services implementation. Returns a nullable Boolean value that whether the given value is empty. True if the given value is empty; otherwise, false. The geography value. is null. is not compatible with this spatial services implementation. Gets the well-known text representation of the given value. This value should include only the Longitude and Latitude of points. A string containing the well-known text representation of geographyValue. The geography value for which the well-known text should be generated. is null. is not compatible with this spatial services implementation. Returns a text representation of with elevation and measure. A text representation of . The geography value. is null. is not compatible with this spatial services implementation. Gets the well-known binary representation of the given value. The well-known binary representation of the given value. The geography value for which the well-known binary should be generated. is null. is not compatible with this spatial services implementation. Generates the Geography Markup Language (GML) representation of this value. A string containing the GML representation of this DbGeography value. The geography value for which the GML should be generated. is null. is not compatible with this spatial services implementation. Determines whether the two given values are spatially equal. true if geographyValue is spatially equal to otherGeography; otherwise false. The first geography value to compare for equality. The second geography value to compare for equality. or is null. or is not compatible with this spatial services implementation. Determines whether the two given values are spatially disjoint. true if geographyValue is disjoint from otherGeography; otherwise false. The first geography value to compare for disjointness. The second geography value to compare for disjointness. or is null. or is not compatible with this spatial services implementation. Determines whether the two given values spatially intersect. true if geographyValue intersects otherGeography; otherwise false. The first geography value to compare for intersection. The second geography value to compare for intersection. or is null. or is not compatible with this spatial services implementation. Creates a geography value representing all points less than or equal to distance from the given value. A new DbGeography value representing all points less than or equal to distance from geographyValue. The geography value. A double value specifying how far from geographyValue to buffer. is null. is not compatible with this spatial services implementation. Computes the distance between the closest points in two values. A double value that specifies the distance between the two closest points in geographyValue and otherGeography. The first geography value. The second geography value. or is null. or is not compatible with this spatial services implementation. Computes the intersection of two values. A new value representing the intersection of geographyValue and otherGeography. The first geography value. The second geography value. or is null. or is not compatible with this spatial services implementation. Computes the union of two values. A new value representing the union of geographyValue and otherGeography. The first geography value. The second geography value. or is null. or is not compatible with this spatial services implementation. Computes the difference of two values. A new DbGeography value representing the difference of geographyValue and otherGeography. The first geography value. The second geography value. or is null. or is not compatible with this spatial services implementation. Computes the symmetric difference of two values. A new value representing the symmetric difference of geographyValue and otherGeography. The first geography value. The second geography value. or is null. or is not compatible with this spatial services implementation. Returns the number of elements in the given value, if it represents a geography collection. The number of elements in geographyValue, if it represents a collection of other geography values; otherwise null. The geography value, which need not represent a geography collection. is null. is not compatible with this spatial services implementation. Returns an element of the given value, if it represents a geography collection. The element in geographyValue at position index, if it represents a collection of other geography values; otherwise null. The geography value, which need not represent a geography collection. The position within the geography value from which the element should be taken. is null. is not compatible with this spatial services implementation. Returns the Latitude coordinate of the given value, if it represents a point. The Latitude coordinate of the given value. The geography value, which need not represent a point. is null. is not compatible with this spatial services implementation. Returns the Longitude coordinate of the given value, if it represents a point. The Longitude coordinate of the given value. The geography value, which need not represent a point. is null. is not compatible with this spatial services implementation. Returns the elevation (Z coordinate) of the given value, if it represents a point. The elevation (Z coordinate) of geographyValue, if it represents a point; otherwise null. The geography value, which need not represent a point. is null. is not compatible with this spatial services implementation. Returns the M (Measure) coordinate of the given value, if it represents a point. The M (Measure) coordinate of the given value. The geography value, which need not represent a point. is null. is not compatible with this spatial services implementation. Returns a nullable double value that indicates the length of the given value, which may be null if the value does not represent a curve. The length of the given value. The geography value, which need not represent a curve. is null. is not compatible with this spatial services implementation. Returns a value that represents the start point of the given DbGeography value, which may be null if the value does not represent a curve. The start point of the given value. The geography value, which need not represent a curve. is null. is not compatible with this spatial services implementation. Returns a value that represents the end point of the given DbGeography value, which may be null if the value does not represent a curve. The end point of geographyValue, if it represents a curve; otherwise null. The geography value, which need not represent a curve. is null. is not compatible with this spatial services implementation. Returns a nullable Boolean value that whether the given value is closed, which may be null if the value does not represent a curve. True if the given value is closed; otherwise, false. The geography value, which need not represent a curve. is null. is not compatible with this spatial services implementation. Returns the number of points in the given value, if it represents a linestring or linear ring. The number of points in the given value. The geography value, which need not represent a linestring or linear ring. is null. is not compatible with this spatial services implementation. Returns a point element of the given value, if it represents a linestring or linear ring. The point in geographyValue at position index, if it represents a linestring or linear ring; otherwise null. The geography value, which need not represent a linestring or linear ring. The position within the geography value from which the element should be taken. is null. is not compatible with this spatial services implementation. Returns a nullable double value that indicates the area of the given value, which may be null if the value does not represent a surface. A nullable double value that indicates the area of the given value. The geography value, which need not represent a surface. is null. is not compatible with this spatial services implementation. This method is intended for use by derived implementations of after suitable validation of the specified provider value to ensure it is suitable for use with the derived implementation. A new instance that contains the specified providerValue and uses the specified spatialServices as its spatial implementation. The spatial services instance that the returned value will depend on for its implementation of spatial functionality. A provider value. Creates a provider-specific value compatible with this spatial services implementation based on the specified well-known representation. A provider-specific value that encodes the information contained in wellKnownValue in a fashion compatible with this spatial services implementation. An instance of that contains the well-known representation of a geometry value. Creates an instance of that represents the specified value using one or both of the standard well-known spatial formats. The well-known representation of geometryValue, as a new . The geometry value. is null. is not compatible with this spatial services implementation. Creates a new value based on a provider-specific value that is compatible with this spatial services implementation. A new value backed by this spatial services implementation and the specified provider value. A provider-specific value that this spatial services implementation is capable of interpreting as a geometry value. is null. is not compatible with this spatial services implementation. Creates a new value based on the specified well-known binary value. A new value as defined by the well-known binary value with the default coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geometry value. Creates a new value based on the specified well-known binary value and coordinate system identifier (SRID). A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geometry value. The identifier of the coordinate system that the new value should use. Creates a new line value based on the specified well-known binary value and coordinate system identifier (SRID). A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geometry value. The identifier of the coordinate system that the new value should use. Creates a new point value based on the specified well-known binary value and coordinate system identifier (SRID). A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geometry value. The identifier of the coordinate system that the new value should use. Creates a new polygon value based on the specified well-known binary value and coordinate system identifier (SRID). A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geometry value. The identifier of the coordinate system that the new value should use. Creates a new multiline value based on the specified well-known binary value and coordinate system identifier. The new multiline value The well-known binary value. The coordinate system identifier. Creates a new multipoint value based on the specified well-known binary value and coordinate system identifier. A new multipoint value. The well-known binary value. The coordinate system identifier. Creates a new multi polygon value based on the specified well-known binary value and coordinate system identifier. A new multi polygon value. The well-known binary value. The coordinate system identifier. Creates a new collection value based on the specified well-known binary value and coordinate system identifier (SRID). A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( ). A byte array that contains a well-known binary representation of the geometry value. The identifier of the coordinate system that the new value should use. Creates a new value based on the specified well-known text value. A new value as defined by the well-known text value with the default coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geometry value. Creates a new value based on the specified well-known text value and coordinate system identifier (SRID). A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geometry value. The identifier of the coordinate system that the new value should use. Creates a new line value based on the specified well-known text value and coordinate system identifier (SRID). A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geometry value. The identifier of the coordinate system that the new value should use. Creates a new point value based on the specified well-known text value and coordinate system identifier (SRID). A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geometry value. The identifier of the coordinate system that the new value should use. Creates a new polygon value based on the specified well-known text value and coordinate system identifier (SRID). A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geometry value. The identifier of the coordinate system that the new value should use. Creates a new multiline value based on the specified well-known text value and coordinate system identifier. A new multiline value The well-known text value. The coordinate system identifier. Creates a new multipoint value based on the specified well-known text value and coordinate system identifier. A new multipoint value. The well-known text value. The coordinate system identifier. Creates a new multi polygon value based on the specified well-known text value and coordinate system identifier. A new multi polygon value. The well-known text value. The coordinate system identifier. Creates a new collection value based on the specified well-known text value and coordinate system identifier (SRID). A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( ). A string that contains a well-known text representation of the geometry value. The identifier of the coordinate system that the new value should use. Creates a new value based on the specified Geography Markup Language (GML) value. A new value as defined by the GML value with the default coordinate system identifier (SRID) ( ). A string that contains a Geography Markup Language (GML) representation of the geometry value. Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). A new value as defined by the GML value with the specified coordinate system identifier (SRID). A string that contains a Geography Markup Language (GML) representation of the geometry value. The identifier of the coordinate system that the new value should use. Returns the coordinate system identifier of the given value. The coordinate system identifier of the given value. The geometry value. is null. is not compatible with this spatial services implementation. Returns a nullable double value that indicates the boundary of the given value. The boundary of the given value. The geometry value. is null. is not compatible with this spatial services implementation. Gets the dimension of the given value or, if the value is a collections, the largest element dimension. The dimension of geometryValue, or the largest element dimension if is a collection. The geometry value for which the dimension value should be retrieved. Gets the envelope (minimum bounding box) of the given value, as a geometry value. The envelope of geometryValue, as a value. The geometry value for which the envelope value should be retrieved. is null. is not compatible with this spatial services implementation. Returns a value that indicates the spatial type name of the given value. The spatial type name of the given value. The geometry value. is null. is not compatible with this spatial services implementation. Returns a nullable Boolean value that whether the given value is empty. True if the given value is empty; otherwise, false. The geometry value. is null. is not compatible with this spatial services implementation. Returns a nullable Boolean value that whether the given value is simple. True if the given value is simple; otherwise, false. The geometry value. is null. is not compatible with this spatial services implementation. Returns a nullable Boolean value that whether the given value is valid. True if the given value is valid; otherwise, false. The geometry value. is null. is not compatible with this spatial services implementation. Gets the well-known text representation of the given value, including only X and Y coordinates for points. A string containing the well-known text representation of geometryValue. The geometry value for which the well-known text should be generated. is null. is not compatible with this spatial services implementation. Returns a text representation of with elevation and measure. A text representation of with elevation and measure. The geometry value. is null. is not compatible with this spatial services implementation. Gets the well-known binary representation of the given value. The well-known binary representation of the given value. The geometry value for which the well-known binary should be generated. is null. is not compatible with this spatial services implementation. Generates the Geography Markup Language (GML) representation of this value. A string containing the GML representation of this DbGeometry value. The geometry value for which the GML should be generated. is null. is not compatible with this spatial services implementation. Determines whether the two given values are spatially equal. true if geometryValue is spatially equal to otherGeometry; otherwise false. The first geometry value to compare for equality. The second geometry value to compare for equality. or is null. or is not compatible with this spatial services implementation. Determines whether the two given values are spatially disjoint. true if geometryValue is disjoint from otherGeometry; otherwise false. The first geometry value to compare for disjointness. The second geometry value to compare for disjointness. or is null. or is not compatible with this spatial services implementation. Determines whether the two given values spatially intersect. true if geometryValue intersects otherGeometry; otherwise false. The first geometry value to compare for intersection. The second geometry value to compare for intersection. or is null. or is not compatible with this spatial services implementation. Determines whether the two given values spatially touch. true if geometryValue touches otherGeometry; otherwise false. The first geometry value. The second geometry value. or is null. or is not compatible with this spatial services implementation. Determines whether the two given values spatially cross. true if geometryValue crosses otherGeometry; otherwise false. The first geometry value. The second geometry value. or is null. or is not compatible with this spatial services implementation. Determines whether one value is spatially within the other. true if geometryValue is within otherGeometry; otherwise false. The first geometry value. The second geometry value. or is null. or is not compatible with this spatial services implementation. Determines whether one value spatially contains the other. true if geometryValue contains otherGeometry; otherwise false. The first geometry value. The second geometry value. or is null. or is not compatible with this spatial services implementation. Determines whether the two given values spatially overlap. true if geometryValue overlaps otherGeometry; otherwise false. The first geometry value. The second geometry value. or is null. or is not compatible with this spatial services implementation. Determines whether the two given values are spatially related according to the given Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern. true if this geometryValue value relates to otherGeometry according to the specified intersection pattern matrix; otherwise false. The first geometry value. The geometry value that should be compared with the first geometry value for relation. A string that contains the text representation of the (DE-9IM) intersection pattern that defines the relation. , or is null. or is not compatible with this spatial services implementation. Creates a geometry value representing all points less than or equal to distance from the given value. A new DbGeometry value representing all points less than or equal to distance from geometryValue. The geometry value. A double value specifying how far from geometryValue to buffer. is null. is not compatible with this spatial services implementation. Computes the distance between the closest points in two values. A double value that specifies the distance between the two closest points in geometryValue and otherGeometry. The first geometry value. The second geometry value. or is null. or is not compatible with this spatial services implementation. Returns a nullable double value that indicates the convex hull of the given value. The convex hull of the given value. The geometry value. is null. is not compatible with this spatial services implementation. Computes the intersection of two values. A new value representing the intersection of geometryValue and otherGeometry. The first geometry value. The second geometry value. or is null. or is not compatible with this spatial services implementation. Computes the union of two values. A new value representing the union of geometryValue and otherGeometry. The first geometry value. The second geometry value. or is null. or is not compatible with this spatial services implementation. Computes the difference between two values. A new DbGeometry value representing the difference between geometryValue and otherGeometry. The first geometry value. The second geometry value. or is null. or is not compatible with this spatial services implementation. Computes the symmetric difference between two values. A new value representing the symmetric difference between geometryValue and otherGeometry. The first geometry value. The second geometry value. or is null. or is not compatible with this spatial services implementation. Returns the number of elements in the given value, if it represents a geometry collection. The number of elements in geometryValue, if it represents a collection of other geometry values; otherwise null. The geometry value, which need not represent a geometry collection. is null. is not compatible with this spatial services implementation. Returns an element of the given value, if it represents a geometry collection. The element in geometryValue at position index, if it represents a collection of other geometry values; otherwise null. The geometry value, which need not represent a geometry collection. The position within the geometry value from which the element should be taken. is null. is not compatible with this spatial services implementation. Returns the X coordinate of the given value, if it represents a point. The X coordinate of the given value. The geometry value, which need not represent a point. is null. is not compatible with this spatial services implementation. Returns the Y coordinate of the given value, if it represents a point. The Y coordinate of the given value. The geometry value, which need not represent a point. is null. is not compatible with this spatial services implementation. Returns the elevation (Z) of the given value, if it represents a point. The elevation (Z) of geometryValue, if it represents a point; otherwise null. The geometry value, which need not represent a point. is null. is not compatible with this spatial services implementation. Returns the M (Measure) coordinate of the given value, if it represents a point. The M (Measure) coordinate of the given value. The geometry value, which need not represent a point. is null. is not compatible with this spatial services implementation. Returns a nullable double value that indicates the length of the given value, which may be null if the value does not represent a curve. The length of the given value. The geometry value, which need not represent a curve. is null. is not compatible with this spatial services implementation. Returns a value that represents the start point of the given DbGeometry value, which may be null if the value does not represent a curve. The start point of the given value. The geometry value, which need not represent a curve. is null. is not compatible with this spatial services implementation. Returns a value that represents the end point of the given DbGeometry value, which may be null if the value does not represent a curve. The end point of geometryValue, if it represents a curve; otherwise null. The geometry value, which need not represent a curve. is null. is not compatible with this spatial services implementation. Returns a nullable Boolean value that whether the given value is closed, which may be null if the value does not represent a curve. True if the given value is closed; otherwise, false. The geometry value, which need not represent a curve. is null. is not compatible with this spatial services implementation. Returns a nullable Boolean value that whether the given value is a ring, which may be null if the value does not represent a curve. True if the given value is a ring; otherwise, false. The geometry value, which need not represent a curve. is null. is not compatible with this spatial services implementation. Returns the number of points in the given value, if it represents a linestring or linear ring. The number of points in the given value. The geometry value, which need not represent a linestring or linear ring. is null. is not compatible with this spatial services implementation. Returns a point element of the given value, if it represents a linestring or linear ring. The point in geometryValue at position index, if it represents a linestring or linear ring; otherwise null. The geometry value, which need not represent a linestring or linear ring. The position within the geometry value from which the element should be taken. is null. is not compatible with this spatial services implementation. Returns a nullable double value that indicates the area of the given value, which may be null if the value does not represent a surface. A nullable double value that indicates the area of the given value. The geometry value, which need not represent a surface. is null. is not compatible with this spatial services implementation. Returns a value that represents the centroid of the given DbGeometry value, which may be null if the value does not represent a surface. The centroid of geometryValue, if it represents a surface; otherwise null. The geometry value, which need not represent a surface. is null. is not compatible with this spatial services implementation. Returns a value that represents a point on the surface of the given DbGeometry value, which may be null if the value does not represent a surface. A value that represents a point on the surface of the given DbGeometry value. The geometry value, which need not represent a surface. is null. is not compatible with this spatial services implementation. Returns a value that represents the exterior ring of the given DbGeometry value, which may be null if the value does not represent a polygon. A DbGeometry value representing the exterior ring on geometryValue, if it represents a polygon; otherwise null. The geometry value, which need not represent a polygon. is null. is not compatible with this spatial services implementation. Returns the number of interior rings in the given value, if it represents a polygon. The number of elements in geometryValue, if it represents a polygon; otherwise null. The geometry value, which need not represent a polygon. is null. is not compatible with this spatial services implementation. Returns an interior ring from the given value, if it represents a polygon. The interior ring in geometryValue at position index, if it represents a polygon; otherwise null. The geometry value, which need not represent a polygon. The position within the geometry value from which the element should be taken. is null. is not compatible with this spatial services implementation. Gets the default services for the . The default services. Override this property to allow the spatial provider to fail fast when native types or other resources needed for the spatial provider to function correctly are not available. The default value is true which means that EF will continue with the assumption that the provider has the necessary types/resources rather than failing fast. The same as but works in partial trust and adds explicit caching of generated indentation string and also recognizes writing a string that contains just \r\n or \n as a write-line to ensure we indent the next line properly. Specifies the default tab string. This field is constant. Specifies the culture what will be used by the underlying TextWriter. This static property is read-only. Note that any writer passed to one of the constructors of must use this same culture. The culture is . Initializes a new instance of the IndentedTextWriter class using the specified text writer and default tab string. Note that the writer passed to this constructor must use the specified by the property. The to use for output. Initializes a new instance of the IndentedTextWriter class using the specified text writer and tab string. Note that the writer passed to this constructor must use the specified by the property. The to use for output. The tab string to use for indentation. Closes the document being written to. Flushes the stream. Outputs the tab string once for each level of indentation according to the property. Builds a string representing the current indentation level for a new line. Does NOT check if tabs are currently pending, just returns a string that would be useful in replacing embedded newline characters. An empty string, or a string that contains .Indent level's worth of specified tab-string. Writes the specified string to the text stream. The string to write. Writes the text representation of a Boolean value to the text stream. The Boolean value to write. Writes a character to the text stream. The character to write. Writes a character array to the text stream. The character array to write. Writes a subarray of characters to the text stream. The character array to write data from. Starting index in the buffer. The number of characters to write. Writes the text representation of a Double to the text stream. The double to write. Writes the text representation of a Single to the text stream. The single to write. Writes the text representation of an integer to the text stream. The integer to write. Writes the text representation of an 8-byte integer to the text stream. The 8-byte integer to write. Writes the text representation of an object to the text stream. The object to write. Writes out a formatted string, using the same semantics as specified. The formatting string. The object to write into the formatted string. Writes out a formatted string, using the same semantics as specified. The formatting string to use. The first object to write into the formatted string. The second object to write into the formatted string. Writes out a formatted string, using the same semantics as specified. The formatting string to use. The argument array to output. Writes the specified string to a line without tabs. The string to write. Writes the specified string, followed by a line terminator, to the text stream. The string to write. Writes a line terminator. Writes the text representation of a Boolean, followed by a line terminator, to the text stream. The Boolean to write. Writes a character, followed by a line terminator, to the text stream. The character to write. Writes a character array, followed by a line terminator, to the text stream. The character array to write. Writes a subarray of characters, followed by a line terminator, to the text stream. The character array to write data from. Starting index in the buffer. The number of characters to write. Writes the text representation of a Double, followed by a line terminator, to the text stream. The double to write. Writes the text representation of a Single, followed by a line terminator, to the text stream. The single to write. Writes the text representation of an integer, followed by a line terminator, to the text stream. The integer to write. Writes the text representation of an 8-byte integer, followed by a line terminator, to the text stream. The 8-byte integer to write. Writes the text representation of an object, followed by a line terminator, to the text stream. The object to write. Writes out a formatted string, followed by a line terminator, using the same semantics as specified. The formatting string. The object to write into the formatted string. Writes out a formatted string, followed by a line terminator, using the same semantics as specified. The formatting string to use. The first object to write into the formatted string. The second object to write into the formatted string. Writes out a formatted string, followed by a line terminator, using the same semantics as specified. The formatting string to use. The argument array to output. Writes the text representation of a UInt32, followed by a line terminator, to the text stream. A UInt32 to output. Gets the encoding for the text writer to use. An that indicates the encoding for the text writer to use. Gets or sets the new line character to use. The new line character to use. Gets or sets the number of spaces to indent. The number of spaces to indent. Gets the to use. The to use. Convention to apply column ordering specified via or the API. This convention throws if a duplicate configured column order is detected. Convention to apply column ordering specified via or the API. Validates the ordering configuration supplied for columns. This base implementation is a no-op. The name of the table that the columns belong to. The definition of the table. Validates the ordering configuration supplied for columns to ensure that the same ordinal was not supplied for two columns. The name of the table that the columns belong to. The definition of the table. Represents a conceptual or store model. This class can be used to access information about the shape of the model and the way the that it has been configured. Adds an association type to the model. The AssociationType instance to be added. Adds a complex type to the model. The ComplexType instance to be added. Adds an entity type to the model. The EntityType instance to be added. Adds an enumeration type to the model. The EnumType instance to be added. Adds a function to the model. The EdmFunction instance to be added. Removes an association type from the model. The AssociationType instance to be removed. Removes a complex type from the model. The ComplexType instance to be removed. Removes an entity type from the model. The EntityType instance to be removed. Removes an enumeration type from the model. The EnumType instance to be removed. Removes a function from the model. The EdmFunction instance to be removed. Gets the built-in type kind for this type. A object that represents the built-in type kind for this type. Gets the data space associated with the model, which indicates whether it is a conceptual model (DataSpace.CSpace) or a store model (DataSpace.SSpace). Gets the association types in the model. Gets the complex types in the model. Gets the entity types in the model. Gets the enum types in the model. Gets the functions in the model. Gets the container that stores entity and association sets, and function imports. Gets the global items associated with the model. The global items associated with the model. An implementation of IDatabaseInitializer that will recreate and optionally re-seed the database only if the database does not exist. To seed the database, create a derived class and override the Seed method. The type of the context. Initializes a new instance of the class. Executes the strategy to initialize the database for the given context. The context. A method that should be overridden to actually add data to the context for seeding. The default implementation does nothing. The context to seed. An instance of this class is obtained from an object and can be used to manage the actual database backing a DbContext or connection. This includes creating, deleting, and checking for the existence of a database. Note that deletion and checking for existence of a database can be performed using just a connection (i.e. without a full context) by using the static methods of this class. Enables the user to pass in a database transaction created outside of the object if you want the Entity Framework to execute commands within that external transaction. Alternatively, pass in null to clear the framework's knowledge of that transaction. the external transaction Thrown if the transaction is already completed Thrown if the connection associated with the object is already enlisted in a transaction Thrown if the connection associated with the object is already participating in a transaction Thrown if the connection associated with the transaction does not match the Entity Framework's connection Begins a transaction on the underlying store connection a object wrapping access to the underlying store's transaction object Begins a transaction on the underlying store connection using the specified isolation level The database isolation level with which the underlying store transaction will be created a object wrapping access to the underlying store's transaction object Sets the database initializer to use for the given context type. The database initializer is called when a the given type is used to access a database for the first time. The default strategy for Code First contexts is an instance of . The type of the context. The initializer to use, or null to disable initialization for the given context type. Runs the the registered on this context. If "force" is set to true, then the initializer is run regardless of whether or not it has been run before. This can be useful if a database is deleted while an app is running and needs to be reinitialized. If "force" is set to false, then the initializer is only run if it has not already been run for this context, model, and connection in this app domain. This method is typically used when it is necessary to ensure that the database has been created and seeded before starting some operation where doing so lazily will cause issues, such as when the operation is part of a transaction. If set to true the initializer is run even if it has already been run. Checks whether or not the database is compatible with the the current Code First model. Model compatibility currently uses the following rules. If the context was created using either the Model First or Database First approach then the model is assumed to be compatible with the database and this method returns true. For Code First the model is considered compatible if the model is stored in the database in the Migrations history table and that model has no differences from the current model as determined by Migrations model differ. If the model is not stored in the database but an EF 4.1/4.2 model hash is found instead, then this is used to check for compatibility. If set to true then an exception will be thrown if no model metadata is found in the database. If set to false then this method will return true if metadata is not found. True if the model hash in the context and the database match; false otherwise. Creates a new database on the database server for the model defined in the backing context. Note that calling this method before the database initialization strategy has run will disable executing that strategy. Creates a new database on the database server for the model defined in the backing context, but only if a database with the same name does not already exist on the server. True if the database did not exist and was created; false otherwise. Checks whether or not the database exists on the server. True if the database exists; false otherwise. Deletes the database on the database server if it exists, otherwise does nothing. Calling this method from outside of an initializer will mark the database as having not been initialized. This means that if an attempt is made to use the database again after it has been deleted, then any initializer set will run again and, usually, will try to create the database again automatically. True if the database did exist and was deleted; false otherwise. Checks whether or not the database exists on the server. The connection to the database is created using the given database name or connection string in the same way as is described in the documentation for the class. The database name or a connection string to the database. True if the database exists; false otherwise. Deletes the database on the database server if it exists, otherwise does nothing. The connection to the database is created using the given database name or connection string in the same way as is described in the documentation for the class. The database name or a connection string to the database. True if the database did exist and was deleted; false otherwise. Checks whether or not the database exists on the server. An existing connection to the database. True if the database exists; false otherwise. Deletes the database on the database server if it exists, otherwise does nothing. An existing connection to the database. True if the database did exist and was deleted; false otherwise. Creates a raw SQL query that will return elements of the given generic type. The type can be any type that has properties that match the names of the columns returned from the query, or can be a simple primitive type. The type does not have to be an entity type. The results of this query are never tracked by the context even if the type of object returned is an entity type. Use the method to return entities that are tracked by the context. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.Database.SqlQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.Database.SqlQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); The type of object returned by the query. The SQL query string. The parameters to apply to the SQL query string. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. A object that will execute the query when it is enumerated. Creates a raw SQL query that will return elements of the given type. The type can be any type that has properties that match the names of the columns returned from the query, or can be a simple primitive type. The type does not have to be an entity type. The results of this query are never tracked by the context even if the type of object returned is an entity type. Use the method to return entities that are tracked by the context. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); The type of object returned by the query. The SQL query string. The parameters to apply to the SQL query string. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. A object that will execute the query when it is enumerated. Executes the given DDL/DML command against the database. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); If there isn't an existing local or ambient transaction a new transaction will be used to execute the command. The command string. The parameters to apply to the command string. The result returned by the database after executing the command. Executes the given DDL/DML command against the database. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); Controls the creation of a transaction for this command. The command string. The parameters to apply to the command string. The result returned by the database after executing the command. Asynchronously executes the given DDL/DML command against the database. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. If there isn't an existing local transaction a new transaction will be used to execute the command. The command string. The parameters to apply to the command string. A task that represents the asynchronous operation. The task result contains the result returned by the database after executing the command. Asynchronously executes the given DDL/DML command against the database. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. Controls the creation of a transaction for this command. The command string. The parameters to apply to the command string. A task that represents the asynchronous operation. The task result contains the result returned by the database after executing the command. Asynchronously executes the given DDL/DML command against the database. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. If there isn't an existing local transaction a new transaction will be used to execute the command. The command string. A to observe while waiting for the task to complete. The parameters to apply to the command string. A task that represents the asynchronous operation. The task result contains the result returned by the database after executing the command. Asynchronously executes the given DDL/DML command against the database. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. Controls the creation of a transaction for this command. The command string. A to observe while waiting for the task to complete. The parameters to apply to the command string. A task that represents the asynchronous operation. The task result contains the result returned by the database after executing the command. Gets the of the current instance. The exact runtime type of the current instance. Gets the transaction the underlying store connection is enlisted in. May be null. Returns the connection being used by this context. This may cause the connection to be created if it does not already exist. Thrown if the context has been disposed. The connection factory to use when creating a from just a database name or a connection string. This is used when just a database name or connection string is given to or when the no database name or connection is given to DbContext in which case the name of the context class is passed to this factory in order to generate a DbConnection. By default, the instance to use is read from the application's .config file from the "EntityFramework DefaultConnectionFactory" entry in appSettings. If no entry is found in the config file then is used. Setting this property in code always overrides whatever value is found in the config file. Gets or sets the timeout value, in seconds, for all context operations. The default value is null, where null indicates that the default value of the underlying provider will be used. The timeout, in seconds, or null to use the provider default. Set this property to log the SQL generated by the to the given delegate. For example, to log to the console, set this property to . The format of the log text can be changed by creating a new formatter that derives from and setting it with . For more low-level control over logging/interception see and . DbModelBuilder is used to map CLR classes to a database schema. This code centric approach to building an Entity Data Model (EDM) model is known as 'Code First'. DbModelBuilder is typically used to configure a model by overriding DbContext.OnModelCreating(DbModelBuilder) . You can also use DbModelBuilder independently of DbContext to build a model and then construct a or . The recommended approach, however, is to use OnModelCreating in as the workflow is more intuitive and takes care of common tasks, such as caching the created model. Types that form your model are registered with DbModelBuilder and optional configuration can be performed by applying data annotations to your classes and/or using the fluent style DbModelBuilder API. When the Build method is called a set of conventions are run to discover the initial model. These conventions will automatically discover aspects of the model, such as primary keys, and will also process any data annotations that were specified on your classes. Finally any configuration that was performed using the DbModelBuilder API is applied. Configuration done via the DbModelBuilder API takes precedence over data annotations which in turn take precedence over the default conventions. Initializes a new instance of the class. The process of discovering the initial model will use the set of conventions included in the most recent version of the Entity Framework installed on your machine. Upgrading to newer versions of the Entity Framework may cause breaking changes in your application because new conventions may cause the initial model to be configured differently. There is an alternate constructor that allows a specific version of conventions to be specified. Initializes a new instance of the class that will use a specific set of conventions to discover the initial model. The version of conventions to be used. Excludes a type from the model. This is used to remove types from the model that were added by convention during initial model discovery. The type to be excluded. The same DbModelBuilder instance so that multiple calls can be chained. Configures the default database schema name. This default database schema name is used for database objects that do not have an explicitly configured schema name. The name of the default database schema. The same DbModelBuilder instance so that multiple calls can be chained. Excludes the specified type(s) from the model. This is used to remove types from the model that were added by convention during initial model discovery. The types to be excluded from the model. The same DbModelBuilder instance so that multiple calls can be chained. Registers an entity type as part of the model and returns an object that can be used to configure the entity. This method can be called multiple times for the same entity to perform multiple lines of configuration. The type to be registered or configured. The configuration object for the specified entity type. Registers an entity type as part of the model. The type to be registered. This method is provided as a convenience to allow entity types to be registered dynamically without the need to use MakeGenericMethod in order to call the normal generic Entity method. This method does not allow further configuration of the entity type using the fluent APIs since these APIs make extensive use of generic type parameters. Registers a type as a complex type in the model and returns an object that can be used to configure the complex type. This method can be called multiple times for the same type to perform multiple lines of configuration. The type to be registered or configured. The configuration object for the specified complex type. Begins configuration of a lightweight convention that applies to all entities and complex types in the model. A configuration object for the convention. Begins configuration of a lightweight convention that applies to all entities and complex types in the model that inherit from or implement the type specified by the generic argument. This method does not register types as part of the model. The type of the entities or complex types that this convention will apply to. A configuration object for the convention. Begins configuration of a lightweight convention that applies to all properties in the model. A configuration object for the convention. Begins configuration of a lightweight convention that applies to all primitive properties of the specified type in the model. The type of the properties that the convention will apply to. A configuration object for the convention. The convention will apply to both nullable and non-nullable properties of the specified type. Creates a based on the configuration performed using this builder. The connection is used to determine the database provider being used as this affects the database layer of the generated model. Connection to use to determine provider information. The model that was built. Creates a based on the configuration performed using this builder. Provider information must be specified because this affects the database layer of the generated model. For SqlClient the invariant name is 'System.Data.SqlClient' and the manifest token is the version year (i.e. '2005', '2008' etc.) The database provider that the model will be used with. The model that was built. Gets the of the current instance. The exact runtime type of the current instance. Provides access to the settings of this DbModelBuilder that deal with conventions. Gets the for this DbModelBuilder. The registrar allows derived entity and complex type configurations to be registered with this builder. A value from this enumeration can be provided directly to the class or can be used in the applied to a class derived from . The value used defines which version of the DbContext and DbModelBuilder conventions should be used when building a model from code--also known as "Code First". Using DbModelBuilderVersion.Latest ensures that all the latest functionality is available when upgrading to a new release of the Entity Framework. However, it may result in an application behaving differently with the new release than it did with a previous release. This can be avoided by using a specific version of the conventions, but if a version other than the latest is set then not all the latest functionality will be available. Indicates that the latest version of the and conventions should be used. Indicates that the version of the and conventions shipped with Entity Framework v4.1 should be used. Indicates that the version of the and conventions shipped with Entity Framework v5.0 when targeting .Net Framework 4 should be used. Indicates that the version of the and conventions shipped with Entity Framework v5.0 should be used. Indicates that the version of the and conventions shipped with Entity Framework v6.0 should be used. This attribute can be applied to a class derived from to set which version of the DbContext and conventions should be used when building a model from code--also known as "Code First". See the enumeration for details about DbModelBuilder versions. If the attribute is missing from DbContextthen DbContext will always use the latest version of the conventions. This is equivalent to using DbModelBuilderVersion.Latest. Initializes a new instance of the class. The conventions version to use. Gets the conventions version. The conventions version. A non-generic version of which can be used when the type of entity is not known at build time. Represents a non-generic LINQ to Entities query against a DbContext. Throws an exception indicating that binding directly to a store query is not supported. Instead populate a DbSet with data, for example by using the Load extension method, and then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to DbSet.Local.ToBindingList(). Never returns; always throws. Returns an which when enumerated will execute the query against the database. The query results. Returns an which when enumerated will execute the query against the database. The query results. Specifies the related objects to include in the query results. Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on the returned instance of the DbQuery<T>. Other instances of DbQuery<T> and the object context itself are not affected. Because the Include method returns the query object, you can call this method multiple times on an DbQuery<T> to specify multiple paths for the query. The dot-separated list of related objects to return in the query results. A new DbQuery<T> with the defined query path. Returns a new query where the entities returned will not be cached in the . A new query with NoTracking applied. Returns a new query that will stream the results instead of buffering. A new query with AsStreaming applied. Returns the equivalent generic object. The type of element for which the query was created. The generic set object. Returns a representation of the underlying query. The query string. Returns false. false . The IQueryable element type. The IQueryable LINQ Expression. The IQueryable provider. Creates an instance of a when called from the constructor of a derived type that will be used as a test double for DbSets. Methods and properties that will be used by the test double must be implemented by the test double except AsNoTracking, AsStreaming, an Include where the default implementation is a no-op. Finds an entity with the given primary key values. If an entity with the given primary key values exists in the context, then it is returned immediately without making a request to the store. Otherwise, a request is made to the store for an entity with the given primary key values and this entity, if found, is attached to the context and returned. If no entity is found in the context or the store, then null is returned. The ordering of composite key values is as defined in the EDM, which is in turn as defined in the designer, by the Code First fluent API, or by the DataMember attribute. The values of the primary key for the entity to be found. The entity found, or null. Thrown if multiple entities exist in the context with the primary key values given. Thrown if the type of entity is not part of the data model for this context. Thrown if the types of the key values do not match the types of the key values for the entity type to be found. Thrown if the context has been disposed. Asynchronously finds an entity with the given primary key values. If an entity with the given primary key values exists in the context, then it is returned immediately without making a request to the store. Otherwise, a request is made to the store for an entity with the given primary key values and this entity, if found, is attached to the context and returned. If no entity is found in the context or the store, then null is returned. The ordering of composite key values is as defined in the EDM, which is in turn as defined in the designer, by the Code First fluent API, or by the DataMember attribute. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The values of the primary key for the entity to be found. A task that represents the asynchronous find operation. The task result contains the entity found, or null. Thrown if multiple entities exist in the context with the primary key values given. Thrown if the type of entity is not part of the data model for this context. Thrown if the types of the key values do not match the types of the key values for the entity type to be found. Thrown if the context has been disposed. Asynchronously finds an entity with the given primary key values. If an entity with the given primary key values exists in the context, then it is returned immediately without making a request to the store. Otherwise, a request is made to the store for an entity with the given primary key values and this entity, if found, is attached to the context and returned. If no entity is found in the context or the store, then null is returned. The ordering of composite key values is as defined in the EDM, which is in turn as defined in the designer, by the Code First fluent API, or by the DataMember attribute. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. The values of the primary key for the entity to be found. A task that represents the asynchronous find operation. The task result contains the entity found, or null. Thrown if multiple entities exist in the context with the primary key values given. Thrown if the type of entity is not part of the data model for this context. Thrown if the types of the key values do not match the types of the key values for the entity type to be found. Thrown if the context has been disposed. Attaches the given entity to the context underlying the set. That is, the entity is placed into the context in the Unchanged state, just as if it had been read from the database. The entity to attach. The entity. Attach is used to repopulate a context with an entity that is known to already exist in the database. SaveChanges will therefore not attempt to insert an attached entity into the database because it is assumed to already be there. Note that entities that are already in the context in some other state will have their state set to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. Adds the given entity to the context underlying the set in the Added state such that it will be inserted into the database when SaveChanges is called. The entity to add. The entity. Note that entities that are already in the context in some other state will have their state set to Added. Add is a no-op if the entity is already in the context in the Added state. Adds the given collection of entities into context underlying the set with each entity being put into the Added state such that it will be inserted into the database when SaveChanges is called. The collection of entities to add. The collection of entities. Note that if is set to true (which is the default), then DetectChanges will be called once before adding any entities and will not be called again. This means that in some situations AddRange may perform significantly better than calling Add multiple times would do. Note that entities that are already in the context in some other state will have their state set to Added. AddRange is a no-op for entities that are already in the context in the Added state. Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges is called. Note that the entity must exist in the context in some other state before this method is called. The entity to remove. The entity. Note that if the entity exists in the context in the Added state, then this method will cause it to be detached from the context. This is because an Added entity is assumed not to exist in the database such that trying to delete it does not make sense. Removes the given collection of entities from the context underlying the set with each entity being put into the Deleted state such that it will be deleted from the database when SaveChanges is called. The collection of entities to delete. The collection of entities. Note that if is set to true (which is the default), then DetectChanges will be called once before delete any entities and will not be called again. This means that in some situations RemoveRange may perform significantly better than calling Remove multiple times would do. Note that if any entity exists in the context in the Added state, then this method will cause it to be detached from the context. This is because an Added entity is assumed not to exist in the database such that trying to delete it does not make sense. Creates a new instance of an entity for the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The entity instance, which may be a proxy. Creates a new instance of an entity for the type of this set or for a type derived from the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The type of entity to create. The entity instance, which may be a proxy. Returns the equivalent generic object. The type of entity for which the set was created. The generic set object. Creates a raw SQL query that will return entities in this set. By default, the entities returned are tracked by the context; this can be changed by calling AsNoTracking on the returned. Note that the entities returned are always of the type for this set and never of a derived type. If the table or tables queried may contain data for other entity types, then the SQL query must be written appropriately to ensure that only entities of the correct type are returned. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); The SQL query string. The parameters to apply to the SQL query string. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. A object that will execute the query when it is enumerated. Gets an that represents a local view of all Added, Unchanged, and Modified entities in this set. This local view will stay in sync as entities are added or removed from the context. Likewise, entities added to or removed from the local view will automatically be added to or removed from the context. This property can be used for data binding by populating the set with data, for example by using the Load extension method, and then binding to the local data through this property. For WPF bind to this property directly. For Windows Forms bind to the result of calling ToBindingList on this property The local view. A DbSet represents the collection of all entities in the context, or that can be queried from the database, of a given type. DbSet objects are created from a DbContext using the DbContext.Set method. Note that DbSet does not support MEST (Multiple Entity Sets per Type) meaning that there is always a one-to-one correlation between a type and a set. The type that defines the set. Represents a LINQ to Entities query against a DbContext. The type of entity to query for. Specifies the related objects to include in the query results. Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on the returned instance of the DbQuery<T>. Other instances of DbQuery<T> and the object context itself are not affected. Because the Include method returns the query object, you can call this method multiple times on an DbQuery<T> to specify multiple paths for the query. The dot-separated list of related objects to return in the query results. A new with the defined query path. Returns a new query where the entities returned will not be cached in the . A new query with NoTracking applied. Returns a new query that will stream the results instead of buffering. A new query with AsStreaming applied. Throws an exception indicating that binding directly to a store query is not supported. Instead populate a DbSet with data, for example by using the Load extension method, and then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to DbSet.Local.ToBindingList(). Never returns; always throws. Returns an which when enumerated will execute the query against the database. The query results. Returns an which when enumerated will execute the query against the database. The query results. Returns an which when enumerated will execute the query against the database. The query results. Returns an which when enumerated will execute the query against the database. The query results. Returns a representation of the underlying query. The query string. Returns a new instance of the non-generic class for this query. The query. A non-generic version. Returns false. false . The IQueryable element type. The IQueryable LINQ Expression. The IQueryable provider. An represents the collection of all entities in the context, or that can be queried from the database, of a given type. is a concrete implementation of IDbSet. was originally intended to allow creation of test doubles (mocks or fakes) for . However, this approach has issues in that adding new members to an interface breaks existing code that already implements the interface without the new members. Therefore, starting with EF6, no new members will be added to this interface and it is recommended that be used as the base class for test doubles. The type that defines the set. Finds an entity with the given primary key values. If an entity with the given primary key values exists in the context, then it is returned immediately without making a request to the store. Otherwise, a request is made to the store for an entity with the given primary key values and this entity, if found, is attached to the context and returned. If no entity is found in the context or the store, then null is returned. The ordering of composite key values is as defined in the EDM, which is in turn as defined in the designer, by the Code First fluent API, or by the DataMember attribute. The values of the primary key for the entity to be found. The entity found, or null. Adds the given entity to the context underlying the set in the Added state such that it will be inserted into the database when SaveChanges is called. The entity to add. The entity. Note that entities that are already in the context in some other state will have their state set to Added. Add is a no-op if the entity is already in the context in the Added state. Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges is called. Note that the entity must exist in the context in some other state before this method is called. The entity to remove. The entity. Note that if the entity exists in the context in the Added state, then this method will cause it to be detached from the context. This is because an Added entity is assumed not to exist in the database such that trying to delete it does not make sense. Attaches the given entity to the context underlying the set. That is, the entity is placed into the context in the Unchanged state, just as if it had been read from the database. The entity to attach. The entity. Attach is used to repopulate a context with an entity that is known to already exist in the database. SaveChanges will therefore not attempt to insert an attached entity into the database because it is assumed to already be there. Note that entities that are already in the context in some other state will have their state set to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. Creates a new instance of an entity for the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The entity instance, which may be a proxy. Creates a new instance of an entity for the type of this set or for a type derived from the type of this set. Note that this instance is NOT added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy. The type of entity to create. The entity instance, which may be a proxy. Gets an that represents a local view of all Added, Unchanged, and Modified entities in this set. This local view will stay in sync as entities are added or removed from the context. Likewise, entities added to or removed from the local view will automatically be added to or removed from the context. This property can be used for data binding by populating the set with data, for example by using the Load extension method, and then binding to the local data through this property. For WPF bind to this property directly. For Windows Forms bind to the result of calling ToBindingList on this property The local view. Creates an instance of a when called from the constructor of a derived type that will be used as a test double for DbSets. Methods and properties that will be used by the test double must be implemented by the test double except AsNoTracking, AsStreaming, an Include where the default implementation is a no-op. Finds an entity with the given primary key values. If an entity with the given primary key values exists in the context, then it is returned immediately without making a request to the store. Otherwise, a request is made to the store for an entity with the given primary key values and this entity, if found, is attached to the context and returned. If no entity is found in the context or the store, then null is returned. The ordering of composite key values is as defined in the EDM, which is in turn as defined in the designer, by the Code First fluent API, or by the DataMember attribute. The values of the primary key for the entity to be found. The entity found, or null. Thrown if multiple entities exist in the context with the primary key values given. Thrown if the type of entity is not part of the data model for this context. Thrown if the types of the key values do not match the types of the key values for the entity type to be found. Thrown if the context has been disposed. Asynchronously finds an entity with the given primary key values. If an entity with the given primary key values exists in the context, then it is returned immediately without making a request to the store. Otherwise, a request is made to the store for an entity with the given primary key values and this entity, if found, is attached to the context and returned. If no entity is found in the context or the store, then null is returned. The ordering of composite key values is as defined in the EDM, which is in turn as defined in the designer, by the Code First fluent API, or by the DataMember attribute. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. The values of the primary key for the entity to be found. A task that represents the asynchronous find operation. The task result contains the entity found, or null. Thrown if multiple entities exist in the context with the primary key values given. Thrown if the type of entity is not part of the data model for this context. Thrown if the types of the key values do not match the types of the key values for the entity type to be found. Thrown if the context has been disposed. Asynchronously finds an entity with the given primary key values. If an entity with the given primary key values exists in the context, then it is returned immediately without making a request to the store. Otherwise, a request is made to the store for an entity with the given primary key values and this entity, if found, is attached to the context and returned. If no entity is found in the context or the store, then null is returned. The ordering of composite key values is as defined in the EDM, which is in turn as defined in the designer, by the Code First fluent API, or by the DataMember attribute. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. The values of the primary key for the entity to be found. A task that represents the asynchronous find operation. The task result contains the entity found, or null. Adds the given collection of entities into context underlying the set with each entity being put into the Added state such that it will be inserted into the database when SaveChanges is called. The collection of entities to add. The collection of entities. Note that if is set to true (which is the default), then DetectChanges will be called once before adding any entities and will not be called again. This means that in some situations AddRange may perform significantly better than calling Add multiple times would do. Note that entities that are already in the context in some other state will have their state set to Added. AddRange is a no-op for entities that are already in the context in the Added state. Removes the given collection of entities from the context underlying the set with each entity being put into the Deleted state such that it will be deleted from the database when SaveChanges is called. The collection of entities to delete. The collection of entities. Note that if is set to true (which is the default), then DetectChanges will be called once before delete any entities and will not be called again. This means that in some situations RemoveRange may perform significantly better than calling Remove multiple times would do. Note that if any entity exists in the context in the Added state, then this method will cause it to be detached from the context. This is because an Added entity is assumed not to exist in the database such that trying to delete it does not make sense. Returns the equivalent non-generic object. The generic set object. The non-generic set object. Creates a raw SQL query that will return entities in this set. By default, the entities returned are tracked by the context; this can be changed by calling AsNoTracking on the returned. Note that the entities returned are always of the type for this set and never of a derived type. If the table or tables queried may contain data for other entity types, then the SQL query must be written appropriately to ensure that only entities of the correct type are returned. As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. context.Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. context.Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); The SQL query string. The parameters to apply to the SQL query string. If output parameters are used, their values will not be available until the results have been read completely. This is due to the underlying behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. A object that will execute the query when it is enumerated. An implementation of IDatabaseInitializer that will always recreate and optionally re-seed the database the first time that a context is used in the app domain. To seed the database, create a derived class and override the Seed method. The type of the context. Initializes a new instance of the class. Executes the strategy to initialize the database for the given context. The context. is null . A method that should be overridden to actually add data to the context for seeding. The default implementation does nothing. The context to seed. An implementation of IDatabaseInitializer that will DELETE, recreate, and optionally re-seed the database only if the model has changed since the database was created. The type of the context. Whether or not the model has changed is determined by the method. To seed the database create a derived class and override the Seed method. Initializes a new instance of the class. Executes the strategy to initialize the database for the given context. The context. is null . A method that should be overridden to actually add data to the context for seeding. The default implementation does nothing. The context to seed. Returned by the ChangeTracker method of to provide access to features of the context that are related to change tracking of entities. Gets objects for all the entities tracked by this context. The entries. Gets objects for all the entities of the given type tracked by this context. The type of the entity. The entries. Checks if the is tracking any new, deleted, or changed entities or relationships that will be sent to the database if is called. Functionally, calling this method is equivalent to checking if there are any entities or relationships in the Added, Updated, or Deleted state. Note that this method calls unless has been set to false. True if underlying have changes, else false. Detects changes made to the properties and relationships of POCO entities. Note that some types of entity (such as change tracking proxies and entities that derive from ) report changes automatically and a call to DetectChanges is not normally needed for these types of entities. Also note that normally DetectChanges is called automatically by many of the methods of and its related classes such that it is rare that this method will need to be called explicitly. However, it may be desirable, usually for performance reasons, to turn off this automatic calling of DetectChanges using the AutoDetectChangesEnabled flag from . Gets the of the current instance. The exact runtime type of the current instance. A non-generic version of the class. This is an abstract base class use to represent a scalar or complex property, or a navigation property of an entity. Scalar and complex properties use the derived class , reference navigation properties use the derived class , and collection navigation properties use the derived class . Validates this property. Collection of objects. Never null. If the entity is valid the collection will be empty. Gets the of the current instance. The exact runtime type of the current instance. Returns the equivalent generic object. The type of entity on which the member is declared. The type of the property. The equivalent generic object. Gets the name of the property. The property name. Gets or sets the current value of this property. The current value. The to which this member belongs. An entry for the entity that owns this member. Loads the collection of entities from the database. Note that entities that already exist in the context are not overwritten with values from the database. Asynchronously loads the collection of entities from the database. Note that entities that already exist in the context are not overwritten with values from the database. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A task that represents the asynchronous operation. Asynchronously loads the collection of entities from the database. Note that entities that already exist in the context are not overwritten with values from the database. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. Returns the query that would be used to load this collection from the database. The returned query can be modified using LINQ to perform filtering or operations in the database, such as counting the number of entities in the collection in the database without actually loading them. A query for the collection. Returns the equivalent generic object. The type of entity on which the member is declared. The type of the collection element. The equivalent generic object. Gets the property name. The property name. Gets or sets the current value of the navigation property. The current value is the entity that the navigation property references. The current value. Gets or sets a value indicating whether all entities of this collection have been loaded from the database. Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly with one of the Load methods will set the IsLoaded flag to true. IsLoaded can be explicitly set to true to prevent the related entities of this collection from being lazy-loaded. This can be useful if the application has caused a subset of related entities to be loaded into this collection and wants to prevent any other entities from being loaded automatically. Note that explict loading using one of the Load methods will load all related entities from the database regardless of whether or not IsLoaded is true. When any related entity in the collection is detached the IsLoaded flag is reset to false indicating that the not all related entities are now loaded. true if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise, false. The to which this navigation property belongs. An entry for the entity that owns this navigation property. Instances of this class are returned from the Collection method of and allow operations such as loading to be performed on the an entity's collection navigation properties. The type of the entity to which this property belongs. The type of the element in the collection of entities. This is an abstract base class use to represent a scalar or complex property, or a navigation property of an entity. Scalar and complex properties use the derived class , reference navigation properties use the derived class , and collection navigation properties use the derived class . The type of the entity to which this property belongs. The type of the property. Returns a new instance of the non-generic class for the property represented by this object. The object representing the property. A non-generic version. Validates this property. Collection of objects. Never null. If the entity is valid the collection will be empty. Gets the of the current instance. The exact runtime type of the current instance. Gets the name of the property. The name of the property. Gets or sets the current value of this property. The current value. The to which this member belongs. An entry for the entity that owns this member. Loads the collection of entities from the database. Note that entities that already exist in the context are not overwritten with values from the database. Asynchronously loads the collection of entities from the database. Note that entities that already exist in the context are not overwritten with values from the database. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A task that represents the asynchronous operation. Asynchronously loads the collection of entities from the database. Note that entities that already exist in the context are not overwritten with values from the database. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. Returns the query that would be used to load this collection from the database. The returned query can be modified using LINQ to perform filtering or operations in the database, such as counting the number of entities in the collection in the database without actually loading them. A query for the collection. Returns a new instance of the non-generic class for the navigation property represented by this object. The object representing the navigation property. A non-generic version. Gets the property name. The property name. Gets or sets the current value of the navigation property. The current value is the entity that the navigation property references. The current value. Gets or sets a value indicating whether all entities of this collection have been loaded from the database. Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly with one of the Load methods will set the IsLoaded flag to true. IsLoaded can be explicitly set to true to prevent the related entities of this collection from being lazy-loaded. This can be useful if the application has caused a subset of related entities to be loaded into this collection and wants to prevent any other entities from being loaded automatically. Note that explict loading using one of the Load methods will load all related entities from the database regardless of whether or not IsLoaded is true. When any related entity in the collection is detached the IsLoaded flag is reset to false indicating that the not all related entities are now loaded. true if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise, false. The to which this navigation property belongs. An entry for the entity that owns this navigation property. An immutable representation of an Entity Data Model (EDM) model that can be used to create an or can be passed to the constructor of a . For increased performance, instances of this type should be cached and re-used to construct contexts. Creates an instance of ObjectContext or class derived from ObjectContext. Note that an instance of DbContext can be created instead by using the appropriate DbContext constructor. If a derived ObjectContext is used, then it must have a public constructor with a single EntityConnection parameter. The connection passed is used by the ObjectContext created, but is not owned by the context. The caller must dispose of the connection once the context has been disposed. The type of context to create. An existing connection to a database for use by the context. The context. A non-generic version of the class. A non-generic version of the class. Returns the equivalent generic object. The type of entity on which the member is declared. The type of the property. The equivalent generic object. Gets the property name. The property name. Gets or sets the original value of this property. The original value. Gets or sets the current value of this property. The current value. Gets or sets a value indicating whether the value of this property has been modified since it was loaded from the database. Setting this value to false for a modified property will revert the change by setting the current value to the original value. If the result is that no properties of the entity are marked as modified, then the entity will be marked as Unchanged. Setting this value to false for properties of Added, Unchanged, or Deleted entities is a no-op. true if this instance is modified; otherwise, false . The to which this property belongs. An entry for the entity that owns this property. The of the property for which this is a nested property. This method will only return a non-null entry for properties of complex objects; it will return null for properties of the entity itself. An entry for the parent complex property, or null if this is an entity property. Gets an object that represents a nested property of this property. This method can be used for both scalar or complex properties. The name of the nested property. An object representing the nested property. Gets an object that represents a nested complex property of this property. The name of the nested property. An object representing the nested property. Returns the equivalent generic object. The type of entity on which the member is declared. The type of the complex property. The equivalent generic object. Instances of this class are returned from the ComplexProperty method of and allow access to the state of a complex property. The type of the entity to which this property belongs. The type of the property. Instances of this class are returned from the Property method of and allow access to the state of the scalar or complex property. The type of the entity to which this property belongs. The type of the property. Returns a new instance of the non-generic class for the property represented by this object. The object representing the property. A non-generic version. Gets the property name. The property name. Gets or sets the original value of this property. The original value. Gets or sets the current value of this property. The current value. Gets or sets a value indicating whether the value of this property has been modified since it was loaded from the database. true if this instance is modified; otherwise, false . The to which this property belongs. An entry for the entity that owns this property. The of the property for which this is a nested property. This method will only return a non-null entry for properties of complex objects; it will return null for properties of the entity itself. An entry for the parent complex property, or null if this is an entity property. Returns a new instance of the non-generic class for the property represented by this object. The object representing the property. A non-generic version. Gets an object that represents a nested property of this property. This method can be used for both scalar or complex properties. The name of the nested property. An object representing the nested property. Gets an object that represents a nested property of this property. This method can be used for both scalar or complex properties. The type of the nested property. The name of the nested property. An object representing the nested property. Gets an object that represents a nested property of this property. This method can be used for both scalar or complex properties. The type of the nested property. An expression representing the nested property. An object representing the nested property. Gets an object that represents a nested complex property of this property. The name of the nested property. An object representing the nested property. Gets an object that represents a nested complex property of this property. The type of the nested property. The name of the nested property. An object representing the nested property. Gets an object that represents a nested complex property of this property. The type of the nested property. An expression representing the nested property. An object representing the nested property. Describes the origin of the database connection string associated with a . The connection string was created by convention. The connection string was read from external configuration. The connection string was explicitly specified at runtime. The connection string was overriden by connection information supplied to DbContextInfo. Returned by the Configuration method of to provide access to configuration options for the context. Gets the of the current instance. The exact runtime type of the current instance. Gets or sets the value that determines whether SQL functions and commands should be always executed in a transaction. This flag determines whether a new transaction will be started when methods such as are executed outside of a transaction. Note that this does not change the behavior of . The default transactional behavior. Gets or sets a value indicating whether lazy loading of relationships exposed as navigation properties is enabled. Lazy loading is enabled by default. true if lazy loading is enabled; otherwise, false . Gets or sets a value indicating whether or not the framework will create instances of dynamically generated proxy classes whenever it creates an instance of an entity type. Note that even if proxy creation is enabled with this flag, proxy instances will only be created for entity types that meet the requirements for being proxied. Proxy creation is enabled by default. true if proxy creation is enabled; otherwise, false . Gets or sets a value indicating whether database null semantics are exhibited when comparing two operands, both of which are potentially nullable. The default value is false. For example (operand1 == operand2) will be translated as: (operand1 = operand2) if UseDatabaseNullSemantics is true, respectively (((operand1 = operand2) AND (NOT (operand1 IS NULL OR operand2 IS NULL))) OR ((operand1 IS NULL) AND (operand2 IS NULL))) if UseDatabaseNullSemantics is false. true if database null comparison behavior is enabled, otherwise false . Gets or sets a value indicating whether the method is called automatically by methods of and related classes. The default value is true. true if should be called automatically; otherwise, false. Gets or sets a value indicating whether tracked entities should be validated automatically when is invoked. The default value is true. Provides runtime information about a given type. Creates a new instance representing a given type. The type deriving from . Creates a new instance representing a given targeting a specific database. The type deriving from . Connection information for the database to be used. Creates a new instance representing a given type. An external list of connection strings can be supplied and will be used during connection string resolution in place of any connection strings specified in external configuration files. It is preferable to use the constructor that accepts the entire config document instead of using this constructor. Providing the entire config document allows DefaultConnectionFactroy entries in the config to be found in addition to explicitly specified connection strings. The type deriving from . A collection of connection strings. Creates a new instance representing a given type. An external config object (e.g. app.config or web.config) can be supplied and will be used during connection string resolution. This includes looking for connection strings and DefaultConnectionFactory entries. The type deriving from . An object representing the config file. Creates a new instance representing a given , targeting a specific database. An external config object (e.g. app.config or web.config) can be supplied and will be used during connection string resolution. This includes looking for connection strings and DefaultConnectionFactory entries. The type deriving from . An object representing the config file. Connection information for the database to be used. Creates a new instance representing a given type. A can be supplied in order to override the default determined provider used when constructing the underlying EDM model. The type deriving from . A specifying the underlying ADO.NET provider to target. Creates a new instance representing a given type. An external config object (e.g. app.config or web.config) can be supplied and will be used during connection string resolution. This includes looking for connection strings and DefaultConnectionFactory entries. A can be supplied in order to override the default determined provider used when constructing the underlying EDM model. This can be useful to prevent EF from connecting to discover a manifest token. The type deriving from . An object representing the config file. A specifying the underlying ADO.NET provider to target. If instances of the underlying type can be created, returns a new instance; otherwise returns null. A instance. The concrete type. Whether or not instances of the underlying type can be created. The connection string used by the underlying type. The connection string name used by the underlying type. The ADO.NET provider name of the connection used by the underlying type. The origin of the connection string used by the underlying type. An action to be run on the DbModelBuilder after OnModelCreating has been run on the context. A non-generic version of the class. Queries the database for copies of the values of the tracked entity as they currently exist in the database. Note that changing the values in the returned dictionary will not update the values in the database. If the entity is not found in the database then null is returned. The store values. Asynchronously queries the database for copies of the values of the tracked entity as they currently exist in the database. Note that changing the values in the returned dictionary will not update the values in the database. If the entity is not found in the database then null is returned. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A task that represents the asynchronous operation. The task result contains the store values. Asynchronously queries the database for copies of the values of the tracked entity as they currently exist in the database. Note that changing the values in the returned dictionary will not update the values in the database. If the entity is not found in the database then null is returned. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the store values. Reloads the entity from the database overwriting any property values with values from the database. The entity will be in the Unchanged state after calling this method. Asynchronously reloads the entity from the database overwriting any property values with values from the database. The entity will be in the Unchanged state after calling this method. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A task that represents the asynchronous operation. Asynchronously reloads the entity from the database overwriting any property values with values from the database. The entity will be in the Unchanged state after calling this method. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. Gets an object that represents the reference (i.e. non-collection) navigation property from this entity to another entity. The name of the navigation property. An object representing the navigation property. Gets an object that represents the collection navigation property from this entity to a collection of related entities. The name of the navigation property. An object representing the navigation property. Gets an object that represents a scalar or complex property of this entity. The name of the property. An object representing the property. Gets an object that represents a complex property of this entity. The name of the complex property. An object representing the complex property. Gets an object that represents a member of the entity. The runtime type of the returned object will vary depending on what kind of member is asked for. The currently supported member types and their return types are: Reference navigation property: . Collection navigation property: . Primitive/scalar property: . Complex property: . The name of the member. An object representing the member. Returns a new instance of the generic class for the given generic type for the tracked entity represented by this object. Note that the type of the tracked entity must be compatible with the generic type or an exception will be thrown. The type of the entity. A generic version. Validates this instance and returns validation result. Entity validation result. Possibly null if DbContext.ValidateEntity(DbEntityEntry, IDictionary{object,object}) method is overridden. Determines whether the specified is equal to this instance. Two instances are considered equal if they are both entries for the same entity on the same . The to compare with this instance. true if the specified is equal to this instance; otherwise, false . Determines whether the specified is equal to this instance. Two instances are considered equal if they are both entries for the same entity on the same . The to compare with this instance. true if the specified is equal to this instance; otherwise, false . Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the of the current instance. The exact runtime type of the current instance. Gets the entity. The entity. Gets or sets the state of the entity. The state. Gets the current property values for the tracked entity represented by this object. The current values. Gets the original property values for the tracked entity represented by this object. The original values are usually the entity's property values as they were when last queried from the database. The original values. Instances of this class provide access to information about and control of entities that are being tracked by the . Use the Entity or Entities methods of the context to obtain objects of this type. The type of the entity. Queries the database for copies of the values of the tracked entity as they currently exist in the database. Note that changing the values in the returned dictionary will not update the values in the database. If the entity is not found in the database then null is returned. The store values. Asynchronously queries the database for copies of the values of the tracked entity as they currently exist in the database. Note that changing the values in the returned dictionary will not update the values in the database. If the entity is not found in the database then null is returned. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A task that represents the asynchronous operation. The task result contains the store values. Asynchronously queries the database for copies of the values of the tracked entity as they currently exist in the database. Note that changing the values in the returned dictionary will not update the values in the database. If the entity is not found in the database then null is returned. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. The task result contains the store values. Reloads the entity from the database overwriting any property values with values from the database. The entity will be in the Unchanged state after calling this method. Asynchronously reloads the entity from the database overwriting any property values with values from the database. The entity will be in the Unchanged state after calling this method. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A task that represents the asynchronous operation. Asynchronously reloads the entity from the database overwriting any property values with values from the database. The entity will be in the Unchanged state after calling this method. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. Gets an object that represents the reference (i.e. non-collection) navigation property from this entity to another entity. The name of the navigation property. An object representing the navigation property. Gets an object that represents the reference (i.e. non-collection) navigation property from this entity to another entity. The type of the property. The name of the navigation property. An object representing the navigation property. Gets an object that represents the reference (i.e. non-collection) navigation property from this entity to another entity. The type of the property. An expression representing the navigation property. An object representing the navigation property. Gets an object that represents the collection navigation property from this entity to a collection of related entities. The name of the navigation property. An object representing the navigation property. Gets an object that represents the collection navigation property from this entity to a collection of related entities. The type of elements in the collection. The name of the navigation property. An object representing the navigation property. Gets an object that represents the collection navigation property from this entity to a collection of related entities. The type of elements in the collection. An expression representing the navigation property. An object representing the navigation property. Gets an object that represents a scalar or complex property of this entity. The name of the property. An object representing the property. Gets an object that represents a scalar or complex property of this entity. The type of the property. The name of the property. An object representing the property. Gets an object that represents a scalar or complex property of this entity. The type of the property. An expression representing the property. An object representing the property. Gets an object that represents a complex property of this entity. The name of the complex property. An object representing the complex property. Gets an object that represents a complex property of this entity. The type of the complex property. The name of the complex property. An object representing the complex property. Gets an object that represents a complex property of this entity. The type of the complex property. An expression representing the complex property. An object representing the complex property. Gets an object that represents a member of the entity. The runtime type of the returned object will vary depending on what kind of member is asked for. The currently supported member types and their return types are: Reference navigation property: . Collection navigation property: . Primitive/scalar property: . Complex property: . The name of the member. An object representing the member. Gets an object that represents a member of the entity. The runtime type of the returned object will vary depending on what kind of member is asked for. The currently supported member types and their return types are: Reference navigation property: . Collection navigation property: . Primitive/scalar property: . Complex property: . The type of the member. The name of the member. An object representing the member. Returns a new instance of the non-generic class for the tracked entity represented by this object. The object representing the tracked entity. A non-generic version. Validates this instance and returns validation result. Entity validation result. Possibly null if DbContext.ValidateEntity(DbEntityEntry, IDictionary{object, object}) method is overridden. Determines whether the specified is equal to this instance. Two instances are considered equal if they are both entries for the same entity on the same . The to compare with this instance. true if the specified is equal to this instance; otherwise, false . Determines whether the specified is equal to this instance. Two instances are considered equal if they are both entries for the same entity on the same . The to compare with this instance. true if the specified is equal to this instance; otherwise, false . Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the of the current instance. The exact runtime type of the current instance. Gets the entity. The entity. Gets or sets the state of the entity. The state. Gets the current property values for the tracked entity represented by this object. The current values. Gets the original property values for the tracked entity represented by this object. The original values are usually the entity's property values as they were when last queried from the database. The original values. Represents an Entity Data Model (EDM) created by the . The Compile method can be used to go from this EDM representation to a which is a compiled snapshot of the model suitable for caching and creation of or instances. Creates a for this mode which is a compiled snapshot suitable for caching and creation of instances. The compiled model. Gets the provider information. Gets the provider manifest. Gets the conceptual model. Gets the store model. Gets the mapping model. A collection of all the properties for an underlying entity or complex object. An instance of this class can be converted to an instance of the generic class using the Cast method. Complex properties in the underlying entity or complex object are represented in the property values as nested instances of this class. Creates an object of the underlying type for this dictionary and hydrates it with property values from this dictionary. The properties of this dictionary copied into a new object. Sets the values of this dictionary by reading values out of the given object. The given object can be of any type. Any property on the object with a name that matches a property name in the dictionary and can be read will be read. Other properties will be ignored. This allows, for example, copying of properties from simple Data Transfer Objects (DTOs). The object to read values from. Creates a new dictionary containing copies of all the properties in this dictionary. Changes made to the new dictionary will not be reflected in this dictionary and vice versa. A clone of this dictionary. Sets the values of this dictionary by reading values from another dictionary. The other dictionary must be based on the same type as this dictionary, or a type derived from the type for this dictionary. The dictionary to read values from. Gets the value of the property just like using the indexed property getter but typed to the type of the generic parameter. This is useful especially with nested dictionaries to avoid writing expressions with lots of casts. The type of the property. Name of the property. The value of the property. Gets the of the current instance. The exact runtime type of the current instance. Gets the set of names of all properties in this dictionary as a read-only set. The property names. Gets or sets the value of the property with the specified property name. The value may be a nested instance of this class. The property name. The value of the property. Groups a pair of strings that identify a provider and server version together into a single object. Instances of this class act as the key for resolving a for a specific provider from a . This is typically used when registering spatial services in or when the spatial services specific to a provider is resolved by an implementation of . Creates a new object for a given provider invariant name and manifest token. A string that identifies that provider. For example, the SQL Server provider uses the string "System.Data.SqlCient". A string that identifies that version of the database server being used. For example, the SQL Server provider uses the string "2008" for SQL Server 2008. This cannot be null but may be empty. The manifest token is sometimes referred to as a version hint. A string that identifies that provider. For example, the SQL Server provider uses the string "System.Data.SqlCient". A string that identifies that version of the database server being used. For example, the SQL Server provider uses the string "2008" for SQL Server 2008. This cannot be null but may be empty. A non-generic version of the class. Loads the entity from the database. Note that if the entity already exists in the context, then it will not overwritten with values from the database. Asynchronously loads the entity from the database. Note that if the entity already exists in the context, then it will not overwritten with values from the database. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A task that represents the asynchronous operation. Asynchronously loads the entity from the database. Note that if the entity already exists in the context, then it will not overwritten with values from the database. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. Returns the query that would be used to load this entity from the database. The returned query can be modified using LINQ to perform filtering or operations in the database. A query for the entity. Returns the equivalent generic object. The type of entity on which the member is declared. The type of the property. The equivalent generic object. Gets the property name. The property name. Gets or sets the current value of the navigation property. The current value is the entity that the navigation property references. The current value. Gets or sets a value indicating whether the entity has been loaded from the database. Loading the related entity from the database either using lazy-loading, as part of a query, or explicitly with one of the Load methods will set the IsLoaded flag to true. IsLoaded can be explicitly set to true to prevent the related entity from being lazy-loaded. Note that explict loading using one of the Load methods will load the related entity from the database regardless of whether or not IsLoaded is true. When a related entity is detached the IsLoaded flag is reset to false indicating that the related entity is no longer loaded. true if the entity is loaded or the IsLoaded has been explicitly set to true; otherwise, false. The to which this navigation property belongs. An entry for the entity that owns this navigation property. Instances of this class are returned from the Reference method of and allow operations such as loading to be performed on the an entity's reference navigation properties. The type of the entity to which this property belongs. The type of the property. Loads the entity from the database. Note that if the entity already exists in the context, then it will not overwritten with values from the database. Asynchronously loads the entity from the database. Note that if the entity already exists in the context, then it will not overwritten with values from the database. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A task that represents the asynchronous operation. Asynchronously loads the entity from the database. Note that if the entity already exists in the context, then it will not overwritten with values from the database. Multiple active operations on the same context instance are not supported. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. A to observe while waiting for the task to complete. A task that represents the asynchronous operation. Returns the query that would be used to load this entity from the database. The returned query can be modified using LINQ to perform filtering or operations in the database. A query for the entity. Returns a new instance of the non-generic class for the navigation property represented by this object. The object representing the navigation property. A non-generic version. Gets the property name. The property name. Gets or sets the current value of the navigation property. The current value is the entity that the navigation property references. The current value. Gets or sets a value indicating whether the entity has been loaded from the database. Loading the related entity from the database either using lazy-loading, as part of a query, or explicitly with one of the Load methods will set the IsLoaded flag to true. IsLoaded can be explicitly set to true to prevent the related entity from being lazy-loaded. Note that explict loading using one of the Load methods will load the related entity from the database regardless of whether or not IsLoaded is true. When a related entity is detached the IsLoaded flag is reset to false indicating that the related entity is no longer loaded. true if the entity is loaded or the IsLoaded has been explicitly set to true; otherwise, false. The to which this navigation property belongs. An entry for the entity that owns this navigation property. Exception thrown by when it was expected that SaveChanges for an entity would result in a database update but in fact no rows in the database were affected. This usually indicates that the database has been concurrently updated such that a concurrency token that was expected to match did not actually match. Note that state entries referenced by this exception are not serialized due to security and accesses to the state entries after serialization will return null. Exception thrown by when the saving of changes to the database fails. Note that state entries referenced by this exception are not serialized due to security and accesses to the state entries after serialization will return null. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Gets objects that represents the entities that could not be saved to the database. The entries representing the entities that could not be saved. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Represents an entity used to store metadata about an EDM in the database. Attempts to get the model hash calculated by Code First for the given context. This method will return null if the context is not being used in Code First mode. The context. The hash string. Gets or sets the ID of the metadata entity, which is currently always 1. The id. Gets or sets the model hash which is used to check whether the model has changed since the database was created from it. The model hash. Contains methods used to access the Entity Data Model created by Code First in the EDMX form. These methods are typically used for debugging when there is a need to look at the model that Code First creates internally. Uses Code First with the given context and writes the resulting Entity Data Model to the given writer in EDMX form. This method can only be used with context instances that use Code First and create the model internally. The method cannot be used for contexts created using Database First or Model First, for contexts created using a pre-existing , or for contexts created using a pre-existing . The context. The writer. Writes the Entity Data Model represented by the given to the given writer in EDMX form. An object representing the EDM. The writer. A factory for creating derived instances. Implement this interface to enable design-time services for context types that do not have a public default constructor. At design-time, derived instances can be created in order to enable specific design-time experiences such as model rendering, DDL generation etc. To enable design-time instantiation for derived types that do not have a public, default constructor, implement this interface. Design-time services will auto-discover implementations of this interface that are in the same assembly as the derived type. The type of the context. Creates a new instance of a derived type. An instance of TContext This convention causes DbModelBuilder to include metadata about the model when it builds the model. When creates a model by convention it will add this convention to the list of those used by the DbModelBuilder. This will then result in model metadata being written to the database if the DbContext is used to create the database. This can then be used as a quick check to see if the model has changed since the last time it was used against the database. This convention can be removed from the conventions by overriding the OnModelCreating method on a derived DbContext class. This convention uses the name of the derived class as the container for the conceptual model built by Code First. Applies the convention to the given model. The container to apply the convention to. The model. This convention uses the namespace of the derived class as the namespace of the conceptual model built by Code First. Instances of this class are used internally to create constant expressions for that are inserted into the expression tree to replace references to and . The type of the element. The public property expected in the LINQ expression tree. The query. Instances of this class are used to create DbConnection objects for SQL Server Compact Edition based on a given database name or connection string. It is necessary to provide the provider invariant name of the SQL Server Compact Edition to use when creating an instance of this class. This is because different versions of SQL Server Compact Editions use different invariant names. An instance of this class can be set on the class to cause all DbContexts created with no connection information or just a database name or connection string to use SQL Server Compact Edition by default. This class is immutable since multiple threads may access instances simultaneously when creating connections. Creates a new connection factory with empty (default) DatabaseDirectory and BaseConnectionString properties. The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. Creates a new connection factory with the given DatabaseDirectory and BaseConnectionString properties. The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. The path to prepend to the database name that will form the file name used by SQL Server Compact Edition when it creates or reads the database file. An empty string means that SQL Server Compact Edition will use its default for the database file location. The connection string to use for options to the database other than the 'Data Source'. The Data Source will be prepended to this string based on the database name when CreateConnection is called. Creates a connection for SQL Server Compact Edition based on the given database name or connection string. If the given string contains an '=' character then it is treated as a full connection string, otherwise it is treated as a database name only. The database name or connection string. An initialized DbConnection. The path to prepend to the database name that will form the file name used by SQL Server Compact Edition when it creates or reads the database file. The default value is "|DataDirectory|", which means the file will be placed in the designated data directory. The connection string to use for options to the database other than the 'Data Source'. The Data Source will be prepended to this string based on the database name when CreateConnection is called. The default is the empty string, which means no other options will be used. The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. Instances of this class are used to create DbConnection objects for SQL Server based on a given database name or connection string. By default, the connection is made to '.\SQLEXPRESS'. This can be changed by changing the base connection string when constructing a factory instance. An instance of this class can be set on the class to cause all DbContexts created with no connection information or just a database name or connection string to use SQL Server by default. This class is immutable since multiple threads may access instances simultaneously when creating connections. Creates a new connection factory with a default BaseConnectionString property of 'Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True;'. Creates a new connection factory with the given BaseConnectionString property. The connection string to use for options to the database other than the 'Initial Catalog'. The 'Initial Catalog' will be prepended to this string based on the database name when CreateConnection is called. Creates a connection for SQL Server based on the given database name or connection string. If the given string contains an '=' character then it is treated as a full connection string, otherwise it is treated as a database name only. The database name or connection string. An initialized DbConnection. The connection string to use for options to the database other than the 'Initial Catalog'. The 'Initial Catalog' will be prepended to this string based on the database name when CreateConnection is called. The default is 'Data Source=.\SQLEXPRESS; Integrated Security=True;'. This attribute can be applied to either an entire derived class or to individual or properties on that class. When applied any discovered or properties will still be included in the model but will not be automatically initialized. Thrown when a context is generated from the templates in Database First or Model First mode and is then used in Code First mode. Code generated using the T4 templates provided for Database First and Model First use may not work correctly if used in Code First mode. To use these classes with Code First please add any additional configuration using attributes or the DbModelBuilder API and then remove the code that throws this exception. Initializes a new instance of the class. Initializes a new instance of the class. The object that holds the serialized object data. The contextual information about the source or destination. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Allows configuration to be performed for an complex type in a model. A ComplexTypeConfiguration can be obtained via the ComplexType method on or a custom type derived from ComplexTypeConfiguration can be registered via the Configurations property on . The complex type to be configured. Allows configuration to be performed for a type in a model. The type to be configured. Configures a property that is defined on this type. The type of the property being configured. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. The type of the property being configured. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is defined on this type. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Gets the of the current instance. The exact runtime type of the current instance. Initializes a new instance of ComplexTypeConfiguration Excludes a property from the model so that it will not be mapped to the database. The type of the property to be ignored. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The same ComplexTypeConfiguration instance so that multiple calls can be chained. Allows derived configuration classes for entities and complex types to be registered with a . Derived configuration classes are created by deriving from or and using a type to be included in the model as the generic parameter. Configuration can be performed without creating derived configuration classes via the Entity and ComplexType methods on . Discovers all types that inherit from or in the given assembly and adds an instance of each discovered type to this registrar. Note that only types that are abstract or generic type definitions are skipped. Every type that is discovered and added must provide a parameterless constructor. The assembly containing model configurations to add. The same ConfigurationRegistrar instance so that multiple calls can be chained. Adds an to the . Only one can be added for each type in a model. The entity type being configured. The entity type configuration to be added. The same ConfigurationRegistrar instance so that multiple calls can be chained. Adds an to the . Only one can be added for each type in a model. The complex type being configured. The complex type configuration to be added The same ConfigurationRegistrar instance so that multiple calls can be chained. Gets the of the current instance. The exact runtime type of the current instance. Allows the conventions used by a instance to be customized. The default conventions can be found in the System.Data.Entity.ModelConfiguration.Conventions namespace. Discover all conventions in the given assembly and add them to the . This method add all conventions ordered by type name. The order in which conventions are added can have an impact on how they behave because it governs the order in which they are run. All conventions found must have a parameterless public constructor. The assembly containing conventions to be added. Enables one or more conventions for the . The conventions to be enabled. Enables a convention for the . The type of the convention to be enabled. Enables a convention for the . This convention will run after the one specified. The type of the convention after which the enabled one will run. The convention to enable. Enables a configuration convention for the . This convention will run before the one specified. The type of the convention before which the enabled one will run. The convention to enable. Disables one or more conventions for the . The conventions to be disabled. Disables a convention for the . The default conventions that are available for removal can be found in the System.Data.Entity.ModelConfiguration.Conventions namespace. The type of the convention to be disabled. Gets the of the current instance. The exact runtime type of the current instance. Configures the table and column mapping for an entity type or a sub-set of properties from an entity type. This configuration functionality is available via the Code First Fluent API, see . The entity type to be mapped. Initializes a new instance of the class. Configures the properties that will be included in this mapping fragment. If this method is not called then all properties that have not yet been included in a mapping fragment will be configured. An anonymous type including the properties to be mapped. A lambda expression to an anonymous type that contains the properties to be mapped. C#: t => new { t.Id, t.Property1, t.Property2 } VB.Net: Function(t) New With { p.Id, t.Property1, t.Property2 } Configures a property that is included in this mapping fragment. The type of the property being configured. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. The type of the property being configured. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Configures a property that is included in this mapping fragment. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to configure the property. Re-maps all properties inherited from base types. When configuring a derived type to be mapped to a separate table this will cause all properties to be included in the table rather than just the non-inherited properties. This is known as Table per Concrete Type (TPC) mapping. The same configuration instance so that multiple calls can be chained. Configures the table name to be mapped to. Name of the table. The same configuration instance so that multiple calls can be chained. Configures the table name and schema to be mapped to. Name of the table. Schema of the table. The same configuration instance so that multiple calls can be chained. Sets an annotation in the model for the table to which this entity is mapped. The annotation value can later be used when processing the table such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Passing a null value clears any annotation with the given name on the column that had been previously set. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same configuration instance so that multiple calls can be chained. Configures the discriminator column used to differentiate between types in an inheritance hierarchy. The name of the discriminator column. A configuration object to further configure the discriminator column and values. Configures the discriminator condition used to differentiate between types in an inheritance hierarchy. The type of the property being used to discriminate between types. A lambda expression representing the property being used to discriminate between types. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object to further configure the discriminator condition. Gets the of the current instance. The exact runtime type of the current instance. Used to configure a column with length facets for an entity type or complex type. This configuration functionality is exposed by the Code First Fluent API, see . Configures a primitive column from an entity type. Configures the primitive column to be optional. The same instance so that multiple calls can be chained. Configures the primitive column to be required. The same instance so that multiple calls can be chained. Configures the data type of the primitive column used to store the property. The same instance so that multiple calls can be chained. The name of the database provider specific data type. Configures the order of the primitive column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The same instance so that multiple calls can be chained. The order that this column should appear in the database table. Gets the of the current instance. The exact runtime type of the current instance. Configures the column to allow the maximum length supported by the database provider. The same instance so that multiple calls can be chained. Configures the column to have the specified maximum length. The same instance so that multiple calls can be chained. The maximum length for the column. Setting the value to null will remove any maximum length restriction from the column and a default length will be used for the database column. Configures the column to be fixed length. The same instance so that multiple calls can be chained. Configures the column to be variable length. The same instance so that multiple calls can be chained. Configures a condition used to discriminate between types in an inheritance hierarchy based on the values assigned to a property. This configuration functionality is available via the Code First Fluent API, see . Configures the condition to require a value in the property. Rows that do not have a value assigned to column that this property is stored in are assumed to be of the base type of this entity type. Gets the of the current instance. The exact runtime type of the current instance. Configures a database column used to store a string values. This configuration functionality is available via the Code First Fluent API, see . Configures the column to allow the maximum length supported by the database provider. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the property to have the specified maximum length. The maximum length for the property. Setting 'null' will result in a default length being used for the column. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the column to be fixed length. Use HasMaxLength to set the length that the property is fixed to. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the column to be variable length. Columns are variable length by default. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the column to be optional. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the column to be required. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the data type of the database column. Name of the database provider specific data type. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the order of the database column. The order that this column should appear in the database table. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures the column to support Unicode string content. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures whether or not the column supports Unicode string content. Value indicating if the column supports Unicode string content or not. Specifying 'null' will remove the Unicode facet from the column. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same StringColumnConfiguration instance so that multiple calls can be chained. Configures a discriminator column used to differentiate between types in an inheritance hierarchy. This configuration functionality is available via the Code First Fluent API, see . Configures the discriminator value used to identify the entity type being configured from other types in the inheritance hierarchy. Type of the discriminator value. The value to be used to identify the entity type. A configuration object to configure the column used to store discriminator values. Configures the discriminator value used to identify the entity type being configured from other types in the inheritance hierarchy. Type of the discriminator value. The value to be used to identify the entity type. A configuration object to configure the column used to store discriminator values. Configures the discriminator value used to identify the entity type being configured from other types in the inheritance hierarchy. The value to be used to identify the entity type. A configuration object to configure the column used to store discriminator values. Gets the of the current instance. The exact runtime type of the current instance. Configures a many relationship from an entity type. The entity type that the relationship originates from. The entity type that the relationship targets. Configures the relationship to be many:many with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be many:many without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be many:required with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be many:required without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be many:optional with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be many:optional without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Gets the of the current instance. The exact runtime type of the current instance. Configures an optional relationship from an entity type. The entity type that the relationship originates from. The entity type that the relationship targets. Configures the relationship to be optional:many with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:many without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:required with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:required without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:optional with a navigation property on the other side of the relationship. The entity type being configured will be the dependent and contain a foreign key to the principal. The entity type that the relationship targets will be the principal in the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:optional without a navigation property on the other side of the relationship. The entity type being configured will be the dependent and contain a foreign key to the principal. The entity type that the relationship targets will be the principal in the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:optional with a navigation property on the other side of the relationship. The entity type being configured will be the principal in the relationship. The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. A lambda expression representing the navigation property on the other end of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be optional:optional without a navigation property on the other side of the relationship. The entity type being configured will be the principal in the relationship. The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. A configuration object that can be used to further configure the relationship. Gets the of the current instance. The exact runtime type of the current instance. Configures an required relationship from an entity type. The entity type that the relationship originates from. The entity type that the relationship targets. Configures the relationship to be required:many with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be required:many without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be required:optional with a navigation property on the other side of the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be required:optional without a navigation property on the other side of the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be required:required with a navigation property on the other side of the relationship. The entity type being configured will be the dependent and contain a foreign key to the principal. The entity type that the relationship targets will be the principal in the relationship. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be required:required without a navigation property on the other side of the relationship. The entity type being configured will be the dependent and contain a foreign key to the principal. The entity type that the relationship targets will be the principal in the relationship. A configuration object that can be used to further configure the relationship. Configures the relationship to be required:required with a navigation property on the other side of the relationship. The entity type being configured will be the principal in the relationship. The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures the relationship to be required:required without a navigation property on the other side of the relationship. The entity type being configured will be the principal in the relationship. The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. A configuration object that can be used to further configure the relationship. Gets the of the current instance. The exact runtime type of the current instance. Base class for performing configuration of a relationship. This configuration functionality is available via the Code First Fluent API, see . Configures a relationship that can support cascade on delete functionality. Configures cascade delete to be on for the relationship. Configures whether or not cascade delete is on for the relationship. Value indicating if cascade delete is on or not. Gets the of the current instance. The exact runtime type of the current instance. Configures a relationship that can support foreign key properties that are exposed in the object model. This configuration functionality is available via the Code First Fluent API, see . The dependent entity type. Configures a relationship that can only support foreign key properties that are not exposed in the object model. This configuration functionality is available via the Code First Fluent API, see . Configures the relationship to use foreign key property(s) that are not exposed in the object model. The column(s) and table can be customized by specifying a configuration action. If an empty configuration action is specified then column name(s) will be generated by convention. If foreign key properties are exposed in the object model then use the HasForeignKey method. Not all relationships support exposing foreign key properties in the object model. Action that configures the foreign key column(s) and table. A configuration object that can be used to further configure the relationship. Configures the relationship to use foreign key property(s) that are exposed in the object model. If the foreign key property(s) are not exposed in the object model then use the Map method. The type of the key. A lambda expression representing the property to be used as the foreign key. If the foreign key is made up of multiple properties then specify an anonymous type including the properties. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the principal entity type. A configuration object that can be used to further configure the relationship. Configures the table and column mapping of a relationship that does not expose foreign key properties in the object model. This configuration functionality is available via the Code First Fluent API, see . Configures the name of the column(s) for the foreign key. The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. Sets an annotation in the model for a database column that has been configured with . The annotation value can later be used when processing the column such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Passing a null value clears any annotation with the given name on the column that had been previously set. The name of the column that was configured with the HasKey method. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures the table name that the foreign key column(s) reside in. The table that is specified must already be mapped for the entity type. If you want the foreign key(s) to reside in their own table then use the Map method on to perform entity splitting to create the table with just the primary key property. Foreign keys can then be added to the table via this method. Name of the table. The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures the table name and schema that the foreign key column(s) reside in. The table that is specified must already be mapped for the entity type. If you want the foreign key(s) to reside in their own table then use the Map method on to perform entity splitting to create the table with just the primary key property. Foreign keys can then be added to the table via this method. Name of the table. Schema of the table. The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures the table and column mapping of a many:many relationship. This configuration functionality is available via the Code First Fluent API, see . Configures the join table name for the relationship. Name of the table. The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures the join table name and schema for the relationship. Name of the table. Schema of the table. The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. Sets an annotation in the model for the join table. The annotation value can later be used when processing the table such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Passing a null value clears any annotation with the given name on the column that had been previously set. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same configuration instance so that multiple calls can be chained. Configures the name of the column(s) for the left foreign key. The left foreign key points to the parent entity of the navigation property specified in the HasMany call. The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. Configures the name of the column(s) for the right foreign key. The right foreign key points to the parent entity of the the navigation property specified in the WithMany call. The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. Determines whether the specified object is equal to the current object. true if the specified object is equal to the current object; otherwise, false. The object to compare with the current object. Configures a many:many relationship. This configuration functionality is available via the Code First Fluent API, see . The type of the parent entity of the navigation property specified in the HasMany call. The type of the parent entity of the navigation property specified in the WithMany call. Configures the foreign key column(s) and table used to store the relationship. Action that configures the foreign key column(s) and table. The same instance so that multiple calls can be chained. Configures stored procedures to be used for modifying this relationship. The default conventions for procedure and parameter names will be used. The same instance so that multiple calls can be chained. Configures stored procedures to be used for modifying this relationship. Configuration to override the default conventions for procedure and parameter names. The same instance so that multiple calls can be chained. Gets the of the current instance. The exact runtime type of the current instance. Used to configure a property of an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Used to configure a property with length facets for an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Used to configure a primitive property of an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Configures the property to be optional. The database column used to store this property will be nullable. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the property to be required. The database column used to store this property will be non-nullable. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures how values for the property are generated by the database. The pattern used to generate values for the property in the database. Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which set of conventions are being used. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the property to be used as an optimistic concurrency token. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property is to be used as an optimistic concurrency token. Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the data type of the database column used to store the property. Name of the database provider specific data type. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the name of the database column used to store the property. The name of the column. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Sets an annotation in the model for the database column used to store the property. The annotation value can later be used when processing the column such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Passing a null value clears any annotation with the given name on the column that had been previously set. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the name of the parameter used in stored procedures for this property. Name of the parameter. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Configures the order of the database column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The order that this column should appear in the database table. The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. Gets the of the current instance. The exact runtime type of the current instance. Configures the property to allow the maximum length supported by the database provider. The same LengthPropertyConfiguration instance so that multiple calls can be chained. Configures the property to have the specified maximum length. The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column. The same LengthPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be fixed length. Use HasMaxLength to set the length that the property is fixed to. The same LengthPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be variable length. Properties are variable length by default. The same LengthPropertyConfiguration instance so that multiple calls can be chained. Configures the property to allow the maximum length supported by the database provider. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to have the specified maximum length. The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be fixed length. Use HasMaxLength to set the length that the property is fixed to. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be variable length. properties are variable length by default. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be optional. The database column used to store this property will be nullable. properties are optional by default. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be required. The database column used to store this property will be non-nullable. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures how values for the property are generated by the database. The pattern used to generate values for the property in the database. Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which set of conventions are being used. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be used as an optimistic concurrency token. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property is to be used as an optimistic concurrency token. Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the name of the database column used to store the property. The name of the column. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Sets an annotation in the model for the database column used to store the property. The annotation value can later be used when processing the column such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Passing a null value clears any annotation with the given name on the column that had been previously set. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the data type of the database column used to store the property. Name of the database provider specific data type. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the order of the database column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The order that this column should appear in the database table. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be a row version in the database. The actual data type will vary depending on the database provider being used. Setting the property to be a row version will automatically configure it to be an optimistic concurrency token. The same BinaryPropertyConfiguration instance so that multiple calls can be chained. Used to configure a property of an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Configures the property to be optional. The database column used to store this property will be nullable. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the property to be required. The database column used to store this property will be non-nullable. properties are required by default. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures how values for the property are generated by the database. The pattern used to generate values for the property in the database. Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which set of conventions are being used. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the property to be used as an optimistic concurrency token. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property is to be used as an optimistic concurrency token. Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the name of the database column used to store the property. The name of the column. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Sets an annotation in the model for the database column used to store the property. The annotation value can later be used when processing the column such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Passing a null value clears any annotation with the given name on the column that had been previously set. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the data type of the database column used to store the property. Name of the database provider specific data type. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the order of the database column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The order that this column should appear in the database table. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Configures the precision of the property. If the database provider does not support precision for the data type of the column then the value is ignored. Precision of the property. The same DateTimePropertyConfiguration instance so that multiple calls can be chained. Used to configure a property of an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Configures the property to be optional. The database column used to store this property will be nullable. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be required. The database column used to store this property will be non-nullable. properties are required by default. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures how values for the property are generated by the database. The pattern used to generate values for the property in the database. Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which set of conventions are being used. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be used as an optimistic concurrency token. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property is to be used as an optimistic concurrency token. Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the name of the database column used to store the property. The name of the column. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Sets an annotation in the model for the database column used to store the property. The annotation value can later be used when processing the column such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Passing a null value clears any annotation with the given name on the column that had been previously set. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the data type of the database column used to store the property. Name of the database provider specific data type. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the order of the database column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The order that this column should appear in the database table. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Configures the precision and scale of the property. The precision of the property. The scale of the property. The same DecimalPropertyConfiguration instance so that multiple calls can be chained. Used to configure a property of an entity type or complex type. This configuration functionality is available via the Code First Fluent API, see . Configures the property to allow the maximum length supported by the database provider. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to have the specified maximum length. The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column.. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be fixed length. Use HasMaxLength to set the length that the property is fixed to. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be variable length. properties are variable length by default. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be optional. The database column used to store this property will be nullable. properties are optional by default. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be required. The database column used to store this property will be non-nullable. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures how values for the property are generated by the database. The pattern used to generate values for the property in the database. Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which set of conventions are being used. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to be used as an optimistic concurrency token. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property is to be used as an optimistic concurrency token. Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the name of the database column used to store the property. The name of the column. The same StringPropertyConfiguration instance so that multiple calls can be chained. Sets an annotation in the model for the database column used to store the property. The annotation value can later be used when processing the column such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Passing a null value clears any annotation with the given name on the column that had been previously set. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the data type of the database column used to store the property. Name of the database provider specific data type. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the order of the database column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. The order that this column should appear in the database table. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures the property to support Unicode string content. The same StringPropertyConfiguration instance so that multiple calls can be chained. Configures whether or not the property supports Unicode string content. Value indicating if the property supports Unicode string content or not. Specifying 'null' will remove the Unicode facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. The same StringPropertyConfiguration instance so that multiple calls can be chained. Convention to process instances of found on properties in the model Convention to process instances of found on properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on foreign key properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on navigation properties in the model. Convention to process instances of found on primitive properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on properties in the model. Convention to process instances of found on types in the model. Convention to process instances of found on types in the model. Convention to process instances of found on types in the model. Convention to detect navigation properties to be inverses of each other when only one pair of navigation properties exists between the related types. Convention to configure a type as a complex type if it has no primary key, no mapped base type and no navigation properties. Convention to add a cascade delete to the join table from both tables involved in a many to many relationship. Convention to ensure an invalid/unsupported mapping is not created when mapping inherited properties Convention to set the table name to be a pluralized version of the entity type name. Convention to set precision to 18 and scale to 2 for decimal properties. Initializes a new instance of with the default precision and scale. Initializes a new instance of with the specified precision and scale. Precision Scale Convention to move primary key properties to appear first. Convention to distinguish between optional and required relationships based on CLR nullability of the foreign key property. Base class for conventions that discover foreign key properties. When overriden returns true if should be part of the foreign key. The association type being configured. The dependent end. The candidate property on the dependent end. The principal end entity type. A key property on the principal end that is a candidate target for the foreign key. true if dependentProperty should be a part of the foreign key; otherwise, false. Returns true if the convention supports pairs of entity types that have multiple associations defined between them. Convention to process instances of found on navigation properties in the model. Convention to detect primary key properties. Recognized naming patterns in order of precedence are: 1. 'Id' 2. [type name]Id Primary key detection is case insensitive. Base class for conventions that discover primary key properties. When overriden returns the subset of properties that will be part of the primary key. The entity type. The primitive types of the entities The properties that should be part of the primary key. Convention to discover foreign key properties whose names are a combination of the dependent navigation property name and the principal type primary key property name(s). Convention to enable cascade delete for any required relationships. Convention to configure the primary key(s) of the dependent entity type as foreign key(s) in a one:one relationship. Convention to set the entity set name to be a pluralized version of the entity type name. Convention to discover foreign key properties whose names match the principal type primary key property name(s). Convention to set a maximum length for properties whose type supports length facets. The default value is 128. Initializes a new instance of with the default length. Initializes a new instance of with the specified length. The maximum lenght of properties. Convention to set a default maximum length of 4000 for properties whose type supports length facets when SqlCe is the provider. Initializes a new instance of with the default length. Initializes a new instance of with the specified length. The default maximum length for properties. Convention to configure integer primary keys to be identity. Convention to discover foreign key properties whose names are a combination of the principal type name and the principal type primary key property name(s). Allows configuration to be performed for an entity type in a model. An EntityTypeConfiguration can be obtained via the Entity method on or a custom type derived from EntityTypeConfiguration can be registered via the Configurations property on . The entity type being configured. Initializes a new instance of EntityTypeConfiguration Configures the primary key property(s) for this entity type. The type of the key. A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } The same EntityTypeConfiguration instance so that multiple calls can be chained. Configures the entity set name to be used for this entity type. The entity set name can only be configured for the base type in each set. The name of the entity set. The same EntityTypeConfiguration instance so that multiple calls can be chained. Excludes a property from the model so that it will not be mapped to the database. The type of the property to be ignored. A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty The same EntityTypeConfiguration instance so that multiple calls can be chained. Configures the table name that this entity type is mapped to. The name of the table. The same EntityTypeConfiguration instance so that multiple calls can be chained. Configures the table name that this entity type is mapped to. The name of the table. The database schema of the table. The same EntityTypeConfiguration instance so that multiple calls can be chained. Sets an annotation in the model for the table to which this entity is mapped. The annotation value can later be used when processing the table such as when creating migrations. It will likely be necessary to register a if the type of the annotation value is anything other than a string. Passing a null value clears any annotation with the given name on the column that had been previously set. The annotation name, which must be a valid C#/EDM identifier. The annotation value, which may be a string or some other type that can be serialized with an . The same configuration instance so that multiple calls can be chained. Configures this type to use stored procedures for insert, update and delete. The default conventions for procedure and parameter names will be used. The same configuration instance so that multiple calls can be chained. Configures this type to use stored procedures for insert, update and delete. Configuration to override the default conventions for procedure and parameter names. The same configuration instance so that multiple calls can be chained. Allows advanced configuration related to how this entity type is mapped to the database schema. By default, any configuration will also apply to any type derived from this entity type. Derived types can be configured via the overload of Map that configures a derived type or by using an EntityTypeConfiguration for the derived type. The properties of an entity can be split between multiple tables using multiple Map calls. Calls to Map are additive, subsequent calls will not override configuration already preformed via Map. An action that performs configuration against an . The same EntityTypeConfiguration instance so that multiple calls can be chained. Allows advanced configuration related to how a derived entity type is mapped to the database schema. Calls to Map are additive, subsequent calls will not override configuration already preformed via Map. The derived entity type to be configured. An action that performs configuration against an . The same EntityTypeConfiguration instance so that multiple calls can be chained. Configures an optional relationship from this entity type. Instances of the entity type will be able to be saved to the database without this relationship being specified. The foreign key in the database will be nullable. The type of the entity at the other end of the relationship. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures a required relationship from this entity type. Instances of the entity type will not be able to be saved to the database unless this relationship is specified. The foreign key in the database will be non-nullable. The type of the entity at the other end of the relationship. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Configures a many relationship from this entity type. The type of the entity at the other end of the relationship. A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty A configuration object that can be used to further configure the relationship. Exception thrown by during model creation when an invalid model is generated. Initializes a new instance of ModelValidationException Initializes a new instance of ModelValidationException The exception message. Initializes a new instance of ModelValidationException The exception message. The inner exception. Initializes a new instance of class serialization info and streaming context. The serialization info. The streaming context. Exception thrown from when validating entities fails. Initializes a new instance of DbEntityValidationException. Initializes a new instance of DbEntityValidationException. The exception message. Initializes a new instance of DbEntityValidationException. The exception message. Validation results. Initializes a new instance of DbEntityValidationException. The exception message. The inner exception. Initializes a new instance of DbEntityValidationException. The exception message. Validation results. The inner exception. Validation results. Represents validation results for single entity. Creates an instance of class. Entity entry the results applies to. Never null. List of instances. Never null. Can be empty meaning the entity is valid. Gets an instance of the results applies to. Gets validation errors. Never null. Gets an indicator if the entity is valid. Exception thrown from when an exception is thrown from the validation code. Initializes a new instance of DbUnexpectedValidationException. Initializes a new instance of DbUnexpectedValidationException. The exception message. Initializes a new instance of DbUnexpectedValidationException. The exception message. The inner exception. Initializes a new instance of DbUnexpectedValidationException with the specified serialization info and context. The serialization info. The streaming context. Validation error. Can be either entity or property level validation error. Creates an instance of . Name of the invalid property. Can be null. Validation error message. Can be null. Gets name of the invalid property. Gets validation error message. ================================================ FILE: packages/EntityFramework.6.1.3/tools/EntityFramework.psm1 ================================================ # Copyright (c) Microsoft Corporation. All rights reserved. $InitialDatabase = '0' $knownExceptions = @( 'System.Data.Entity.Migrations.Infrastructure.MigrationsException', 'System.Data.Entity.Migrations.Infrastructure.AutomaticMigrationsDisabledException', 'System.Data.Entity.Migrations.Infrastructure.AutomaticDataLossException', 'System.Data.Entity.Migrations.Infrastructure.MigrationsPendingException', 'System.Data.Entity.Migrations.ProjectTypeNotSupportedException' ) <# .SYNOPSIS Adds or updates an Entity Framework provider entry in the project config file. .DESCRIPTION Adds an entry into the 'entityFramework' section of the project config file for the specified provider invariant name and provider type. If an entry for the given invariant name already exists, then that entry is updated with the given type name, unless the given type name already matches, in which case no action is taken. The 'entityFramework' section is added if it does not exist. The config file is automatically saved if and only if a change was made. This command is typically used only by Entity Framework provider NuGet packages and is run from the 'install.ps1' script. .PARAMETER Project The Visual Studio project to update. When running in the NuGet install.ps1 script the '$project' variable provided as part of that script should be used. .PARAMETER InvariantName The provider invariant name that uniquely identifies this provider. For example, the Microsoft SQL Server provider is registered with the invariant name 'System.Data.SqlClient'. .PARAMETER TypeName The assembly-qualified type name of the provider-specific type that inherits from 'System.Data.Entity.Core.Common.DbProviderServices'. For example, for the Microsoft SQL Server provider, this type is 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer'. #> function Add-EFProvider { param ( [parameter(Position = 0, Mandatory = $true)] $Project, [parameter(Position = 1, Mandatory = $true)] [string] $InvariantName, [parameter(Position = 2, Mandatory = $true)] [string] $TypeName ) if (!(Check-Project $project)) { return } $runner = New-EFConfigRunner $Project try { Invoke-RunnerCommand $runner System.Data.Entity.ConnectionFactoryConfig.AddProviderCommand @( $InvariantName, $TypeName ) $error = Get-RunnerError $runner if ($error) { if ($knownExceptions -notcontains $error.TypeName) { Write-Host $error.StackTrace } else { Write-Verbose $error.StackTrace } throw $error.Message } } finally { Remove-Runner $runner } } <# .SYNOPSIS Adds or updates an Entity Framework default connection factory in the project config file. .DESCRIPTION Adds an entry into the 'entityFramework' section of the project config file for the connection factory that Entity Framework will use by default when creating new connections by convention. Any existing entry will be overridden if it does not match. The 'entityFramework' section is added if it does not exist. The config file is automatically saved if and only if a change was made. This command is typically used only by Entity Framework provider NuGet packages and is run from the 'install.ps1' script. .PARAMETER Project The Visual Studio project to update. When running in the NuGet install.ps1 script the '$project' variable provided as part of that script should be used. .PARAMETER TypeName The assembly-qualified type name of the connection factory type that implements the 'System.Data.Entity.Infrastructure.IDbConnectionFactory' interface. For example, for the Microsoft SQL Server Express provider connection factory, this type is 'System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework'. .PARAMETER ConstructorArguments An optional array of strings that will be passed as arguments to the connection factory type constructor. #> function Add-EFDefaultConnectionFactory { param ( [parameter(Position = 0, Mandatory = $true)] $Project, [parameter(Position = 1, Mandatory = $true)] [string] $TypeName, [string[]] $ConstructorArguments ) if (!(Check-Project $project)) { return } $runner = New-EFConfigRunner $Project try { Invoke-RunnerCommand $runner System.Data.Entity.ConnectionFactoryConfig.AddDefaultConnectionFactoryCommand @( $TypeName, $ConstructorArguments ) $error = Get-RunnerError $runner if ($error) { if ($knownExceptions -notcontains $error.TypeName) { Write-Host $error.StackTrace } else { Write-Verbose $error.StackTrace } throw $error.Message } } finally { Remove-Runner $runner } } <# .SYNOPSIS Initializes the Entity Framework section in the project config file and sets defaults. .DESCRIPTION Creates the 'entityFramework' section of the project config file and sets the default connection factory to use SQL Express if it is running on the machine, or LocalDb otherwise. Note that installing a different provider may change the default connection factory. The config file is automatically saved if and only if a change was made. In addition, any reference to 'System.Data.Entity.dll' in the project is removed. This command is typically used only by Entity Framework provider NuGet packages and is run from the 'install.ps1' script. .PARAMETER Project The Visual Studio project to update. When running in the NuGet install.ps1 script the '$project' variable provided as part of that script should be used. #> function Initialize-EFConfiguration { param ( [parameter(Position = 0, Mandatory = $true)] $Project ) if (!(Check-Project $project)) { return } $runner = New-EFConfigRunner $Project try { Invoke-RunnerCommand $runner System.Data.Entity.ConnectionFactoryConfig.InitializeEntityFrameworkCommand $error = Get-RunnerError $runner if ($error) { if ($knownExceptions -notcontains $error.TypeName) { Write-Host $error.StackTrace } else { Write-Verbose $error.StackTrace } throw $error.Message } } finally { Remove-Runner $runner } } <# .SYNOPSIS Enables Code First Migrations in a project. .DESCRIPTION Enables Migrations by scaffolding a migrations configuration class in the project. If the target database was created by an initializer, an initial migration will be created (unless automatic migrations are enabled via the EnableAutomaticMigrations parameter). .PARAMETER ContextTypeName Specifies the context to use. If omitted, migrations will attempt to locate a single context type in the target project. .PARAMETER EnableAutomaticMigrations Specifies whether automatic migrations will be enabled in the scaffolded migrations configuration. If omitted, automatic migrations will be disabled. .PARAMETER MigrationsDirectory Specifies the name of the directory that will contain migrations code files. If omitted, the directory will be named "Migrations". .PARAMETER ProjectName Specifies the project that the scaffolded migrations configuration class will be added to. If omitted, the default project selected in package manager console is used. .PARAMETER StartUpProjectName Specifies the configuration file to use for named connection strings. If omitted, the specified project's configuration file is used. .PARAMETER ContextProjectName Specifies the project which contains the DbContext class to use. If omitted, the context is assumed to be in the same project used for migrations. .PARAMETER ConnectionStringName Specifies the name of a connection string to use from the application's configuration file. .PARAMETER ConnectionString Specifies the the connection string to use. If omitted, the context's default connection will be used. .PARAMETER ConnectionProviderName Specifies the provider invariant name of the connection string. .PARAMETER Force Specifies that the migrations configuration be overwritten when running more than once for a given project. .PARAMETER ContextAssemblyName Specifies the name of the assembly which contains the DbContext class to use. Use this parameter instead of ContextProjectName when the context is contained in a referenced assembly rather than in a project of the solution. .PARAMETER AppDomainBaseDirectory Specifies the directory to use for the app-domain that is used for running Migrations code such that the app-domain is able to find all required assemblies. This is an advanced option that should only be needed if the solution contains several projects such that the assemblies needed for the context and configuration are not all referenced from either the project containing the context or the project containing the migrations. .EXAMPLE Enable-Migrations # Scaffold a migrations configuration in a project with only one context .EXAMPLE Enable-Migrations -Auto # Scaffold a migrations configuration with automatic migrations enabled for a project # with only one context .EXAMPLE Enable-Migrations -ContextTypeName MyContext -MigrationsDirectory DirectoryName # Scaffold a migrations configuration for a project with multiple contexts # This scaffolds a migrations configuration for MyContext and will put the configuration # and subsequent configurations in a new directory called "DirectoryName" #> function Enable-Migrations { [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] param ( [string] $ContextTypeName, [alias('Auto')] [switch] $EnableAutomaticMigrations, [string] $MigrationsDirectory, [string] $ProjectName, [string] $StartUpProjectName, [string] $ContextProjectName, [parameter(ParameterSetName = 'ConnectionStringName')] [string] $ConnectionStringName, [parameter(ParameterSetName = 'ConnectionStringAndProviderName', Mandatory = $true)] [string] $ConnectionString, [parameter(ParameterSetName = 'ConnectionStringAndProviderName', Mandatory = $true)] [string] $ConnectionProviderName, [switch] $Force, [string] $ContextAssemblyName, [string] $AppDomainBaseDirectory ) $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $ContextProjectName $null $ConnectionStringName $ConnectionString $ConnectionProviderName $ContextAssemblyName $AppDomainBaseDirectory try { Invoke-RunnerCommand $runner System.Data.Entity.Migrations.EnableMigrationsCommand @( $EnableAutomaticMigrations.IsPresent, $Force.IsPresent ) @{ 'ContextTypeName' = $ContextTypeName; 'MigrationsDirectory' = $MigrationsDirectory } $error = Get-RunnerError $runner if ($error) { if ($knownExceptions -notcontains $error.TypeName) { Write-Host $error.StackTrace } else { Write-Verbose $error.StackTrace } throw $error.Message } $(Get-VSComponentModel).GetService([NuGetConsole.IPowerConsoleWindow]).Show() } finally { Remove-Runner $runner } } <# .SYNOPSIS Scaffolds a migration script for any pending model changes. .DESCRIPTION Scaffolds a new migration script and adds it to the project. .PARAMETER Name Specifies the name of the custom script. .PARAMETER Force Specifies that the migration user code be overwritten when re-scaffolding an existing migration. .PARAMETER ProjectName Specifies the project that contains the migration configuration type to be used. If omitted, the default project selected in package manager console is used. .PARAMETER StartUpProjectName Specifies the configuration file to use for named connection strings. If omitted, the specified project's configuration file is used. .PARAMETER ConfigurationTypeName Specifies the migrations configuration to use. If omitted, migrations will attempt to locate a single migrations configuration type in the target project. .PARAMETER ConnectionStringName Specifies the name of a connection string to use from the application's configuration file. .PARAMETER ConnectionString Specifies the the connection string to use. If omitted, the context's default connection will be used. .PARAMETER ConnectionProviderName Specifies the provider invariant name of the connection string. .PARAMETER IgnoreChanges Scaffolds an empty migration ignoring any pending changes detected in the current model. This can be used to create an initial, empty migration to enable Migrations for an existing database. N.B. Doing this assumes that the target database schema is compatible with the current model. .PARAMETER AppDomainBaseDirectory Specifies the directory to use for the app-domain that is used for running Migrations code such that the app-domain is able to find all required assemblies. This is an advanced option that should only be needed if the solution contains several projects such that the assemblies needed for the context and configuration are not all referenced from either the project containing the context or the project containing the migrations. .EXAMPLE Add-Migration First # Scaffold a new migration named "First" .EXAMPLE Add-Migration First -IgnoreChanges # Scaffold an empty migration ignoring any pending changes detected in the current model. # This can be used to create an initial, empty migration to enable Migrations for an existing # database. N.B. Doing this assumes that the target database schema is compatible with the # current model. #> function Add-Migration { [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] param ( [parameter(Position = 0, Mandatory = $true)] [string] $Name, [switch] $Force, [string] $ProjectName, [string] $StartUpProjectName, [string] $ConfigurationTypeName, [parameter(ParameterSetName = 'ConnectionStringName')] [string] $ConnectionStringName, [parameter(ParameterSetName = 'ConnectionStringAndProviderName', Mandatory = $true)] [string] $ConnectionString, [parameter(ParameterSetName = 'ConnectionStringAndProviderName', Mandatory = $true)] [string] $ConnectionProviderName, [switch] $IgnoreChanges, [string] $AppDomainBaseDirectory) $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $null $ConfigurationTypeName $ConnectionStringName $ConnectionString $ConnectionProviderName $null $AppDomainBaseDirectory try { Invoke-RunnerCommand $runner System.Data.Entity.Migrations.AddMigrationCommand @( $Name, $Force.IsPresent, $IgnoreChanges.IsPresent ) $error = Get-RunnerError $runner if ($error) { if ($knownExceptions -notcontains $error.TypeName) { Write-Host $error.StackTrace } else { Write-Verbose $error.StackTrace } throw $error.Message } $(Get-VSComponentModel).GetService([NuGetConsole.IPowerConsoleWindow]).Show() } finally { Remove-Runner $runner } } <# .SYNOPSIS Applies any pending migrations to the database. .DESCRIPTION Updates the database to the current model by applying pending migrations. .PARAMETER SourceMigration Only valid with -Script. Specifies the name of a particular migration to use as the update's starting point. If omitted, the last applied migration in the database will be used. .PARAMETER TargetMigration Specifies the name of a particular migration to update the database to. If omitted, the current model will be used. .PARAMETER Script Generate a SQL script rather than executing the pending changes directly. .PARAMETER Force Specifies that data loss is acceptable during automatic migration of the database. .PARAMETER ProjectName Specifies the project that contains the migration configuration type to be used. If omitted, the default project selected in package manager console is used. .PARAMETER StartUpProjectName Specifies the configuration file to use for named connection strings. If omitted, the specified project's configuration file is used. .PARAMETER ConfigurationTypeName Specifies the migrations configuration to use. If omitted, migrations will attempt to locate a single migrations configuration type in the target project. .PARAMETER ConnectionStringName Specifies the name of a connection string to use from the application's configuration file. .PARAMETER ConnectionString Specifies the the connection string to use. If omitted, the context's default connection will be used. .PARAMETER ConnectionProviderName Specifies the provider invariant name of the connection string. .PARAMETER AppDomainBaseDirectory Specifies the directory to use for the app-domain that is used for running Migrations code such that the app-domain is able to find all required assemblies. This is an advanced option that should only be needed if the solution contains several projects such that the assemblies needed for the context and configuration are not all referenced from either the project containing the context or the project containing the migrations. .EXAMPLE Update-Database # Update the database to the latest migration .EXAMPLE Update-Database -TargetMigration Second # Update database to a migration named "Second" # This will apply migrations if the target hasn't been applied or roll back migrations # if it has .EXAMPLE Update-Database -Script # Generate a script to update the database from it's current state to the latest migration .EXAMPLE Update-Database -Script -SourceMigration Second -TargetMigration First # Generate a script to migrate the database from a specified start migration # named "Second" to a specified target migration named "First" .EXAMPLE Update-Database -Script -SourceMigration $InitialDatabase # Generate a script that can upgrade a database currently at any version to the latest version. # The generated script includes logic to check the __MigrationsHistory table and only apply changes # that haven't been previously applied. .EXAMPLE Update-Database -TargetMigration $InitialDatabase # Runs the Down method to roll-back any migrations that have been applied to the database #> function Update-Database { [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] param ( [string] $SourceMigration, [string] $TargetMigration, [switch] $Script, [switch] $Force, [string] $ProjectName, [string] $StartUpProjectName, [string] $ConfigurationTypeName, [parameter(ParameterSetName = 'ConnectionStringName')] [string] $ConnectionStringName, [parameter(ParameterSetName = 'ConnectionStringAndProviderName', Mandatory = $true)] [string] $ConnectionString, [parameter(ParameterSetName = 'ConnectionStringAndProviderName', Mandatory = $true)] [string] $ConnectionProviderName, [string] $AppDomainBaseDirectory) $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $null $ConfigurationTypeName $ConnectionStringName $ConnectionString $ConnectionProviderName $null $AppDomainBaseDirectory try { Invoke-RunnerCommand $runner System.Data.Entity.Migrations.UpdateDatabaseCommand @( $SourceMigration, $TargetMigration, $Script.IsPresent, $Force.IsPresent, $Verbose.IsPresent ) $error = Get-RunnerError $runner if ($error) { if ($knownExceptions -notcontains $error.TypeName) { Write-Host $error.StackTrace } else { Write-Verbose $error.StackTrace } throw $error.Message } $(Get-VSComponentModel).GetService([NuGetConsole.IPowerConsoleWindow]).Show() } finally { Remove-Runner $runner } } <# .SYNOPSIS Displays the migrations that have been applied to the target database. .DESCRIPTION Displays the migrations that have been applied to the target database. .PARAMETER ProjectName Specifies the project that contains the migration configuration type to be used. If omitted, the default project selected in package manager console is used. .PARAMETER StartUpProjectName Specifies the configuration file to use for named connection strings. If omitted, the specified project's configuration file is used. .PARAMETER ConfigurationTypeName Specifies the migrations configuration to use. If omitted, migrations will attempt to locate a single migrations configuration type in the target project. .PARAMETER ConnectionStringName Specifies the name of a connection string to use from the application's configuration file. .PARAMETER ConnectionString Specifies the the connection string to use. If omitted, the context's default connection will be used. .PARAMETER ConnectionProviderName Specifies the provider invariant name of the connection string. .PARAMETER AppDomainBaseDirectory Specifies the directory to use for the app-domain that is used for running Migrations code such that the app-domain is able to find all required assemblies. This is an advanced option that should only be needed if the solution contains several projects such that the assemblies needed for the context and configuration are not all referenced from either the project containing the context or the project containing the migrations. #> function Get-Migrations { [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] param ( [string] $ProjectName, [string] $StartUpProjectName, [string] $ConfigurationTypeName, [parameter(ParameterSetName = 'ConnectionStringName')] [string] $ConnectionStringName, [parameter(ParameterSetName = 'ConnectionStringAndProviderName', Mandatory = $true)] [string] $ConnectionString, [parameter(ParameterSetName = 'ConnectionStringAndProviderName', Mandatory = $true)] [string] $ConnectionProviderName, [string] $AppDomainBaseDirectory) $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $null $ConfigurationTypeName $ConnectionStringName $ConnectionString $ConnectionProviderName $null $AppDomainBaseDirectory try { Invoke-RunnerCommand $runner System.Data.Entity.Migrations.GetMigrationsCommand $error = Get-RunnerError $runner if ($error) { if ($knownExceptions -notcontains $error.TypeName) { Write-Host $error.StackTrace } else { Write-Verbose $error.StackTrace } throw $error.Message } } finally { Remove-Runner $runner } } function New-MigrationsRunner($ProjectName, $StartUpProjectName, $ContextProjectName, $ConfigurationTypeName, $ConnectionStringName, $ConnectionString, $ConnectionProviderName, $ContextAssemblyName, $AppDomainBaseDirectory) { $startUpProject = Get-MigrationsStartUpProject $StartUpProjectName $ProjectName Build-Project $startUpProject $project = Get-MigrationsProject $ProjectName Build-Project $project $contextProject = $project if ($ContextProjectName) { $contextProject = Get-SingleProject $ContextProjectName Build-Project $contextProject } $installPath = Get-EntityFrameworkInstallPath $project $toolsPath = Join-Path $installPath tools $info = New-AppDomainSetup $project $installPath $domain = [AppDomain]::CreateDomain('Migrations', $null, $info) $domain.SetData('project', $project) $domain.SetData('contextProject', $contextProject) $domain.SetData('startUpProject', $startUpProject) $domain.SetData('configurationTypeName', $ConfigurationTypeName) $domain.SetData('connectionStringName', $ConnectionStringName) $domain.SetData('connectionString', $ConnectionString) $domain.SetData('connectionProviderName', $ConnectionProviderName) $domain.SetData('contextAssemblyName', $ContextAssemblyName) $domain.SetData('appDomainBaseDirectory', $AppDomainBaseDirectory) $dispatcher = New-DomainDispatcher $toolsPath $domain.SetData('efDispatcher', $dispatcher) return @{ Domain = $domain; ToolsPath = $toolsPath } } function New-EFConfigRunner($Project) { $installPath = Get-EntityFrameworkInstallPath $Project $toolsPath = Join-Path $installPath tools $info = New-AppDomainSetup $Project $installPath $domain = [AppDomain]::CreateDomain('EFConfig', $null, $info) $domain.SetData('project', $Project) $dispatcher = New-DomainDispatcher $toolsPath $domain.SetData('efDispatcher', $dispatcher) return @{ Domain = $domain; ToolsPath = $toolsPath } } function New-AppDomainSetup($Project, $InstallPath) { $info = New-Object System.AppDomainSetup -Property @{ ShadowCopyFiles = 'true'; ApplicationBase = $InstallPath; PrivateBinPath = 'tools'; ConfigurationFile = ([AppDomain]::CurrentDomain.SetupInformation.ConfigurationFile) } $targetFrameworkVersion = (New-Object System.Runtime.Versioning.FrameworkName ($Project.Properties.Item('TargetFrameworkMoniker').Value)).Version if ($targetFrameworkVersion -lt (New-Object Version @( 4, 5 ))) { $info.PrivateBinPath += ';lib\net40' } else { $info.PrivateBinPath += ';lib\net45' } return $info } function New-DomainDispatcher($ToolsPath) { $utilityAssembly = [System.Reflection.Assembly]::LoadFrom((Join-Path $ToolsPath EntityFramework.PowerShell.Utility.dll)) $dispatcher = $utilityAssembly.CreateInstance( 'System.Data.Entity.Migrations.Utilities.DomainDispatcher', $false, [System.Reflection.BindingFlags]::Instance -bor [System.Reflection.BindingFlags]::Public, $null, $PSCmdlet, $null, $null) return $dispatcher } function Remove-Runner($runner) { [AppDomain]::Unload($runner.Domain) } function Invoke-RunnerCommand($runner, $command, $parameters, $anonymousArguments) { $domain = $runner.Domain if ($anonymousArguments) { $anonymousArguments.GetEnumerator() | %{ $domain.SetData($_.Name, $_.Value) } } $domain.CreateInstanceFrom( (Join-Path $runner.ToolsPath EntityFramework.PowerShell.dll), $command, $false, 0, $null, $parameters, $null, $null) | Out-Null } function Get-RunnerError($runner) { $domain = $runner.Domain if (!$domain.GetData('wasError')) { return $null } return @{ Message = $domain.GetData('error.Message'); TypeName = $domain.GetData('error.TypeName'); StackTrace = $domain.GetData('error.StackTrace') } } function Get-MigrationsProject($name, $hideMessage) { if ($name) { return Get-SingleProject $name } $project = Get-Project $projectName = $project.Name if (!$hideMessage) { Write-Verbose "Using NuGet project '$projectName'." } return $project } function Get-MigrationsStartUpProject($name, $fallbackName) { $startUpProject = $null if ($name) { $startUpProject = Get-SingleProject $name } else { $startupProjectPaths = $DTE.Solution.SolutionBuild.StartupProjects if ($startupProjectPaths) { if ($startupProjectPaths.Length -eq 1) { $startupProjectPath = $startupProjectPaths[0] if (!(Split-Path -IsAbsolute $startupProjectPath)) { $solutionPath = Split-Path $DTE.Solution.Properties.Item('Path').Value $startupProjectPath = Join-Path $solutionPath $startupProjectPath -Resolve } $startupProject = Get-SolutionProjects | ?{ try { $fullName = $_.FullName } catch [NotImplementedException] { return $false } if ($fullName -and $fullName.EndsWith('\')) { $fullName = $fullName.Substring(0, $fullName.Length - 1) } return $fullName -eq $startupProjectPath } } else { Write-Verbose 'More than one start-up project found.' } } else { Write-Verbose 'No start-up project found.' } } if (!($startUpProject -and (Test-StartUpProject $startUpProject))) { $startUpProject = Get-MigrationsProject $fallbackName $true $startUpProjectName = $startUpProject.Name Write-Warning "Cannot determine a valid start-up project. Using project '$startUpProjectName' instead. Your configuration file and working directory may not be set as expected. Use the -StartUpProjectName parameter to set one explicitly. Use the -Verbose switch for more information." } else { $startUpProjectName = $startUpProject.Name Write-Verbose "Using StartUp project '$startUpProjectName'." } return $startUpProject } function Get-SolutionProjects() { $projects = New-Object System.Collections.Stack $DTE.Solution.Projects | %{ $projects.Push($_) } while ($projects.Count -ne 0) { $project = $projects.Pop(); # NOTE: This line is similar to doing a "yield return" in C# $project if ($project.ProjectItems) { $project.ProjectItems | ?{ $_.SubProject } | %{ $projects.Push($_.SubProject) } } } } function Get-SingleProject($name) { $project = Get-Project $name if ($project -is [array]) { throw "More than one project '$name' was found. Specify the full name of the one to use." } return $project } function Test-StartUpProject($project) { if ($project.Kind -eq '{cc5fd16d-436d-48ad-a40c-5a424c6e3e79}') { $projectName = $project.Name Write-Verbose "Cannot use start-up project '$projectName'. The Windows Azure Project type isn't supported." return $false } return $true } function Build-Project($project) { $configuration = $DTE.Solution.SolutionBuild.ActiveConfiguration.Name $DTE.Solution.SolutionBuild.BuildProject($configuration, $project.UniqueName, $true) if ($DTE.Solution.SolutionBuild.LastBuildInfo) { $projectName = $project.Name throw "The project '$projectName' failed to build." } } function Get-EntityFrameworkInstallPath($project) { $package = Get-Package -ProjectName $project.FullName | ?{ $_.Id -eq 'EntityFramework' } if (!$package) { $projectName = $project.Name throw "The EntityFramework package is not installed on project '$projectName'." } return Get-PackageInstallPath $package } function Get-PackageInstallPath($package) { $componentModel = Get-VsComponentModel $packageInstallerServices = $componentModel.GetService([NuGet.VisualStudio.IVsPackageInstallerServices]) $vsPackage = $packageInstallerServices.GetInstalledPackages() | ?{ $_.Id -eq $package.Id -and $_.Version -eq $package.Version } return $vsPackage.InstallPath } function Check-Project($project) { if (!$project.FullName) { throw "The Project argument must refer to a Visual Studio project. Use the '`$project' variable provided by NuGet when running in install.ps1." } return $project.CodeModel } Export-ModuleMember @( 'Enable-Migrations', 'Add-Migration', 'Update-Database', 'Get-Migrations', 'Add-EFProvider', 'Add-EFDefaultConnectionFactory', 'Initialize-EFConfiguration') -Variable InitialDatabase # SIG # Begin signature block # MIIa2AYJKoZIhvcNAQcCoIIayTCCGsUCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQU3poUYDlTlwf2GyqxNJ7CRJO4 # tk2gghV6MIIEuzCCA6OgAwIBAgITMwAAAFrtL/TkIJk/OgAAAAAAWjANBgkqhkiG # 9w0BAQUFADB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G # A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEw # HwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwHhcNMTQwNTIzMTcxMzE1 # WhcNMTUwODIzMTcxMzE1WjCBqzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAw # DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x # DTALBgNVBAsTBE1PUFIxJzAlBgNVBAsTHm5DaXBoZXIgRFNFIEVTTjpCOEVDLTMw # QTQtNzE0NDElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCC # ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALMhIt9q0L/7KcnVbHqJqY0T # vJS16X0pZdp/9B+rDHlhZlRhlgfw1GBLMZsJr30obdCle4dfdqHSxinHljqjXxeM # duC3lgcPx2JhtLaq9kYUKQMuJrAdSgjgfdNcMBKmm/a5Dj1TFmmdu2UnQsHoMjUO # 9yn/3lsgTLsvaIQkD6uRxPPOKl5YRu2pRbRptlQmkRJi/W8O5M/53D/aKWkfSq7u # wIJC64Jz6VFTEb/dqx1vsgpQeAuD7xsIsxtnb9MFfaEJn8J3iKCjWMFP/2fz3uzH # 9TPcikUOlkYUKIccYLf1qlpATHC1acBGyNTo4sWQ3gtlNdRUgNLpnSBWr9TfzbkC # AwEAAaOCAQkwggEFMB0GA1UdDgQWBBS+Z+AuAhuvCnINOh1/jJ1rImYR9zAfBgNV # HSMEGDAWgBQjNPjZUkZwCu1A+3b7syuwwzWzDzBUBgNVHR8ETTBLMEmgR6BFhkNo # dHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNyb3Nv # ZnRUaW1lU3RhbXBQQ0EuY3JsMFgGCCsGAQUFBwEBBEwwSjBIBggrBgEFBQcwAoY8 # aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNyb3NvZnRUaW1l # U3RhbXBQQ0EuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUA # A4IBAQAgU4KQrqZNTn4zScizrcTDfhXQEvIPJ4p/W78+VOpB6VQDKym63VSIu7n3 # 2c5T7RAWPclGcLQA0fI0XaejIiyqIuFrob8PDYfQHgIb73i2iSDQLKsLdDguphD/ # 2pGrLEA8JhWqrN7Cz0qTA81r4qSymRpdR0Tx3IIf5ki0pmmZwS7phyPqCNJp5mLf # cfHrI78hZfmkV8STLdsWeBWqPqLkhfwXvsBPFduq8Ki6ESus+is1Fm5bc/4w0Pur # k6DezULaNj+R9+A3jNkHrTsnu/9UIHfG/RHpGuZpsjMnqwWuWI+mqX9dEhFoDCyj # MRYNviGrnPCuGnxA1daDFhXYKPvlMIIE7DCCA9SgAwIBAgITMwAAAMps1TISNcTh # VQABAAAAyjANBgkqhkiG9w0BAQUFADB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK # V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 # IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD # QTAeFw0xNDA0MjIxNzM5MDBaFw0xNTA3MjIxNzM5MDBaMIGDMQswCQYDVQQGEwJV # UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE # ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQD # ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw # ggEKAoIBAQCWcV3tBkb6hMudW7dGx7DhtBE5A62xFXNgnOuntm4aPD//ZeM08aal # IV5WmWxY5JKhClzC09xSLwxlmiBhQFMxnGyPIX26+f4TUFJglTpbuVildGFBqZTg # rSZOTKGXcEknXnxnyk8ecYRGvB1LtuIPxcYnyQfmegqlFwAZTHBFOC2BtFCqxWfR # +nm8xcyhcpv0JTSY+FTfEjk4Ei+ka6Wafsdi0dzP7T00+LnfNTC67HkyqeGprFVN # TH9MVsMTC3bxB/nMR6z7iNVSpR4o+j0tz8+EmIZxZRHPhckJRIbhb+ex/KxARKWp # iyM/gkmd1ZZZUBNZGHP/QwytK9R/MEBnAgMBAAGjggFgMIIBXDATBgNVHSUEDDAK # BggrBgEFBQcDAzAdBgNVHQ4EFgQUH17iXVCNVoa+SjzPBOinh7XLv4MwUQYDVR0R # BEowSKRGMEQxDTALBgNVBAsTBE1PUFIxMzAxBgNVBAUTKjMxNTk1K2I0MjE4ZjEz # LTZmY2EtNDkwZi05YzQ3LTNmYzU1N2RmYzQ0MDAfBgNVHSMEGDAWgBTLEejK0rQW # WAHJNy4zFha5TJoKHzBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jv # c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNDb2RTaWdQQ0FfMDgtMzEtMjAx # MC5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1p # Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY0NvZFNpZ1BDQV8wOC0zMS0yMDEwLmNy # dDANBgkqhkiG9w0BAQUFAAOCAQEAd1zr15E9zb17g9mFqbBDnXN8F8kP7Tbbx7Us # G177VAU6g3FAgQmit3EmXtZ9tmw7yapfXQMYKh0nfgfpxWUftc8Nt1THKDhaiOd7 # wRm2VjK64szLk9uvbg9dRPXUsO8b1U7Brw7vIJvy4f4nXejF/2H2GdIoCiKd381w # gp4YctgjzHosQ+7/6sDg5h2qnpczAFJvB7jTiGzepAY1p8JThmURdwmPNVm52Iao # AP74MX0s9IwFncDB1XdybOlNWSaD8cKyiFeTNQB8UCu8Wfz+HCk4gtPeUpdFKRhO # lludul8bo/EnUOoHlehtNA04V9w3KDWVOjic1O1qhV0OIhFeezCCBbwwggOkoAMC # AQICCmEzJhoAAAAAADEwDQYJKoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixkARkW # A2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9z # b2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTEwMDgzMTIyMTkzMloX # DTIwMDgzMTIyMjkzMloweTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0 # b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh # dGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwggEiMA0G # CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCycllcGTBkvx2aYCAgQpl2U2w+G9Zv # zMvx6mv+lxYQ4N86dIMaty+gMuz/3sJCTiPVcgDbNVcKicquIEn08GisTUuNpb15 # S3GbRwfa/SXfnXWIz6pzRH/XgdvzvfI2pMlcRdyvrT3gKGiXGqelcnNW8ReU5P01 # lHKg1nZfHndFg4U4FtBzWwW6Z1KNpbJpL9oZC/6SdCnidi9U3RQwWfjSjWL9y8lf # RjFQuScT5EAwz3IpECgixzdOPaAyPZDNoTgGhVxOVoIoKgUyt0vXT2Pn0i1i8UU9 # 56wIAPZGoZ7RW4wmU+h6qkryRs83PDietHdcpReejcsRj1Y8wawJXwPTAgMBAAGj # ggFeMIIBWjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTLEejK0rQWWAHJNy4z # Fha5TJoKHzALBgNVHQ8EBAMCAYYwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEE # AYI3FQIEFgQU/dExTtMmipXhmGA7qDFvpjy82C0wGQYJKwYBBAGCNxQCBAweCgBT # AHUAYgBDAEEwHwYDVR0jBBgwFoAUDqyCYEBWJ5flJRP8KuEKU5VZ5KQwUAYDVR0f # BEkwRzBFoEOgQYY/aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJv # ZHVjdHMvbWljcm9zb2Z0cm9vdGNlcnQuY3JsMFQGCCsGAQUFBwEBBEgwRjBEBggr # BgEFBQcwAoY4aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNy # b3NvZnRSb290Q2VydC5jcnQwDQYJKoZIhvcNAQEFBQADggIBAFk5Pn8mRq/rb0Cx # MrVq6w4vbqhJ9+tfde1MOy3XQ60L/svpLTGjI8x8UJiAIV2sPS9MuqKoVpzjcLu4 # tPh5tUly9z7qQX/K4QwXaculnCAt+gtQxFbNLeNK0rxw56gNogOlVuC4iktX8pVC # nPHz7+7jhh80PLhWmvBTI4UqpIIck+KUBx3y4k74jKHK6BOlkU7IG9KPcpUqcW2b # Gvgc8FPWZ8wi/1wdzaKMvSeyeWNWRKJRzfnpo1hW3ZsCRUQvX/TartSCMm78pJUT # 5Otp56miLL7IKxAOZY6Z2/Wi+hImCWU4lPF6H0q70eFW6NB4lhhcyTUWX92THUmO # Lb6tNEQc7hAVGgBd3TVbIc6YxwnuhQ6MT20OE049fClInHLR82zKwexwo1eSV32U # jaAbSANa98+jZwp0pTbtLS8XyOZyNxL0b7E8Z4L5UrKNMxZlHg6K3RDeZPRvzkbU # 0xfpecQEtNP7LN8fip6sCvsTJ0Ct5PnhqX9GuwdgR2VgQE6wQuxO7bN2edgKNAlt # HIAxH+IOVN3lofvlRxCtZJj/UBYufL8FIXrilUEnacOTj5XJjdibIa4NXJzwoq6G # aIMMai27dmsAHZat8hZ79haDJLmIz2qoRzEvmtzjcT3XAH5iR9HOiMm4GPoOco3B # oz2vAkBq/2mbluIQqBC0N1AI1sM9MIIGBzCCA++gAwIBAgIKYRZoNAAAAAAAHDAN # BgkqhkiG9w0BAQUFADBfMRMwEQYKCZImiZPyLGQBGRYDY29tMRkwFwYKCZImiZPy # LGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp # Y2F0ZSBBdXRob3JpdHkwHhcNMDcwNDAzMTI1MzA5WhcNMjEwNDAzMTMwMzA5WjB3 # MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk # bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhN # aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw # ggEKAoIBAQCfoWyx39tIkip8ay4Z4b3i48WZUSNQrc7dGE4kD+7Rp9FMrXQwIBHr # B9VUlRVJlBtCkq6YXDAm2gBr6Hu97IkHD/cOBJjwicwfyzMkh53y9GccLPx754gd # 6udOo6HBI1PKjfpFzwnQXq/QsEIEovmmbJNn1yjcRlOwhtDlKEYuJ6yGT1VSDOQD # LPtqkJAwbofzWTCd+n7Wl7PoIZd++NIT8wi3U21StEWQn0gASkdmEScpZqiX5NMG # gUqi+YSnEUcUCYKfhO1VeP4Bmh1QCIUAEDBG7bfeI0a7xC1Un68eeEExd8yb3zuD # k6FhArUdDbH895uyAc4iS1T/+QXDwiALAgMBAAGjggGrMIIBpzAPBgNVHRMBAf8E # BTADAQH/MB0GA1UdDgQWBBQjNPjZUkZwCu1A+3b7syuwwzWzDzALBgNVHQ8EBAMC # AYYwEAYJKwYBBAGCNxUBBAMCAQAwgZgGA1UdIwSBkDCBjYAUDqyCYEBWJ5flJRP8 # KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/Is # ZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmlj # YXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBHMEWgQ6BB # hj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNy # b3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjho # dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RD # ZXJ0LmNydDATBgNVHSUEDDAKBggrBgEFBQcDCDANBgkqhkiG9w0BAQUFAAOCAgEA # EJeKw1wDRDbd6bStd9vOeVFNAbEudHFbbQwTq86+e4+4LtQSooxtYrhXAstOIBNQ # md16QOJXu69YmhzhHQGGrLt48ovQ7DsB7uK+jwoFyI1I4vBTFd1Pq5Lk541q1YDB # 5pTyBi+FA+mRKiQicPv2/OR4mS4N9wficLwYTp2OawpylbihOZxnLcVRDupiXD8W # mIsgP+IHGjL5zDFKdjE9K3ILyOpwPf+FChPfwgphjvDXuBfrTot/xTUrXqO/67x9 # C0J71FNyIe4wyrt4ZVxbARcKFA7S2hSY9Ty5ZlizLS/n+YWGzFFW6J1wlGysOUzU # 9nm/qhh6YinvopspNAZ3GmLJPR5tH4LwC8csu89Ds+X57H2146SodDW4TsVxIxIm # dgs8UoxxWkZDFLyzs7BNZ8ifQv+AeSGAnhUwZuhCEl4ayJ4iIdBD6Svpu/RIzCzU # 2DKATCYqSCRfWupW76bemZ3KOm+9gSd0BhHudiG/m4LBJ1S2sWo9iaF2YbRuoROm # v6pH8BJv/YoybLL+31HIjCPJZr2dHYcSZAI9La9Zj7jkIeW1sMpjtHhUBdRBLlCs # lLCleKuzoJZ1GtmShxN1Ii8yqAhuoFuMJb+g74TKIdbrHk/Jmu5J4PcBZW+JC33I # acjmbuqnl84xKf8OxVtc2E0bodj6L54/LlUWa8kTo/0xggTIMIIExAIBATCBkDB5 # MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk # bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN # aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQQITMwAAAMps1TISNcThVQABAAAAyjAJ # BgUrDgMCGgUAoIHhMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQB # gjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJBDEWBBRRBMx7lzrmFHTD # FOnHF79/U4hcUzCBgAYKKwYBBAGCNwIBDDFyMHCgUoBQAEUAbgB0AGkAdAB5ACAA # RgByAGEAbQBlAHcAbwByAGsAIABUAG8AbwBsAHMAIABmAG8AcgAgAFYAaQBzAHUA # YQBsACAAUwB0AHUAZABpAG+hGoAYaHR0cDovL21zZG4uY29tL2RhdGEvZWYgMA0G # CSqGSIb3DQEBAQUABIIBAEd5PEhtVawenxHsuUSbbOUgAVuGOnlVja6G8O5u3I5v # AcWqJtbqOKUkXc9HxAUMgu5cC/o9n8A7LF7T5xptiXXcxURfe4fmeJK9joz/XPRw # lYLOevzn9GRfWSbJ/AtSOnjj1PKCtQ8SZq88iKnJ8SrjKF4Nu3TQR/wVR/k3SU0H # 80Rm4lSJdt9NLxkYljaU8volXVDv9SoxDlplkGdePSbDUx3PWD7y5UVeHb94Z+aQ # 8p/FuvncjarLeefLhOwEFfJRhCKvofgw2zJqA3q+m42uiuO0ndqbyp8HVc6kcMUu # jS//9eYvnLP7UY1ApfiBLRPgEgTGSx/soOI2qXDjHiShggIoMIICJAYJKoZIhvcN # AQkGMYICFTCCAhECAQEwgY4wdzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp # bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw # b3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBAhMzAAAA # Wu0v9OQgmT86AAAAAABaMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZI # hvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNTAzMDIxNzI5NThaMCMGCSqGSIb3DQEJ # BDEWBBQXVgYJisiba3bvHeGxFzocarwSvzANBgkqhkiG9w0BAQUFAASCAQBwjV/u # vAXQsEgY0oeyfvDyZCXIBSMgSZ4sbxAFu7ZGisn3L51Q/wWulmoPr7YiAmUkxRgU # WL7hukD/WrR/iNwUToPwz9VTxZbz+i7Cjw5tpG+nL8ByWxyhEiWNDSGHUaU+THMr # d2Y3mJs9u8E8sjNqHE8Vf7FzmjVn5dMrOASBmqTdXPwJP2Pm2gYta6zkss9j5N3Q # MLwNDUrZ0FKtGimpe1zoI6Fan4YBKMILOL9xCqMcVMhoITM7s+tnRlngDVFxxKyN # 1Mnr9ITkdiMIpbWn8s0nr/UsHRltjyPyjtfIvgiFgKLxnw87sHnloEAbksaLqlbX # 6d/6I/2PpumqJR3c # SIG # End signature block ================================================ FILE: packages/EntityFramework.6.1.3/tools/about_EntityFramework.help.txt ================================================ TOPIC about_EntityFramework SHORT DESCRIPTION Provides information about Entity Framework commands. LONG DESCRIPTION This topic describes the Entity Framework commands. Entity Framework is Microsoft's recommended data access technology for new applications. The following Entity Framework cmdlets are used with Entity Framework Migrations. Cmdlet Description ----------------- --------------------------------------------------- Enable-Migrations Enables Code First Migrations in a project. Add-Migration Scaffolds a migration script for any pending model changes. Update-Database Applies any pending migrations to the database. Get-Migrations Displays the migrations that have been applied to the target database. The following Entity Framework cmdlets are used by NuGet packages that install Entity Framework providers. These commands are not usually used as part of normal application development. Cmdlet Description ------------------------------ --------------------------------------- Add-EFProvider Adds or updates an Entity Framework provider entry in the project config file. Add-EFDefaultConnectionFactory Adds or updates an Entity Framework default connection factory in the project config file. Initialize-EFConfiguration Initializes the Entity Framework section in the project config file and sets defaults. SEE ALSO Enable-Migrations Add-Migration Update-Database Get-Migrations ================================================ FILE: packages/EntityFramework.6.1.3/tools/init.ps1 ================================================ param($installPath, $toolsPath, $package, $project) if (Get-Module | ?{ $_.Name -eq 'EntityFramework' }) { Remove-Module EntityFramework } Import-Module (Join-Path $toolsPath EntityFramework.psd1) # SIG # Begin signature block # MIIa4AYJKoZIhvcNAQcCoIIa0TCCGs0CAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUjXj4E03IfImYfKMB4CA3DfY0 # KZmgghWCMIIEwzCCA6ugAwIBAgITMwAAAGJBL8dNiq4TJgAAAAAAYjANBgkqhkiG # 9w0BAQUFADB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G # A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEw # HwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwHhcNMTUwMjEwMTgzMzM3 # WhcNMTYwNTEwMTgzMzM3WjCBszELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp # bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw # b3JhdGlvbjENMAsGA1UECxMETU9QUjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNO # OkMwRjQtMzA4Ni1ERUY4MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBT # ZXJ2aWNlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzpcpEnjOg16e # fCoOjWmTxe4NOad07kj+GNlAGb0eel7cppX64uGPcUvvOPSAmxheqTjM2PBEtHGN # qjqD6M7STHM5hsVJ0dWsK+5KEY8IbIYHIxJJrNyF5rDLJ3lKlKFVo1mgn/oZM4cM # CgfokLOayjIvyxuJIFrFbpO+nF+PhuI3MYT+lsHKdg2ErCNF0Y3KNvmDtP9XBiRK # iGS7pVlKB4oaueB+94csweq7LXrUTrOcP8a6hRKzNqjR4pAcybwv508B4otK+jbX # lmE2ldsEysu9mwjN1fyDVSnWheoGZiXw3pxG9FeeXsOkNLibTtUVrjkcohq6hvb7 # 7q4dco7enQIDAQABo4IBCTCCAQUwHQYDVR0OBBYEFJsuiFXbFF3ayMLtg9j5aH6D # oTnHMB8GA1UdIwQYMBaAFCM0+NlSRnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEsw # SaBHoEWGQ2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3Rz # L01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsG # AQUFBzAChjxodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jv # c29mdFRpbWVTdGFtcFBDQS5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZI # hvcNAQEFBQADggEBAAytzvTw859N7K64VMzmnhXGV4ZOeMnn/AJgqOUGsIrVqmth # oqscqKq9fSnj3QlC3kyXFID7S69GmvDfylA/mu6HSe0mytg8svbYu7p6arQWe8q1 # 2kdagS1kFPBqUySyEx5pdI0r+9WejW98lNiY4PNgoqdvFZaU4fp1tsbJ8f6rJZ7U # tVCLOYHbDvlhU0LjKpbCgZ0VlR4Kk1SUuclxtIVETpHS5ToC1EzQRIGLsvkOxg7p # Kf/MkuGM4R4dYIVZpPQYLeTb0o0hdnXXez1za9a9zaa/imKXyiV53z1loGFVVYqH # AnYnCMw5M16oWdKeG7OaT+qFQL5aK0SaoZSHpuswggTsMIID1KADAgECAhMzAAAA # ymzVMhI1xOFVAAEAAADKMA0GCSqGSIb3DQEBBQUAMHkxCzAJBgNVBAYTAlVTMRMw # EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN # aWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2RlIFNp # Z25pbmcgUENBMB4XDTE0MDQyMjE3MzkwMFoXDTE1MDcyMjE3MzkwMFowgYMxCzAJ # BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k # MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xDTALBgNVBAsTBE1PUFIx # HjAcBgNVBAMTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjCCASIwDQYJKoZIhvcNAQEB # BQADggEPADCCAQoCggEBAJZxXe0GRvqEy51bt0bHsOG0ETkDrbEVc2Cc66e2bho8 # P/9l4zTxpqUhXlaZbFjkkqEKXMLT3FIvDGWaIGFAUzGcbI8hfbr5/hNQUmCVOlu5 # WKV0YUGplOCtJk5MoZdwSSdefGfKTx5xhEa8HUu24g/FxifJB+Z6CqUXABlMcEU4 # LYG0UKrFZ9H6ebzFzKFym/QlNJj4VN8SOTgSL6RrpZp+x2LR3M/tPTT4ud81MLrs # eTKp4amsVU1Mf0xWwxMLdvEH+cxHrPuI1VKlHij6PS3Pz4SYhnFlEc+FyQlEhuFv # 57H8rEBEpamLIz+CSZ3VlllQE1kYc/9DDK0r1H8wQGcCAwEAAaOCAWAwggFcMBMG # A1UdJQQMMAoGCCsGAQUFBwMDMB0GA1UdDgQWBBQfXuJdUI1Whr5KPM8E6KeHtcu/ # gzBRBgNVHREESjBIpEYwRDENMAsGA1UECxMETU9QUjEzMDEGA1UEBRMqMzE1OTUr # YjQyMThmMTMtNmZjYS00OTBmLTljNDctM2ZjNTU3ZGZjNDQwMB8GA1UdIwQYMBaA # FMsR6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9j # cmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8w # OC0zMS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6 # Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMx # LTIwMTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQB3XOvXkT3NvXuD2YWpsEOdc3wX # yQ/tNtvHtSwbXvtUBTqDcUCBCaK3cSZe1n22bDvJql9dAxgqHSd+B+nFZR+1zw23 # VMcoOFqI53vBGbZWMrrizMuT269uD11E9dSw7xvVTsGvDu8gm/Lh/idd6MX/YfYZ # 0igKIp3fzXCCnhhy2CPMeixD7v/qwODmHaqelzMAUm8HuNOIbN6kBjWnwlOGZRF3 # CY81WbnYhqgA/vgxfSz0jAWdwMHVd3Js6U1ZJoPxwrKIV5M1AHxQK7xZ/P4cKTiC # 095Sl0UpGE6WW526Xxuj8SdQ6geV6G00DThX3DcoNZU6OJzU7WqFXQ4iEV57MIIF # vDCCA6SgAwIBAgIKYTMmGgAAAAAAMTANBgkqhkiG9w0BAQUFADBfMRMwEQYKCZIm # iZPyLGQBGRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQD # EyRNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTAwODMx # MjIxOTMyWhcNMjAwODMxMjIyOTMyWjB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK # V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 # IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD # QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJyWVwZMGS/HZpgICBC # mXZTbD4b1m/My/Hqa/6XFhDg3zp0gxq3L6Ay7P/ewkJOI9VyANs1VwqJyq4gSfTw # aKxNS42lvXlLcZtHB9r9Jd+ddYjPqnNEf9eB2/O98jakyVxF3K+tPeAoaJcap6Vy # c1bxF5Tk/TWUcqDWdl8ed0WDhTgW0HNbBbpnUo2lsmkv2hkL/pJ0KeJ2L1TdFDBZ # +NKNYv3LyV9GMVC5JxPkQDDPcikQKCLHN049oDI9kM2hOAaFXE5WgigqBTK3S9dP # Y+fSLWLxRT3nrAgA9kahntFbjCZT6HqqSvJGzzc8OJ60d1ylF56NyxGPVjzBrAlf # A9MCAwEAAaOCAV4wggFaMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMsR6MrS # tBZYAck3LjMWFrlMmgofMAsGA1UdDwQEAwIBhjASBgkrBgEEAYI3FQEEBQIDAQAB # MCMGCSsGAQQBgjcVAgQWBBT90TFO0yaKleGYYDuoMW+mPLzYLTAZBgkrBgEEAYI3 # FAIEDB4KAFMAdQBiAEMAQTAfBgNVHSMEGDAWgBQOrIJgQFYnl+UlE/wq4QpTlVnk # pDBQBgNVHR8ESTBHMEWgQ6BBhj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtp # L2NybC9wcm9kdWN0cy9taWNyb3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEE # SDBGMEQGCCsGAQUFBzAChjhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2Nl # cnRzL01pY3Jvc29mdFJvb3RDZXJ0LmNydDANBgkqhkiG9w0BAQUFAAOCAgEAWTk+ # fyZGr+tvQLEytWrrDi9uqEn361917Uw7LddDrQv+y+ktMaMjzHxQmIAhXaw9L0y6 # oqhWnONwu7i0+Hm1SXL3PupBf8rhDBdpy6WcIC36C1DEVs0t40rSvHDnqA2iA6VW # 4LiKS1fylUKc8fPv7uOGHzQ8uFaa8FMjhSqkghyT4pQHHfLiTviMocroE6WRTsgb # 0o9ylSpxbZsa+BzwU9ZnzCL/XB3Nooy9J7J5Y1ZEolHN+emjWFbdmwJFRC9f9Nqu # 1IIybvyklRPk62nnqaIsvsgrEA5ljpnb9aL6EiYJZTiU8XofSrvR4Vbo0HiWGFzJ # NRZf3ZMdSY4tvq00RBzuEBUaAF3dNVshzpjHCe6FDoxPbQ4TTj18KUicctHzbMrB # 7HCjV5JXfZSNoBtIA1r3z6NnCnSlNu0tLxfI5nI3EvRvsTxngvlSso0zFmUeDord # EN5k9G/ORtTTF+l5xAS00/ss3x+KnqwK+xMnQK3k+eGpf0a7B2BHZWBATrBC7E7t # s3Z52Ao0CW0cgDEf4g5U3eWh++VHEK1kmP9QFi58vwUheuKVQSdpw5OPlcmN2Jsh # rg1cnPCiroZogwxqLbt2awAdlq3yFnv2FoMkuYjPaqhHMS+a3ONxPdcAfmJH0c6I # ybgY+g5yjcGjPa8CQGr/aZuW4hCoELQ3UAjWwz0wggYHMIID76ADAgECAgphFmg0 # AAAAAAAcMA0GCSqGSIb3DQEBBQUAMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAX # BgoJkiaJk/IsZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290 # IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMx # MzAzMDlaMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD # VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAf # BgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEB # BQADggEPADCCAQoCggEBAJ+hbLHf20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn # 0UytdDAgEesH1VSVFUmUG0KSrphcMCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0 # Zxws/HvniB3q506jocEjU8qN+kXPCdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4n # rIZPVVIM5AMs+2qQkDBuh/NZMJ36ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YR # JylmqJfk0waBSqL5hKcRRxQJgp+E7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54 # QTF3zJvfO4OToWECtR0Nsfz3m7IBziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8G # A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsG # A1UdDwQEAwIBhjAQBgkrBgEEAYI3FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJg # QFYnl+UlE/wq4QpTlVnkpKFjpGEwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcG # CgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3Qg # Q2VydGlmaWNhdGUgQXV0aG9yaXR5ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJ # MEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1 # Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYB # BQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9z # b2Z0Um9vdENlcnQuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEB # BQUAA4ICAQAQl4rDXANENt3ptK132855UU0BsS50cVttDBOrzr57j7gu1BKijG1i # uFcCy04gE1CZ3XpA4le7r1iaHOEdAYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+r # kuTnjWrVgMHmlPIGL4UD6ZEqJCJw+/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGct # xVEO6mJcPxaYiyA/4gcaMvnMMUp2MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/F # NSteo7/rvH0LQnvUU3Ih7jDKu3hlXFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbo # nXCUbKw5TNT2eb+qGHpiKe+imyk0BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0 # NbhOxXEjEiZ2CzxSjHFaRkMUvLOzsE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPp # K+m79EjMLNTYMoBMJipIJF9a6lbvpt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2J # oXZhtG6hE6a/qkfwEm/9ijJssv7fUciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0 # eFQF1EEuUKyUsKV4q7OglnUa2ZKHE3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng # 9wFlb4kLfchpyOZu6qeXzjEp/w7FW1zYTRuh2Povnj8uVRZryROj/TGCBMgwggTE # AgEBMIGQMHkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD # VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAh # BgNVBAMTGk1pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBAhMzAAAAymzVMhI1xOFV # AAEAAADKMAkGBSsOAwIaBQCggeEwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw # HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFOrT # ZEbL6mMRie0QxeNrtIXxNuY6MIGABgorBgEEAYI3AgEMMXIwcKBSgFAARQBuAHQA # aQB0AHkAIABGAHIAYQBtAGUAdwBvAHIAawAgAFQAbwBvAGwAcwAgAGYAbwByACAA # VgBpAHMAdQBhAGwAIABTAHQAdQBkAGkAb6EagBhodHRwOi8vbXNkbi5jb20vZGF0 # YS9lZiAwDQYJKoZIhvcNAQEBBQAEggEAgp8YIEwXo8d1C2hJS1OX9nLxFHxKTtF9 # n3gnMoqyQ9Cq8nqapIG3LIn8gEzfUgeV3sWhZ4FsZENCqIo/bTWITq7vP5IOT1eb # eGP0iudpum8ajts8gxWBdqQRf7+qq1TnU6knpCppn2hFwp/5qsGIMCfqaj0sqIg4 # cswc5e443uOMXK6viAjC9ZzeLGH4HZX5eK3DnKsUsqT3dHC/aKhbvITK+pw2f5bP # rTRjCXMmXoVs5xMcmz0jEMu5d59yFJDGk9b02FqojlvdJ/sYvMPGpAkEmPkOygwW # /kmuemZ6sggDQKPs2trsWGa836uWYTucgQ/f+9Di+FgDc/boMGysr6GCAigwggIk # BgkqhkiG9w0BCQYxggIVMIICEQIBATCBjjB3MQswCQYDVQQGEwJVUzETMBEGA1UE # CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z # b2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQ # Q0ECEzMAAABiQS/HTYquEyYAAAAAAGIwCQYFKw4DAhoFAKBdMBgGCSqGSIb3DQEJ # AzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTE1MDMwMjE3Mjk1OFowIwYJ # KoZIhvcNAQkEMRYEFKxtHfNR1GPWPqo0yuBPiJ3WZNX2MA0GCSqGSIb3DQEBBQUA # BIIBAAwIulYLc715s8FIBZzA3zKD9IKqlhrzpTNBY014mi1pwl2sMpKyA/xAH4Gj # eyo4wzSR7PT2BsYEHElYh7tx/eC45rI2mYIFqfsyqbRBxRfWQCb3pb42kix/RUJ+ # ElTkwy7SG6c04KA8Yi/Z3uOxxlBCWfXWupHQMpIsdVI1s/v65Tn3TNyBLtPu507q # CNcYfok3IIhcvQCd7vCUK2fnJsuLxbFFqqKoMft10iqAROREkXEhfcyLOUt4BrMh # KN2ygSFPCIbFAGvmS84oq8p4FzJAFUL9rE8qzxzXrbEA4UglDj72mW6nXmXaHiOZ # J+2fE3M9xcMV3gKEuSL/DiQhPaI= # SIG # End signature block ================================================ FILE: packages/EntityFramework.6.1.3/tools/install.ps1 ================================================ param($installPath, $toolsPath, $package, $project) Initialize-EFConfiguration $project Add-EFProvider $project 'System.Data.SqlClient' 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' Write-Host Write-Host "Type 'get-help EntityFramework' to see all available Entity Framework commands." # SIG # Begin signature block # MIIa4AYJKoZIhvcNAQcCoIIa0TCCGs0CAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUt8mwpdjiFmu2B4KBh+vEeQ+V # VnSgghWCMIIEwzCCA6ugAwIBAgITMwAAAGJBL8dNiq4TJgAAAAAAYjANBgkqhkiG # 9w0BAQUFADB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G # A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEw # HwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwHhcNMTUwMjEwMTgzMzM3 # WhcNMTYwNTEwMTgzMzM3WjCBszELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp # bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw # b3JhdGlvbjENMAsGA1UECxMETU9QUjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNO # OkMwRjQtMzA4Ni1ERUY4MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBT # ZXJ2aWNlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzpcpEnjOg16e # fCoOjWmTxe4NOad07kj+GNlAGb0eel7cppX64uGPcUvvOPSAmxheqTjM2PBEtHGN # qjqD6M7STHM5hsVJ0dWsK+5KEY8IbIYHIxJJrNyF5rDLJ3lKlKFVo1mgn/oZM4cM # CgfokLOayjIvyxuJIFrFbpO+nF+PhuI3MYT+lsHKdg2ErCNF0Y3KNvmDtP9XBiRK # iGS7pVlKB4oaueB+94csweq7LXrUTrOcP8a6hRKzNqjR4pAcybwv508B4otK+jbX # lmE2ldsEysu9mwjN1fyDVSnWheoGZiXw3pxG9FeeXsOkNLibTtUVrjkcohq6hvb7 # 7q4dco7enQIDAQABo4IBCTCCAQUwHQYDVR0OBBYEFJsuiFXbFF3ayMLtg9j5aH6D # oTnHMB8GA1UdIwQYMBaAFCM0+NlSRnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEsw # SaBHoEWGQ2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3Rz # L01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsG # AQUFBzAChjxodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jv # c29mdFRpbWVTdGFtcFBDQS5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZI # hvcNAQEFBQADggEBAAytzvTw859N7K64VMzmnhXGV4ZOeMnn/AJgqOUGsIrVqmth # oqscqKq9fSnj3QlC3kyXFID7S69GmvDfylA/mu6HSe0mytg8svbYu7p6arQWe8q1 # 2kdagS1kFPBqUySyEx5pdI0r+9WejW98lNiY4PNgoqdvFZaU4fp1tsbJ8f6rJZ7U # tVCLOYHbDvlhU0LjKpbCgZ0VlR4Kk1SUuclxtIVETpHS5ToC1EzQRIGLsvkOxg7p # Kf/MkuGM4R4dYIVZpPQYLeTb0o0hdnXXez1za9a9zaa/imKXyiV53z1loGFVVYqH # AnYnCMw5M16oWdKeG7OaT+qFQL5aK0SaoZSHpuswggTsMIID1KADAgECAhMzAAAA # ymzVMhI1xOFVAAEAAADKMA0GCSqGSIb3DQEBBQUAMHkxCzAJBgNVBAYTAlVTMRMw # EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN # aWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2RlIFNp # Z25pbmcgUENBMB4XDTE0MDQyMjE3MzkwMFoXDTE1MDcyMjE3MzkwMFowgYMxCzAJ # BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k # MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xDTALBgNVBAsTBE1PUFIx # HjAcBgNVBAMTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjCCASIwDQYJKoZIhvcNAQEB # BQADggEPADCCAQoCggEBAJZxXe0GRvqEy51bt0bHsOG0ETkDrbEVc2Cc66e2bho8 # P/9l4zTxpqUhXlaZbFjkkqEKXMLT3FIvDGWaIGFAUzGcbI8hfbr5/hNQUmCVOlu5 # WKV0YUGplOCtJk5MoZdwSSdefGfKTx5xhEa8HUu24g/FxifJB+Z6CqUXABlMcEU4 # LYG0UKrFZ9H6ebzFzKFym/QlNJj4VN8SOTgSL6RrpZp+x2LR3M/tPTT4ud81MLrs # eTKp4amsVU1Mf0xWwxMLdvEH+cxHrPuI1VKlHij6PS3Pz4SYhnFlEc+FyQlEhuFv # 57H8rEBEpamLIz+CSZ3VlllQE1kYc/9DDK0r1H8wQGcCAwEAAaOCAWAwggFcMBMG # A1UdJQQMMAoGCCsGAQUFBwMDMB0GA1UdDgQWBBQfXuJdUI1Whr5KPM8E6KeHtcu/ # gzBRBgNVHREESjBIpEYwRDENMAsGA1UECxMETU9QUjEzMDEGA1UEBRMqMzE1OTUr # YjQyMThmMTMtNmZjYS00OTBmLTljNDctM2ZjNTU3ZGZjNDQwMB8GA1UdIwQYMBaA # FMsR6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9j # cmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8w # OC0zMS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6 # Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMx # LTIwMTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQB3XOvXkT3NvXuD2YWpsEOdc3wX # yQ/tNtvHtSwbXvtUBTqDcUCBCaK3cSZe1n22bDvJql9dAxgqHSd+B+nFZR+1zw23 # VMcoOFqI53vBGbZWMrrizMuT269uD11E9dSw7xvVTsGvDu8gm/Lh/idd6MX/YfYZ # 0igKIp3fzXCCnhhy2CPMeixD7v/qwODmHaqelzMAUm8HuNOIbN6kBjWnwlOGZRF3 # CY81WbnYhqgA/vgxfSz0jAWdwMHVd3Js6U1ZJoPxwrKIV5M1AHxQK7xZ/P4cKTiC # 095Sl0UpGE6WW526Xxuj8SdQ6geV6G00DThX3DcoNZU6OJzU7WqFXQ4iEV57MIIF # vDCCA6SgAwIBAgIKYTMmGgAAAAAAMTANBgkqhkiG9w0BAQUFADBfMRMwEQYKCZIm # iZPyLGQBGRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQD # EyRNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTAwODMx # MjIxOTMyWhcNMjAwODMxMjIyOTMyWjB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK # V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 # IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD # QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJyWVwZMGS/HZpgICBC # mXZTbD4b1m/My/Hqa/6XFhDg3zp0gxq3L6Ay7P/ewkJOI9VyANs1VwqJyq4gSfTw # aKxNS42lvXlLcZtHB9r9Jd+ddYjPqnNEf9eB2/O98jakyVxF3K+tPeAoaJcap6Vy # c1bxF5Tk/TWUcqDWdl8ed0WDhTgW0HNbBbpnUo2lsmkv2hkL/pJ0KeJ2L1TdFDBZ # +NKNYv3LyV9GMVC5JxPkQDDPcikQKCLHN049oDI9kM2hOAaFXE5WgigqBTK3S9dP # Y+fSLWLxRT3nrAgA9kahntFbjCZT6HqqSvJGzzc8OJ60d1ylF56NyxGPVjzBrAlf # A9MCAwEAAaOCAV4wggFaMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMsR6MrS # tBZYAck3LjMWFrlMmgofMAsGA1UdDwQEAwIBhjASBgkrBgEEAYI3FQEEBQIDAQAB # MCMGCSsGAQQBgjcVAgQWBBT90TFO0yaKleGYYDuoMW+mPLzYLTAZBgkrBgEEAYI3 # FAIEDB4KAFMAdQBiAEMAQTAfBgNVHSMEGDAWgBQOrIJgQFYnl+UlE/wq4QpTlVnk # pDBQBgNVHR8ESTBHMEWgQ6BBhj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtp # L2NybC9wcm9kdWN0cy9taWNyb3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEE # SDBGMEQGCCsGAQUFBzAChjhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2Nl # cnRzL01pY3Jvc29mdFJvb3RDZXJ0LmNydDANBgkqhkiG9w0BAQUFAAOCAgEAWTk+ # fyZGr+tvQLEytWrrDi9uqEn361917Uw7LddDrQv+y+ktMaMjzHxQmIAhXaw9L0y6 # oqhWnONwu7i0+Hm1SXL3PupBf8rhDBdpy6WcIC36C1DEVs0t40rSvHDnqA2iA6VW # 4LiKS1fylUKc8fPv7uOGHzQ8uFaa8FMjhSqkghyT4pQHHfLiTviMocroE6WRTsgb # 0o9ylSpxbZsa+BzwU9ZnzCL/XB3Nooy9J7J5Y1ZEolHN+emjWFbdmwJFRC9f9Nqu # 1IIybvyklRPk62nnqaIsvsgrEA5ljpnb9aL6EiYJZTiU8XofSrvR4Vbo0HiWGFzJ # NRZf3ZMdSY4tvq00RBzuEBUaAF3dNVshzpjHCe6FDoxPbQ4TTj18KUicctHzbMrB # 7HCjV5JXfZSNoBtIA1r3z6NnCnSlNu0tLxfI5nI3EvRvsTxngvlSso0zFmUeDord # EN5k9G/ORtTTF+l5xAS00/ss3x+KnqwK+xMnQK3k+eGpf0a7B2BHZWBATrBC7E7t # s3Z52Ao0CW0cgDEf4g5U3eWh++VHEK1kmP9QFi58vwUheuKVQSdpw5OPlcmN2Jsh # rg1cnPCiroZogwxqLbt2awAdlq3yFnv2FoMkuYjPaqhHMS+a3ONxPdcAfmJH0c6I # ybgY+g5yjcGjPa8CQGr/aZuW4hCoELQ3UAjWwz0wggYHMIID76ADAgECAgphFmg0 # AAAAAAAcMA0GCSqGSIb3DQEBBQUAMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAX # BgoJkiaJk/IsZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290 # IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMx # MzAzMDlaMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD # VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAf # BgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEB # BQADggEPADCCAQoCggEBAJ+hbLHf20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn # 0UytdDAgEesH1VSVFUmUG0KSrphcMCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0 # Zxws/HvniB3q506jocEjU8qN+kXPCdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4n # rIZPVVIM5AMs+2qQkDBuh/NZMJ36ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YR # JylmqJfk0waBSqL5hKcRRxQJgp+E7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54 # QTF3zJvfO4OToWECtR0Nsfz3m7IBziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8G # A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsG # A1UdDwQEAwIBhjAQBgkrBgEEAYI3FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJg # QFYnl+UlE/wq4QpTlVnkpKFjpGEwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcG # CgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3Qg # Q2VydGlmaWNhdGUgQXV0aG9yaXR5ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJ # MEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1 # Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYB # BQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9z # b2Z0Um9vdENlcnQuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEB # BQUAA4ICAQAQl4rDXANENt3ptK132855UU0BsS50cVttDBOrzr57j7gu1BKijG1i # uFcCy04gE1CZ3XpA4le7r1iaHOEdAYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+r # kuTnjWrVgMHmlPIGL4UD6ZEqJCJw+/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGct # xVEO6mJcPxaYiyA/4gcaMvnMMUp2MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/F # NSteo7/rvH0LQnvUU3Ih7jDKu3hlXFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbo # nXCUbKw5TNT2eb+qGHpiKe+imyk0BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0 # NbhOxXEjEiZ2CzxSjHFaRkMUvLOzsE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPp # K+m79EjMLNTYMoBMJipIJF9a6lbvpt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2J # oXZhtG6hE6a/qkfwEm/9ijJssv7fUciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0 # eFQF1EEuUKyUsKV4q7OglnUa2ZKHE3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng # 9wFlb4kLfchpyOZu6qeXzjEp/w7FW1zYTRuh2Povnj8uVRZryROj/TGCBMgwggTE # AgEBMIGQMHkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD # VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAh # BgNVBAMTGk1pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBAhMzAAAAymzVMhI1xOFV # AAEAAADKMAkGBSsOAwIaBQCggeEwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw # HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFJiz # f4JawBv4s6ihwSKoeZTRDcAvMIGABgorBgEEAYI3AgEMMXIwcKBSgFAARQBuAHQA # aQB0AHkAIABGAHIAYQBtAGUAdwBvAHIAawAgAFQAbwBvAGwAcwAgAGYAbwByACAA # VgBpAHMAdQBhAGwAIABTAHQAdQBkAGkAb6EagBhodHRwOi8vbXNkbi5jb20vZGF0 # YS9lZiAwDQYJKoZIhvcNAQEBBQAEggEAFy52TLBcmieavvWab1nArTK05hXGrx+n # qn/Aq3b4WpCD3Kotg6ZcmMDgFoBR3CCxOi8DzXowNjnX4aGMnUgGR8oczgU0DVRN # 6e9fIaYthchMgS/bDZEyPZ39H2mSuNPkM4rBiB5K0CkQQgjwEKYCRImwSlnBu0jY # nH1J/jF0RnYFZ1uxmY8jpWA/km5kj3fSTwC8CPn24I6H520Cka0CiBGl6iNLRAK+ # rOokn9Ymw9dbttXINl8WpNCBIR6XBAgBhlyJa6JmTceoXZvIGu1h8KVCWwDv+lKT # uRLEKWdVQ5cgNth3csHOUQnBC5FN6TxY9dqozIwcjNUwwOOsqrEW5KGCAigwggIk # BgkqhkiG9w0BCQYxggIVMIICEQIBATCBjjB3MQswCQYDVQQGEwJVUzETMBEGA1UE # CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z # b2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQ # Q0ECEzMAAABiQS/HTYquEyYAAAAAAGIwCQYFKw4DAhoFAKBdMBgGCSqGSIb3DQEJ # AzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTE1MDMwMjE3Mjk1OFowIwYJ # KoZIhvcNAQkEMRYEFAMe6WzqHaLPBigGoS/gaG25ANUpMA0GCSqGSIb3DQEBBQUA # BIIBAGFxF739EOC9CNxIDxocqE2PugMRxvX1rrmsvfwnrhaZmL9XqeWgsS8SqJq3 # GOASzoTwvkyAE9qavr0o34a84HDSVbapNEribsu6ILaZpd0ucFGbk4L3QcSODtvH # XZuCh0cl3ohJT8ShQBNmN9TkqlhnP9AYWcoNaefJkozg7xc3m/CsGkcbSHNk0Bvm # IF1zG1axnKwNFXopJLnbqxqajBcH3VaCTo9cEshs9qaUy2NZ4RZJztYnnBQsGvv8 # go2qsBgLcALFpVHrSX6yKuH8XVwR+lHofY7nZHs0TLi55SFbpJK+53BCWeH4OK85 # wQ6quf2TAX7dc3ct2zrY3TWhf7Q= # SIG # End signature block ================================================ FILE: packages/Microsoft.AspNet.Mvc.4.0.20710.0/lib/net40/System.Web.Mvc.xml ================================================  System.Web.Mvc Represents an attribute that specifies which HTTP verbs an action method will respond to. Initializes a new instance of the class by using a list of HTTP verbs that the action method will respond to. The HTTP verbs that the action method will respond to. The parameter is null or zero length. Initializes a new instance of the class using the HTTP verbs that the action method will respond to. The HTTP verbs that the action method will respond to. Determines whether the specified method information is valid for the specified controller context. true if the method information is valid; otherwise, false. The controller context. The method information. The parameter is null. Gets or sets the list of HTTP verbs that the action method will respond to. The list of HTTP verbs that the action method will respond to. Provides information about an action method, such as its name, controller, parameters, attributes, and filters. Initializes a new instance of the class. Gets the name of the action method. The name of the action method. Gets the controller descriptor. The controller descriptor. Executes the action method by using the specified parameters and controller context. The result of executing the action method. The controller context. The parameters of the action method. Returns an array of custom attributes that are defined for this member, excluding named attributes. An array of custom attributes, or an empty array if no custom attributes exist. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. The custom attribute type cannot be loaded. There is more than one attribute of type defined for this member. Returns an array of custom attributes that are defined for this member, identified by type. An array of custom attributes, or an empty array if no custom attributes of the specified type exist. The type of the custom attributes. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. The custom attribute type cannot be loaded. There is more than one attribute of type defined for this member. The parameter is null. Gets the filter attributes. The filter attributes. true to use the cache, otherwise false. Returns the filters that are associated with this action method. The filters that are associated with this action method. Returns the parameters of the action method. The parameters of the action method. Returns the action-method selectors. The action-method selectors. Determines whether one or more instances of the specified attribute type are defined for this member. true if is defined for this member; otherwise, false. The type of the custom attribute. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. The parameter is null. Gets the unique ID for the action descriptor using lazy initialization. The unique ID. Provides the context for the ActionExecuted method of the class. Initializes a new instance of the class. Initializes a new instance of the class. The controller context. The action method descriptor. true if the action is canceled. The exception object. The parameter is null. Gets or sets the action descriptor. The action descriptor. Gets or sets a value that indicates that this object is canceled. true if the context canceled; otherwise, false. Gets or sets the exception that occurred during the execution of the action method, if any. The exception that occurred during the execution of the action method. Gets or sets a value that indicates whether the exception is handled. true if the exception is handled; otherwise, false. Gets or sets the result returned by the action method. The result returned by the action method. Provides the context for the ActionExecuting method of the class. Initializes a new instance of the class. Initializes a new instance of the class by using the specified controller context, action descriptor, and action-method parameters. The controller context. The action descriptor. The action-method parameters. The or parameter is null. Gets or sets the action descriptor. The action descriptor. Gets or sets the action-method parameters. The action-method parameters. Gets or sets the result that is returned by the action method. The result that is returned by the action method. Represents the base class for filter attributes. Initializes a new instance of the class. Called by the ASP.NET MVC framework after the action method executes. The filter context. Called by the ASP.NET MVC framework before the action method executes. The filter context. Called by the ASP.NET MVC framework after the action result executes. The filter context. Called by the ASP.NET MVC framework before the action result executes. The filter context. Represents an attribute that is used to influence the selection of an action method. Initializes a new instance of the class. Determines whether the action method selection is valid for the specified controller context. true if the action method selection is valid for the specified controller context; otherwise, false. The controller context. Information about the action method. Represents an attribute that is used for the name of an action. Initializes a new instance of the class. Name of the action. The parameter is null or empty. Determines whether the action name is valid within the specified controller context. true if the action name is valid within the specified controller context; otherwise, false. The controller context. The name of the action. Information about the action method. Gets or sets the name of the action. The name of the action. Represents an attribute that affects the selection of an action method. Initializes a new instance of the class. Determines whether the action name is valid in the specified controller context. true if the action name is valid in the specified controller context; otherwise, false. The controller context. The name of the action. Information about the action method. Encapsulates the result of an action method and is used to perform a framework-level operation on behalf of the action method. Initializes a new instance of the class. Enables processing of the result of an action method by a custom type that inherits from the class. The context in which the result is executed. The context information includes the controller, HTTP content, request context, and route data. Represents a delegate that contains the logic for selecting an action method. true if an action method was successfully selected; otherwise, false. The current HTTP request context. Provides a class that implements the interface in order to support additional metadata. Initializes a new instance of the class. The name of the model metadata. The value of the model metadata. Gets the name of the additional metadata attribute. The name of the of the additional metadata attribute. Provides metadata to the model metadata creation process. The meta data. Gets the type of the of the additional metadata attribute. The type of the of the additional metadata attribute. Gets the value of the of the additional metadata attribute. The value of the of the additional metadata attribute. Represents support for rendering HTML in AJAX scenarios within a view. Initializes a new instance of the class using the specified view context and view data container. The view context. The view data container. One or both of the parameters is null. Initializes a new instance of the class by using the specified view context, view data container, and route collection. The view context. The view data container. The URL route collection. One or more of the parameters is null. Gets or sets the root path for the location to use for globalization script files. The location of the folder where globalization script files are stored. The default location is "~/Scripts/Globalization". Serializes the specified message and returns the resulting JSON-formatted string. The serialized message as a JSON-formatted string. The message to serialize. Gets the collection of URL routes for the application. The collection of routes for the application. Gets the ViewBag. The ViewBag. Gets the context information about the view. The context of the view. Gets the current view data dictionary. The view data dictionary. Gets the view data container. The view data container. Represents support for rendering HTML in AJAX scenarios within a strongly typed view. The type of the model. Initializes a new instance of the class by using the specified view context and view data container. The view context. The view data container. Initializes a new instance of the class by using the specified view context, view data container, and URL route collection. The view context. The view data container. The URL route collection. Gets the ViewBag. The ViewBag. Gets the strongly typed version of the view data dictionary. The strongly typed data dictionary of the view. Represents a class that extends the class by adding the ability to determine whether an HTTP request is an AJAX request. Represents an attribute that marks controllers and actions to skip the during authorization. Initializes a new instance of the class. Allows a request to include HTML markup during model binding by skipping request validation for the property. (It is strongly recommended that your application explicitly check all models where you disable request validation in order to prevent script exploits.) Initializes a new instance of the class. This method supports the ASP.NET MVC validation infrastructure and is not intended to be used directly from your code. The model metadata. Provides a way to register one or more areas in an ASP.NET MVC application. Initializes a new instance of the class. Gets the name of the area to register. The name of the area to register. Registers all areas in an ASP.NET MVC application. Registers all areas in an ASP.NET MVC application by using the specified user-defined information. An object that contains user-defined information to pass to the area. Registers an area in an ASP.NET MVC application using the specified area's context information. Encapsulates the information that is required in order to register the area. Encapsulates the information that is required in order to register an area within an ASP.NET MVC application. Initializes a new instance of the class using the specified area name and routes collection. The name of the area to register. The collection of routes for the application. Initializes a new instance of the class using the specified area name, routes collection, and user-defined data. The name of the area to register. The collection of routes for the application. An object that contains user-defined information to pass to the area. Gets the name of the area to register. The name of the area to register. Maps the specified URL route and associates it with the area that is specified by the property. A reference to the mapped route. The name of the route. The URL pattern for the route. The parameter is null. Maps the specified URL route and associates it with the area that is specified by the property, using the specified route default values. A reference to the mapped route. The name of the route. The URL pattern for the route. An object that contains default route values. The parameter is null. Maps the specified URL route and associates it with the area that is specified by the property, using the specified route default values and constraint. A reference to the mapped route. The name of the route. The URL pattern for the route. An object that contains default route values. A set of expressions that specify valid values for a URL parameter. The parameter is null. Maps the specified URL route and associates it with the area that is specified by the property, using the specified route default values, constraints, and namespaces. A reference to the mapped route. The name of the route. The URL pattern for the route. An object that contains default route values. A set of expressions that specify valid values for a URL parameter. An enumerable set of namespaces for the application. The parameter is null. Maps the specified URL route and associates it with the area that is specified by the property, using the specified route default values and namespaces. A reference to the mapped route. The name of the route. The URL pattern for the route. An object that contains default route values. An enumerable set of namespaces for the application. The parameter is null. Maps the specified URL route and associates it with the area that is specified by the property, using the specified namespaces. A reference to the mapped route. The name of the route. The URL pattern for the route. An enumerable set of namespaces for the application. The parameter is null. Gets the namespaces for the application. An enumerable set of namespaces for the application. Gets a collection of defined routes for the application. A collection of defined routes for the application. Gets an object that contains user-defined information to pass to the area. An object that contains user-defined information to pass to the area. Provides an abstract class to implement a metadata provider. Called from constructors in a derived class to initialize the class. When overridden in a derived class, creates the model metadata for the property. The model metadata for the property. The set of attributes. The type of the container. The model accessor. The type of the model. The name of the property. Gets a list of attributes. A list of attributes. The type of the container. The property descriptor. The attribute container. Returns a list of properties for the model. A list of properties for the model. The model container. The type of the container. Returns the metadata for the specified property using the container type and property descriptor. The metadata for the specified property using the container type and property descriptor. The model accessor. The type of the container. The property descriptor Returns the metadata for the specified property using the container type and property name. The metadata for the specified property using the container type and property name. The model accessor. The type of the container. The name of the property. Returns the metadata for the specified property using the type of the model. The metadata for the specified property using the type of the model. The model accessor. The type of the model. Returns the type descriptor from the specified type. The type descriptor. The type. Provides an abstract class for classes that implement a validation provider. Called from constructors in derived classes to initialize the class. Gets a type descriptor for the specified type. A type descriptor for the specified type. The type of the validation provider. Gets the validators for the model using the metadata and controller context. The validators for the model. The metadata. The controller context. Gets the validators for the model using the metadata, the controller context, and a list of attributes. The validators for the model. The metadata. The controller context. The list of attributes. Provided for backward compatibility with ASP.NET MVC 3. Initializes a new instance of the class. Represents an attribute that is used to set the timeout value, in milliseconds, for an asynchronous method. Initializes a new instance of the class. The timeout value, in milliseconds. Gets the timeout duration, in milliseconds. The timeout duration, in milliseconds. Called by ASP.NET before the asynchronous action method executes. The filter context. Encapsulates the information that is required for using an attribute. Initializes a new instance of the class. Initializes a new instance of the class using the specified controller context. The context within which the result is executed. The context information includes the controller, HTTP content, request context, and route data. Initializes a new instance of the class using the specified controller context and action descriptor. The context in which the result is executed. The context information includes the controller, HTTP content, request context, and route data. An object that provides information about an action method, such as its name, controller, parameters, attributes, and filters. Provides information about the action method that is marked by the attribute, such as its name, controller, parameters, attributes, and filters. The action descriptor for the action method that is marked by the attribute. Gets or sets the result that is returned by an action method. The result that is returned by an action method. Represents an attribute that is used to restrict access by callers to an action method. Initializes a new instance of the class. When overridden, provides an entry point for custom authorization checks. true if the user is authorized; otherwise, false. The HTTP context, which encapsulates all HTTP-specific information about an individual HTTP request. The parameter is null. Processes HTTP requests that fail authorization. Encapsulates the information for using . The object contains the controller, HTTP context, request context, action result, and route data. Called when a process requests authorization. The filter context, which encapsulates information for using . The parameter is null. Called when the caching module requests authorization. A reference to the validation status. The HTTP context, which encapsulates all HTTP-specific information about an individual HTTP request. The parameter is null. Gets or sets the user roles. The user roles. Gets the unique identifier for this attribute. The unique identifier for this attribute. Gets or sets the authorized users. The authorized users. Represents an attribute that is used to provide details about how model binding to a parameter should occur. Initializes a new instance of the class. Gets or sets a comma-delimited list of property names for which binding is not allowed. The exclude list. Gets or sets a comma-delimited list of property names for which binding is allowed. The include list. Determines whether the specified property is allowed. true if the specified property is allowed; otherwise, false. The name of the property. Gets or sets the prefix to use when markup is rendered for binding to an action argument or to a model property. The prefix to use. Represents the base class for views that are compiled by the BuildManager class before being rendered by a view engine. Initializes a new instance of the class using the specified controller context and view path. The controller context. The view path. Initializes a new instance of the class using the specified controller context, view path, and view page activator. Context information for the current controller. This information includes the HTTP context, request context, route data, parent action view context, and more. The path to the view that will be rendered. The object responsible for dynamically constructing the view page at run time. The parameter is null. The parameter is null or empty. Renders the specified view context by using the specified the writer object. Information related to rendering a view, such as view data, temporary data, and form context. The writer object. The parameter is null. An instance of the view type could not be created. When overridden in a derived class, renders the specified view context by using the specified writer object and object instance. Information related to rendering a view, such as view data, temporary data, and form context. The writer object. An object that contains additional information that can be used in the view. Gets or sets the view path. The view path. Provides a base class for view engines. Initializes a new instance of the class. Initializes a new instance of the class using the specified view page activator. The view page activator. Gets a value that indicates whether a file exists in the specified virtual file system (path). true if the file exists in the virtual file system; otherwise, false. The controller context. The virtual path. Gets the view page activator. The view page activator. Maps a browser request to a byte array. Initializes a new instance of the class. Binds the model by using the specified controller context and binding context. The bound data object. The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. The parameter is null. Provides an abstract class to implement a cached metadata provider. Initializes a new instance of the class. Gets the cache item policy. The cache item policy. Gets the cache key prefix. The cache key prefix. When overridden in a derived class, creates the cached model metadata for the property. The cached model metadata for the property. The attributes. The container type. The model accessor. The model type. The property name. Creates prototype metadata by applying the prototype and model access to yield the final metadata. The prototype metadata. The prototype. The model accessor. Creates a metadata prototype. A metadata prototype. The attributes. The container type. The model type. The property name. Gets the metadata for the properties. The metadata for the properties. The container. The container type. Returns the metadata for the specified property. The metadata for the specified property. The model accessor. The container type. The property descriptor. Returns the metadata for the specified property. The metadata for the specified property. The model accessor. The container type. The property name. Returns the cached metadata for the specified property using the type of the model. The cached metadata for the specified property using the type of the model. The model accessor. The type of the container. Gets the prototype cache. The prototype cache. Provides a container to cache attributes. Initializes a new instance of the class. The attributes. Gets the data type. The data type. Gets the display. The display. Gets the display column. The display column. Gets the display format. The display format. Gets the display name. The display name. Indicates whether a data field is editable. true if the field is editable; otherwise, false. Gets the hidden input. The hidden input. Indicates whether a data field is read only. true if the field is read only; otherwise, false. Indicates whether a data field is required. true if the field is required; otherwise, false. Indicates whether a data field is scaffold. true if the field is scaffold; otherwise, false. Gets the UI hint. The UI hint. Provides a container to cache . Initializes a new instance of the class using the prototype and model accessor. The prototype. The model accessor. Initializes a new instance of the class using the provider, container type, model type, property name and attributes. The provider. The container type. The model type. The property name. The attributes. Gets a value that indicates whether empty strings that are posted back in forms should be converted to Nothing.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache. A value that indicates whether empty strings that are posted back in forms should be converted to Nothing. Gets meta information about the data type.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache. Meta information about the data type. Gets the description of the model.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache. The description of the model. Gets the display format string for the model.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache. The display format string for the model. Gets the display name of the model.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache. The display name of the model. Gets the edit format string of the model.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache. The edit format string of the model. Gets a value that indicates whether the model object should be rendered using associated HTML elements.Gets a value that indicates whether the model object should be rendered using associated HTML elements.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache. A value that indicates whether the model object should be rendered using associated HTML elements. Gets a value that indicates whether the model is read-only.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache. A value that indicates whether the model is read-only. Gets a value that indicates whether the model is required.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache. A value that indicates whether the model is required. Gets the string to display for null values.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache. The string to display for null values. Gets a value that represents order of the current metadata.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache. A value that represents order of the current metadata. Gets a short display name.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache. A short display name. Gets a value that indicates whether the property should be displayed in read-only views such as list and detail views.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache. A value that indicates whether the property should be displayed in read-only views such as list and detail views. Gets or sets a value that indicates whether the model should be displayed in editable views.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache. Returns . Gets the simple display string for the model.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache. The simple display string for the model. Gets a hint that suggests what template to use for this model.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache. A hint that suggests what template to use for this model. Gets a value that can be used as a watermark.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache. A value that can be used as a watermark. Implements the default cached model metadata provider for ASP.NET MVC. Initializes a new instance of the class. Returns a container of real instances of the cached metadata class based on prototype and model accessor. A container of real instances of the cached metadata class. The prototype. The model accessor. Returns a container prototype instances of the metadata class. a container prototype instances of the metadata class. The attributes type. The container type. The model type. The property name. Provides a container for cached metadata. he type of the container. Constructor for creating real instances of the metadata class based on a prototype. The provider. The container type. The model type. The property name. The prototype. Constructor for creating the prototype instances of the metadata class. The prototype. The model accessor. This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets a cached value that indicates whether empty strings that are posted back in forms should be converted to null. A cached value that indicates whether empty strings that are posted back in forms should be converted to null. This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets meta information about the data type. Meta information about the data type. This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets the description of the model. The description of the model. This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets the display format string for the model. The display format string for the model. This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets the display name of the model. The display name of the model. This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets the edit format string of the model. The edit format string of the model. This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets a cached value that indicates whether the model object should be rendered using associated HTML elements. A cached value that indicates whether the model object should be rendered using associated HTML elements. This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets a cached value that indicates whether the model is read-only. A cached value that indicates whether the model is read-only. This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets a cached value that indicates whether the model is required. A cached value that indicates whether the model is required. This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets the cached string to display for null values. The cached string to display for null values. This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets a cached value that represents order of the current metadata. A cached value that represents order of the current metadata. This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets a short display name. A short display name. This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets a cached value that indicates whether the property should be displayed in read-only views such as list and detail views. A cached value that indicates whether the property should be displayed in read-only views such as list and detail views. This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets a cached value that indicates whether the model should be displayed in editable views. A cached value that indicates whether the model should be displayed in editable views. This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets the cached simple display string for the model. The cached simple display string for the model. This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets a cached hint that suggests what template to use for this model. A cached hint that suggests what template to use for this model. This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets a cached value that can be used as a watermark. A cached value that can be used as a watermark. Gets or sets a cached value that indicates whether empty strings that are posted back in forms should be converted to null. A cached value that indicates whether empty strings that are posted back in forms should be converted to null. Gets or sets meta information about the data type. The meta information about the data type. Gets or sets the description of the model. The description of the model. Gets or sets the display format string for the model. The display format string for the model. Gets or sets the display name of the model. The display name of the model. Gets or sets the edit format string of the model. The edit format string of the model. Gets or sets the simple display string for the model. The simple display string for the model. Gets or sets a value that indicates whether the model object should be rendered using associated HTML elements. A value that indicates whether the model object should be rendered using associated HTML elements. Gets or sets a value that indicates whether the model is read-only. A value that indicates whether the model is read-only. Gets or sets a value that indicates whether the model is required. A value that indicates whether the model is required. Gets or sets the string to display for null values. The string to display for null values. Gets or sets a value that represents order of the current metadata. The order value of the current metadata. Gets or sets the prototype cache. The prototype cache. Gets or sets a short display name. The short display name. Gets or sets a value that indicates whether the property should be displayed in read-only views such as list and detail views. true if the model should be displayed in read-only views; otherwise, false. Gets or sets a value that indicates whether the model should be displayed in editable views. true if the model should be displayed in editable views; otherwise, false. Gets or sets the simple display string for the model. The simple display string for the model. Gets or sets a hint that suggests what template to use for this model. A hint that suggests what template to use for this model. Gets or sets a value that can be used as a watermark. A value that can be used as a watermark. Provides a mechanism to propagates notification that model binder operations should be canceled. Initializes a new instance of the class. Returns the default cancellation token. The default cancellation token. The controller context. The binding context. Represents an attribute that is used to indicate that an action method should be called only as a child action. Initializes a new instance of the class. Called when authorization is required. An object that encapsulates the information that is required in order to authorize access to the child action. Represents a value provider for values from child actions. Initializes a new instance of the class. The controller context. Retrieves a value object using the specified key. The value object for the specified key. The key. Represents a factory for creating value provider objects for child actions. Initializes a new instance of the class. Returns a object for the specified controller context. A object. The controller context. Returns the client data-type model validators. Initializes a new instance of the class. Returns the client data-type model validators. The client data-type model validators. The metadata. The context. Gets the resource class key. The resource class key. Provides an attribute that compares two properties of a model. Initializes a new instance of the class. The property to compare with the current property. Applies formatting to an error message based on the data field where the compare error occurred. The formatted error message. The name of the field that caused the validation failure. Formats the property for client validation by prepending an asterisk (*) and a dot. The string "*." is prepended to the property. The property. Gets a list of compare-value client validation rules for the property using the specified model metadata and controller context. A list of compare-value client validation rules. The model metadata. The controller context. Determines whether the specified object is equal to the compared object. null if the value of the compared property is equal to the value parameter; otherwise, a validation result that contains the error message that indicates that the comparison failed. The value of the object to compare. The validation context. Gets the property to compare with the current property. The property to compare with the current property. Gets the other properties display name. The other properties display name. Represents a user-defined content type that is the result of an action method. Initializes a new instance of the class. Gets or sets the content. The content. Gets or sets the content encoding. The content encoding. Gets or sets the type of the content. The type of the content. Enables processing of the result of an action method by a custom type that inherits from the class. The context within which the result is executed. The parameter is null. Provides methods that respond to HTTP requests that are made to an ASP.NET MVC Web site. Initializes a new instance of the class. Gets the action invoker for the controller. The action invoker. Provides asynchronous operations. Returns . Begins execution of the specified request context Returns an IAsyncController instance. The request context. The callback. The state. Begins to invoke the action in the current controller context. Returns an IAsyncController instance. The callback. The state. Gets or sets the binder. The binder. Creates a content result object by using a string. The content result instance. The content to write to the response. Creates a content result object by using a string and the content type. The content result instance. The content to write to the response. The content type (MIME type). Creates a content result object by using a string, the content type, and content encoding. The content result instance. The content to write to the response. The content type (MIME type). The content encoding. Creates an action invoker. An action invoker. Creates a temporary data provider. A temporary data provider. Disable asynchronous support to provide backward compatibility. true if asynchronous support is disabled; otherwise false. Releases all resources that are used by the current instance of the class. Releases unmanaged resources and optionally releases managed resources. true to release both managed and unmanaged resources; false to release only unmanaged resources. Ends the invocation of the action in the current controller context. The asynchronous result. Ends the execute core. The asynchronous result. Invokes the action in the current controller context. Creates a object by using the file contents and file type. The file-content result object. The binary content to send to the response. The content type (MIME type). Creates a object by using the file contents, content type, and the destination file name. The file-content result object. The binary content to send to the response. The content type (MIME type). The file name to use in the file-download dialog box that is displayed in the browser. Creates a object by using the object and content type. The file-content result object. The stream to send to the response. The content type (MIME type). Creates a object using the object, the content type, and the target file name. The file-stream result object. The stream to send to the response. The content type (MIME type) The file name to use in the file-download dialog box that is displayed in the browser. Creates a object by using the file name and the content type. The file-stream result object. The path of the file to send to the response. The content type (MIME type). Creates a object by using the file name, the content type, and the file download name. The file-stream result object. The path of the file to send to the response. The content type (MIME type). The file name to use in the file-download dialog box that is displayed in the browser. Called when a request matches this controller, but no method with the specified action name is found in the controller. The name of the attempted action. Gets HTTP-specific information about an individual HTTP request. The HTTP context. Returns an instance of the class. An instance of the class. Returns an instance of the class. An instance of the class. The status description. Initializes data that might not be available when the constructor is called. The HTTP context and route data. Creates a object. The object that writes the script to the response. The JavaScript code to run on the client Creates a object that serializes the specified object to JavaScript Object Notation (JSON). The JSON result object that serializes the specified object to JSON format. The result object that is prepared by this method is written to the response by the ASP.NET MVC framework when the object is executed. The JavaScript object graph to serialize. Creates a object that serializes the specified object to JavaScript Object Notation (JSON) format. The JSON result object that serializes the specified object to JSON format. The JavaScript object graph to serialize. The content type (MIME type). Creates a object that serializes the specified object to JavaScript Object Notation (JSON) format. The JSON result object that serializes the specified object to JSON format. The JavaScript object graph to serialize. The content type (MIME type). The content encoding. Creates a object that serializes the specified object to JavaScript Object Notation (JSON) format using the content type, content encoding, and the JSON request behavior. The result object that serializes the specified object to JSON format. The JavaScript object graph to serialize. The content type (MIME type). The content encoding. The JSON request behavior Creates a object that serializes the specified object to JavaScript Object Notation (JSON) format using the specified content type and JSON request behavior. The result object that serializes the specified object to JSON format. The JavaScript object graph to serialize. The content type (MIME type). The JSON request behavior Creates a object that serializes the specified object to JavaScript Object Notation (JSON) format using the specified JSON request behavior. The result object that serializes the specified object to JSON format. The JavaScript object graph to serialize. The JSON request behavior. Gets the model state dictionary object that contains the state of the model and of model-binding validation. The model state dictionary. Called after the action method is invoked. Information about the current request and action. Called before the action method is invoked. Information about the current request and action. Called when authorization occurs. Information about the current request and action. Called when an unhandled exception occurs in the action. Information about the current request and action. Called after the action result that is returned by an action method is executed. Information about the current request and action result Called before the action result that is returned by an action method is executed. Information about the current request and action result Creates a object that renders a partial view. A partial-view result object. Creates a object that renders a partial view, by using the specified model. A partial-view result object. The model that is rendered by the partial view Creates a object that renders a partial view, by using the specified view name. A partial-view result object. The name of the view that is rendered to the response. Creates a object that renders a partial view, by using the specified view name and model. A partial-view result object. The name of the view that is rendered to the response. The model that is rendered by the partial view Gets the HTTP context profile. The HTTP context profile. Creates a object that redirects to the specified URL. The redirect result object. The URL to redirect to. Returns an instance of the class with the property set to true. An instance of the class with the property set to true. The URL to redirect to. Redirects to the specified action using the action name. The redirect result object. The name of the action. Redirects to the specified action using the action name and route values. The redirect result object. The name of the action. The parameters for a route. Redirects to the specified action using the action name and controller name. The redirect result object. The name of the action. The name of the controller Redirects to the specified action using the action name, controller name, and route values. The redirect result object. The name of the action. The name of the controller The parameters for a route. Redirects to the specified action using the action name, controller name, and route dictionary. The redirect result object. The name of the action. The name of the controller The parameters for a route. Redirects to the specified action using the action name and route dictionary. The redirect result object. The name of the action. The parameters for a route. Returns an instance of the class with the property set to true using the specified action name. An instance of the class with the property set to true using the specified action name, controller name, and route values. The action name. Returns an instance of the class with the property set to true using the specified action name, and route values. An instance of the class with the property set to true using the specified action name, and route values. The action name. The route values. Returns an instance of the class with the property set to true using the specified action name, and controller name. An instance of the class with the property set to true using the specified action name, and controller name. The action name. The controller name. Returns an instance of the class with the property set to true using the specified action name, controller name, and route values. An instance of the class with the property set to true. The action name. The controller name. The route values. Returns an instance of the class with the property set to true using the specified action name, controller name, and route values. An instance of the class with the property set to true using the specified action name, controller name, and route values. The action name. The controller name. The route values. Returns an instance of the class with the property set to true using the specified action name, and route values. An instance of the class with the property set to true using the specified action name, and route values. The action name. The route values. Redirects to the specified route using the specified route values. The redirect-to-route result object. The parameters for a route. Redirects to the specified route using the route name. The redirect-to-route result object. The name of the route Redirects to the specified route using the route name and route values. The redirect-to-route result object. The name of the route The parameters for a route. Redirects to the specified route using the route name and route dictionary. The redirect-to-route result object. The name of the route The parameters for a route. Redirects to the specified route using the route dictionary. The redirect-to-route result object. The parameters for a route. Returns an instance of the class with the property set to true using the specified route values. Returns an instance of the class with the property set to true. The route name. Returns an instance of the class with the property set to true using the specified route name. Returns an instance of the class with the property set to true using the specified route name. The route name. Returns an instance of the class with the property set to true using the specified route name and route values. An instance of the class with the property set to true. The route name. The route values. Returns an instance of the class with the property set to true using the specified route name and route values. An instance of the class with the property set to true using the specified route name and route values. The route name. The route values. Returns an instance of the class with the property set to true using the specified route values. An instance of the class with the property set to true using the specified route values. The route values. Gets the object for the current HTTP request. The request object. Gets the object for the current HTTP response. The response object. Gets the route data for the current request. The route data. Gets the object that provides methods that are used during Web request processing. The HTTP server object. Gets the object for the current HTTP request. The HTTP session-state object for the current HTTP request. Initializes a new instance of the class. Returns an IAsyncController instance. The request context. The callback. The state. Ends the execute task. The asynchronous result. This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. This method calls the method. The filter context. This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. This method calls the method. The filter context. This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. This method calls the method. The filter context. This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. This method calls the method. The filter context. This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. This method calls the method. The filter context. This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. This method calls the method. The filter context. Gets the temporary-data provider object that is used to store data for the next request. The temporary-data provider. Updates the specified model instance using values from the controller's current value provider. true if the update is successful; otherwise, false. The model instance to update. The type of the model object. The parameter or the property is null. Updates the specified model instance using values from the controller's current value provider and a prefix. true if the update is successful; otherwise, false. The model instance to update. The prefix to use when looking up values in the value provider. The type of the model object. The parameter or the property is null. Updates the specified model instance using values from the controller's current value provider, a prefix, and included properties. true if the update is successful; otherwise, false. The model instance to update. The prefix to use when looking up values in the value provider. A list of properties of the model to update. The type of the model object. The parameter or the property is null. Updates the specified model instance using values from the controller's current value provider, a prefix, a list of properties to exclude, and a list of properties to include. true if the update is successful; otherwise, false. The model instance to update. The prefix to use when looking up values in the value provider A list of properties of the model to update. A list of properties to explicitly exclude from the update. These are excluded even if they are listed in the parameter list. The type of the model object. The parameter or the property is null. Updates the specified model instance using values from the value provider, a prefix, a list of properties to exclude , and a list of properties to include. true if the update is successful; otherwise, false. The model instance to update. The prefix to use when looking up values in the value provider. A list of properties of the model to update. A list of properties to explicitly exclude from the update. These are excluded even if they are listed in the parameter list. A dictionary of values that is used to update the model. The type of the model object. Updates the specified model instance using values from the value provider, a prefix, and included properties. true if the update is successful; otherwise, false. The model instance to update. The prefix to use when looking up values in the value provider. A list of properties of the model to update. A dictionary of values that is used to update the model. The type of the model object. Updates the specified model instance using values from the value provider and a prefix. true if the update is successful; otherwise, false. The model instance to update. The prefix to use when looking up values in the value provider. A dictionary of values that is used to update the model. The type of the model object. Updates the specified model instance using values from the controller's current value provider and included properties. true if the update is successful; otherwise, false. The model instance to update. A list of properties of the model to update. The type of the model object. The parameter or the property is null. Updates the specified model instance using values from the value provider and a list of properties to include. true if the update is successful; otherwise, false. The model instance to update. A list of properties of the model to update. A dictionary of values that is used to update the model. The type of the model object. Updates the specified model instance using values from the value provider. true if the update is successful; otherwise, false. The model instance to update. A dictionary of values that is used to update the model. The type of the model object. Validates the specified model instance. true if the model validation is successful; otherwise, false. The model instance to validate. Validates the specified model instance using an HTML prefix. true if the model validation is successful; otherwise, false. The model to validate. The prefix to use when looking up values in the model provider. Updates the specified model instance using values from the controller's current value provider. The model instance to update. The type of the model object. The model was not successfully updated. Updates the specified model instance using values from the controller's current value provider and a prefix. The model instance to update. A prefix to use when looking up values in the value provider. The type of the model object. Updates the specified model instance using values from the controller's current value provider, a prefix, and included properties. The model instance to update. A prefix to use when looking up values in the value provider. A list of properties of the model to update. The type of the model object. Updates the specified model instance using values from the controller's current value provider, a prefix, a list of properties to exclude, and a list of properties to include. The model instance to update. A prefix to use when looking up values in the value provider. A list of properties of the model to update. A list of properties to explicitly exclude from the update. These are excluded even if they are listed in the list. The type of the model object. Updates the specified model instance using values from the value provider, a prefix, a list of properties to exclude, and a list of properties to include. The model instance to update. The prefix to use when looking up values in the value provider. A list of properties of the model to update. A list of properties to explicitly exclude from the update. These are excluded even if they are listed in the parameter list. A dictionary of values that is used to update the model. The type of the model object. Updates the specified model instance using values from the value provider, a prefix, and a list of properties to include. The model instance to update. The prefix to use when looking up values in the value provider. A list of properties of the model to update. A dictionary of values that is used to update the model. The type of the model object. Updates the specified model instance using values from the value provider and a prefix. The model instance to update. The prefix to use when looking up values in the value provider. A dictionary of values that is used to update the model. The type of the model object. Updates the specified model instance using values from the controller object's current value provider. The model instance to update. A list of properties of the model to update. The type of the model object. Updates the specified model instance using values from the value provider, a prefix, and a list of properties to include. The model instance to update. A list of properties of the model to update. A dictionary of values that is used to update the model. The type of the model object. Updates the specified model instance using values from the value provider. The model instance to update. A dictionary of values that is used to update the model. The type of the model object. Gets the URL helper object that is used to generate URLs by using routing. The URL helper object. Gets the user security information for the current HTTP request. The user security information for the current HTTP request. Validates the specified model instance. The model to validate. Validates the specified model instance using an HTML prefix. The model to validate. The prefix to use when looking up values in the model provider. Creates a object that renders a view to the response. The view result that renders a view to the response. Creates a object by using the model that renders a view to the response. The view result. The model that is rendered by the view. Creates a object by using the view name that renders a view. The view result. The name of the view that is rendered to the response. Creates a object by using the view name and model that renders a view to the response. The view result. The name of the view that is rendered to the response. The model that is rendered by the view. Creates a object using the view name and master-page name that renders a view to the response. The view result. The name of the view that is rendered to the response. The name of the master page or template to use when the view is rendered. Creates a object using the view name, master-page name, and model that renders a view. The view result. The name of the view that is rendered to the response. The name of the master page or template to use when the view is rendered. The model that is rendered by the view. Creates a object that renders the specified object. The view result. The view that is rendered to the response. Creates a object that renders the specified object. The view result. The view that is rendered to the response. The model that is rendered by the view. Gets the view engine collection. The view engine collection. Represents a class that is responsible for invoking the action methods of a controller. Initializes a new instance of the class. Gets or sets the model binders that are associated with the action. The model binders that are associated with the action. Creates the action result. The action result object. The controller context. The action descriptor. The action return value. Finds the information about the action method. Information about the action method. The controller context. The controller descriptor. The name of the action. Retrieves information about the controller by using the specified controller context. Information about the controller. The controller context. Retrieves information about the action filters. Information about the action filters. The controller context. The action descriptor. Gets the value of the specified action-method parameter. The value of the action-method parameter. The controller context. The parameter descriptor. Gets the values of the action-method parameters. The values of the action-method parameters. The controller context. The action descriptor. Invokes the specified action by using the specified controller context. The result of executing the action. The controller context. The name of the action to invoke. The parameter is null. The parameter is null or empty. The thread was aborted during invocation of the action. An unspecified error occurred during invocation of the action. Invokes the specified action method by using the specified parameters and the controller context. The result of executing the action method. The controller context. The action descriptor. The parameters. Invokes the specified action method by using the specified parameters, controller context, and action filters. The context for the ActionExecuted method of the class. The controller context. The action filters. The action descriptor. The parameters. Invokes the specified action result by using the specified controller context. The controller context. The action result. Invokes the specified action result by using the specified action filters and the controller context. The context for the ResultExecuted method of the class. The controller context. The action filters. The action result. Invokes the specified authorization filters by using the specified action descriptor and controller context. The context for the object. The controller context. The authorization filters. The action descriptor. Invokes the specified exception filters by using the specified exception and controller context. The context for the object. The controller context. The exception filters. The exception. Represents the base class for all MVC controllers. Initializes a new instance of the class. Gets or sets the controller context. The controller context. Executes the specified request context. The request context. The parameter is null. Executes the request. Initializes the specified request context. The request context. Executes the specified request context. The request context. Gets or sets the dictionary for temporary data. The dictionary for temporary data. Gets or sets a value that indicates whether request validation is enabled for this request. true if request validation is enabled for this request; otherwise, false. The default is true. Gets or sets the value provider for the controller. The value provider for the controller. Gets the dynamic view data dictionary. The dynamic view data dictionary. Gets or sets the dictionary for view data. The dictionary for the view data. Represents a class that is responsible for dynamically building a controller. Initializes a new instance of the class. Gets the current controller builder object. The current controller builder. Gets the default namespaces. The default namespaces. Gets the associated controller factory. The controller factory. Sets the controller factory by using the specified type. The type of the controller factory. The parameter is null. The controller factory cannot be assigned from the type in the parameter. An error occurred while the controller factory was being set. Sets the specified controller factory. The controller factory. The parameter is null. Encapsulates information about an HTTP request that matches specified and instances. Initializes a new instance of the class. Initializes a new instance of the class by using the specified HTTP context, URL route data, and controller. The HTTP context. The route data. The controller. Initializes a new instance of the class by using the specified controller context. The controller context. The parameter is null. Initializes a new instance of the class by using the specified request context and controller. The request context. The controller. One or both parameters are null. Gets or sets the controller. The controller. Gets the display mode. The display mode. Gets or sets the HTTP context. The HTTP context. Gets a value that indicates whether the associated action method is a child action. true if the associated action method is a child action; otherwise, false. Gets an object that contains the view context information for the parent action method. An object that contains the view context information for the parent action method. Gets or sets the request context. The request context. Gets or sets the URL route data. The URL route data. Encapsulates information that describes a controller, such as its name, type, and actions. Initializes a new instance of the class. Gets the name of the controller. The name of the controller. Gets the type of the controller. The type of the controller. Finds an action method by using the specified name and controller context. The information about the action method. The controller context. The name of the action. Retrieves a list of action-method descriptors in the controller. A list of action-method descriptors in the controller. Retrieves custom attributes that are defined for this member, excluding named attributes. An array of custom attributes, or an empty array if no custom attributes exist. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. The custom attribute type cannot be loaded. There is more than one attribute of type defined for this member. Retrieves custom attributes of a specified type that are defined for this member, excluding named attributes. An array of custom attributes, or an empty array if no custom attributes exist. The type of the custom attributes. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. The custom attribute type cannot be loaded. There is more than one attribute of type defined for this member. The parameter is null (Nothing in Visual Basic). Gets the filter attributes. The filter attributes. true if the cache should be used; otherwise, false. Retrieves a value that indicates whether one or more instance of the specified custom attribute are defined for this member. true if the is defined for this member; otherwise, false. The type of the custom attribute. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. The parameter is null (Nothing in Visual Basic). When implemented in a derived class, gets the unique ID for the controller descriptor using lazy initialization. The unique ID. Adds the controller to the instance. Initializes a new instance of the class. Returns the collection of controller instance filters. The collection of controller instance filters. The controller context. The action descriptor. Represents an attribute that invokes a custom model binder. Initializes a new instance of the class. Retrieves the associated model binder. A reference to an object that implements the interface. Provides a container for common metadata, for the class, and for the class for a data model. Initializes a new instance of the class. The data-annotations model metadata provider. The type of the container. The model accessor. The type of the model. The name of the property. The display column attribute. Returns simple text for the model data. Simple text for the model data. Implements the default model metadata provider for ASP.NET MVC. Initializes a new instance of the class. Gets the metadata for the specified property. The metadata for the property. The attributes. The type of the container. The model accessor. The type of the model. The name of the property. Represents the method that creates a instance. Provides a model validator. Initializes a new instance of the class. The metadata for the model. The controller context for the model. The validation attribute for the model. Gets the validation attribute for the model validator. The validation attribute for the model validator. Gets the error message for the validation failure. The error message for the validation failure. Retrieves a collection of client validation rules. A collection of client validation rules. Gets a value that indicates whether model validation is required. true if model validation is required; otherwise, false. Returns a list of validation error messages for the model. A list of validation error messages for the model, or an empty list if no errors have occurred. The container for the model. Provides a model validator for a specified validation type. Initializes a new instance of the class. The metadata for the model. The controller context for the model. The validation attribute for the model. Gets the validation attribute from the model validator. The validation attribute from the model validator. Implements the default validation provider for ASP.NET MVC. Initializes a new instance of the class. Gets or sets a value that indicates whether non-nullable value types are required. true if non-nullable value types are required; otherwise, false. Gets a list of validators. A list of validators. The metadata. The context. The list of validation attributes. Registers an adapter to provide client-side validation. The type of the validation attribute. The type of the adapter. Registers an adapter factory for the validation provider. The type of the attribute. The factory that will be used to create the object for the specified attribute. Registers the default adapter. The type of the adapter. Registers the default adapter factory. The factory that will be used to create the object for the default adapter. Registers an adapter to provide default object validation. The type of the adapter. Registers an adapter factory for the default object validation provider. The factory. Registers an adapter to provide object validation. The type of the model. The type of the adapter. Registers an adapter factory for the object validation provider. The type of the model. The factory. Provides a factory for validators that are based on . Provides a container for the error-information model validator. Initializes a new instance of the class. Gets a list of error-information model validators. A list of error-information model validators. The model metadata. The controller context. Represents the controller factory that is registered by default. Initializes a new instance of the class. Initializes a new instance of the class using a controller activator. An object that implements the controller activator interface. Creates the specified controller by using the specified request context. The controller. The context of the HTTP request, which includes the HTTP context and route data. The name of the controller. The parameter is null. The parameter is null or empty. Retrieves the controller instance for the specified request context and controller type. The controller instance. The context of the HTTP request, which includes the HTTP context and route data. The type of the controller. is null. cannot be assigned. An instance of cannot be created. Returns the controller's session behavior. The controller's session behavior. The request context. The type of the controller. Retrieves the controller type for the specified name and request context. The controller type. The context of the HTTP request, which includes the HTTP context and route data. The name of the controller. Releases the specified controller. The controller to release. This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. This method calls the method. The controller's session behavior. The request context. The controller name. Maps a browser request to a data object. This class provides a concrete implementation of a model binder. Initializes a new instance of the class. Gets or sets the model binders for the application. The model binders for the application. Binds the model by using the specified controller context and binding context. The bound object. The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. The parameter is null. Binds the specified property by using the specified controller context and binding context and the specified property descriptor. The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. Describes a property to be bound. The descriptor provides information such as the component type, property type, and property value. It also provides methods to get or set the property value. Creates the specified model type by using the specified controller context and binding context. A data object of the specified type. The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. The type of the model object to return. Creates an index (a subindex) based on a category of components that make up a larger index, where the specified index value is an integer. The name of the subindex. The prefix for the subindex. The index value. Creates an index (a subindex) based on a category of components that make up a larger index, where the specified index value is a string. The name of the subindex. The prefix for the subindex. The index value. Creates the name of the subproperty by using the specified prefix and property name. The name of the subproperty. The prefix for the subproperty. The name of the property. Returns a set of properties that match the property filter restrictions that are established by the specified . An enumerable set of property descriptors. The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. Returns the properties of the model by using the specified controller context and binding context. A collection of property descriptors. The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. Returns the value of a property using the specified controller context, binding context, property descriptor, and property binder. An object that represents the property value. The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. The descriptor for the property to access. The descriptor provides information such as the component type, property type, and property value. It also provides methods to get or set the property value. An object that provides a way to bind the property. Returns the descriptor object for a type that is specified by its controller context and binding context. A custom type descriptor object. The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. Determines whether a data model is valid for the specified binding context. true if the model is valid; otherwise, false. The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. The parameter is null. Called when the model is updated. The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. Called when the model is updating. true if the model is updating; otherwise, false. The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. Called when the specified property is validated. The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. Describes a property to be validated. The descriptor provides information such as the component type, property type, and property value. It also provides methods to get or set the property value. The value to set for the property. Called when the specified property is validating. true if the property is validating; otherwise, false. The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. Describes a property being validated. The descriptor provides information such as component type, property type, and property value. It also provides methods to get or set the property value. The value to set for the property. Gets or sets the name of the resource file (class key) that contains localized string values. The name of the resource file (class key). Sets the specified property by using the specified controller context, binding context, and property value. The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. Describes a property to be set. The descriptor provides information such as the component type, property type, and property value. It also provides methods to get or set the property value. The value to set for the property. Represents a memory cache for view locations. Initializes a new instance of the class. Initializes a new instance of the class by using the specified cache time span. The cache time span. The Ticks attribute of the parameter is set to a negative number. Retrieves the default view location by using the specified HTTP context and cache key. The default view location. The HTTP context. The cache key The parameter is null. Inserts the view in the specified virtual path by using the specified HTTP context, cache key, and virtual path. The HTTP context. The cache key. The virtual path The parameter is null. Creates an empty view location cache. Gets or sets the cache time span. The cache time span. Provides a registration point for dependency resolvers that implement or the Common Service Locator IServiceLocator interface. Initializes a new instance of the class. Gets the implementation of the dependency resolver. The implementation of the dependency resolver. This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. The implementation of the dependency resolver. This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. The function that provides the service. The function that provides the services. This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. The common service locator. This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. The object that implements the dependency resolver. Provides a registration point for dependency resolvers using the specified service delegate and specified service collection delegates. The service delegate. The services delegates. Provides a registration point for dependency resolvers using the provided common service locator when using a service locator interface. The common service locator. Provides a registration point for dependency resolvers, using the specified dependency resolver interface. The dependency resolver. Provides a type-safe implementation of and . Resolves singly registered services that support arbitrary object creation. The requested service or object. The dependency resolver instance that this method extends. The type of the requested service or object. Resolves multiply registered services. The requested services. The dependency resolver instance that this method extends. The type of the requested services. Represents the base class for value providers whose values come from a collection that implements the interface. The type of the value. Initializes a new instance of the class. The name/value pairs that are used to initialize the value provider. Information about a specific culture, such as the names of the culture, the writing system, and the calendar used. The parameter is null. Determines whether the collection contains the specified prefix. true if the collection contains the specified prefix; otherwise, false. The prefix to search for. The parameter is null. Gets the keys from the prefix. The keys from the prefix. the prefix. Returns a value object using the specified key and controller context. The value object for the specified key. The key of the value object to retrieve. The parameter is null. Provides an empty metadata provider for data models that do not require metadata. Initializes a new instance of the class. Creates a new instance of the class. A new instance of the class. The attributes. The type of the container. The model accessor. The type of the model. The name of the model. Provides an empty validation provider for models that do not require a validator. Initializes a new instance of the class. Gets the empty model validator. The empty model validator. The metadata. The context. Represents a result that does nothing, such as a controller action method that returns nothing. Initializes a new instance of the class. Executes the specified result context. The result context. Provides the context for using the class. Initializes a new instance of the class. Initializes a new instance of the class for the specified exception by using the specified controller context. The controller context. The exception. The parameter is null. Gets or sets the exception object. The exception object. Gets or sets a value that indicates whether the exception has been handled. true if the exception has been handled; otherwise, false. Gets or sets the action result. The action result. Provides a helper class to get the model name from an expression. Gets the model name from a lambda expression. The model name. The expression. Gets the model name from a string expression. The model name. The expression. Provides a container for client-side field validation metadata. Initializes a new instance of the class. Gets or sets the name of the data field. The name of the data field. Gets or sets a value that indicates whether the validation message contents should be replaced with the client validation error. true if the validation message contents should be replaced with the client validation error; otherwise, false. Gets or sets the validator message ID. The validator message ID. Gets the client validation rules. The client validation rules. Sends the contents of a binary file to the response. Initializes a new instance of the class by using the specified file contents and content type. The byte array to send to the response. The content type to use for the response. The parameter is null. The binary content to send to the response. The file contents. Writes the file content to the response. The response. Sends the contents of a file to the response. Initializes a new instance of the class by using the specified file name and content type. The name of the file to send to the response. The content type of the response. The parameter is null or empty. Gets or sets the path of the file that is sent to the response. The path of the file that is sent to the response. Writes the file to the response. The response. Represents a base class that is used to send binary file content to the response. Initializes a new instance of the class. The type of the content. The parameter is null or empty. Gets the content type to use for the response. The type of the content. Enables processing of the result of an action method by a custom type that inherits from the class. The context within which the result is executed. The parameter is null. Gets or sets the content-disposition header so that a file-download dialog box is displayed in the browser with the specified file name. The name of the file. Writes the file to the response. The response. Sends binary content to the response by using a instance. Initializes a new instance of the class. The stream to send to the response. The content type to use for the response. The parameter is null. Gets the stream that will be sent to the response. The file stream. Writes the file to the response. The response. Represents a metadata class that contains a reference to the implementation of one or more of the filter interfaces, the filter's order, and the filter's scope. Initializes a new instance of the class. The instance. The scope. The order. Represents a constant that is used to specify the default ordering of filters. Gets the instance of this class. The instance of this class. Gets the order in which the filter is applied. The order in which the filter is applied. Gets the scope ordering of the filter. The scope ordering of the filter. Represents the base class for action and result filter attributes. Initializes a new instance of the class. Gets or sets a value that indicates whether more than one instance of the filter attribute can be specified. true if more than one instance of the filter attribute can be specified; otherwise, false. Gets or sets the order in which the action filters are executed. The order in which the action filters are executed. Defines a filter provider for filter attributes. Initializes a new instance of the class. Initializes a new instance of the class and optionally caches attribute instances. true to cache attribute instances; otherwise, false. Gets a collection of custom action attributes. A collection of custom action attributes. The controller context. The action descriptor. Gets a collection of controller attributes. A collection of controller attributes. The controller context. The action descriptor. Aggregates the filters from all of the filter providers into one collection. The collection filters from all of the filter providers. The controller context. The action descriptor. Encapsulates information about the available action filters. Initializes a new instance of the class. Initializes a new instance of the class using the specified filters collection. The filters collection. Gets all the action filters in the application. The action filters. Gets all the authorization filters in the application. The authorization filters. Gets all the exception filters in the application. The exception filters. Gets all the result filters in the application. The result filters. Represents the collection of filter providers for the application. Initializes a new instance of the class. Initializes a new instance of the class using the filter providers collection. The filter providers collection. Returns the collection of filter providers. The collection of filter providers. The controller context. The action descriptor. Provides a registration point for filters. Provides a registration point for filters. The collection of filters. Defines values that specify the order in which ASP.NET MVC filters run within the same filter type and filter order. Specifies first. Specifies an order before and after . Specifies an order before and after . Specifies an order before and after . Specifies last. Contains the form value providers for the application. Initializes a new instance of the class. Initializes a new instance of the class. The collection. The parameter is null. Gets the specified value provider. The value provider. The name of the value provider to get. The parameter is null or empty. Gets a value that indicates whether the value provider contains an entry that has the specified prefix. true if the value provider contains an entry that has the specified prefix; otherwise, false. The prefix to look for. Gets a value from a value provider using the specified key. A value from a value provider. The key. Returns a dictionary that contains the value providers. A dictionary of value providers. Encapsulates information that is required in order to validate and process the input data from an HTML form. Initializes a new instance of the class. Gets the field validators for the form. A dictionary of field validators for the form. Gets or sets the form identifier. The form identifier. Returns a serialized object that contains the form identifier and field-validation values for the form. A serialized object that contains the form identifier and field-validation values for the form. Returns the validation value for the specified input field. The value to validate the field input with. The name of the field to retrieve the validation value for. The parameter is either null or empty. Returns the validation value for the specified input field and a value that indicates what to do if the validation value is not found. The value to validate the field input with. The name of the field to retrieve the validation value for. true to create a validation value if one is not found; otherwise, false. The parameter is either null or empty. Returns a value that indicates whether the specified field has been rendered in the form. true if the field has been rendered; otherwise, false. The field name. Sets a value that indicates whether the specified field has been rendered in the form. The field name. true to specify that the field has been rendered in the form; otherwise, false. Determines whether client validation errors should be dynamically added to the validation summary. true if client validation errors should be added to the validation summary; otherwise, false. Gets or sets the identifier for the validation summary. The identifier for the validation summary. Enumerates the HTTP request types for a form. Specifies a GET request. Specifies a POST request. Represents a value provider for form values that are contained in a object. Initializes a new instance of the class. An object that encapsulates information about the current HTTP request. Represents a class that is responsible for creating a new instance of a form-value provider object. Initializes a new instance of the class. Returns a form-value provider object for the specified controller context. A form-value provider object. An object that encapsulates information about the current HTTP request. The parameter is null. Represents a class that contains all the global filters. Initializes a new instance of the class. Adds the specified filter to the global filter collection. The filter. Adds the specified filter to the global filter collection using the specified filter run order. The filter. The filter run order. Removes all filters from the global filter collection. Determines whether a filter is in the global filter collection. true if is found in the global filter collection; otherwise, false. The filter. Gets the number of filters in the global filter collection. The number of filters in the global filter collection. Returns an enumerator that iterates through the global filter collection. An enumerator that iterates through the global filter collection. Removes all the filters that match the specified filter. The filter to remove. This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. An enumerator that iterates through the global filter collection. This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. An enumerator that iterates through the global filter collection. The controller context. The action descriptor. Represents the global filter collection. Gets or sets the global filter collection. The global filter collection. Represents an attribute that is used to handle an exception that is thrown by an action method. Initializes a new instance of the class. Gets or sets the type of the exception. The type of the exception. Gets or sets the master view for displaying exception information. The master view. Called when an exception occurs. The action-filter context. The parameter is null. Gets the unique identifier for this attribute. The unique identifier for this attribute. Gets or sets the page view for displaying exception information. The page view. Encapsulates information for handling an error that was thrown by an action method. Initializes a new instance of the class. The exception. The name of the controller. The name of the action. The parameter is null. The or parameter is null or empty. Gets or sets the name of the action that was executing when the exception was thrown. The name of the action. Gets or sets the name of the controller that contains the action method that threw the exception. The name of the controller. Gets or sets the exception object. The exception object. Represents an attribute that is used to indicate whether a property or field value should be rendered as a hidden input element. Initializes a new instance of the class. Gets or sets a value that indicates whether to display the value of the hidden input element. true if the value should be displayed; otherwise, false. Represents support for rendering HTML controls in a view. Initializes a new instance of the class by using the specified view context and view data container. The view context. The view data container. The or the parameter is null. Initializes a new instance of the class by using the specified view context, view data container, and route collection. The view context. The view data container. The route collection. One or more parameters is null. Replaces underscore characters (_) with hyphens (-) in the specified HTML attributes. The HTML attributes with underscore characters replaced by hyphens. The HTML attributes. Generates a hidden form field (anti-forgery token) that is validated when the form is submitted. The generated form field (anti-forgery token). Generates a hidden form field (anti-forgery token) that is validated when the form is submitted. The field value is generated using the specified salt value. The generated form field (anti-forgery token). The salt value, which can be any non-empty string. Generates a hidden form field (anti-forgery token) that is validated when the form is submitted. The field value is generated using the specified salt value, domain, and path. The generated form field (anti-forgery token). The salt value, which can be any non-empty string. The application domain. The virtual path. Converts the specified attribute object to an HTML-encoded string. The HTML-encoded string. If the value parameter is null or empty, this method returns an empty string. The object to encode. Converts the specified attribute string to an HTML-encoded string. The HTML-encoded string. If the value parameter is null or empty, this method returns an empty string. The string to encode. Gets or sets a value that indicates whether client validation is enabled. true if enable client validation is enabled; otherwise, false. Enables input validation that is performed by using client script in the browser. Enables or disables client validation. true to enable client validation; otherwise, false. Enables unobtrusive JavaScript. Enables or disables unobtrusive JavaScript. true to enable unobtrusive JavaScript; otherwise, false. Converts the value of the specified object to an HTML-encoded string. The HTML-encoded string. The object to encode. Converts the specified string to an HTML-encoded string. The HTML-encoded string. The string to encode. Formats the value. The formatted value. The value. The format string. Creates an HTML element ID using the specified element name. The ID of the HTML element. The name of the HTML element. The parameter is null. Creates an HTML element ID using the specified element name and a string that replaces dots in the name. The ID of the HTML element. The name of the HTML element. The string that replaces dots (.) in the parameter. The parameter or the parameter is null. Generates an HTML anchor element (a element) that links to the specified action method, and enables the user to specify the communication protocol, name of the host, and a URL fragment. An HTML element that links to the specified action method. The context of the HTTP request. The collection of URL routes. The text caption to display for the link. The name of the route that is used to return a virtual path. The name of the action method. The name of the controller. The communication protocol, such as HTTP or HTTPS. If this parameter is null, the protocol defaults to HTTP. The name of the host. The fragment identifier. An object that contains the parameters for a route. An object that contains the HTML attributes for the element. Generates an HTML anchor element (a element) that links to the specified action method. An HTML element that links to the specified action method. The context of the HTTP request. The collection of URL routes. The text caption to display for the link. The name of the route that is used to return a virtual path. The name of the action method. The name of the controller. An object that contains the parameters for a route. An object that contains the HTML attributes for the element. Generates an HTML anchor element (a element) that links to the specified URL route, and enables the user to specify the communication protocol, name of the host, and a URL fragment. An HTML element that links to the specified URL route. The context of the HTTP request. The collection of URL routes. The text caption to display for the link. The name of the route that is used to return a virtual path. The communication protocol, such as HTTP or HTTPS. If this parameter is null, the protocol defaults to HTTP. The name of the host. The fragment identifier. An object that contains the parameters for a route. An object that contains the HTML attributes for the element. Generates an HTML anchor element (a element) that links to the specified URL route. An HTML element that links to the specified URL route. The context of the HTTP request. The collection of URL routes. The text caption to display for the link. The name of the route that is used to return a virtual path. An object that contains the parameters for a route. An object that contains the HTML attributes for the element. Returns the HTTP method that handles form input (GET or POST) as a string. The form method string, either "get" or "post". The HTTP method that handles the form. Returns the HTML input control type as a string. The input type string ("checkbox", "hidden", "password", "radio", or "text"). The enumerated input type. Gets the collection of unobtrusive JavaScript validation attributes using the specified HTML name attribute. The collection of unobtrusive JavaScript validation attributes. The HTML name attribute. Gets the collection of unobtrusive JavaScript validation attributes using the specified HTML name attribute and model metadata. The collection of unobtrusive JavaScript validation attributes. The HTML name attribute. The model metadata. Returns a hidden input element that identifies the override method for the specified HTTP data-transfer method that was used by the client. The override method that uses the HTTP data-transfer method that was used by the client. The HTTP data-transfer method that was used by the client (DELETE, HEAD, or PUT). The parameter is not "PUT", "DELETE", or "HEAD". Returns a hidden input element that identifies the override method for the specified verb that represents the HTTP data-transfer method used by the client. The override method that uses the verb that represents the HTTP data-transfer method used by the client. The verb that represents the HTTP data-transfer method used by the client. The parameter is not "PUT", "DELETE", or "HEAD". Gets or sets the character that replaces periods in the ID attribute of an element. The character that replaces periods in the ID attribute of an element. Returns markup that is not HTML encoded. Markup that is not HTML encoded. The value. Returns markup that is not HTML encoded. The HTML markup without encoding. The HTML markup. Gets or sets the collection of routes for the application. The collection of routes for the application. Gets or sets a value that indicates whether unobtrusive JavaScript is enabled. true if unobtrusive JavaScript is enabled; otherwise, false. The name of the CSS class that is used to style an input field when a validation error occurs. The name of the CSS class that is used to style an input field when the input is valid. The name of the CSS class that is used to style the error message when a validation error occurs. The name of the CSS class that is used to style the validation message when the input is valid. The name of the CSS class that is used to style validation summary error messages. The name of the CSS class that is used to style the validation summary when the input is valid. Gets the view bag. The view bag. Gets or sets the context information about the view. The context of the view. Gets the current view data dictionary. The view data dictionary. Gets or sets the view data container. The view data container. Represents support for rendering HTML controls in a strongly typed view. The type of the model. Initializes a new instance of the class by using the specified view context and view data container. The view context. The view data container. Initializes a new instance of the class by using the specified view context, view data container, and route collection. The view context. The view data container. The route collection. Gets the view bag. The view bag. Gets the strongly typed view data dictionary. The strongly typed view data dictionary. Represents an attribute that is used to restrict an action method so that the method handles only HTTP DELETE requests. Initializes a new instance of the class. Determines whether a request is a valid HTTP DELETE request. true if the request is valid; otherwise, false. The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. Encapsulates information about a method, such as its type, return type, and arguments. Represents a value provider to use with values that come from a collection of HTTP files. Initializes a new instance of the class. An object that encapsulates information about the current HTTP request. Represents a class that is responsible for creating a new instance of an HTTP file collection value provider object. Initializes a new instance of the class. Returns a value provider object for the specified controller context. An HTTP file collection value provider. An object that encapsulates information about the HTTP request. The parameter is null. Represents an attribute that is used to restrict an action method so that the method handles only HTTP GET requests. Initializes a new instance of the class. Determines whether a request is a valid HTTP GET request. true if the request is valid; otherwise, false. The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. Encapsulates information about a method, such as its type, return type, and arguments. Specifies that the HTTP request must be the HTTP HEAD method. Initializes a new instance of the class. Determines whether a request is a valid HTTP HEAD request. true if the request is HEAD; otherwise, false. The controller context. The method info. Defines an object that is used to indicate that the requested resource was not found. Initializes a new instance of the class. Initializes a new instance of the class using a status description. The status description. Represents an attribute that is used to restrict an action method so that the method handles only HTTP OPTIONS requests. Initializes a new instance of the class. Determines whether a request is a valid HTTP OPTIONS request. true if the request is OPTIONS; otherwise, false. The controller context. The method info. Represents an attribute that is used to restrict an action method so that the method handles only HTTP PATCH requests. Initializes a new instance of the class. Determines whether a request is a valid HTTP PATCH request. true if the request is PATCH; otherwise, false. The controller context. The method info. Represents an attribute that is used to restrict an action method so that the method handles only HTTP POST requests. Initializes a new instance of the class. Determines whether a request is a valid HTTP POST request. true if the request is valid; otherwise, false. The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. Encapsulates information about a method, such as its type, return type, and arguments. Binds a model to a posted file. Initializes a new instance of the class. Binds the model. The bound value. The controller context. The binding context. One or both parameters are null. Represents an attribute that is used to restrict an action method so that the method handles only HTTP PUT requests. Initializes a new instance of the class. Determines whether a request is a valid HTTP PUT request. true if the request is valid; otherwise, false. The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. Encapsulates information about a method, such as its type, return type, and arguments. Extends the class that contains the HTTP values that were sent by a client during a Web request. Retrieves the HTTP data-transfer method override that was used by the client. The HTTP data-transfer method override that was used by the client. An object that contains the HTTP values that were sent by a client during a Web request. The parameter is null. The HTTP data-transfer method override was not implemented. Provides a way to return an action result with a specific HTTP response status code and description. Initializes a new instance of the class using a status code. The status code. Initializes a new instance of the class using a status code and status description. The status code. The status description. Initializes a new instance of the class using a status code. The status code. Initializes a new instance of the class using a status code and status description. The status code. The status description. Enables processing of the result of an action method by a custom type that inherits from the class. The context in which the result is executed. The context information includes the controller, HTTP content, request context, and route data. Gets the HTTP status code. The HTTP status code. Gets the HTTP status description. the HTTP status description. Represents the result of an unauthorized HTTP request. Initializes a new instance of the class. Initializes a new instance of the class using the status description. The status description. Enumerates the HTTP verbs. Retrieves the information or entity that is identified by the URI of the request. Posts a new entity as an addition to a URI. Replaces an entity that is identified by a URI. Requests that a specified URI be deleted. Retrieves the message headers for the information or entity that is identified by the URI of the request. Requests that a set of changes described in the request entity be applied to the resource identified by the Request- URI. Represents a request for information about the communication options available on the request/response chain identified by the Request-URI. Defines the methods that are used in an action filter. Called after the action method executes. The filter context. Called before an action method executes. The filter context. Defines the contract for an action invoker, which is used to invoke an action in response to an HTTP request. Invokes the specified action by using the specified controller context. true if the action was found; otherwise, false. The controller context. The name of the action. Defines the methods that are required for an authorization filter. Called when authorization is required. The filter context. Provides a way for the ASP.NET MVC validation framework to discover at run time whether a validator has support for client validation. When implemented in a class, returns client validation rules for that class. The client validation rules for this validator. The model metadata. The controller context. Defines the methods that are required for a controller. Executes the specified request context. The request context. Provides fine-grained control over how controllers are instantiated using dependency injection. When implemented in a class, creates a controller. The created controller. The request context. The controller type. Defines the methods that are required for a controller factory. Creates the specified controller by using the specified request context. The controller. The request context. The name of the controller. Gets the controller's session behavior. The controller's session behavior. The request context. The name of the controller whose session behavior you want to get. Releases the specified controller. The controller. Defines the methods that simplify service location and dependency resolution. Resolves singly registered services that support arbitrary object creation. The requested service or object. The type of the requested service or object. Resolves multiply registered services. The requested services. The type of the requested services. Represents a special that has the ability to be enumerable. Gets the keys from the prefix. The keys. The prefix. Defines the methods that are required for an exception filter. Called when an exception occurs. The filter context. Provides an interface for finding filters. Returns an enumerator that contains all the instances in the service locator. The enumerator that contains all the instances in the service locator. The controller context. The action descriptor. Provides an interface for exposing attributes to the class. When implemented in a class, provides metadata to the model metadata creation process. The model metadata. Defines the methods that are required for a model binder. Binds the model to a value by using the specified controller context and binding context. The bound value. The controller context. The binding context. Defines methods that enable dynamic implementations of model binding for classes that implement the interface. Returns the model binder for the specified type. The model binder for the specified type. The type of the model. Defines members that specify the order of filters and whether multiple filters are allowed. When implemented in a class, gets or sets a value that indicates whether multiple filters are allowed. true if multiple filters are allowed; otherwise, false. When implemented in a class, gets the filter order. The filter order. Enumerates the types of input controls. A check box. A hidden field. A password box. A radio button. A text box. Defines the methods that are required for a result filter. Called after an action result executes. The filter context. Called before an action result executes. The filter context. Associates a route with an area in an ASP.NET MVC application. Gets the name of the area to associate the route with. The name of the area to associate the route with. Defines the contract for temporary-data providers that store data that is viewed on the next request. Loads the temporary data. The temporary data. The controller context. Saves the temporary data. The controller context. The values. Represents an interface that can skip request validation. Retrieves the value of the object that is associated with the specified key. The value of the object for the specified key. The key. true if validation should be skipped; otherwise, false. Defines the methods that are required for a value provider in ASP.NET MVC. Determines whether the collection contains the specified prefix. true if the collection contains the specified prefix; otherwise, false. The prefix to search for. Retrieves a value object using the specified key. The value object for the specified key. The key of the value object to retrieve. Defines the methods that are required for a view. Renders the specified view context by using the specified the writer object. The view context. The writer object. Defines the methods that are required for a view data dictionary. Gets or sets the view data dictionary. The view data dictionary. Defines the methods that are required for a view engine. Finds the specified partial view by using the specified controller context. The partial view. The controller context. The name of the partial view. true to specify that the view engine returns the cached view, if a cached view exists; otherwise, false. Finds the specified view by using the specified controller context. The page view. The controller context. The name of the view. The name of the master. true to specify that the view engine returns the cached view, if a cached view exists; otherwise, false. Releases the specified view by using the specified controller context. The controller context. The view. Defines the methods that are required in order to cache view locations in memory. Gets the view location by using the specified HTTP context and the cache key. The view location. The HTTP context. The cache key. Inserts the specified view location into the cache by using the specified HTTP context and the cache key. The HTTP context. The cache key. The virtual path. Provides fine-grained control over how view pages are created using dependency injection. Provides fine-grained control over how view pages are created using dependency injection. The created view page. The controller context. The type of the controller. Sends JavaScript content to the response. Initializes a new instance of the class. Enables processing of the result of an action method by a custom type that inherits from the class. The context within which the result is executed. The parameter is null. Gets or sets the script. The script. Specifies whether HTTP GET requests from the client are allowed. HTTP GET requests from the client are allowed. HTTP GET requests from the client are not allowed. Represents a class that is used to send JSON-formatted content to the response. Initializes a new instance of the class. Gets or sets the content encoding. The content encoding. Gets or sets the type of the content. The type of the content. Gets or sets the data. The data. Enables processing of the result of an action method by a custom type that inherits from the class. The context within which the result is executed. The parameter is null. Gets or sets a value that indicates whether HTTP GET requests from the client are allowed. A value that indicates whether HTTP GET requests from the client are allowed. Gets or sets the maximum length of data. The maximum length of data. Gets or sets the recursion limit. The recursion limit. Enables action methods to send and receive JSON-formatted text and to model-bind the JSON text to parameters of action methods. Initializes a new instance of the class. Returns a JSON value-provider object for the specified controller context. A JSON value-provider object for the specified controller context. The controller context. Maps a browser request to a LINQ object. Initializes a new instance of the class. Binds the model by using the specified controller context and binding context. The bound data object. If the model cannot be bound, this method returns null. The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. Represents an attribute that is used to associate a model type to a model-builder type. Initializes a new instance of the class. The type of the binder. The parameter is null. Gets or sets the type of the binder. The type of the binder. Retrieves an instance of the model binder. A reference to an object that implements the interface. An error occurred while an instance of the model binder was being created. Represents a class that contains all model binders for the application, listed by binder type. Initializes a new instance of the class. Adds the specified item to the model binder dictionary. The object to add to the instance. The object is read-only. Adds the specified item to the model binder dictionary using the specified key. The key of the element to add. The value of the element to add. The object is read-only. is null. An element that has the same key already exists in the object. Removes all items from the model binder dictionary. The object is read-only. Determines whether the model binder dictionary contains a specified value. true if is found in the model binder dictionary; otherwise, false. The object to locate in the object. Determines whether the model binder dictionary contains an element that has the specified key. true if the model binder dictionary contains an element that has the specified key; otherwise, false. The key to locate in the object. is null. Copies the elements of the model binder dictionary to an array, starting at a specified index. The one-dimensional array that is the destination of the elements copied from . The array must have zero-based indexing. The zero-based index in at which copying starts. is null. is less than 0. is multidimensional.-or- is equal to or greater than the length of .-or- The number of elements in the source object is greater than the available space from to the end of the destination array. -or- Type cannot be cast automatically to the type of the destination array. Gets the number of elements in the model binder dictionary. The number of elements in the model binder dictionary. Gets or sets the default model binder. The default model binder. Retrieves the model binder for the specified type. The model binder. The type of the model to retrieve. The parameter is null. Retrieves the model binder for the specified type or retrieves the default model binder. The model binder. The type of the model to retrieve. true to retrieve the default model binder. The parameter is null. Returns an enumerator that can be used to iterate through the collection. An enumerator that can be used to iterate through the collection. Gets a value that indicates whether the model binder dictionary is read-only. true if the model binder dictionary is read-only; otherwise, false. Gets or sets the specified key in an object that implements the interface. The key for the specified item. The item key. Gets a collection that contains the keys in the model binder dictionary. A collection that contains the keys in the model binder dictionary. Removes the first occurrence of the specified element from the model binder dictionary. true if was successfully removed from the model binder dictionary; otherwise, false. This method also returns false if is not found in the model binder dictionary. The object to remove from the object. The object is read-only. Removes the element that has the specified key from the model binder dictionary. true if the element is successfully removed; otherwise, false. This method also returns false if was not found in the model binder dictionary. The key of the element to remove. The object is read-only. is null. Returns an enumerator that can be used to iterate through a collection. An enumerator that can be used to iterate through the collection. Gets the value that is associated with the specified key. true if the object that implements contains an element that has the specified key; otherwise, false. The key of the value to get. When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. is null. Gets a collection that contains the values in the model binder dictionary. A collection that contains the values in the model binder dictionary. Provides a container for model binder providers. Initializes a new instance of the class. Initializes a new instance of the class using a list of model binder providers. A list of model binder providers. Returns a model binder of the specified type. A model binder of the specified type. The type of the model binder. Inserts a model binder provider into the at the specified index. The index. The model binder provider. Replaces the model binder provider element at the specified index. The index. The model binder provider. Provides a container for model binder providers. Provides a registration point for model binder providers for applications that do not use dependency injection. The model binder provider collection. Provides global access to the model binders for the application. Gets the model binders for the application. The model binders for the application. Provides the context in which a model binder functions. Initializes a new instance of the class. Initializes a new instance of the class using the binding context. The binding context. Gets or sets a value that indicates whether the binder should use an empty prefix. true if the binder should use an empty prefix; otherwise, false. Gets or sets the model. The model. Gets or sets the model metadata. The model metadata. Gets or sets the name of the model. The name of the model. Gets or sets the state of the model. The state of the model. Gets or sets the type of the model. The type of the model. Gets or sets the property filter. The property filter. Gets the property metadata. The property metadata. Gets or sets the value provider. The value provider. Represents an error that occurs during model binding. Initializes a new instance of the class by using the specified exception. The exception. The parameter is null. Initializes a new instance of the class by using the specified exception and error message. The exception. The error message. The parameter is null. Initializes a new instance of the class by using the specified error message. The error message. Gets or sets the error message. The error message. Gets or sets the exception object. The exception object. A collection of instances. Initializes a new instance of the class. Adds the specified object to the model-error collection. The exception. Adds the specified error message to the model-error collection. The error message. Provides a container for common metadata, for the class, and for the class for a data model. Initializes a new instance of the class. The provider. The type of the container. The model accessor. The type of the model. The name of the model. Gets a dictionary that contains additional metadata about the model. A dictionary that contains additional metadata about the model. Gets or sets the type of the container for the model. The type of the container for the model. Gets or sets a value that indicates whether empty strings that are posted back in forms should be converted to null. true if empty strings that are posted back in forms should be converted to null; otherwise, false. The default value is true. Gets or sets meta information about the data type. Meta information about the data type. The default order value, which is 10000. Gets or sets the description of the model. The description of the model. The default value is null. Gets or sets the display format string for the model. The display format string for the model. Gets or sets the display name of the model. The display name of the model. Gets or sets the edit format string of the model. The edit format string of the model. Returns the metadata from the parameter for the model. The metadata. An expression that identifies the model. The view data dictionary. The type of the parameter. The type of the value. Gets the metadata from the expression parameter for the model. The metadata for the model. An expression that identifies the model. The view data dictionary. Gets the display name for the model. The display name for the model. Returns the simple description of the model. The simple description of the model. Gets a list of validators for the model. A list of validators for the model. The controller context. Gets or sets a value that indicates whether the model object should be rendered using associated HTML elements. true if the associated HTML elements that contains the model object should be included with the object; otherwise, false. Gets or sets a value that indicates whether the model is a complex type. A value that indicates whether the model is considered a complex type by the MVC framework. Gets a value that indicates whether the type is nullable. true if the type is nullable; otherwise, false. Gets or sets a value that indicates whether the model is read-only. true if the model is read-only; otherwise, false. Gets or sets a value that indicates whether the model is required. true if the model is required; otherwise, false. Gets the value of the model. The value of the model. For more information about , see the entry ASP.NET MVC 2 Templates, Part 2: ModelMetadata on Brad Wilson's blog Gets the type of the model. The type of the model. Gets or sets the string to display for null values. The string to display for null values. Gets or sets a value that represents order of the current metadata. The order value of the current metadata. Gets a collection of model metadata objects that describe the properties of the model. A collection of model metadata objects that describe the properties of the model. Gets the property name. The property name. Gets or sets the provider. The provider. Gets or sets a value that indicates whether request validation is enabled. true if request validation is enabled; otherwise, false. Gets or sets a short display name. The short display name. Gets or sets a value that indicates whether the property should be displayed in read-only views such as list and detail views. true if the model should be displayed in read-only views; otherwise, false. Gets or sets a value that indicates whether the model should be displayed in editable views. true if the model should be displayed in editable views; otherwise, false. Gets or sets the simple display string for the model. The simple display string for the model. Gets or sets a hint that suggests what template to use for this model. A hint that suggests what template to use for this model. Gets or sets a value that can be used as a watermark. The watermark. Provides an abstract base class for a custom metadata provider. When overridden in a derived class, initializes a new instance of the object that derives from the class. Gets a object for each property of a model. A object for each property of a model. The container. The type of the container. Gets metadata for the specified property. A object for the property. The model accessor. The type of the container. The property to get the metadata model for. Gets metadata for the specified model accessor and model type. A object for the specified model accessor and model type. The model accessor. The type of the model. Provides a container for the current instance. Gets or sets the current object. The current object. Encapsulates the state of model binding to a property of an action-method argument, or to the argument itself. Initializes a new instance of the class. Returns a object that contains any errors that occurred during model binding. The errors. Returns a object that encapsulates the value that was being bound during model binding. The value. Represents the state of an attempt to bind a posted form to an action method, which includes validation information. Initializes a new instance of the class. Initializes a new instance of the class by using values that are copied from the specified model-state dictionary. The model-state dictionary. The parameter is null. Adds the specified item to the model-state dictionary. The object to add to the model-state dictionary. The model-state dictionary is read-only. Adds an element that has the specified key and value to the model-state dictionary. The key of the element to add. The value of the element to add. The model-state dictionary is read-only. is null. An element that has the specified key already occurs in the model-state dictionary. Adds the specified model error to the errors collection for the model-state dictionary that is associated with the specified key. The key. The exception. Adds the specified error message to the errors collection for the model-state dictionary that is associated with the specified key. The key. The error message. Removes all items from the model-state dictionary. The model-state dictionary is read-only. Determines whether the model-state dictionary contains a specific value. true if is found in the model-state dictionary; otherwise, false. The object to locate in the model-state dictionary. Determines whether the model-state dictionary contains the specified key. true if the model-state dictionary contains the specified key; otherwise, false. The key to locate in the model-state dictionary. Copies the elements of the model-state dictionary to an array, starting at a specified index. The one-dimensional array that is the destination of the elements copied from the object. The array must have zero-based indexing. The zero-based index in at which copying starts. is null. is less than 0. is multidimensional.-or- is equal to or greater than the length of .-or- The number of elements in the source collection is greater than the available space from to the end of the destination .-or- Type cannot be cast automatically to the type of the destination . Gets the number of key/value pairs in the collection. The number of key/value pairs in the collection. Returns an enumerator that can be used to iterate through the collection. An enumerator that can be used to iterate through the collection. Gets a value that indicates whether the collection is read-only. true if the collection is read-only; otherwise, false. Gets a value that indicates whether this instance of the model-state dictionary is valid. true if this instance is valid; otherwise, false. Determines whether there are any objects that are associated with or prefixed with the specified key. true if the model-state dictionary contains a value that is associated with the specified key; otherwise, false. The key. The parameter is null. Gets or sets the value that is associated with the specified key. The model state item. The key. Gets a collection that contains the keys in the dictionary. A collection that contains the keys of the model-state dictionary. Copies the values from the specified object into this dictionary, overwriting existing values if keys are the same. The dictionary. Removes the first occurrence of the specified object from the model-state dictionary. true if was successfully removed the model-state dictionary; otherwise, false. This method also returns false if is not found in the model-state dictionary. The object to remove from the model-state dictionary. The model-state dictionary is read-only. Removes the element that has the specified key from the model-state dictionary. true if the element is successfully removed; otherwise, false. This method also returns false if was not found in the model-state dictionary. The key of the element to remove. The model-state dictionary is read-only. is null. Sets the value for the specified key by using the specified value provider dictionary. The key. The value. Returns an enumerator that can be used to iterate through the collection. An enumerator that can be used to iterate through the collection. Attempts to gets the value that is associated with the specified key. true if the object that implements contains an element that has the specified key; otherwise, false. The key of the value to get. When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. is null. Gets a collection that contains the values in the dictionary. A collection that contains the values of the model-state dictionary. Provides a container for a validation result. Initializes a new instance of the class. Gets or sets the name of the member. The name of the member. Gets or sets the validation result message. The validation result message. Provides a base class for implementing validation logic. Called from constructors in derived classes to initialize the class. The metadata. The controller context. Gets the controller context. The controller context. When implemented in a derived class, returns metadata for client validation. The metadata for client validation. Returns a composite model validator for the model. A composite model validator for the model. The metadata. The controller context. Gets or sets a value that indicates whether a model property is required. true if the model property is required; otherwise, false. Gets the metadata for the model validator. The metadata for the model validator. When implemented in a derived class, validates the object. A list of validation results. The container. Provides a list of validators for a model. When implemented in a derived class, initializes a new instance of the class. Gets a list of validators. A list of validators. The metadata. The context. Provides a container for a list of validation providers. Initializes a new instance of the class. Initializes a new instance of the class using a list of model-validation providers. A list of model-validation providers. Returns the list of model validators. The list of model validators. The model metadata. The controller context. Inserts a model-validator provider into the collection. The zero-based index at which item should be inserted. The model-validator provider object to insert. Replaces the model-validator provider element at the specified index. The zero-based index of the model-validator provider element to replace. The new value for the model-validator provider element. Provides a container for the current validation provider. Gets the model validator provider collection. The model validator provider collection. Represents a list of items that users can select more than one item from. Initializes a new instance of the class by using the specified items to include in the list. The items. The parameter is null. Initializes a new instance of the class by using the specified items to include in the list and the selected values. The items. The selected values. The parameter is null. Initializes a new instance of the class by using the items to include in the list, the data value field, and the data text field. The items. The data value field. The data text field. The parameter is null. Initializes a new instance of the class by using the items to include in the list, the data value field, the data text field, and the selected values. The items. The data value field. The data text field. The selected values. The parameter is null. Gets or sets the data text field. The data text field. Gets or sets the data value field. The data value field. Returns an enumerator that can be used to iterate through the collection. An enumerator that can be used to iterate through the collection. Gets or sets the items in the list. The items in the list. Gets or sets the selected values. The selected values. Returns an enumerator can be used to iterate through a collection. An enumerator that can be used to iterate through the collection. When implemented in a derived class, provides a metadata class that contains a reference to the implementation of one or more of the filter interfaces, the filter's order, and the filter's scope. Initializes a new instance of the class. Initializes a new instance of the class and specifies the order of filters and whether multiple filters are allowed. true to specify that multiple filters of the same type are allowed; otherwise, false. The filter order. Gets a value that indicates whether more than one instance of the filter attribute can be specified. true if more than one instance of the filter attribute is allowed; otherwise, false. Gets a value that indicates the order in which a filter is applied. A value that indicates the order in which a filter is applied. Selects the controller that will handle an HTTP request. Initializes a new instance of the class. The request context. The parameter is null. Adds the version header by using the specified HTTP context. The HTTP context. Called by ASP.NET to begin asynchronous request processing. The status of the asynchronous call. The HTTP context. The asynchronous callback method. The state of the asynchronous object. Called by ASP.NET to begin asynchronous request processing using the base HTTP context. The status of the asynchronous call. The HTTP context. The asynchronous callback method. The state of the asynchronous object. Gets or sets a value that indicates whether the MVC response header is disabled. true if the MVC response header is disabled; otherwise, false. Called by ASP.NET when asynchronous request processing has ended. The asynchronous result. Gets a value that indicates whether another request can use the instance. true if the instance is reusable; otherwise, false. Contains the header name of the ASP.NET MVC version. Processes the request by using the specified HTTP request context. The HTTP context. Processes the request by using the specified base HTTP request context. The HTTP context. Gets the request context. The request context. Called by ASP.NET to begin asynchronous request processing using the base HTTP context. The status of the asynchronous call. The HTTP context. The asynchronous callback method. The data. Called by ASP.NET when asynchronous request processing has ended. The asynchronous result. Gets a value that indicates whether another request can use the instance. true if the instance is reusable; otherwise, false. Enables processing of HTTP Web requests by a custom HTTP handler that implements the interface. An object that provides references to the intrinsic server objects (for example, Request, Response, Session, and Server) that are used to service HTTP requests. Represents an HTML-encoded string that should not be encoded again. Initializes a new instance of the class. The string to create. If no value is assigned, the object is created using an empty-string value. Creates an HTML-encoded string using the specified text value. An HTML-encoded string. The value of the string to create . Contains an empty HTML string. Determines whether the specified string contains content or is either null or empty. true if the string is null or empty; otherwise, false. The string. Verifies and processes an HTTP request. Initializes a new instance of the class. Called by ASP.NET to begin asynchronous request processing. The status of the asynchronous call. The HTTP context. The asynchronous callback method. The state. Called by ASP.NET to begin asynchronous request processing. The status of the asynchronous call. The base HTTP context. The asynchronous callback method. The state. Called by ASP.NET when asynchronous request processing has ended. The asynchronous result. Called by ASP.NET to begin asynchronous request processing. The status of the asynchronous call. The context. The asynchronous callback method. An object that contains data. Called by ASP.NET when asynchronous request processing has ended. The status of the asynchronous operations. Verifies and processes an HTTP request. The HTTP handler. The HTTP context. Creates an object that implements the IHttpHandler interface and passes the request context to it. Initializes a new instance of the class. Initializes a new instance of the class using the specified factory controller object. The controller factory. Returns the HTTP handler by using the specified HTTP context. The HTTP handler. The request context. Returns the session behavior. The session behavior. The request context. Returns the HTTP handler by using the specified request context. The HTTP handler. The request context. Creates instances of files. Initializes a new instance of the class. Creates a Razor host. A Razor host. The virtual path to the target file. The physical path to the target file. Extends a NameValueCollection object so that the collection can be copied to a specified dictionary. Copies the specified collection to the specified destination. The collection. The destination. Copies the specified collection to the specified destination, and optionally replaces previous entries. The collection. The destination. true to replace previous entries; otherwise, false. Represents the base class for value providers whose values come from a object. Initializes a new instance of the class using the specified unvalidated collection. A collection that contains the values that are used to initialize the provider. A collection that contains the values that are used to initialize the provider. This collection will not be validated. An object that contains information about the target culture. Initializes a new instance of the class. A collection that contains the values that are used to initialize the provider. An object that contains information about the target culture. The parameter is null. Determines whether the collection contains the specified prefix. true if the collection contains the specified prefix; otherwise, false. The prefix to search for. The parameter is null. Gets the keys using the specified prefix. They keys. The prefix. Returns a value object using the specified key. The value object for the specified key. The key of the value object to retrieve. The parameter is null. Returns a value object using the specified key and validation directive. The value object for the specified key. The key. true if validation should be skipped; otherwise, false. Provides a convenience wrapper for the attribute. Initializes a new instance of the class. Represents an attribute that is used to indicate that a controller method is not an action method. Initializes a new instance of the class. Determines whether the attribute marks a method that is not an action method by using the specified controller context. true if the attribute marks a valid non-action method; otherwise, false. The controller context. The method information. Represents an attribute that is used to mark an action method whose output will be cached. Initializes a new instance of the class. Gets or sets the cache profile name. The cache profile name. Gets or sets the child action cache. The child action cache. Gets or sets the cache duration, in seconds. The cache duration. Returns a value that indicates whether a child action cache is active. true if the child action cache is active; otherwise, false. The controller context. Gets or sets the location. The location. Gets or sets a value that indicates whether to store the cache. true if the cache should be stored; otherwise, false. This method is an implementation of and supports the ASP.NET MVC infrastructure. It is not intended to be used directly from your code. The filter context. This method is an implementation of and supports the ASP.NET MVC infrastructure. It is not intended to be used directly from your code. The filter context. This method is an implementation of and supports the ASP.NET MVC infrastructure. It is not intended to be used directly from your code. The filter context. This method is an implementation of and supports the ASP.NET MVC infrastructure. It is not intended to be used directly from your code. The filter context. Called before the action result executes. The filter context, which encapsulates information for using . The parameter is null. Gets or sets the SQL dependency. The SQL dependency. Gets or sets the vary-by-content encoding. The vary-by-content encoding. Gets or sets the vary-by-custom value. The vary-by-custom value. Gets or sets the vary-by-header value. The vary-by-header value. Gets or sets the vary-by-param value. The vary-by-param value. Encapsulates information for binding action-method parameters to a data model. Initializes a new instance of the class. Gets the model binder. The model binder. Gets a comma-delimited list of property names for which binding is disabled. The exclude list. Gets a comma-delimited list of property names for which binding is enabled. The include list. Gets the prefix to use when the MVC framework binds a value to an action parameter or to a model property. The prefix. Contains information that describes a parameter. Initializes a new instance of the class. Gets the action descriptor. The action descriptor. Gets the binding information. The binding information. Gets the default value of the parameter. The default value of the parameter. Returns an array of custom attributes that are defined for this member, excluding named attributes. An array of custom attributes, or an empty array if no custom attributes exist. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. The custom attribute type cannot be loaded. There is more than one attribute of type defined for this member. Returns an array of custom attributes that are defined for this member, identified by type. An array of custom attributes, or an empty array if no custom attributes exist. The type of the custom attributes. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. The custom attribute type cannot be loaded. There is more than one attribute of type defined for this member. The parameter is null. Indicates whether one or more instances of a custom attribute type are defined for this member. true if the custom attribute type is defined for this member; otherwise, false. The type of the custom attributes. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. The parameter is null. Gets the name of the parameter. The name of the parameter. Gets the type of the parameter. The type of the parameter. Represents a base class that is used to send a partial view to the response. Initializes a new instance of the class. Returns the object that is used to render the view. The view engine result. The controller context. An error occurred while the method was attempting to find the view. Provides a registration point for ASP.NET Razor pre-application start code. Registers Razor pre-application start code. Represents a value provider for query strings that are contained in a object. Initializes a new instance of the class. An object that encapsulates information about the current HTTP request. Represents a class that is responsible for creating a new instance of a query-string value-provider object. Initializes a new instance of the class. Returns a value-provider object for the specified controller context. A query-string value-provider object. An object that encapsulates information about the current HTTP request. The parameter is null. Provides an adapter for the attribute. Initializes a new instance of the class. The model metadata. The controller context. The range attribute. Gets a list of client validation rules for a range check. A list of client validation rules for a range check. Represents the class used to create views that have Razor syntax. Initializes a new instance of the class. The controller context. The view path. The layout or master page. A value that indicates whether view start files should be executed before the view. The set of extensions that will be used when looking up view start files. Initializes a new instance of the class using the view page activator. The controller context. The view path. The layout or master page. A value that indicates whether view start files should be executed before the view. The set of extensions that will be used when looking up view start files. The view page activator. Gets the layout or master page. The layout or master page. Renders the specified view context by using the specified writer and instance. The view context. The writer that is used to render the view to the response. The instance. Gets a value that indicates whether view start files should be executed before the view. A value that indicates whether view start files should be executed before the view. Gets or sets the set of file extensions that will be used when looking up view start files. The set of file extensions that will be used when looking up view start files. Represents a view engine that is used to render a Web page that uses the ASP.NET Razor syntax. Initializes a new instance of the class. Initializes a new instance of the class using the view page activator. The view page activator. Creates a partial view using the specified controller context and partial path. The partial view. The controller context. The path to the partial view. Creates a view by using the specified controller context and the paths of the view and master view. The view. The controller context. The path to the view. The path to the master view. Controls the processing of application actions by redirecting to a specified URI. Initializes a new instance of the class. The target URL. The parameter is null. Initializes a new instance of the class using the specified URL and permanent-redirection flag. The URL. A value that indicates whether the redirection should be permanent. Enables processing of the result of an action method by a custom type that inherits from the class. The context within which the result is executed. The parameter is null. Gets a value that indicates whether the redirection should be permanent. true if the redirection should be permanent; otherwise, false. Gets or sets the target URL. The target URL. Represents a result that performs a redirection by using the specified route values dictionary. Initializes a new instance of the class by using the specified route name and route values. The name of the route. The route values. Initializes a new instance of the class by using the specified route name, route values, and permanent-redirection flag. The name of the route. The route values. A value that indicates whether the redirection should be permanent. Initializes a new instance of the class by using the specified route values. The route values. Enables processing of the result of an action method by a custom type that inherits from the class. The context within which the result is executed. The parameter is null. Gets a value that indicates whether the redirection should be permanent. true if the redirection should be permanent; otherwise, false. Gets or sets the name of the route. The name of the route. Gets or sets the route values. The route values. Contains information that describes a reflected action method. Initializes a new instance of the class. The action-method information. The name of the action. The controller descriptor. Either the or parameter is null. The parameter is null or empty. Gets the name of the action. The name of the action. Gets the controller descriptor. The controller descriptor. Executes the specified controller context by using the specified action-method parameters. The action return value. The controller context. The parameters. The or parameter is null. Returns an array of custom attributes defined for this member, excluding named attributes. An array of custom attributes, or an empty array if no custom attributes exist. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. The custom attribute type cannot be loaded. There is more than one attribute of type defined for this member. Returns an array of custom attributes defined for this member, identified by type. An array of custom attributes, or an empty array if no custom attributes exist. The type of the custom attributes. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. The custom attribute type cannot be loaded. There is more than one attribute of type defined for this member. Gets the filter attributes. The filter attributes. true to use the cache, otherwise false. Retrieves the parameters of the action method. The parameters of the action method. Retrieves the action selectors. The action selectors. Indicates whether one or more instances of a custom attribute type are defined for this member. true if the custom attribute type is defined for this member; otherwise, false. The type of the custom attributes. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. Gets or sets the action-method information. The action-method information. Gets the unique ID for the reflected action descriptor using lazy initialization. The unique ID. Contains information that describes a reflected controller. Initializes a new instance of the class. The type of the controller. The parameter is null. Gets the type of the controller. The type of the controller. Finds the specified action for the specified controller context. The information about the action. The controller context. The name of the action. The parameter is null. The parameter is null or empty. Returns the list of actions for the controller. A list of action descriptors for the controller. Returns an array of custom attributes that are defined for this member, excluding named attributes. An array of custom attributes, or an empty array if no custom attributes exist. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. The custom attribute type cannot be loaded. There is more than one attribute of type defined for this member. Returns an array of custom attributes that are defined for this member, identified by type. An array of custom attributes, or an empty array if no custom attributes exist. The type of the custom attributes. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. The custom attribute type cannot be loaded. There is more than one attribute of type defined for this member. Gets the filter attributes. The filter attributes. true to use the cache, otherwise false. Returns a value that indicates whether one or more instances of a custom attribute type are defined for this member. true if the custom attribute type is defined for this member; otherwise, false. The type of the custom attributes. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. Contains information that describes a reflected action-method parameter. Initializes a new instance of the class. The parameter information. The action descriptor. The or parameter is null. Gets the action descriptor. The action descriptor. Gets the binding information. The binding information. Gets the default value of the reflected parameter. The default value of the reflected parameter. Returns an array of custom attributes that are defined for this member, excluding named attributes. An array of custom attributes, or an empty array if no custom attributes exist. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. The custom attribute type cannot be loaded. There is more than one attribute of type defined for this member. Returns an array of custom attributes that are defined for this member, identified by type. An array of custom attributes, or an empty array if no custom attributes exist. The type of the custom attributes. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. The custom attribute type cannot be loaded. There is more than one attribute of type defined for this member. Returns a value that indicates whether one or more instances of a custom attribute type are defined for this member. true if the custom attribute type is defined for this member; otherwise, false. The type of the custom attributes. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. Gets or sets the parameter information. The parameter information. Gets the name of the parameter. The name of the parameter. Gets the type of the parameter. The type of the parameter. Provides an adapter for the attribute. Initializes a new instance of the class. The model metadata. The controller context. The regular expression attribute. Gets a list of regular-expression client validation rules. A list of regular-expression client validation rules. Provides an attribute that uses the jQuery validation plug-in remote validator. Initializes a new instance of the class. Initializes a new instance of the class using the specified route name. The route name. Initializes a new instance of the class using the specified action-method name and controller name. The name of the action method. The name of the controller. Initializes a new instance of the class using the specified action-method name, controller name, and area name. The name of the action method. The name of the controller. The name of the area. Gets or sets the additional fields that are required for validation. The additional fields that are required for validation. Returns a comma-delimited string of validation field names. A comma-delimited string of validation field names. The name of the validation property. Formats the error message that is displayed when validation fails. A formatted error message. A name to display with the error message. Formats the property for client validation by prepending an asterisk (*) and a dot. The string "*." Is prepended to the property. The property. Gets a list of client validation rules for the property. A list of remote client validation rules for the property. The model metadata. The controller context. Gets the URL for the remote validation call. The URL for the remote validation call. The controller context. Gets or sets the HTTP method used for remote validation. The HTTP method used for remote validation. The default value is "Get". This method always returns true. true The validation target. Gets the route data dictionary. The route data dictionary. Gets or sets the route name. The route name. Gets the route collection from the route table. The route collection from the route table. Provides an adapter for the attribute. Initializes a new instance of the class. The model metadata. The controller context. The required attribute. Gets a list of required-value client validation rules. A list of required-value client validation rules. Represents an attribute that forces an unsecured HTTP request to be re-sent over HTTPS. Initializes a new instance of the class. Handles unsecured HTTP requests that are sent to the action method. An object that encapsulates information that is required in order to use the attribute. The HTTP request contains an invalid transfer method override. All GET requests are considered invalid. Determines whether a request is secured (HTTPS) and, if it is not, calls the method. An object that encapsulates information that is required in order to use the attribute. The parameter is null. Provides the context for the method of the class. Initializes a new instance of the class. Initializes a new instance of the class. The controller context. The result object. true to cancel execution; otherwise, false. The exception object. The parameter is null. Gets or sets a value that indicates whether this instance is canceled. true if the instance is canceled; otherwise, false. Gets or sets the exception object. The exception object. Gets or sets a value that indicates whether the exception has been handled. true if the exception has been handled; otherwise, false. Gets or sets the action result. The action result. Provides the context for the method of the class. Initializes a new instance of the class. Initializes a new instance of the class by using the specified controller context and action result. The controller context. The action result. The parameter is null. Gets or sets a value that indicates whether this value is "cancel". true if the value is "cancel"; otherwise, false. Gets or sets the action result. The action result. Extends a object for MVC routing. Returns an object that contains information about the route and virtual path that are the result of generating a URL in the current area. An object that contains information about the route and virtual path that are the result of generating a URL in the current area. An object that contains the routes for the applications. An object that encapsulates information about the requested route. The name of the route to use when information about the URL path is retrieved. An object that contains the parameters for a route. Returns an object that contains information about the route and virtual path that are the result of generating a URL in the current area. An object that contains information about the route and virtual path that are the result of generating a URL in the current area. An object that contains the routes for the applications. An object that encapsulates information about the requested route. An object that contains the parameters for a route. Ignores the specified URL route for the given list of available routes. A collection of routes for the application. The URL pattern for the route to ignore. The or parameter is null. Ignores the specified URL route for the given list of the available routes and a list of constraints. A collection of routes for the application. The URL pattern for the route to ignore. A set of expressions that specify values for the parameter. The or parameter is null. Maps the specified URL route. A reference to the mapped route. A collection of routes for the application. The name of the route to map. The URL pattern for the route. The or parameter is null. Maps the specified URL route and sets default route values. A reference to the mapped route. A collection of routes for the application. The name of the route to map. The URL pattern for the route. An object that contains default route values. The or parameter is null. Maps the specified URL route and sets default route values and constraints. A reference to the mapped route. A collection of routes for the application. The name of the route to map. The URL pattern for the route. An object that contains default route values. A set of expressions that specify values for the parameter. The or parameter is null. Maps the specified URL route and sets default route values, constraints, and namespaces. A reference to the mapped route. A collection of routes for the application. The name of the route to map. The URL pattern for the route. An object that contains default route values. A set of expressions that specify values for the parameter. A set of namespaces for the application. The or parameter is null. Maps the specified URL route and sets default route values and namespaces. A reference to the mapped route. A collection of routes for the application. The name of the route to map. The URL pattern for the route. An object that contains default route values. A set of namespaces for the application. The or parameter is null. Maps the specified URL route and sets the namespaces. A reference to the mapped route. A collection of routes for the application. The name of the route to map. The URL pattern for the route. A set of namespaces for the application. The or parameter is null. Represents a value provider for route data that is contained in an object that implements the interface. Initializes a new instance of the class. An object that contain information about the HTTP request. Represents a factory for creating route-data value provider objects. Initialized a new instance of the class. Returns a value-provider object for the specified controller context. A value-provider object. An object that encapsulates information about the current HTTP request. The parameter is null. Represents a list that lets users select one item. Initializes a new instance of the class by using the specified items for the list. The items. Initializes a new instance of the class by using the specified items for the list and a selected value. The items. The selected value. Initializes a new instance of the class by using the specified items for the list, the data value field, and the data text field. The items. The data value field. The data text field. Initializes a new instance of the class by using the specified items for the list, the data value field, the data text field, and a selected value. The items. The data value field. The data text field. The selected value. Gets the list value that was selected by the user. The selected value. Represents the selected item in an instance of the class. Initializes a new instance of the class. Gets or sets a value that indicates whether this is selected. true if the item is selected; otherwise, false. Gets or sets the text of the selected item. The text. Gets or sets the value of the selected item. The value. Specifies the session state of the controller. Initializes a new instance of the class The type of the session state. Get the session state behavior for the controller. The session state behavior for the controller. Provides session-state data to the current object. Initializes a new instance of the class. Loads the temporary data by using the specified controller context. The temporary data. The controller context. An error occurred when the session context was being retrieved. Saves the specified values in the temporary data dictionary by using the specified controller context. The controller context. The values. An error occurred the session context was being retrieved. Provides an adapter for the attribute. Initializes a new instance of the class. The model metadata. The controller context. The string-length attribute. Gets a list of string-length client validation rules. A list of string-length client validation rules. Represents a set of data that persists only from one request to the next. Initializes a new instance of the class. Adds an element that has the specified key and value to the object. The key of the element to add. The value of the element to add. The object is read-only. is null. An element that has the same key already exists in the object. Removes all items from the instance. The object is read-only. Determines whether the instance contains an element that has the specified key. true if the instance contains an element that has the specified key; otherwise, false. The key to locate in the instance. is null. Determines whether the dictionary contains the specified value. true if the dictionary contains the specified value; otherwise, false. The value. Gets the number of elements in the object. The number of elements in the object. Gets the enumerator. The enumerator. Gets or sets the object that has the specified key. The object that has the specified key. The key to access. Marks all keys in the dictionary for retention. Marks the specified key in the dictionary for retention. The key to retain in the dictionary. Gets an object that contains the keys of elements in the object. The keys of the elements in the object. Loads the specified controller context by using the specified data provider. The controller context. The temporary data provider. Returns an object that contains the element that is associated with the specified key, without marking the key for deletion. An object that contains the element that is associated with the specified key. The key of the element to return. Removes the element that has the specified key from the object. true if the element was removed successfully; otherwise, false. This method also returns false if was not found in the . instance. The key of the element to remove. The object is read-only. is null. Saves the specified controller context by using the specified data provider. The controller context. The temporary data provider. Adds the specified key/value pair to the dictionary. The key/value pair. Determines whether a sequence contains a specified element by using the default equality comparer. true if the dictionary contains the specified key/value pair; otherwise, false. The key/value pair to search for. Copies a key/value pair to the specified array at the specified index. The target array. The index. Gets a value that indicates whether the dictionary is read-only. true if the dictionary is read-only; otherwise, false. Deletes the specified key/value pair from the dictionary. true if the key/value pair was removed successfully; otherwise, false. The key/value pair. Returns an enumerator that can be used to iterate through a collection. An object that can be used to iterate through the collection. Gets the value of the element that has the specified key. true if the object that implements contains an element that has the specified key; otherwise, false. The key of the value to get. When this method returns, the value that is associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. is null. Gets the object that contains the values in the object. The values of the elements in the object that implements . Encapsulates information about the current template context. Initializes a new instance of the class. Gets or sets the formatted model value. The formatted model value. Retrieves the full DOM ID of a field using the specified HTML name attribute. The full DOM ID. The value of the HTML name attribute. Retrieves the fully qualified name (including a prefix) for a field using the specified HTML name attribute. The prefixed name of the field. The value of the HTML name attribute. Gets or sets the HTML field prefix. The HTML field prefix. Contains the number of objects that were visited by the user. The number of objects. Determines whether the template has been visited by the user. true if the template has been visited by the user; otherwise, false. An object that encapsulates information that describes the model. Contains methods to build URLs for ASP.NET MVC within an application. Initializes a new instance of the class using the specified request context. An object that contains information about the current request and about the route that it matched. The parameter is null. Initializes a new instance of the class by using the specified request context and route collection. An object that contains information about the current request and about the route that it matched. A collection of routes. The or the parameter is null. Generates a fully qualified URL to an action method by using the specified action name. The fully qualified URL to an action method. The name of the action method. Generates a fully qualified URL to an action method by using the specified action name and route values. The fully qualified URL to an action method. The name of the action method. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. Generates a fully qualified URL to an action method by using the specified action name and controller name. The fully qualified URL to an action method. The name of the action method. The name of the controller. Generates a fully qualified URL to an action method by using the specified action name, controller name, and route values. The fully qualified URL to an action method. The name of the action method. The name of the controller. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. Generates a fully qualified URL to an action method by using the specified action name, controller name, route values, and protocol to use. The fully qualified URL to an action method. The name of the action method. The name of the controller. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. The protocol for the URL, such as "http" or "https". Generates a fully qualified URL to an action method by using the specified action name, controller name, and route values. The fully qualified URL to an action method. The name of the action method. The name of the controller. An object that contains the parameters for a route. Generates a fully qualified URL for an action method by using the specified action name, controller name, route values, protocol to use, and host name. The fully qualified URL to an action method. The name of the action method. The name of the controller. An object that contains the parameters for a route. The protocol for the URL, such as "http" or "https". The host name for the URL. Generates a fully qualified URL to an action method for the specified action name and route values. The fully qualified URL to an action method. The name of the action method. An object that contains the parameters for a route. Converts a virtual (relative) path to an application absolute path. The application absolute path. The virtual path of the content. Encodes special characters in a URL string into character-entity equivalents. An encoded URL string. The text to encode. Returns a string that contains a content URL. A string that contains a content URL. The content path. The HTTP context. Returns a string that contains a URL. A string that contains a URL. The route name. The action name. The controller name. The HTTP protocol. The host name. The fragment. The route values. The route collection. The request context. true to include implicit MVC values; otherwise false. Returns a string that contains a URL. A string that contains a URL. The route name. The action name. The controller name. The route values. The route collection. The request context. true to include implicit MVC values; otherwise. false. Generates a fully qualified URL for the specified route values. A fully qualified URL for the specified route values. The route name. The route values. Generates a fully qualified URL for the specified route values. A fully qualified URL for the specified route values. The route name. The route values. Returns a value that indicates whether the URL is local. true if the URL is local; otherwise, false. The URL. Gets information about an HTTP request that matches a defined route. The request context. Gets a collection that contains the routes that are registered for the application. The route collection. Generates a fully qualified URL for the specified route values. The fully qualified URL. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. Generates a fully qualified URL for the specified route name. The fully qualified URL. The name of the route that is used to generate the URL. Generates a fully qualified URL for the specified route values by using a route name. The fully qualified URL. The name of the route that is used to generate the URL. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. Generates a fully qualified URL for the specified route values by using a route name and the protocol to use. The fully qualified URL. The name of the route that is used to generate the URL. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. The protocol for the URL, such as "http" or "https". Generates a fully qualified URL for the specified route values by using a route name. The fully qualified URL. The name of the route that is used to generate the URL. An object that contains the parameters for a route. Generates a fully qualified URL for the specified route values by using the specified route name, protocol to use, and host name. The fully qualified URL. The name of the route that is used to generate the URL. An object that contains the parameters for a route. The protocol for the URL, such as "http" or "https". The host name for the URL. Generates a fully qualified URL for the specified route values. The fully qualified URL. An object that contains the parameters for a route. Represents an optional parameter that is used by the class during routing. Contains the read-only value for the optional parameter. Returns an empty string. This method supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. An empty string. Provides an object adapter that can be validated. Initializes a new instance of the class. The model metadata. The controller context. Validates the specified object. A list of validation results. The container. Represents an attribute that is used to prevent forgery of a request. Initializes a new instance of the class. Called when authorization is required. The filter context. The parameter is null. Gets or sets the salt string. The salt string. Represents an attribute that is used to mark action methods whose input must be validated. Initializes a new instance of the class. true to enable validation. Gets or sets a value that indicates whether to enable validation. true if validation is enabled; otherwise, false. Called when authorization is required. The filter context. The parameter is null. Represents the collection of value-provider objects for the application. Initializes a new instance of the class. Initializes a new instance of the class and registers the specified value providers. The list of value providers to register. Determines whether the collection contains the specified prefix. true if the collection contains the specified prefix; otherwise, false. The prefix to search for. Gets the keys using the specified prefix. They keys. The prefix. Returns a value object using the specified key. The value object for the specified key. The key of the value object to retrieve. Returns a value object using the specified key and skip-validation parameter. The value object for the specified key. The key of the value object to retrieve. true to specify that validation should be skipped; otherwise, false. Inserts the specified value-provider object into the collection at the specified index location. The zero-based index location at which to insert the value provider into the collection. The value-provider object to insert. The parameter is null. Replaces the value provider at the specified index location with a new value provider. The zero-based index of the element to replace. The new value for the element at the specified index. The parameter is null. Represents a dictionary of value providers for the application. Initializes a new instance of the class. The controller context. Adds the specified item to the collection of value providers. The object to add to the object. The object is read-only. Adds an element that has the specified key and value to the collection of value providers. The key of the element to add. The value of the element to add. The object is read-only. is null. An element that has the specified key already exists in the object. Adds an element that has the specified key and value to the collection of value providers. The key of the element to add. The value of the element to add. The object is read-only. is null. An element that has the specified key already exists in the object. Removes all items from the collection of value providers. The object is read-only. Determines whether the collection of value providers contains the specified item. true if is found in the collection of value providers; otherwise, false. The object to locate in the instance. Determines whether the collection of value providers contains an element that has the specified key. true if the collection of value providers contains an element that has the key; otherwise, false. The key of the element to find in the instance. is null. Gets or sets the controller context. The controller context. Copies the elements of the collection to an array, starting at the specified index. The one-dimensional array that is the destination of the elements copied from the object. The array must have zero-based indexing. The zero-based index in at which copying starts. is null. is less than 0. is multidimensional.-or- is equal to or greater than the length of .-or-The number of elements in the source collection is greater than the available space from to the end of the destination .-or-Type cannot be cast automatically to the type of the destination array. Gets the number of elements in the collection. The number of elements in the collection. Returns an enumerator that can be used to iterate through the collection. An enumerator that can be used to iterate through the collection. Gets a value that indicates whether the collection is read-only. true if the collection is read-only; otherwise, false. Gets or sets the object that has the specified key. The object. The key. Gets a collection that contains the keys of the instance. A collection that contains the keys of the object that implements the interface. Removes the first occurrence of the specified item from the collection of value providers. true if was successfully removed from the collection; otherwise, false. This method also returns false if is not found in the collection. The object to remove from the instance. The object is read-only. Removes the element that has the specified key from the collection of value providers. true if the element was successfully removed; otherwise, false. This method also returns false if was not found in the collection. The key of the element to remove. The object is read-only. is null. Returns an enumerator that can be used to iterate through a collection. An enumerator that can be used to iterate through the collection. Determines whether the collection contains the specified prefix. true if the collection contains the specified prefix; otherwise, false. The prefix to search for. Returns a value object using the specified key. The value object for the specified key. The key of the value object to return. Gets the value of the element that has the specified key. true if the object that implements contains an element that has the specified key; otherwise, false. The key of the element to get. When this method returns, the value that is associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. is null. Gets a collection that contains the values in the object. A collection of the values in the object that implements the interface. Represents a container for value-provider factory objects. Gets the collection of value-provider factories for the application. The collection of value-provider factory objects. Represents a factory for creating value-provider objects. Initializes a new instance of the class. Returns a value-provider object for the specified controller context. A value-provider object. An object that encapsulates information about the current HTTP request. Represents the collection of value-provider factories for the application. Initializes a new instance of the class. Initializes a new instance of the class using the specified list of value-provider factories. A list of value-provider factories to initialize the collection with. Returns the value-provider factory for the specified controller context. The value-provider factory object for the specified controller context. An object that encapsulates information about the current HTTP request. Inserts the specified value-provider factory object at the specified index location. The zero-based index location at which to insert the value provider into the collection. The value-provider factory object to insert. The parameter is null. Sets the specified value-provider factory object at the given index location. The zero-based index location at which to insert the value provider into the collection. The value-provider factory object to set. The parameter is null. Represents the result of binding a value (such as from a form post or query string) to an action-method argument property, or to the argument itself. Initializes a new instance of the class. Initializes a new instance of the class by using the specified raw value, attempted value, and culture information. The raw value. The attempted value. The culture. Gets or sets the raw value that is converted to a string for display. The raw value. Converts the value that is encapsulated by this result to the specified type. The converted value. The target type. The parameter is null. Converts the value that is encapsulated by this result to the specified type by using the specified culture information. The converted value. The target type. The culture to use in the conversion. The parameter is null. Gets or sets the culture. The culture. Gets or set the raw value that is supplied by the value provider. The raw value. Encapsulates information that is related to rendering a view. Initializes a new instance of the class. Initializes a new instance of the class by using the specified controller context, view, view data dictionary, temporary data dictionary, and text writer. Encapsulates information about the HTTP request. The view to render. The dictionary that contains the data that is required in order to render the view. The dictionary that contains temporary data for the view. The text writer object that is used to write HTML output. One of the parameters is null. Gets or sets a value that indicates whether client-side validation is enabled. true if client-side validation is enabled; otherwise, false. Gets or sets an object that encapsulates information that is required in order to validate and process the input data from an HTML form. An object that encapsulates information that is required in order to validate and process the input data from an HTML form. Writes the client validation information to the HTTP response. Gets data that is associated with this request and that is available for only one request. The temporary data. Gets or sets a value that indicates whether unobtrusive JavaScript is enabled. true if unobtrusive JavaScript is enabled; otherwise, false. Gets an object that implements the interface to render in the browser. The view. Gets the dynamic view data dictionary. The dynamic view data dictionary. Gets the view data that is passed to the view. The view data. Gets or sets the text writer object that is used to write HTML output. The object that is used to write the HTML output. Represents a container that is used to pass data between a controller and a view. Initializes a new instance of the class. Initializes a new instance of the class by using the specified model. The model. Initializes a new instance of the class by using the specified dictionary. The dictionary. The parameter is null. Adds the specified item to the collection. The object to add to the collection. The collection is read-only. Adds an element to the collection using the specified key and value . The key of the element to add. The value of the element to add. The object is read-only. is null. An element with the same key already exists in the object. Removes all items from the collection. The object is read-only. Determines whether the collection contains the specified item. true if is found in the collection; otherwise, false. The object to locate in the collection. Determines whether the collection contains an element that has the specified key. true if the collection contains an element that has the specified key; otherwise, false. The key of the element to locate in the collection. is null. Copies the elements of the collection to an array, starting at a particular index. The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. The zero-based index in at which copying begins. is null. is less than 0. is multidimensional.-or- is equal to or greater than the length of .-or- The number of elements in the source collection is greater than the available space from to the end of the destination .-or- Type cannot be cast automatically to the type of the destination . Gets the number of elements in the collection. The number of elements in the collection. Evaluates the specified expression. The results of the evaluation. The expression. The parameter is null or empty. Evaluates the specified expression by using the specified format. The results of the evaluation. The expression. The format. Returns an enumerator that can be used to iterate through the collection. An enumerator that can be used to iterate through the collection. Returns information about the view data as defined by the parameter. An object that contains the view data information that is defined by the parameter. A set of key/value pairs that define the view-data information to return. The parameter is either null or empty. Gets a value that indicates whether the collection is read-only. true if the collection is read-only; otherwise, false. Gets or sets the item that is associated with the specified key. The value of the selected item. The key. Gets a collection that contains the keys of this dictionary. A collection that contains the keys of the object that implements . Gets or sets the model that is associated with the view data. The model that is associated with the view data. Gets or sets information about the model. Information about the model. Gets the state of the model. The state of the model. Removes the first occurrence of a specified object from the collection. true if was successfully removed from the collection; otherwise, false. This method also returns false if is not found in the collection. The object to remove from the collection. The collection is read-only. Removes the element from the collection using the specified key. true if the element is successfully removed; otherwise, false. This method also returns false if was not found in the original collection. The key of the element to remove. The collection is read-only. is null. Sets the data model to use for the view. The data model to use for the view. Returns an enumerator that can be used to iterate through the collection. An enumerator that can be used to iterate through the collection. Gets or sets an object that encapsulates information about the current template context. An object that contains information about the current template. Attempts to retrieve the value that is associated with the specified key. true if the collection contains an element with the specified key; otherwise, false. The key of the value to get. When this method returns, the value that is associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. is null. Gets a collection that contains the values in this dictionary. A collection that contains the values of the object that implements . Represents a container that is used to pass strongly typed data between a controller and a view. The type of the model. Initializes a new instance of the class. Initializes a new instance of the class by using the specified view data dictionary. An existing view data dictionary to copy into this instance. Initializes a new instance of the class by using the specified model. The data model to use for the view. Gets or sets the model. A reference to the data model. Gets or sets information about the model. Information about the model. Sets the data model to use for the view. The data model to use for the view. An error occurred while the model was being set. Encapsulates information about the current template content that is used to develop templates and about HTML helpers that interact with templates. Initializes a new instance of the class. Initializes a new instance of the T:System.Web.Mvc.ViewDataInfo class and associates a delegate for accessing the view data information. A delegate that defines how the view data information is accessed. Gets or sets the object that contains the values to be displayed by the template. The object that contains the values to be displayed by the template. Gets or sets the description of the property to be displayed by the template. The description of the property to be displayed by the template. Gets or sets the current value to be displayed by the template. The current value to be displayed by the template. Represents a collection of view engines that are available to the application. Initializes a new instance of the class. Initializes a new instance of the class by using the specified list of view engines. The list that is wrapped by the new collection. is null. Finds the specified partial view by using the specified controller context. The partial view. The controller context. The name of the partial view. The parameter is null. The parameter is null or empty. Finds the specified view by using the specified controller context and master view. The view. The controller context. The name of the view. The name of the master view. The parameter is null. The parameter is null or empty. Inserts an element into the collection at the specified index. The zero-based index at which should be inserted. The object to insert. is less than zero.-or- is greater than the number of items in the collection. The parameter is null. Replaces the element at the specified index. The zero-based index of the element to replace. The new value for the element at the specified index. is less than zero.-or- is greater than the number of items in the collection. The parameter is null. Represents the result of locating a view engine. Initializes a new instance of the class by using the specified searched locations. The searched locations. The parameter is null. Initializes a new instance of the class by using the specified view and view engine. The view. The view engine. The or parameter is null. Gets or sets the searched locations. The searched locations. Gets or sets the view. The view. Gets or sets the view engine. The view engine. Represents a collection of view engines that are available to the application. Gets the view engines. The view engines. Represents the information that is needed to build a master view page. Initializes a new instance of the class. Gets the AJAX script for the master page. The AJAX script for the master page. Gets the HTML for the master page. The HTML for the master page. Gets the model. The model. Gets the temporary data. The temporary data. Gets the URL. The URL. Gets the dynamic view-bag dictionary. The dynamic view-bag dictionary. Gets the view context. The view context. Gets the view data. The view data. Gets the writer that is used to render the master page. The writer that is used to render the master page. Represents the information that is required in order to build a strongly typed master view page. The type of the model. Initializes a new instance of the class. Gets the AJAX script for the master page. The AJAX script for the master page. Gets the HTML for the master page. The HTML for the master page. Gets the model. A reference to the data model. Gets the view data. The view data. Represents the properties and methods that are needed to render a view as a Web Forms page. Initializes a new instance of the class. Gets or sets the object that is used to render HTML in Ajax scenarios. The Ajax helper object that is associated with the view. Gets or sets the object that is used to render HTML elements. The HTML helper object that is associated with the view. Initializes the , , and properties. Gets or sets the path of the master view. The path of the master view. Gets the Model property of the associated object. The Model property of the associated object. Raises the event at the beginning of page initialization. The event data. Enables processing of the specified HTTP request by the ASP.NET MVC framework. An object that encapsulates HTTP-specific information about the current HTTP request. Initializes the object that receives the page content to be rendered. The object that receives the page content. Renders the view page to the response using the specified view context. An object that encapsulates the information that is required in order to render the view, which includes the controller context, form context, the temporary data, and the view data for the associated view. Sets the text writer that is used to render the view to the response. The writer that is used to render the view to the response. Sets the view data dictionary for the associated view. A dictionary of data to pass to the view. Gets the temporary data to pass to the view. The temporary data to pass to the view. Gets or sets the URL of the rendered page. The URL of the rendered page. Gets the view bag. The view bag. Gets or sets the information that is used to render the view. The information that is used to render the view, which includes the form context, the temporary data, and the view data of the associated view. Gets or sets a dictionary that contains data to pass between the controller and the view. A dictionary that contains data to pass between the controller and the view. Gets the text writer that is used to render the view to the response. The text writer that is used to render the view to the response. Represents the information that is required in order to render a strongly typed view as a Web Forms page. The type of the model. Initializes a new instance of the class. Gets or sets the object that supports rendering HTML in Ajax scenarios. The Ajax helper object that is associated with the view. Gets or sets the object that provides support for rendering elements. The HTML helper object that is associated with the view. Instantiates and initializes the and properties. Gets the property of the associated object. A reference to the data model. Sets the view data dictionary for the associated view. A dictionary of data to pass to the view. Gets or sets a dictionary that contains data to pass between the controller and the view. A dictionary that contains data to pass between the controller and the view. Represents a class that is used to render a view by using an instance that is returned by an object. Initializes a new instance of the class. Searches the registered view engines and returns the object that is used to render the view. The object that is used to render the view. The controller context. An error occurred while the method was searching for the view. Gets the name of the master view (such as a master page or template) to use when the view is rendered. The name of the master view. Represents a base class that is used to provide the model to the view and then render the view to the response. Initializes a new instance of the class. When called by the action invoker, renders the view to the response. The context that the result is executed in. The parameter is null. Returns the object that is used to render the view. The view engine. The context. Gets the view data model. The view data model. Gets or sets the object for this result. The temporary data. Gets or sets the object that is rendered to the response. The view. Gets the view bag. The view bag. Gets or sets the view data object for this result. The view data. Gets or sets the collection of view engines that are associated with this result. The collection of view engines. Gets or sets the name of the view to render. The name of the view. Provides an abstract class that can be used to implement a view start (master) page. When implemented in a derived class, initializes a new instance of the class. When implemented in a derived class, gets the HTML markup for the view start page. The HTML markup for the view start page. When implemented in a derived class, gets the URL for the view start page. The URL for the view start page. When implemented in a derived class, gets the view context for the view start page. The view context for the view start page. Provides a container for objects. Initializes a new instance of the class. Provides a container for objects. The type of the model. Initializes a new instance of the class. Gets the formatted value. The formatted value. Represents the type of a view. Initializes a new instance of the class. Gets or sets the name of the type. The name of the type. Represents the information that is needed to build a user control. Initializes a new instance of the class. Gets the AJAX script for the view. The AJAX script for the view. Ensures that view data is added to the object of the user control if the view data exists. Gets the HTML for the view. The HTML for the view. Gets the model. The model. Renders the view by using the specified view context. The view context. Sets the text writer that is used to render the view to the response. The writer that is used to render the view to the response. Sets the view-data dictionary by using the specified view data. The view data. Gets the temporary-data dictionary. The temporary-data dictionary. Gets the URL for the view. The URL for the view. Gets the view bag. The view bag. Gets or sets the view context. The view context. Gets or sets the view-data dictionary. The view-data dictionary. Gets or sets the view-data key. The view-data key. Gets the writer that is used to render the view to the response. The writer that is used to render the view to the response. Represents the information that is required in order to build a strongly typed user control. The type of the model. Initializes a new instance of the class. Gets the AJAX script for the view. The AJAX script for the view. Gets the HTML for the view. The HTML for the view. Gets the model. A reference to the data model. Sets the view data for the view. The view data. Gets or sets the view data. The view data. Represents an abstract base-class implementation of the interface. Initializes a new instance of the class. Gets or sets the area-enabled master location formats. The area-enabled master location formats. Gets or sets the area-enabled partial-view location formats. The area-enabled partial-view location formats. Gets or sets the area-enabled view location formats. The area-enabled view location formats. Creates the specified partial view by using the specified controller context. A reference to the partial view. The controller context. The partial path for the new partial view. Creates the specified view by using the controller context, path of the view, and path of the master view. A reference to the view. The controller context. The path of the view. The path of the master view. Gets or sets the display mode provider. The display mode provider. Returns a value that indicates whether the file is in the specified path by using the specified controller context. true if the file is in the specified path; otherwise, false. The controller context. The virtual path. Gets or sets the file-name extensions that are used to locate a view. The file-name extensions that are used to locate a view. Finds the specified partial view by using the specified controller context. The partial view. The controller context. The name of the partial view. true to use the cached partial view. The parameter is null (Nothing in Visual Basic). The parameter is null or empty. Finds the specified view by using the specified controller context and master view name. The page view. The controller context. The name of the view. The name of the master view. true to use the cached view. The parameter is null (Nothing in Visual Basic). The parameter is null or empty. Gets or sets the master location formats. The master location formats. Gets or sets the partial-view location formats. The partial-view location formats. Releases the specified view by using the specified controller context. The controller context. The view to release. Gets or sets the view location cache. The view location cache. Gets or sets the view location formats. The view location formats. Gets or sets the virtual path provider. The virtual path provider. Represents the information that is needed to build a Web Forms page in ASP.NET MVC. Initializes a new instance of the class using the controller context and view path. The controller context. The view path. Initializes a new instance of the class using the controller context, view path, and the path to the master page. The controller context. The view path. The path to the master page. Initializes a new instance of the class using the controller context, view path, the path to the master page, and a instance. The controller context. The view path. The path to the master page. An instance of the view page activator interface. Gets or sets the master path. The master path. Renders the view to the response. An object that encapsulates the information that is required in order to render the view, which includes the controller context, form context, the temporary data, and the view data for the associated view. The text writer object that is used to write HTML output. The view page instance. Represents a view engine that is used to render a Web Forms page to the response. Initializes a new instance of the class. Initializes a new instance of the class using the specified view page activator. An instance of a class that implements the interface. Creates the specified partial view by using the specified controller context. The partial view. The controller context. The partial path. Creates the specified view by using the specified controller context and the paths of the view and master view. The view. The controller context. The view path. The master-view path. Represents the properties and methods that are needed in order to render a view that uses ASP.NET Razor syntax. Initializes a new instance of the class. Gets or sets the object that is used to render HTML using Ajax. The object that is used to render HTML using Ajax. Sets the view context and view data for the page. The parent page. Gets the object that is associated with the page. The object that is associated with the page. Runs the page hierarchy for the ASP.NET Razor execution pipeline. Gets or sets the object that is used to render HTML elements. The object that is used to render HTML elements. Initializes the , , and classes. Gets the Model property of the associated object. The Model property of the associated object. Sets the view data. The view data. Gets the temporary data to pass to the view. The temporary data to pass to the view. Gets or sets the URL of the rendered page. The URL of the rendered page. Gets the view bag. The view bag. Gets or sets the information that is used to render the view. The information that is used to render the view, which includes the form context, the temporary data, and the view data of the associated view. Gets or sets a dictionary that contains data to pass between the controller and the view. A dictionary that contains data to pass between the controller and the view. Represents the properties and methods that are needed in order to render a view that uses ASP.NET Razor syntax. The type of the view data model. Initializes a new instance of the class. Gets or sets the object that is used to render HTML markup using Ajax. The object that is used to render HTML markup using Ajax. Gets or sets the object that is used to render HTML elements. The object that is used to render HTML elements. Initializes the , , and classes. Gets the Model property of the associated object. The Model property of the associated object. Sets the view data. The view data. Gets or sets a dictionary that contains data to pass between the controller and the view. A dictionary that contains data to pass between the controller and the view. Represents support for ASP.NET AJAX within an ASP.NET MVC application. Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. The name of the action method. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. An object that provides options for the asynchronous request. The parameter is null or empty. Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. The name of the action method. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. An object that provides options for the asynchronous request. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. The name of the action method. The name of the controller. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. An object that provides options for the asynchronous request. The parameter is null or empty. Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. The name of the action method. The name of the controller. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. An object that provides options for the asynchronous request. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. The name of the action method. The name of the controller. The protocol for the URL, such as "http" or "https". The host name for the URL. The URL fragment name (the anchor name). An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. An object that provides options for the asynchronous request. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. The name of the action method. The name of the controller. The protocol for the URL, such as "http" or "https". The host name for the URL. The URL fragment name (the anchor name). An object that contains the parameters for a route. An object that provides options for the asynchronous request. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. The name of the action method. The name of the controller. An object that provides options for the asynchronous request. The parameter is null or empty. Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. The name of the action method. The name of the controller. An object that contains the parameters for a route. An object that provides options for the asynchronous request. The parameter is null or empty. Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. The name of the action method. The name of the controller. An object that contains the parameters for a route. An object that provides options for the asynchronous request. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. The name of the action method. An object that provides options for the asynchronous request. The parameter is null or empty. Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. The name of the action method. An object that contains the parameters for a route. An object that provides options for the asynchronous request. The parameter is null or empty. Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. The name of the action method. An object that contains the parameters for a route. An object that provides options for the asynchronous request. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Writes an opening <form> tag to the response. An opening <form> tag. The AJAX helper. The name of the action method that will handle the request. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. An object that provides options for the asynchronous request. Writes an opening <form> tag to the response. An opening <form> tag. The AJAX helper. The name of the action method that will handle the request. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. An object that provides options for the asynchronous request. An object that contains the HTML attributes to set for the element. Writes an opening <form> tag to the response. An opening <form> tag. The AJAX helper. The name of the action method that will handle the request. The name of the controller. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. An object that provides options for the asynchronous request. Writes an opening <form> tag to the response. An opening <form> tag. The AJAX helper. The name of the action method that will handle the request. The name of the controller. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. An object that provides options for the asynchronous request. An object that contains the HTML attributes to set for the element. Writes an opening <form> tag to the response. An opening <form> tag. The AJAX helper. The name of the action method that will handle the request. The name of the controller. An object that provides options for the asynchronous request. Writes an opening <form> tag to the response. An opening <form> tag. The AJAX helper. The name of the action method that will handle the request. The name of the controller. An object that contains the parameters for a route. An object that provides options for the asynchronous request. Writes an opening <form> tag to the response. An opening <form> tag. The AJAX helper. The name of the action method that will handle the request. The name of the controller. An object that contains the parameters for a route. An object that provides options for the asynchronous request. An object that contains the HTML attributes to set for the element. Writes an opening <form> tag to the response. An opening <form> tag. The AJAX helper. The name of the action method that will handle the request. An object that provides options for the asynchronous request. Writes an opening <form> tag to the response. An opening <form> tag. The AJAX helper. The name of the action method that will handle the request. An object that contains the parameters for a route. An object that provides options for the asynchronous request. Writes an opening <form> tag to the response. An opening <form> tag. The AJAX helper. The name of the action method that will handle the request. An object that contains the parameters for a route. An object that provides options for the asynchronous request. An object that contains the HTML attributes to set for the element.. Writes an opening <form> tag to the response. An opening <form> tag. The AJAX helper. An object that provides options for the asynchronous request. Writes an opening <form> tag to the response using the specified routing information. An opening <form> tag. The AJAX helper. The name of the route to use to obtain the form post URL. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. An object that provides options for the asynchronous request. Writes an opening <form> tag to the response using the specified routing information. An opening <form> tag. The AJAX helper. The name of the route to use to obtain the form post URL. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. An object that provides options for the asynchronous request. An object that contains the HTML attributes to set for the element. Writes an opening <form> tag to the response using the specified routing information. An opening <form> tag. The AJAX helper. The name of the route to use to obtain the form post URL. An object that provides options for the asynchronous request. Writes an opening <form> tag to the response using the specified routing information. An opening <form> tag. The AJAX helper. The name of the route to use to obtain the form post URL. An object that contains the parameters for a route. An object that provides options for the asynchronous request. Writes an opening <form> tag to the response using the specified routing information. An opening <form> tag. The AJAX helper. The name of the route to use to obtain the form post URL. An object that contains the parameters for a route. An object that provides options for the asynchronous request. An object that contains the HTML attributes to set for the element. Returns an HTML script element that contains a reference to a globalization script that defines the culture information. A script element whose src attribute is set to the globalization script, as in the following example: <script type="text/javascript" src="/MvcApplication1/Scripts/Globalization/en-US.js"></script> The AJAX helper object that this method extends. Returns an HTML script element that contains a reference to a globalization script that defines the specified culture information. An HTML script element whose src attribute is set to the globalization script, as in the following example:<script type="text/javascript" src="/MvcApplication1/Scripts/Globalization/en-US.js"></script> The AJAX helper object that this method extends. Encapsulates information about the target culture, such as date formats. The parameter is null. Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. An object that provides options for the asynchronous request. The parameter is null or empty. Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. An object that provides options for the asynchronous request. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. The name of the route to use to obtain the form post URL. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. An object that provides options for the asynchronous request. The parameter is null or empty. Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. The name of the route to use to obtain the form post URL. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. An object that provides options for the asynchronous request. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. The name of the route to use to obtain the form post URL. The protocol for the URL, such as "http" or "https". The host name for the URL. The URL fragment name (the anchor name). An object that contains the parameters for a route. An object that provides options for the asynchronous request. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. The name of the route to use to obtain the form post URL. An object that provides options for the asynchronous request. The parameter is null or empty. Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. The name of the route to use to obtain the form post URL. An object that provides options for the asynchronous request. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. The name of the route to use to obtain the form post URL. An object that provides options for the asynchronous request. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. The name of the route to use to obtain the form post URL. An object that contains the parameters for a route. An object that provides options for the asynchronous request. The parameter is null or empty. Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. The name of the route to use to obtain the form post URL. An object that contains the parameters for a route. An object that provides options for the asynchronous request. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. An object that contains the parameters for a route. An object that provides options for the asynchronous request. The parameter is null or empty. Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. An anchor element. The AJAX helper. The inner text of the anchor element. An object that contains the parameters for a route. An object that provides options for the asynchronous request. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Represents option settings for running Ajax scripts in an ASP.NET MVC application. Initializes a new instance of the class. Gets or sets the message to display in a confirmation window before a request is submitted. The message to display in a confirmation window. Gets or sets the HTTP request method ("Get" or "Post"). The HTTP request method. The default value is "Post". Gets or sets the mode that specifies how to insert the response into the target DOM element. The insertion mode ("InsertAfter", "InsertBefore", or "Replace"). The default value is "Replace". Gets or sets a value, in milliseconds, that controls the duration of the animation when showing or hiding the loading element. A value, in milliseconds, that controls the duration of the animation when showing or hiding the loading element. Gets or sets the id attribute of an HTML element that is displayed while the Ajax function is loading. The ID of the element that is displayed while the Ajax function is loading. Gets or sets the name of the JavaScript function to call immediately before the page is updated. The name of the JavaScript function to call before the page is updated. Gets or sets the JavaScript function to call when response data has been instantiated but before the page is updated. The JavaScript function to call when the response data has been instantiated. Gets or sets the JavaScript function to call if the page update fails. The JavaScript function to call if the page update fails. Gets or sets the JavaScript function to call after the page is successfully updated. The JavaScript function to call after the page is successfully updated. Returns the Ajax options as a collection of HTML attributes to support unobtrusive JavaScript. The Ajax options as a collection of HTML attributes to support unobtrusive JavaScript. Gets or sets the ID of the DOM element to update by using the response from the server. The ID of the DOM element to update. Gets or sets the URL to make the request to. The URL to make the request to. Enumerates the AJAX script insertion modes. Replace the element. Insert before the element. Insert after the element. Provides information about an asynchronous action method, such as its name, controller, parameters, attributes, and filters. Initializes a new instance of the class. Invokes the asynchronous action method by using the specified parameters and controller context. An object that contains the result of an asynchronous call. The controller context. The parameters of the action method. The callback method. An object that contains information to be used by the callback method. This parameter can be null. Returns the result of an asynchronous operation. The result of an asynchronous operation. An object that represents the status of an asynchronous operation. Executes the asynchronous action method by using the specified parameters and controller context. The result of executing the asynchronous action method. The controller context. The parameters of the action method. Represents a class that is responsible for invoking the action methods of an asynchronous controller. Initializes a new instance of the class. Invokes the asynchronous action method by using the specified controller context, action name, callback method, and state. An object that contains the result of an asynchronous operation. The controller context. The name of the action. The callback method. An object that contains information to be used by the callback method. This parameter can be null. Invokes the asynchronous action method by using the specified controller context, action descriptor, parameters, callback method, and state. An object that contains the result of an asynchronous operation. The controller context. The action descriptor. The parameters for the asynchronous action method. The callback method. An object that contains information to be used by the callback method. This parameter can be null. Invokes the asynchronous action method by using the specified controller context, filters, action descriptor, parameters, callback method, and state. An object that contains the result of an asynchronous operation. The controller context. The filters. The action descriptor. The parameters for the asynchronous action method. The callback method. An object that contains information to be used by the callback method. This parameter can be null. Cancels the action. true if the action was canceled; otherwise, false. The user-defined object that qualifies or contains information about an asynchronous operation. Cancels the action. true if the action was canceled; otherwise, false. The user-defined object that qualifies or contains information about an asynchronous operation. Cancels the action. true if the action was canceled; otherwise, false. The user-defined object that qualifies or contains information about an asynchronous operation. Returns the controller descriptor. The controller descriptor. The controller context. Provides asynchronous operations for the class. Initializes a new instance of the class. Initializes a new instance of the class using the synchronization context. The synchronization context. Notifies ASP.NET that all asynchronous operations are complete. Occurs when the method is called. Gets the number of outstanding operations. The number of outstanding operations. Gets the parameters that were passed to the asynchronous completion method. The parameters that were passed to the asynchronous completion method. Executes a callback in the current synchronization context. The asynchronous action. Gets or sets the asynchronous timeout value, in milliseconds. The asynchronous timeout value, in milliseconds. Defines the interface for an action invoker, which is used to invoke an asynchronous action in response to an HTTP request. Invokes the specified action. The status of the asynchronous result. The controller context. The name of the asynchronous action. The callback method. The state. Cancels the asynchronous action. true if the asynchronous method could be canceled; otherwise, false. The asynchronous result. Defines the methods that are required for an asynchronous controller. Executes the specified request context. The status of the asynchronous operation. The request context. The asynchronous callback method. The state. Ends the asynchronous operation. The asynchronous result. Provides a container for the asynchronous manager object. Gets the asynchronous manager object. The asynchronous manager object. Provides a container that maintains a count of pending asynchronous operations. Initializes a new instance of the class. Occurs when an asynchronous method completes. Gets the operation count. The operation count. Reduces the operation count by 1. The updated operation count. Reduces the operation count by the specified value. The updated operation count. The number of operations to reduce the count by. Increments the operation count by one. The updated operation count. Increments the operation count by the specified value. The updated operation count. The number of operations to increment the count by. Provides information about an asynchronous action method, such as its name, controller, parameters, attributes, and filters. Initializes a new instance of the class. An object that contains information about the method that begins the asynchronous operation (the method whose name ends with "Asynch"). An object that contains information about the completion method (method whose name ends with "Completed"). The name of the action. The controller descriptor. Gets the name of the action method. The name of the action method. Gets the method information for the asynchronous action method. The method information for the asynchronous action method. Begins running the asynchronous action method by using the specified parameters and controller context. An object that contains the result of an asynchronous call. The controller context. The parameters of the action method. The callback method. An object that contains information to be used by the callback method. This parameter can be null. Gets the method information for the asynchronous completion method. The method information for the asynchronous completion method. Gets the controller descriptor for the asynchronous action method. The controller descriptor for the asynchronous action method. Returns the result of an asynchronous operation. The result of an asynchronous operation. An object that represents the status of an asynchronous operation. Returns an array of custom attributes that are defined for this member, excluding named attributes. An array of custom attributes, or an empty array if no custom attributes exist. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. Returns an array of custom attributes that are defined for this member, identified by type. An array of custom attributes, or an empty array if no custom attributes of the specified type exist. The type of the custom attributes to return. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. Gets the filter attributes. The filter attributes. Use cache flag. Returns the parameters of the action method. The parameters of the action method. Returns the action-method selectors. The action-method selectors. Determines whether one or more instances of the specified attribute type are defined for the action member. true if an attribute of type that is represented by is defined for this member; otherwise, false. The type of the custom attribute. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. Gets the lazy initialized unique ID of the instance of this class. The lazy initialized unique ID of the instance of this class. Encapsulates information that describes an asynchronous controller, such as its name, type, and actions. Initializes a new instance of the class. The type of the controller. Gets the type of the controller. The type of the controller. Finds an action method by using the specified name and controller context. The information about the action method. The controller context. The name of the action. Returns a list of action method descriptors in the controller. A list of action method descriptors in the controller. Returns custom attributes that are defined for this member, excluding named attributes. An array of custom attributes, or an empty array if no custom attributes exist. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. Returns custom attributes of a specified type that are defined for this member, excluding named attributes. An array of custom attributes, or an empty array if no custom attributes exist. The type of the custom attributes. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. Gets the filter attributes. The filter attributes. true to use the cache, otherwise false. Returns a value that indicates whether one or more instances of the specified custom attribute are defined for this member. true if an attribute of the type represented by is defined for this member; otherwise, false. The type of the custom attribute. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. Represents an exception that occurred during the synchronous processing of an HTTP request in an ASP.NET MVC application. Initializes a new instance of the class using a system-supplied message. Initializes a new instance of the class using the specified message. The message that describes the exception. The caller of this constructor must make sure that this string has been localized for the current system culture. Initializes a new instance of the class using a specified error message and a reference to the inner exception that is the cause of this exception. The message that describes the exception. The caller of this constructor must make sure that this string has been localized for the current system culture. The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. When an action method returns either Task or Task<T> the provides information about the action. Initializes a new instance of the class. The task method information. The action name. The controller descriptor. Gets the name of the action method. The name of the action method. Invokes the asynchronous action method using the specified parameters, controller context callback and state. An object that contains the result of an asynchronous call. The controller context. The parameters of the action method. The optional callback method. An object that contains information to be used by the callback method. This parameter can be null. Gets the controller descriptor. The controller descriptor. Ends the asynchronous operation. The result of an asynchronous operation. An object that represents the status of an asynchronous operation. Executes the asynchronous action method The result of executing the asynchronous action method. The controller context. The parameters of the action method. Returns an array of custom attributes that are defined for this member, excluding named attributes. An array of custom attributes, or an empty array if no custom attributes exist. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. Returns an array of custom attributes that are defined for this member, identified by type. An array of custom attributes, or an empty array if no custom attributes exist. The type of the custom attributes. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. Returns an array of all custom attributes applied to this member. An array that contains all the custom attributes applied to this member, or an array with zero elements if no attributes are defined. true to search this member's inheritance chain to find the attributes; otherwise, false. Returns the parameters of the asynchronous action method. The parameters of the asynchronous action method. Returns the asynchronous action-method selectors. The asynchronous action-method selectors. Returns a value that indicates whether one or more instance of the specified custom attribute are defined for this member. A value that indicates whether one or more instance of the specified custom attribute are defined for this member. The type of the custom attribute. true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. Gets information for the asynchronous task. Information for the asynchronous task. Gets the unique ID for the task. The unique ID for the task. Represents support for calling child action methods and rendering the result inline in a parent view. Invokes the specified child action method and returns the result as an HTML string. The child action result as an HTML string. The HTML helper instance that this method extends. The name of the action method to invoke. The parameter is null. The parameter is null or empty. The required virtual path data cannot be found. Invokes the specified child action method with the specified parameters and returns the result as an HTML string. The child action result as an HTML string. The HTML helper instance that this method extends. The name of the action method to invoke. An object that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them. The parameter is null. The parameter is null or empty. The required virtual path data cannot be found. Invokes the specified child action method using the specified controller name and returns the result as an HTML string. The child action result as an HTML string. The HTML helper instance that this method extends. The name of the action method to invoke. The name of the controller that contains the action method. The parameter is null. The parameter is null or empty. The required virtual path data cannot be found. Invokes the specified child action method using the specified parameters and controller name and returns the result as an HTML string. The child action result as an HTML string. The HTML helper instance that this method extends. The name of the action method to invoke. The name of the controller that contains the action method. An object that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them. The parameter is null. The parameter is null or empty. The required virtual path data cannot be found. Invokes the specified child action method using the specified parameters and controller name and returns the result as an HTML string. The child action result as an HTML string. The HTML helper instance that this method extends. The name of the action method to invoke. The name of the controller that contains the action method. A dictionary that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them. The parameter is null. The parameter is null or empty. The required virtual path data cannot be found. Invokes the specified child action method using the specified parameters and returns the result as an HTML string. The child action result as an HTML string. The HTML helper instance that this method extends. The name of the action method to invoke. A dictionary that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them. The parameter is null. The parameter is null or empty. The required virtual path data cannot be found. Invokes the specified child action method and renders the result inline in the parent view. The HTML helper instance that this method extends. The name of the child action method to invoke. The parameter is null. The parameter is null or empty. The required virtual path data cannot be found. Invokes the specified child action method using the specified parameters and renders the result inline in the parent view. The HTML helper instance that this method extends. The name of the child action method to invoke. An object that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them. The parameter is null. The parameter is null or empty. The required virtual path data cannot be found. Invokes the specified child action method using the specified controller name and renders the result inline in the parent view. The HTML helper instance that this method extends. The name of the child action method to invoke. The name of the controller that contains the action method. The parameter is null. The parameter is null or empty. The required virtual path data cannot be found. Invokes the specified child action method using the specified parameters and controller name and renders the result inline in the parent view. The HTML helper instance that this method extends. The name of the child action method to invoke. The name of the controller that contains the action method. An object that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them. The parameter is null. The parameter is null or empty. The required virtual path data cannot be found. Invokes the specified child action method using the specified parameters and controller name and renders the result inline in the parent view. The HTML helper instance that this method extends. The name of the child action method to invoke. The name of the controller that contains the action method. A dictionary that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them. The parameter is null. The parameter is null or empty. The required virtual path data cannot be found. Invokes the specified child action method using the specified parameters and renders the result inline in the parent view. The HTML helper instance that this method extends. The name of the child action method to invoke. A dictionary that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them. The parameter is null. The parameter is null or empty. The required virtual path data cannot be found. Represents support for rendering object values as HTML. Returns HTML markup for each property in the object that is represented by a string expression. The HTML markup for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. Returns HTML markup for each property in the object that is represented by a string expression, using additional view data. The HTML markup for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. Returns HTML markup for each property in the object that is represented by the expression, using the specified template. The HTML markup for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. The name of the template that is used to render the object. Returns HTML markup for each property in the object that is represented by the expression, using the specified template and additional view data. The HTML markup for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. The name of the template that is used to render the object. An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. Returns HTML markup for each property in the object that is represented by the expression, using the specified template and an HTML field ID. The HTML markup for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. The name of the template that is used to render the object. A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name. Returns HTML markup for each property in the object that is represented by the expression, using the specified template, HTML field ID, and additional view data. The HTML markup for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. The name of the template that is used to render the object. A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name. An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. Returns HTML markup for each property in the object that is represented by the expression. The HTML markup for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. The type of the model. The type of the value. Returns a string that contains each property value in the object that is represented by the specified expression, using additional view data. The HTML markup for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. The type of the model. The type of the value. Returns a string that contains each property value in the object that is represented by the , using the specified template. The HTML markup for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. The name of the template that is used to render the object. The type of the model. The type of the value. Returns a string that contains each property value in the object that is represented by the specified expression, using the specified template and additional view data. The HTML markup for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. The name of the template that is used to render the object. An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. The type of the model. The type of the value. Returns HTML markup for each property in the object that is represented by the , using the specified template and an HTML field ID. The HTML markup for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. The name of the template that is used to render the object. A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name. The type of the model. The type of the value. Returns HTML markup for each property in the object that is represented by the specified expression, using the template, an HTML field ID, and additional view data. The HTML markup for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. The name of the template that is used to render the object. A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name. An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. The type of the model. The type of the value. Returns HTML markup for each property in the model. The HTML markup for each property in the model. The HTML helper instance that this method extends. Returns HTML markup for each property in the model, using additional view data. The HTML markup for each property in the model. The HTML helper instance that this method extends. An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. Returns HTML markup for each property in the model using the specified template. The HTML markup for each property in the model. The HTML helper instance that this method extends. The name of the template that is used to render the object. Returns HTML markup for each property in the model, using the specified template and additional view data. The HTML markup for each property in the model. The HTML helper instance that this method extends. The name of the template that is used to render the object. An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. Returns HTML markup for each property in the model using the specified template and HTML field ID. The HTML markup for each property in the model. The HTML helper instance that this method extends. The name of the template that is used to render the object. A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name. Returns HTML markup for each property in the model, using the specified template, an HTML field ID, and additional view data. The HTML markup for each property in the model. The HTML helper instance that this method extends. The name of the template that is used to render the object. A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name. An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. Provides a mechanism to get display names. Gets the display name. The display name. The HTML helper instance that this method extends. An expression that identifies the object that contains the display name. Gets the display name for the model. The display name for the model. The HTML helper instance that this method extends. An expression that identifies the object that contains the display name. The type of the model. The type of the value. Gets the display name for the model. The display name for the model. The HTML helper instance that this method extends. An expression that identifies the object that contains the display name. The type of the model. The type of the value. Gets the display name for the model. The display name for the model. The HTML helper instance that this method extends. Provides a way to render object values as HTML. Returns HTML markup for each property in the object that is represented by the specified expression. The HTML markup for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. Returns HTML markup for each property in the object that is represented by the specified expression. The HTML markup for each property. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. The type of the model. The type of the result. Represents support for the HTML input element in an application. Returns an HTML input element for each property in the object that is represented by the expression. An HTML input element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. Returns an HTML input element for each property in the object that is represented by the expression, using additional view data. An HTML input element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. Returns an HTML input element for each property in the object that is represented by the expression, using the specified template. An HTML input element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. The name of the template to use to render the object. Returns an HTML input element for each property in the object that is represented by the expression, using the specified template and additional view data. An HTML input element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. The name of the template to use to render the object. An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. Returns an HTML input element for each property in the object that is represented by the expression, using the specified template and HTML field name. An HTML input element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. The name of the template to use to render the object. A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name. Returns an HTML input element for each property in the object that is represented by the expression, using the specified template, HTML field name, and additional view data. An HTML input element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. The name of the template to use to render the object. A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name. An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. Returns an HTML input element for each property in the object that is represented by the expression. An HTML input element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. The type of the model. The type of the value. Returns an HTML input element for each property in the object that is represented by the expression, using additional view data. An HTML input element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. The type of the model. The type of the value. Returns an HTML input element for each property in the object that is represented by the expression, using the specified template. An HTML input element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. The name of the template to use to render the object. The type of the model. The type of the value. Returns an HTML input element for each property in the object that is represented by the expression, using the specified template and additional view data. An HTML input element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. The name of the template to use to render the object. An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. The type of the model. The type of the value. Returns an HTML input element for each property in the object that is represented by the expression, using the specified template and HTML field name. An HTML input element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. The name of the template to use to render the object. A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name. The type of the model. The type of the value. Returns an HTML input element for each property in the object that is represented by the expression, using the specified template, HTML field name, and additional view data. An HTML input element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. The name of the template to use to render the object. A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name. An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. The type of the model. The type of the value. Returns an HTML input element for each property in the model. An HTML input element for each property in the model. The HTML helper instance that this method extends. Returns an HTML input element for each property in the model, using additional view data. An HTML input element for each property in the model. The HTML helper instance that this method extends. An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. Returns an HTML input element for each property in the model, using the specified template. An HTML input element for each property in the model and in the specified template. The HTML helper instance that this method extends. The name of the template to use to render the object. Returns an HTML input element for each property in the model, using the specified template and additional view data. An HTML input element for each property in the model. The HTML helper instance that this method extends. The name of the template to use to render the object. An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. Returns an HTML input element for each property in the model, using the specified template name and HTML field name. An HTML input element for each property in the model and in the named template. The HTML helper instance that this method extends. The name of the template to use to render the object. A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name. Returns an HTML input element for each property in the model, using the template name, HTML field name, and additional view data. An HTML input element for each property in the model. The HTML helper instance that this method extends. The name of the template to use to render the object. A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name. An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. Represents support for HTML in an application. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. An opening <form> tag. The HTML helper instance that this method extends. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. An opening <form> tag. The HTML helper instance that this method extends. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. An opening <form> tag. The HTML helper instance that this method extends. The name of the action method. The name of the controller. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. An opening <form> tag. The HTML helper instance that this method extends. The name of the action method. The name of the controller. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. An opening <form> tag. The HTML helper instance that this method extends. The name of the action method. The name of the controller. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. The HTTP method for processing the form, either GET or POST. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. An opening <form> tag. The HTML helper instance that this method extends. The name of the action method. The name of the controller. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. The HTTP method for processing the form, either GET or POST. An object that contains the HTML attributes to set for the element. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. An opening <form> tag. The HTML helper instance that this method extends. The name of the action method. The name of the controller. The HTTP method for processing the form, either GET or POST. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. An opening <form> tag. The HTML helper instance that this method extends. The name of the action method. The name of the controller. The HTTP method for processing the form, either GET or POST. An object that contains the HTML attributes to set for the element. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. An opening <form> tag. The HTML helper instance that this method extends. The name of the action method. The name of the controller. The HTTP method for processing the form, either GET or POST. An object that contains the HTML attributes to set for the element. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. An opening <form> tag. The HTML helper instance that this method extends. The name of the action method. The name of the controller. An object that contains the parameters for a route. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. An opening <form> tag. The HTML helper instance that this method extends. The name of the action method. The name of the controller. An object that contains the parameters for a route. The HTTP method for processing the form, either GET or POST. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. An opening <form> tag. The HTML helper instance that this method extends. The name of the action method. The name of the controller. An object that contains the parameters for a route. The HTTP method for processing the form, either GET or POST. An object that contains the HTML attributes to set for the element. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. An opening <form> tag. The HTML helper instance that this method extends. An object that contains the parameters for a route. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. An opening <form> tag. The HTML helper instance that this method extends. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. An opening <form> tag. The HTML helper instance that this method extends. The name of the route to use to obtain the form-post URL. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. An opening <form> tag. The HTML helper instance that this method extends. The name of the route to use to obtain the form-post URL. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. An opening <form> tag. The HTML helper instance that this method extends. The name of the route to use to obtain the form-post URL. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. The HTTP method for processing the form, either GET or POST. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. An opening <form> tag. The HTML helper instance that this method extends. The name of the route to use to obtain the form-post URL. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. The HTTP method for processing the form, either GET or POST. An object that contains the HTML attributes to set for the element. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. An opening <form> tag. The HTML helper instance that this method extends. The name of the route to use to obtain the form-post URL. The HTTP method for processing the form, either GET or POST. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. An opening <form> tag. The HTML helper instance that this method extends. The name of the route to use to obtain the form-post URL. The HTTP method for processing the form, either GET or POST. An object that contains the HTML attributes to set for the element. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. An opening <form> tag. The HTML helper instance that this method extends. The name of the route to use to obtain the form-post URL. The HTTP method for processing the form, either GET or POST. An object that contains the HTML attributes to set for the element. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. An opening <form> tag. The HTML helper instance that this method extends. The name of the route to use to obtain the form-post URL. An object that contains the parameters for a route Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. An opening <form> tag. The HTML helper instance that this method extends. The name of the route to use to obtain the form-post URL. An object that contains the parameters for a route The HTTP method for processing the form, either GET or POST. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. An opening <form> tag. The HTML helper instance that this method extends. The name of the route to use to obtain the form-post URL. An object that contains the parameters for a route The HTTP method for processing the form, either GET or POST. An object that contains the HTML attributes to set for the element. Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. An opening <form> tag. The HTML helper instance that this method extends. An object that contains the parameters for a route Renders the closing </form> tag to the response. The HTML helper instance that this method extends. Represents support for HTML input controls in an application. Returns a check box input element by using the specified HTML helper and the name of the form field. An input element whose type attribute is set to "checkbox". The HTML helper instance that this method extends. The name of the form field. Returns a check box input element by using the specified HTML helper, the name of the form field, and a value to indicate whether the check box is selected. An input element whose type attribute is set to "checkbox". The HTML helper instance that this method extends. The name of the form field. true to select the check box; otherwise, false. Returns a check box input element by using the specified HTML helper, the name of the form field, a value to indicate whether the check box is selected, and the HTML attributes. An input element whose type attribute is set to "checkbox". The HTML helper instance that this method extends. The name of the form field. true to select the check box; otherwise, false. An object that contains the HTML attributes to set for the element. Returns a check box input element by using the specified HTML helper, the name of the form field, a value that indicates whether the check box is selected, and the HTML attributes. An input element whose type attribute is set to "checkbox". The HTML helper instance that this method extends. The name of the form field. true to select the check box; otherwise, false. An object that contains the HTML attributes to set for the element. Returns a check box input element by using the specified HTML helper, the name of the form field, and the HTML attributes. An input element whose type attribute is set to "checkbox". The HTML helper instance that this method extends. The name of the form field. An object that contains the HTML attributes to set for the element. Returns a check box input element by using the specified HTML helper, the name of the form field, and the HTML attributes. An input element whose type attribute is set to "checkbox". The HTML helper instance that this method extends. The name of the form field. An object that contains the HTML attributes to set for the element. Returns a check box input element for each property in the object that is represented by the specified expression. An HTML input element whose type attribute is set to "checkbox" for each property in the object that is represented by the specified expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. The type of the model. The parameter is null. Returns a check box input element for each property in the object that is represented by the specified expression, using the specified HTML attributes. An HTML input element whose type attribute is set to "checkbox" for each property in the object that is represented by the specified expression, using the specified HTML attributes. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. A dictionary that contains the HTML attributes to set for the element. The type of the model. The parameter is null. Returns a check box input element for each property in the object that is represented by the specified expression, using the specified HTML attributes. An HTML input element whose type attribute is set to "checkbox" for each property in the object that is represented by the specified expression, using the specified HTML attributes. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. An object that contains the HTML attributes to set for the element. The type of the model. The parameter is null. Returns a hidden input element by using the specified HTML helper and the name of the form field. An input element whose type attribute is set to "hidden". The HTML helper instance that this method extends. The name of the form field and the key that is used to look up the value. Returns a hidden input element by using the specified HTML helper, the name of the form field, and the value. An input element whose type attribute is set to "hidden". The HTML helper instance that this method extends. The name of the form field and the key that is used to look up the value. The value of the hidden input element. The value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. If the element is not found in the or the , the value parameter is used. Returns a hidden input element by using the specified HTML helper, the name of the form field, the value, and the HTML attributes. An input element whose type attribute is set to "hidden". The HTML helper instance that this method extends. The name of the form field and the key that is used to look up the value. The value of the hidden input element. The value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. If the element is not found in the object or the object, the value parameter is used. An object that contains the HTML attributes to set for the element. Returns a hidden input element by using the specified HTML helper, the name of the form field, the value, and the HTML attributes. An input element whose type attribute is set to "hidden". The HTML helper instance that this method extends. The name of the form field and the key that is used to look up the value. The value of the hidden input element The value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. If the element is not found in the object or the object, the value parameter is used. An object that contains the HTML attributes to set for the element. Returns an HTML hidden input element for each property in the object that is represented by the specified expression. An input element whose type attribute is set to "hidden" for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. The type of the model. The type of the property. Returns an HTML hidden input element for each property in the object that is represented by the specified expression, using the specified HTML attributes. An input element whose type attribute is set to "hidden" for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. An object that contains the HTML attributes to set for the element. The type of the model. The type of the property. Returns an HTML hidden input element for each property in the object that is represented by the specified expression, using the specified HTML attributes. An input element whose type attribute is set to "hidden" for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. An object that contains the HTML attributes to set for the element. The type of the model. The type of the property. Returns a password input element by using the specified HTML helper and the name of the form field. An input element whose type attribute is set to "password". The HTML helper instance that this method extends. The name of the form field and the key that is used to look up the value. Returns a password input element by using the specified HTML helper, the name of the form field, and the value. An input element whose type attribute is set to "password". The HTML helper instance that this method extends. The name of the form field and the key that is used to look up the value. The value of the password input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. Returns a password input element by using the specified HTML helper, the name of the form field, the value, and the HTML attributes. An input element whose type attribute is set to "password". The HTML helper instance that this method extends. The name of the form field and the key that is used to look up the value. The value of the password input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. An object that contains the HTML attributes to set for the element. Returns a password input element by using the specified HTML helper, the name of the form field, the value, and the HTML attributes. An input element whose type attribute is set to "password". The HTML helper instance that this method extends. The name of the form field and the key that is used to look up the value. The value of the password input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. An object that contains the HTML attributes to set for the element. Returns a password input element for each property in the object that is represented by the specified expression. An HTML input element whose type attribute is set to "password" for each property in the object that is represented by the specified expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. The type of the model. The type of the value. The parameter is null. Returns a password input element for each property in the object that is represented by the specified expression, using the specified HTML attributes. An HTML input element whose type attribute is set to "password" for each property in the object that is represented by the specified expression, using the specified HTML attributes. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. A dictionary that contains the HTML attributes to set for the element. The type of the model. The type of the value. The parameter is null. Returns a password input element for each property in the object that is represented by the specified expression, using the specified HTML attributes. An HTML input element whose type attribute is set to "password" for each property in the object that is represented by the specified expression, using the specified HTML attributes. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. An object that contains the HTML attributes to set for the element. The type of the model. The type of the value. The parameter is null. Returns a radio button input element that is used to present mutually exclusive options. An input element whose type attribute is set to "radio". The HTML helper instance that this method extends. The name of the form field and the key that is used to look up the value. If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected. The parameter is null or empty. The parameter is null. Returns a radio button input element that is used to present mutually exclusive options. An input element whose type attribute is set to "radio". The HTML helper instance that this method extends. The name of the form field and the key that is used to look up the value. If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected. true to select the radio button; otherwise, false. The parameter is null or empty. The parameter is null. Returns a radio button input element that is used to present mutually exclusive options. An input element whose type attribute is set to "radio". The HTML helper instance that this method extends. The name of the form field and the key that is used to look up the value. If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected. true to select the radio button; otherwise, false. An object that contains the HTML attributes to set for the element. The parameter is null or empty. The parameter is null. Returns a radio button input element that is used to present mutually exclusive options. An input element whose type attribute is set to "radio". The HTML helper instance that this method extends. The name of the form field and the key that is used to look up the value. If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected. true to select the radio button; otherwise, false. An object that contains the HTML attributes to set for the element. The parameter is null or empty. The parameter is null. Returns a radio button input element that is used to present mutually exclusive options. An input element whose type attribute is set to "radio". The HTML helper instance that this method extends. The name of the form field and the key that is used to look up the value. If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected. An object that contains the HTML attributes to set for the element. The parameter is null or empty. The parameter is null. Returns a radio button input element that is used to present mutually exclusive options. An input element whose type attribute is set to "radio". The HTML helper instance that this method extends. The name of the form field and the key that is used to look up the value. If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected. An object that contains the HTML attributes to set for the element. The parameter is null or empty. The parameter is null. Returns a radio button input element for each property in the object that is represented by the specified expression. An HTML input element whose type attribute is set to "radio" for each property in the object that is represented by the specified expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected. The type of the model. The type of the value. The parameter is null. Returns a radio button input element for each property in the object that is represented by the specified expression, using the specified HTML attributes. An HTML input element whose type attribute is set to "radio" for each property in the object that is represented by the specified expression, using the specified HTML attributes. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected. A dictionary that contains the HTML attributes to set for the element. The type of the model. The type of the value. The parameter is null. Returns a radio button input element for each property in the object that is represented by the specified expression, using the specified HTML attributes. An HTML input element whose type attribute is set to "radio" for each property in the object that is represented by the specified expression, using the specified HTML attributes. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected. An object that contains the HTML attributes to set for the element. The type of the model. The type of the value. The parameter is null. Returns a text input element by using the specified HTML helper and the name of the form field. An input element whose type attribute is set to "text". The HTML helper instance that this method extends. The name of the form field and the key that is used to look up the value. Returns a text input element by using the specified HTML helper, the name of the form field, and the value. An input element whose type attribute is set to "text". The HTML helper instance that this method extends. The name of the form field and the key that is used to look up the value. The value of the text input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. Returns a text input element by using the specified HTML helper, the name of the form field, the value, and the HTML attributes. An input element whose type attribute is set to "text". The HTML helper instance that this method extends. The name of the form field and the key that is used to look up the value. The value of the text input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. An object that contains the HTML attributes to set for the element. Returns a text input element by using the specified HTML helper, the name of the form field, the value, and the HTML attributes. An input element whose type attribute is set to "text". The HTML helper instance that this method extends. The name of the form field and the key that is used to look up the value. The value of the text input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. An object that contains the HTML attributes to set for the element. Returns a text input element. An input element whose type attribute is set to "text". The HTML helper instance that this method extends. The name of the form field. The value of the text input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. A string that is used to format the input. Returns a text input element. An input element whose type attribute is set to "text". The HTML helper instance that this method extends. The name of the form field and the key that is used to look up the value. The value of the text input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. A string that is used to format the input. An object that contains the HTML attributes to set for the element. Returns a text input element. An input element whose type attribute is set to "text". The HTML helper instance that this method extends. The name of the form field and the key that is used to look up the value. The value of the text input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. A string that is used to format the input. An object that contains the HTML attributes to set for the element. Returns a text input element for each property in the object that is represented by the specified expression. An HTML input element whose type attribute is set to "text" for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. The type of the model. The type of the value. The parameter is null or empty. Returns a text input element for each property in the object that is represented by the specified expression, using the specified HTML attributes. An HTML input element type attribute is set to "text" for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. A dictionary that contains the HTML attributes to set for the element. The type of the model. The type of the value. The parameter is null or empty. Returns a text input element for each property in the object that is represented by the specified expression, using the specified HTML attributes. An HTML input element whose type attribute is set to "text" for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. An object that contains the HTML attributes to set for the element. The type of the model. The type of the value. The parameter is null or empty. Returns a text input element. An input element whose type attribute is set to "text". The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. A string that is used to format the input. The type of the model. The type of the value. Returns a text input element. An input element whose type attribute is set to "text". The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. A string that is used to format the input. An object that contains the HTML attributes to set for the element. The type of the model. The type of the value. Returns a text input element. An input element whose type attribute is set to "text". The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. A string that is used to format the input. An object that contains the HTML attributes to set for the element. The type of the model. The type of the value. Represents support for the HTML label element in an ASP.NET MVC view. Returns an HTML label element and the property name of the property that is represented by the specified expression. An HTML label element and the property name of the property that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the property to display. Returns an HTML label element and the property name of the property that is represented by the specified expression. Returns . The HTML helper instance that this method extends. An expression that identifies the property to display. An object that contains the HTML attributes to set for the element. Returns an HTML label element and the property name of the property that is represented by the specified expression. An HTML label element and the property name of the property that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the property to display. An object that contains the HTML attributes to set for the element. Returns an HTML label element and the property name of the property that is represented by the specified expression using the label text. An HTML label element and the property name of the property that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the property to display. The label text to display. Returns an HTML label element and the property name of the property that is represented by the specified expression. An HTML label element and the property name of the property that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the property to display. The label text. An object that contains the HTML attributes to set for the element. Returns an HTML label element and the property name of the property that is represented by the specified expression. An HTML label element and the property name of the property that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the property to display. The label text. An object that contains the HTML attributes to set for the element. Returns an HTML label element and the property name of the property that is represented by the specified expression. An HTML label element and the property name of the property that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the property to display. The type of the model. The type of the value. Returns an HTML label element and the property name of the property that is represented by the specified expression. An HTML label element and the property name of the property that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the property to display. An object that contains the HTML attributes to set for the element. The type of the model. Returns an HTML label element and the property name of the property that is represented by the specified expression. An HTML label element and the property name of the property that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the property to display. An object that contains the HTML attributes to set for the element. The type of the model. The value. Returns an HTML label element and the property name of the property that is represented by the specified expression using the label text. An HTML label element and the property name of the property that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the property to display. The label text to display. The type of the model. The type of the value. Returns an HTML label element and the property name of the property that is represented by the specified expression. An HTML label element and the property name of the property that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the property to display. An object that contains the HTML attributes to set for the element. The type of the model. Returns an HTML label element and the property name of the property that is represented by the specified expression. An HTML label element and the property name of the property that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the property to display. The label text. An object that contains the HTML attributes to set for the element. The type of the model. The Value. Returns an HTML label element and the property name of the property that is represented by the model. An HTML label element and the property name of the property that is represented by the model. The HTML helper instance that this method extends. Returns an HTML label element and the property name of the property that is represented by the specified expression. An HTML label element and the property name of the property that is represented by the expression. The HTML helper instance that this method extends. An object that contains the HTML attributes to set for the element. Returns an HTML label element and the property name of the property that is represented by the specified expression. An HTML label element and the property name of the property that is represented by the expression. The HTML helper instance that this method extends. An object that contains the HTML attributes to set for the element. Returns an HTML label element and the property name of the property that is represented by the specified expression using the label text. An HTML label element and the property name of the property that is represented by the expression. The HTML helper instance that this method extends. The label text to display. Returns an HTML label element and the property name of the property that is represented by the specified expression. An HTML label element and the property name of the property that is represented by the expression. The HTML helper instance that this method extends. The label Text. An object that contains the HTML attributes to set for the element. Returns an HTML label element and the property name of the property that is represented by the specified expression. An HTML label element and the property name of the property that is represented by the expression. The HTML helper instance that this method extends. The label text. An object that contains the HTML attributes to set for the element. Represents support for HTML links in an application. Returns an anchor element (a element) that contains the virtual path of the specified action. An anchor element (a element). The HTML helper instance that this method extends. The inner text of the anchor element. The name of the action. The parameter is null or empty. Returns an anchor element (a element) that contains the virtual path of the specified action. An anchor element (a element). The HTML helper instance that this method extends. The inner text of the anchor element. The name of the action. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. The parameter is null or empty. Returns an anchor element (a element) that contains the virtual path of the specified action. An anchor element (a element). The HTML helper instance that this method extends. The inner text of the anchor element. The name of the action. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. An object that contains the HTML attributes for the element. The attributes are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. The parameter is null or empty. Returns an anchor element (a element) that contains the virtual path of the specified action. An anchor element (a element). The HTML helper instance that this method extends. The inner text of the anchor element. The name of the action. The name of the controller. The parameter is null or empty. Returns an anchor element (a element) that contains the virtual path of the specified action. An anchor element (a element). The HTML helper instance that this method extends. The inner text of the anchor element. The name of the action. The name of the controller. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns an anchor element (a element) that contains the virtual path of the specified action. An anchor element (a element). The HTML helper instance that this method extends. The inner text of the anchor element. The name of the action. The name of the controller. The protocol for the URL, such as "http" or "https". The host name for the URL. The URL fragment name (the anchor name). An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns an anchor element (a element) that contains the virtual path of the specified action. An anchor element (a element). The HTML helper instance that this method extends. The inner text of the anchor element. The name of the action. The name of the controller. The protocol for the URL, such as "http" or "https". The host name for the URL. The URL fragment name (the anchor name). An object that contains the parameters for a route. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns an anchor element (a element) that contains the virtual path of the specified action. An anchor element (a element). The HTML helper instance that this method extends. The inner text of the anchor element. The name of the action. The name of the controller. An object that contains the parameters for a route. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns an anchor element (a element) that contains the virtual path of the specified action. An anchor element (a element). The HTML helper instance that this method extends. The inner text of the anchor element. The name of the action. An object that contains the parameters for a route. The parameter is null or empty. Returns an anchor element (a element) that contains the virtual path of the specified action. An anchor element (a element). The HTML helper instance that this method extends. The inner text of the anchor element. The name of the action. An object that contains the parameters for a route. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns an anchor element (a element) that contains the virtual path of the specified action. An anchor element (a element). The HTML helper instance that this method extends. The inner text of the anchor element. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. The parameter is null or empty. Returns an anchor element (a element) that contains the virtual path of the specified action. An anchor element (a element). The HTML helper instance that this method extends. The inner text of the anchor element. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns an anchor element (a element) that contains the virtual path of the specified action. An anchor element (a element). The HTML helper instance that this method extends. The inner text of the anchor element. The name of the route that is used to return a virtual path. The parameter is null or empty. Returns an anchor element (a element) that contains the virtual path of the specified action. An anchor element (a element). The HTML helper instance that this method extends. The inner text of the anchor element. The name of the route that is used to return a virtual path. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. The parameter is null or empty. Returns an anchor element (a element) that contains the virtual path of the specified action. An anchor element (a element). The HTML helper instance that this method extends. The inner text of the anchor element. The name of the route that is used to return a virtual path. An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns an anchor element (a element) that contains the virtual path of the specified action. An anchor element (a element). The HTML helper instance that this method extends. The inner text of the anchor element. The name of the route that is used to return a virtual path. The protocol for the URL, such as "http" or "https". The host name for the URL. The URL fragment name (the anchor name). An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns an anchor element (a element) that contains the virtual path of the specified action. An anchor element (a element). The HTML helper instance that this method extends. The inner text of the anchor element. The name of the route that is used to return a virtual path. The protocol for the URL, such as "http" or "https". The host name for the URL. The URL fragment name (the anchor name). An object that contains the parameters for a route. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns an anchor element (a element) that contains the virtual path of the specified action. An anchor element (a element). The HTML helper instance that this method extends. The inner text of the anchor element. The name of the route that is used to return a virtual path. An object that contains the parameters for a route. The parameter is null or empty. Returns an anchor element (a element) that contains the virtual path of the specified action. An anchor element (a element). The HTML helper instance that this method extends. The inner text of the anchor element. The name of the route that is used to return a virtual path. An object that contains the parameters for a route. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns an anchor element (a element) that contains the virtual path of the specified action. An anchor element (a element). The HTML helper instance that this method extends. The inner text of the anchor element. An object that contains the parameters for a route. The parameter is null or empty. Returns an anchor element (a element) that contains the virtual path of the specified action. An anchor element (a element). The HTML helper instance that this method extends. The inner text of the anchor element. An object that contains the parameters for a route. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Represents an HTML form element in an MVC view. Initializes a new instance of the class using the specified HTTP response object. The HTTP response object. The parameter is null. Initializes a new instance of the class using the specified view context. An object that encapsulates the information that is required in order to render a view. The parameter is null. Releases all resources that are used by the current instance of the class. Releases unmanaged and, optionally, managed resources used by the current instance of the class. true to release both managed and unmanaged resources; false to release only unmanaged resources. Ends the form and disposes of all form resources. Gets the HTML ID and name attributes of the string. Gets the ID of the string. The HTML ID attribute value for the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the ID. Gets the ID of the string The HTML ID attribute value for the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the ID. The type of the model. The type of the property. Gets the ID of the string. The HTML ID attribute value for the object that is represented by the expression. The HTML helper instance that this method extends. Gets the full HTML field name for the object that is represented by the expression. The full HTML field name for the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the name. Gets the full HTML field name for the object that is represented by the expression. The full HTML field name for the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the name. The type of the model. The type of the property. Gets the full HTML field name for the object that is represented by the expression. The full HTML field name for the object that is represented by the expression. The HTML helper instance that this method extends. Represents the functionality to render a partial view as an HTML-encoded string. Renders the specified partial view as an HTML-encoded string. The partial view that is rendered as an HTML-encoded string. The HTML helper instance that this method extends. The name of the partial view to render. Renders the specified partial view as an HTML-encoded string. The partial view that is rendered as an HTML-encoded string. The HTML helper instance that this method extends. The name of the partial view to render. The model for the partial view. Renders the specified partial view as an HTML-encoded string. The partial view that is rendered as an HTML-encoded string. The HTML helper instance that this method extends. The name of the partial view. The model for the partial view. The view data dictionary for the partial view. Renders the specified partial view as an HTML-encoded string. The partial view that is rendered as an HTML-encoded string. The HTML helper instance that this method extends. The name of the partial view to render. The view data dictionary for the partial view. Provides support for rendering a partial view. Renders the specified partial view by using the specified HTML helper. The HTML helper. The name of the partial view Renders the specified partial view, passing it a copy of the current object, but with the Model property set to the specified model. The HTML helper. The name of the partial view. The model. Renders the specified partial view, replacing the partial view's ViewData property with the specified object and setting the Model property of the view data to the specified model. The HTML helper. The name of the partial view. The model for the partial view. The view data for the partial view. Renders the specified partial view, replacing its ViewData property with the specified object. The HTML helper. The name of the partial view. The view data. Represents support for making selections in a list. Returns a single-selection select element using the specified HTML helper and the name of the form field. An HTML select element. The HTML helper instance that this method extends. The name of the form field to return. The parameter is null or empty. Returns a single-selection select element using the specified HTML helper, the name of the form field, and the specified list items. An HTML select element with an option subelement for each item in the list. The HTML helper instance that this method extends. The name of the form field to return. A collection of objects that are used to populate the drop-down list. The parameter is null or empty. Returns a single-selection select element using the specified HTML helper, the name of the form field, the specified list items, and the specified HTML attributes. An HTML select element with an option subelement for each item in the list. The HTML helper instance that this method extends. The name of the form field to return. A collection of objects that are used to populate the drop-down list. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns a single-selection select element using the specified HTML helper, the name of the form field, the specified list items, and the specified HTML attributes. An HTML select element with an option subelement for each item in the list. The HTML helper instance that this method extends. The name of the form field to return. A collection of objects that are used to populate the drop-down list. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns a single-selection select element using the specified HTML helper, the name of the form field, the specified list items, and an option label. An HTML select element with an option subelement for each item in the list. The HTML helper instance that this method extends. The name of the form field to return. A collection of objects that are used to populate the drop-down list. The text for a default empty item. This parameter can be null. The parameter is null or empty. Returns a single-selection select element using the specified HTML helper, the name of the form field, the specified list items, an option label, and the specified HTML attributes. An HTML select element with an option subelement for each item in the list. The HTML helper instance that this method extends. The name of the form field to return. A collection of objects that are used to populate the drop-down list. The text for a default empty item. This parameter can be null. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns a single-selection select element using the specified HTML helper, the name of the form field, the specified list items, an option label, and the specified HTML attributes. An HTML select element with an option subelement for each item in the list. The HTML helper instance that this method extends. The name of the form field to return. A collection of objects that are used to populate the drop-down list. The text for a default empty item. This parameter can be null. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns a single-selection select element using the specified HTML helper, the name of the form field, and an option label. An HTML select element with an option subelement for each item in the list. The HTML helper instance that this method extends. The name of the form field to return. The text for a default empty item. This parameter can be null. The parameter is null or empty. Returns an HTML select element for each property in the object that is represented by the specified expression using the specified list items. An HTML select element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. A collection of objects that are used to populate the drop-down list. The type of the model. The type of the value. The parameter is null. Returns an HTML select element for each property in the object that is represented by the specified expression using the specified list items and HTML attributes. An HTML select element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. A collection of objects that are used to populate the drop-down list. An object that contains the HTML attributes to set for the element. The type of the model. The type of the value. The parameter is null. Returns an HTML select element for each property in the object that is represented by the specified expression using the specified list items and HTML attributes. An HTML select element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. A collection of objects that are used to populate the drop-down list. An object that contains the HTML attributes to set for the element. The type of the model. The type of the value. The parameter is null. Returns an HTML select element for each property in the object that is represented by the specified expression using the specified list items and option label. An HTML select element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. A collection of objects that are used to populate the drop-down list. The text for a default empty item. This parameter can be null. The type of the model. The type of the value. The parameter is null. Returns an HTML select element for each property in the object that is represented by the specified expression using the specified list items, option label, and HTML attributes. An HTML select element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. A collection of objects that are used to populate the drop-down list. The text for a default empty item. This parameter can be null. An object that contains the HTML attributes to set for the element. The type of the model. The type of the value. The parameter is null. Returns an HTML select element for each property in the object that is represented by the specified expression using the specified list items, option label, and HTML attributes. An HTML select element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. A collection of objects that are used to populate the drop-down list. The text for a default empty item. This parameter can be null. An object that contains the HTML attributes to set for the element. The type of the model. The type of the value. The parameter is null. Returns a multi-select select element using the specified HTML helper and the name of the form field. An HTML select element. The HTML helper instance that this method extends. The name of the form field to return. The parameter is null or empty. Returns a multi-select select element using the specified HTML helper, the name of the form field, and the specified list items. An HTML select element with an option subelement for each item in the list. The HTML helper instance that this method extends. The name of the form field to return. A collection of objects that are used to populate the drop-down list. The parameter is null or empty. Returns a multi-select select element using the specified HTML helper, the name of the form field, the specified list items, and the specified HMTL attributes. An HTML select element with an option subelement for each item in the list.. The HTML helper instance that this method extends. The name of the form field to return. A collection of objects that are used to populate the drop-down list. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns a multi-select select element using the specified HTML helper, the name of the form field, and the specified list items. An HTML select element with an option subelement for each item in the list.. The HTML helper instance that this method extends. The name of the form field to return. A collection of objects that are used to populate the drop-down list. An object that contains the HTML attributes to set for the element. The parameter is null or empty. Returns an HTML select element for each property in the object that is represented by the specified expression and using the specified list items. An HTML select element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. A collection of objects that are used to populate the drop-down list. The type of the model. The type of the property. The parameter is null. Returns an HTML select element for each property in the object that is represented by the specified expression using the specified list items and HTML attributes. An HTML select element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. A collection of objects that are used to populate the drop-down list. An object that contains the HTML attributes to set for the element. The type of the model. The type of the property. The parameter is null. Returns an HTML select element for each property in the object that is represented by the specified expression using the specified list items and HTML attributes. An HTML select element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to display. A collection of objects that are used to populate the drop-down list. An object that contains the HTML attributes to set for the element. The type of the model. The type of the property. The parameter is null. Represents support for HTML textarea controls. Returns the specified textarea element by using the specified HTML helper and the name of the form field. The textarea element. The HTML helper instance that this method extends. The name of the form field to return. Returns the specified textarea element by using the specified HTML helper, the name of the form field, and the specified HTML attributes. The textarea element. The HTML helper instance that this method extends. The name of the form field to return. An object that contains the HTML attributes to set for the element. Returns the specified textarea element by using the specified HTML helper and HTML attributes. The textarea element. The HTML helper instance that this method extends. The name of the form field to return. An object that contains the HTML attributes to set for the element. Returns the specified textarea element by using the specified HTML helper, the name of the form field, and the text content. The textarea element. The HTML helper instance that this method extends. The name of the form field to return. The text content. Returns the specified textarea element by using the specified HTML helper, the name of the form field, the text content, and the specified HTML attributes. The textarea element. The HTML helper instance that this method extends. The name of the form field to return. The text content. An object that contains the HTML attributes to set for the element. Returns the specified textarea element by using the specified HTML helper, the name of the form field, the text content, the number of rows and columns, and the specified HTML attributes. The textarea element. The HTML helper instance that this method extends. The name of the form field to return. The text content. The number of rows. The number of columns. An object that contains the HTML attributes to set for the element. Returns the specified textarea element by using the specified HTML helper, the name of the form field, the text content, the number of rows and columns, and the specified HTML attributes. The textarea element. The HTML helper instance that this method extends. The name of the form field to return. The text content. The number of rows. The number of columns. An object that contains the HTML attributes to set for the element. Returns the specified textarea element by using the specified HTML helper, the name of the form field, the text content, and the specified HTML attributes. The textarea element. The HTML helper instance that this method extends. The name of the form field to return. The text content. An object that contains the HTML attributes to set for the element. Returns an HTML textarea element for each property in the object that is represented by the specified expression. An HTML textarea element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. The type of the model. The type of the property. The parameter is null. Returns an HTML textarea element for each property in the object that is represented by the specified expression using the specified HTML attributes. An HTML textarea element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. A dictionary that contains the HTML attributes to set for the element. The type of the model. The type of the property. The parameter is null. Returns an HTML textarea element for each property in the object that is represented by the specified expression using the specified HTML attributes and the number of rows and columns. An HTML textarea element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. The number of rows. The number of columns. A dictionary that contains the HTML attributes to set for the element. The type of the model. The type of the property. The parameter is null. Returns an HTML textarea element for each property in the object that is represented by the specified expression using the specified HTML attributes and the number of rows and columns. An HTML textarea element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. The number of rows. The number of columns. A dictionary that contains the HTML attributes to set for the element. The type of the model. The type of the property. The parameter is null. Returns an HTML textarea element for each property in the object that is represented by the specified expression using the specified HTML attributes. An HTML textarea element for each property in the object that is represented by the expression. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. A dictionary that contains the HTML attributes to set for the element. The type of the model. The type of the property. The parameter is null. Provides support for validating the input from an HTML form. Gets or sets the name of the resource file (class key) that contains localized string values. The name of the resource file (class key). Retrieves the validation metadata for the specified model and applies each rule to the data field. The HTML helper instance that this method extends. The name of the property or model object that is being validated. The parameter is null. Retrieves the validation metadata for the specified model and applies each rule to the data field. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. The type of the model. The type of the property. Displays a validation message if an error exists for the specified field in the object. If the property or object is valid, an empty string; otherwise, a span element that contains an error message. The HTML helper instance that this method extends. The name of the property or model object that is being validated. Displays a validation message if an error exists for the specified field in the object. If the property or object is valid, an empty string; otherwise, a span element that contains an error message. The HTML helper instance that this method extends. The name of the property or model object that is being validated. An object that contains the HTML attributes for the element. Displays a validation message if an error exists for the specified field in the object. If the property or object is valid, an empty string; otherwise, a span element that contains an error message. The HTML helper instance that this method extends. The name of the property or model object that is being validated. An object that contains the HTML attributes for the element. Displays a validation message if an error exists for the specified field in the object. If the property or object is valid, an empty string; otherwise, a span element that contains an error message. The HTML helper instance that this method extends. The name of the property or model object that is being validated. The message to display if the specified field contains an error. Displays a validation message if an error exists for the specified field in the object. If the property or object is valid, an empty string; otherwise, a span element that contains an error message. The HTML helper instance that this method extends. The name of the property or model object that is being validated. The message to display if the specified field contains an error. An object that contains the HTML attributes for the element. Displays a validation message if an error exists for the specified field in the object. If the property or object is valid, an empty string; otherwise, a span element that contains an error message. The HTML helper instance that this method extends. The name of the property or model object that is being validated. The message to display if the specified field contains an error. An object that contains the HTML attributes for the element. Returns the HTML markup for a validation-error message for each data field that is represented by the specified expression. If the property or object is valid, an empty string; otherwise, a span element that contains an error message. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. The type of the model. The type of the property. Returns the HTML markup for a validation-error message for each data field that is represented by the specified expression, using the specified message. If the property or object is valid, an empty string; otherwise, a span element that contains an error message. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. The message to display if the specified field contains an error. The type of the model. The type of the property. Returns the HTML markup for a validation-error message for each data field that is represented by the specified expression, using the specified message and HTML attributes. If the property or object is valid, an empty string; otherwise, a span element that contains an error message. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. The message to display if the specified field contains an error. An object that contains the HTML attributes for the element. The type of the model. The type of the property. Returns the HTML markup for a validation-error message for each data field that is represented by the specified expression, using the specified message and HTML attributes. If the property or object is valid, an empty string; otherwise, a span element that contains an error message. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to render. The message to display if the specified field contains an error. An object that contains the HTML attributes for the element. The type of the model. The type of the property. Returns an unordered list (ul element) of validation messages that are in the object. A string that contains an unordered list (ul element) of validation messages. The HTML helper instance that this method extends. Returns an unordered list (ul element) of validation messages that are in the object and optionally displays only model-level errors. A string that contains an unordered list (ul element) of validation messages. The HTML helper instance that this method extends. true to have the summary display model-level errors only, or false to have the summary display all errors. Returns an unordered list (ul element) of validation messages that are in the object and optionally displays only model-level errors. A string that contains an unordered list (ul element) of validation messages. The HTML helper instance that this method extends. true to have the summary display model-level errors only, or false to have the summary display all errors. The message to display with the validation summary. Returns an unordered list (ul element) of validation messages that are in the object and optionally displays only model-level errors. A string that contains an unordered list (ul element) of validation messages. The HTML helper instance that this method extends. true to have the summary display model-level errors only, or false to have the summary display all errors. The message to display with the validation summary. A dictionary that contains the HTML attributes for the element. Returns an unordered list (ul element) of validation messages that are in the object and optionally displays only model-level errors. A string that contains an unordered list (ul element) of validation messages. The HTML helper instance that this method extends. true to have the summary display model-level errors only, or false to have the summary display all errors. The message to display with the validation summary. An object that contains the HTML attributes for the element. Returns an unordered list (ul element) of validation messages that are in the object. A string that contains an unordered list (ul element) of validation messages. The HMTL helper instance that this method extends. The message to display if the specified field contains an error. Returns an unordered list (ul element) of validation messages that are in the object. A string that contains an unordered list (ul element) of validation messages. The HTML helper instance that this method extends. The message to display if the specified field contains an error. A dictionary that contains the HTML attributes for the element. Returns an unordered list (ul element) of validation messages in the object. A string that contains an unordered list (ul element) of validation messages. The HTML helper instance that this method extends. The message to display if the specified field contains an error. An object that contains the HTML attributes for the element. Provides a mechanism to create custom HTML markup compatible with the ASP.NET MVC model binders and templates. Provides a mechanism to create custom HTML markup compatible with the ASP.NET MVC model binders and templates. The HTML markup for the value. The HTML helper instance that this method extends. The name of the model. Provides a mechanism to create custom HTML markup compatible with the ASP.NET MVC model binders and templates. The HTML markup for the value. The HTML helper instance that this method extends. The name of the model. The format string. Provides a mechanism to create custom HTML markup compatible with the ASP.NET MVC model binders and templates. The HTML markup for the value. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to expose. The model. The property. Provides a mechanism to create custom HTML markup compatible with the ASP.NET MVC model binders and templates. The HTML markup for the value. The HTML helper instance that this method extends. An expression that identifies the object that contains the properties to expose. The format string. The model. The property. Provides a mechanism to create custom HTML markup compatible with the ASP.NET MVC model binders and templates. The HTML markup for the value. The HTML helper instance that this method extends. Provides a mechanism to create custom HTML markup compatible with the ASP.NET MVC model binders and templates. The HTML markup for the value. The HTML helper instance that this method extends. The format string. Compiles ASP.NET Razor views into classes. Initializes a new instance of the class. The inherits directive. The model directive. Extends the VBCodeParser class by adding support for the @model keyword. Initializes a new instance of the class. Sets a value that indicates whether the current code block and model should be inherited. true if the code block and model is inherited; otherwise, false. The Model Type Directive. Returns void. Configures the ASP.NET Razor parser and code generator for a specified file. Initializes a new instance of the class. The virtual path of the ASP.NET Razor file. The physical path of the ASP.NET Razor file. Returns the ASP.NET MVC language-specific Razor code generator. The ASP.NET MVC language-specific Razor code generator. The C# or Visual Basic code generator. Returns the ASP.NET MVC language-specific Razor code parser using the specified language parser. The ASP.NET MVC language-specific Razor code parser. The C# or Visual Basic code parser. ================================================ FILE: packages/Microsoft.AspNet.Razor.2.0.20710.0/lib/net40/System.Web.Razor.xml ================================================  System.Web.Razor This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. . This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. Enumerates the list of Visual Basic keywords. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. ================================================ FILE: packages/Microsoft.AspNet.WebApi.Client.4.0.20710.0/lib/net40/System.Net.Http.Formatting.xml ================================================  System.Net.Http.Formatting Extension methods that aid in making formatted requests using . Sends a POST request as an asynchronous operation, with a specified value serialized as JSON. A task object representing the asynchronous operation. The client used to make the request. The URI the request is sent to. The value to write into the entity body of the request. The type of object to serialize. Sends a POST request as an asynchronous operation, with a specified value serialized as JSON. Includes a cancellation token to cancel the request. A task object representing the asynchronous operation. The client used to make the request. The URI the request is sent to. The value to write into the entity body of the request. A cancellation token that can be used by other objects or threads to receive notice of cancellation. The type of object to serialize. Sends a POST request as an asynchronous operation, with a specified value serialized as XML. A task object representing the asynchronous operation. The client used to make the request. The URI the request is sent to. The value to write into the entity body of the request. The type of object to serialize. Sends a POST request as an asynchronous operation, with a specified value serialized as XML. Includes a cancellation token to cancel the request. A task object representing the asynchronous operation. The client used to make the request. The URI the request is sent to. The value to write into the entity body of the request. A cancellation token that can be used by other objects or threads to receive notice of cancellation. The type of object to serialize. Sends a POST request as an asynchronous operation, with a specified value serialized using the given formatter. A task object representing the asynchronous operation. The client used to make the request. The URI the request is sent to. The value to write into the entity body of the request. The formatter used to serialize the value. The type of object to serialize. Sends a POST request as an asynchronous operation, with a specified value serialized using the given formatter and media type. A task object representing the asynchronous operation. The client used to make the request. The URI the request is sent to. The value to write into the entity body of the request. The formatter used to serialize the value. The authoritative value of the Content-Type header. Can be null, in which case the default content type of the formatter will be used. A cancellation token that can be used by other objects or threads to receive notice of cancellation. The type of object to serialize. Sends a POST request as an asynchronous operation, with a specified value serialized using the given formatter and media type string. A task object representing the asynchronous operation. The client used to make the request. The URI the request is sent to. The value to write into the entity body of the request. The formatter used to serialize the value. The authoritative value of the Content-Type header. Can be null, in which case the default content type of the formatter will be used. The type of object to serialize. Sends a POST request as an asynchronous operation, with a specified value serialized using the given formatter and media type string. Includes a cancellation token to cancel the request. A task object representing the asynchronous operation. The client used to make the request. The URI the request is sent to. The value to write into the entity body of the request. The formatter used to serialize the value. The authoritative value of the Content-Type header. Can be null, in which case the default content type of the formatter will be used. A cancellation token that can be used by other objects or threads to receive notice of cancellation. The type of object to serialize. Sends a POST request as an asynchronous operation, with a specified value serialized using the given formatter. Includes a cancellation token to cancel the request. A task object representing the asynchronous operation. The client used to make the request. The URI the request is sent to. The value to write into the entity body of the request. The formatter used to serialize the value. A cancellation token that can be used by other objects or threads to receive notice of cancellation. The type of object to serialize. Sends a PUT request as an asynchronous operation, with a specified value serialized as JSON. A task object representing the asynchronous operation. The client used to make the request. The URI the request is sent to. The value to write into the entity body of the request. The type of object to serialize. Sends a PUT request as an asynchronous operation, with a specified value serialized as JSON. Includes a cancellation token to cancel the request. A task object representing the asynchronous operation. The client used to make the request. The URI the request is sent to. The value to write into the entity body of the request. A cancellation token that can be used by other objects or threads to receive notice of cancellation. The type of object to serialize. Sends a PUT request as an asynchronous operation, with a specified value serialized as XML. A task object representing the asynchronous operation. The client used to make the request. The URI the request is sent to. The value to write into the entity body of the request. The type of object to serialize. Sends a PUT request as an asynchronous operation, with a specified value serialized as XML. Includes a cancellation token to cancel the request. A task object representing the asynchronous operation. The client used to make the request. The URI the request is sent to. The value to write into the entity body of the request. A cancellation token that can be used by other objects or threads to receive notice of cancellation. The type of object to serialize. Sends a PUT request as an asynchronous operation, with a specified value serialized using the given formatter. A task object representing the asynchronous operation. The client used to make the request. The URI the request is sent to. The value to write into the entity body of the request. The formatter used to serialize the value. The type of object to serialize. Sends a PUT request as an asynchronous operation, with a specified value serialized using the given formatter and media type. Includes a cancellation token to cancel the request. A task object representing the asynchronous operation. The client used to make the request. The URI the request is sent to. The value to write into the entity body of the request. The formatter used to serialize the value. The authoritative value of the Content-Type header. Can be null, in which case the default content type of the formatter will be used. A cancellation token that can be used by other objects or threads to receive notice of cancellation. The type of object to serialize. Sends a PUT request as an asynchronous operation, with a specified value serialized using the given formatter and media type string. A task object representing the asynchronous operation. The client used to make the request. The URI the request is sent to. The value to write into the entity body of the request. The formatter used to serialize the value. The authoritative value of the Content-Type header. Can be null, in which case the default content type of the formatter will be used. The type of object to serialize. Sends a PUT request as an asynchronous operation, with a specified value serialized using the given formatter and media type string. Includes a cancellation token to cancel the request. A task object representing the asynchronous operation. The client used to make the request. The URI the request is sent to. The value to write into the entity body of the request. The formatter used to serialize the value. The authoritative value of the Content-Type header. Can be null, in which case the default content type of the formatter will be used. A cancellation token that can be used by other objects or threads to receive notice of cancellation. The type of object to serialize. Sends a PUT request as an asynchronous operation, with a specified value serialized using the given formatter and medai type string. Includes a cancellation token to cancel the request. A task object representing the asynchronous operation. The client used to make the request. The URI the request is sent to. The value to write into the entity body of the request. The formatter used to serialize the value. A cancellation token that can be used by other objects or threads to receive notice of cancellation. The type of object to serialize. Represents the factory for creating new instance of . Creates a new instance of the . A new instance of the . The list of HTTP handler that delegates the processing of HTTP response messages to another handler. Creates a new instance of the . A new instance of the . The inner handler which is responsible for processing the HTTP response messages. The list of HTTP handler that delegates the processing of HTTP response messages to another handler. Creates a new instance of the which should be pipelined. A new instance of the which should be pipelined. The inner handler which is responsible for processing the HTTP response messages. The list of HTTP handler that delegates the processing of HTTP response messages to another handler. Specifies extension methods to allow strongly typed objects to be read from HttpContent instances. Returns a Task that will yield an object of the specified type <typeparamref name="T" /> from the content instance. An object instance of the specified type. The HttpContent instance from which to read. The type of the object to read. Returns a Task that will yield an object of the specified type <typeparamref name="T" /> from the content instance. An object instance of the specified type. The HttpContent instance from which to read. The collection of MediaTyepFormatter instances to use. The type of the object to read. Returns a Task that will yield an object of the specified type <typeparamref name="T" /> from the content instance. An object instance of the specified type. The HttpContent instance from which to read. The collection of MediaTypeFormatter instances to use. The IFormatterLogger to log events to. The type of the object to read. Returns a Task that will yield an object of the specified type from the content instance. A Task that will yield an object instance of the specified type. The HttpContent instance from which to read. The type of the object to read. Returns a Task that will yield an object of the specified type from the content instance using one of the provided formatters to deserialize the content. An object instance of the specified type. The HttpContent instance from which to read. The type of the object to read. The collection of MediaTypeFormatter instances to use. Returns a Task that will yield an object of the specified type from the content instance using one of the provided formatters to deserialize the content. An object instance of the specified type. The HttpContent instance from which to read. The type of the object to read. The collection of MediaTypeFormatter instances to use. The IFormatterLogger to log events to. Extension methods to read HTML form URL-encoded datafrom instances. Determines whether the specified content is HTML form URL-encoded data. true if the specified content is HTML form URL-encoded data; otherwise, false. The content. Asynchronously reads HTML form URL-encoded from an instance and stores the results in a object. A task object representing the asynchronous operation. The content. Provides extension methods to read and entities from instances. Determines whether the specified content is HTTP request message content. true if the specified content is HTTP message content; otherwise, false. The content to check. Determines whether the specified content is HTTP response message content. true if the specified content is HTTP message content; otherwise, false. The content to check. Reads the as an . The parsed instance. The content to read. Reads the as an . The parsed instance. The content to read. The URI scheme to use for the request URI. Reads the as an . The parsed instance. The content to read. The URI scheme to use for the request URI. The size of the buffer. Reads the as an . The parsed instance. The content to read. The URI scheme to use for the request URI. The size of the buffer. The maximum length of the HTTP header. Reads the as an . The parsed instance. The content to read. Reads the as an . The parsed instance. The content to read. The size of the buffer. Reads the as an . The parsed instance. The content to read. The size of the buffer. The maximum length of the HTTP header. Extension methods to read MIME multipart entities from instances. Determines whether the specified content is MIME multipart content. true if the specified content is MIME multipart content; otherwise, false. The content. Determines whether the specified content is MIME multipart content with the specified subtype. true if the specified content is MIME multipart content with the specified subtype; otherwise, false. The content. The MIME multipart subtype to match. Reads all body parts within a MIME multipart message and produces a set of instances as a result. A <see cref="T:System.Threading.Tasks.Task`1" /> representing the tasks of getting the collection of instances where each instance represents a body part. An existing instance to use for the object's content. Reads all body parts within a MIME multipart message and produces a set of instances as a result using the streamProvider instance to determine where the contents of each body part is written. A representing the tasks of getting the collection of instances where each instance represents a body part. An existing instance to use for the object's content. A stream provider providing output streams for where to write body parts as they are parsed. The type of the MIME multipart. Reads all body parts within a MIME multipart message and produces a set of instances as a result using the streamProvider instance to determine where the contents of each body part is written and bufferSize as read buffer size. A representing the tasks of getting the collection of instances where each instance represents a body part. An existing instance to use for the object's content. A stream provider providing output streams for where to write body parts as they are parsed. Size of the buffer used to read the contents. The type of the MIME multipart. Derived class which can encapsulate an or an as an entity with media type "application/http". Initializes a new instance of the class encapsulating an . The instance to encapsulate. Initializes a new instance of the class encapsulating an . The instance to encapsulate. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the HTTP request message. Gets the HTTP response message. Asynchronously serializes the object's content to the given stream. A instance that is asynchronously serializing the object's content. The to which to write. The associated . Computes the length of the stream if possible. true if the length has been computed; otherwise false. The computed length of the stream. Provides extension methods for the class. Gets any cookie headers present in the request. A collection of instances. The request headers. Gets any cookie headers present in the request that contain a cookie state whose name that matches the specified value. A collection of instances. The request headers. The cookie state name to match. Provides extension methods for the class. Adds cookies to a response. Each Set-Cookie header is represented as one instance. A contains information about the domain, path, and other cookie information as well as one or more instances. Each instance contains a cookie name and whatever cookie state is associate with that name. The state is in the form of a which on the wire is encoded as HTML Form URL-encoded data. This representation allows for multiple related "cookies" to be carried within the same Cookie header while still providing separation between each cookie state. A sample Cookie header is shown below. In this example, there are two with names state1 and state2 respectively. Further, each cookie state contains two name/value pairs (name1/value1 and name2/value2) and (name3/value3 and name4/value4). <code> Set-Cookie: state1:name1=value1&amp;name2=value2; state2:name3=value3&amp;name4=value4; domain=domain1; path=path1; </code> The response headers The cookie values to add to the response. Represents a multipart file data. Initializes a new instance of the class. The headers of the multipart file data. The name of the local file for the multipart file data. Gets or sets the headers of the multipart file data. The headers of the multipart file data. Gets or sets the name of the local file for the multipart file data. The name of the local file for the multipart file data. Represents an suited for writing each MIME body parts of the MIME multipart message to a file using a . Initializes a new instance of the class. The root path where the content of MIME multipart body parts are written to. Initializes a new instance of the class. The root path where the content of MIME multipart body parts are written to. The number of bytes buffered for writes to the file. Gets or sets the number of bytes buffered for writes to the file. The number of bytes buffered for writes to the file. Gets or sets the multipart file data. The multipart file data. Gets the name of the local file which will be combined with the root path to create an absolute file name where the contents of the current MIME body part will be stored. A relative filename with no path component. The headers for the current MIME body part. Gets the stream instance where the message body part is written to. The instance where the message body part is written to. The content of HTTP. The header fields describing the body part. Gets or sets the root path where the content of MIME multipart body parts are written to. The root path where the content of MIME multipart body parts are written to. An suited for use with HTML file uploads for writing file content to a . The stream provider looks at the <b>Content-Disposition</b> header field and determines an output based on the presence of a <b>filename</b> parameter. If a <b>filename</b> parameter is present in the <b>Content-Disposition</b> header field then the body part is written to a , otherwise it is written to a . This makes it convenient to process MIME Multipart HTML Form data which is a combination of form data and file content. Initializes a new instance of the class. The root path where the content of MIME multipart body parts are written to. Initializes a new instance of the class. The root path where the content of MIME multipart body parts are written to. The number of bytes buffered for writes to the file. Reads the non-file contents as form data A task that represents the asynchronous operation. Gets a of form data passed as part of the multipart form data. The of form data. The instance where the message body part is written. The HTTP content that contains this body part. Header fields describing the body part. Represents a multipart memory stream provider. Initializes a new instance of the class. Returns the for the . The for the . A object. The HTTP content headers. Represents the provider for the multipart related multistream. Initializes a new instance of the class. Gets the related stream for the provider. The content headers. The parent content. The http content headers. Gets the root content of the . The root content of the . Represents a stream provider that examines the headers provided by the MIME multipart parser as part of the MIME multipart extension methods (see ) and decides what kind of stream to return for the body part to be written to. Initializes a new instance of the class. Gets or sets the contents for this . The contents for this . Executes the post processing operation for this . The asynchronous task for this operation. Gets the stream where to write the body part to. This method is called when a MIME multipart body part has been parsed. The instance where the message body part is written to. The content of the HTTP. The header fields describing the body part. Contains a value as well as an associated that will be used to serialize the value when writing this content. Initializes a new instance of the class. The type of object this instance will contain. The value of the object this instance will contain. The formatter to use when serializing the value. Initializes a new instance of the class. The type of object this instance will contain. The value of the object this instance will contain. The formatter to use when serializing the value. The authoritative value of the Content-Type header. Can be null, in which case the default content type of the formatter will be used. Initializes a new instance of the class. The type of object this instance will contain. The value of the object this instance will contain. The formatter to use when serializing the value. The authoritative value of the Content-Type header. Gets the media-type formatter associated with this content instance. The . Gets the type of object managed by this instance. The object type. Asynchronously serializes the object's content to the given stream. The task object representing the asynchronous operation. The stream to write to. The associated . Computes the length of the stream if possible. true if the length has been computed; otherwise, false. Receives the computed length of the stream. Gets or sets the value of the content. The content value. Generic form of . The type of object this class will contain. Initializes a new instance of the class. The value of the object this instance will contain. The formatter to use when serializing the value. Initializes a new instance of the <see cref="T:System.Net.Http.ObjectContent`1" /> class. The value of the object this instance will contain. The formatter to use when serializing the value. The authoritative value of the Content-Type header. Can be null, in which case the default content type of the formatter will be used. Initializes a new instance of the class. The value of the object this instance will contain. The formatter to use when serializing the value. The authoritative value of the Content-Type header. Enables scenarios where a data producer wants to write directly (either synchronously or asynchronously) using a stream. Initializes a new instance of the class. An action that is called when an output stream is available, allowing the action to write to it directly. Initializes a new instance of the class. An action that is called when an output stream is available, allowing the action to write to it directly. The media type. Initializes a new instance of the class. An action that is called when an output stream is available, allowing the action to write to it directly. The media type. Asynchronously serializes the push content into stream. The serialized push content. The stream where the push content will be serialized. The context. Determines whether the stream content has a valid length in bytes. true if length is a valid length; otherwise, false. The length in bytes of the stream content. Contains extension methods to allow strongly typed objects to be read from the query component of instances. Parses the query portion of the specified URI. A that contains the query parameters. The URI to parse. Reads HTML form URL encoded data provided in the URI query string as an object of a specified type. true if the query component of the URI can be read as the specified type; otherwise, false. The URI to read. The type of object to read. When this method returns, contains an object that is initialized from the query component of the URI. This parameter is treated as uninitialized. Reads HTML form URL encoded data provided in the URI query string as an object of a specified type. true if the query component of the URI can be read as the specified type; otherwise, false. The URI to read. When this method returns, contains an object that is initialized from the query component of the URI. This parameter is treated as uninitialized. The type of object to read. Reads HTML form URL encoded data provided in the query component as a object. true if the query component can be read as ; otherwise false. The instance from which to read. An object to be initialized with this instance or null if the conversion cannot be performed. Represents a helper class to allow a synchronous formatter on top of the asynchronous formatter infrastructure. Initializes a new instance of the class. Gets or sets the suggested size of buffer to use with streams in bytes. The suggested size of buffer to use with streams in bytes. Reads synchronously from the buffered stream. An object of the given . The type of the object to deserialize. The stream from which to read The , if available. Can be null. The to log events to. Reads asynchronously from the buffered stream. A task object representing the asynchronous operation. The type of the object to deserialize. The stream from which to read. The , if available. Can be null. The to log events to. Writes synchronously to the buffered stream. The type of the object to serialize. The object value to write. Can be null. The stream to which to write. The , if available. Can be null. Writes asynchronously to the buffered stream. A task object representing the asynchronous operation. The type of the object to serialize. The object value to write. It may be null. The stream to which to write. The , if available. Can be null. The transport context. Represents the result of content negotiation performed using <see cref="M:System.Net.Http.Formatting.IContentNegotiator.Negotiate(System.Type,System.Net.Http.HttpRequestMessage,System.Collections.Generic.IEnumerable{System.Net.Http.Formatting.MediaTypeFormatter})" /> Create the content negotiation result object. The formatter. The preferred media type. Can be null. The formatter chosen for serialization. The media type that is associated with the formatter chosen for serialization. Can be null. The default implementation of , which is used to select a for an or . Initializes a new instance of the class. Initializes a new instance of the class. true to exclude formatters that match only on the object type; otherwise, false. Determines how well each formatter matches an HTTP request. Returns a collection of objects that represent all of the matches. The type to be serialized. The request. The set of objects from which to choose. If true, exclude formatters that match only on the object type; otherwise, false. Returns a . Matches a set of Accept header fields against the media types that a formatter supports. Returns a object that indicates the quality of the match, or null if there is no match. A list of Accept header values, sorted in descending order of q factor. You can create this list by calling the method. The formatter to match against. Matches a request against the objects in a media-type formatter. Returns a object that indicates the quality of the match, or null if there is no match. The requrst. The media-type formatter. Match the content type of a request against the media types that a formatter supports. Returns a object that indicates the quality of the match, or null if there is no match. The request. The formatter to match against. Selects the first supported media type of a formatter. Returns a with set to , or null if there is no match. The type to match. The formatter to match against. Performs content negotiating by selecting the most appropriate out of the passed in for the given that can serialize an object of the given . The result of the negotiation containing the most appropriate instance, or null if there is no appropriate formatter. The type to be serialized. The request. The set of objects from which to choose. Determines the best character encoding for writing the response. Returns the that is the best match. The request. The selected media formatter. Selects the best match among the candidate matches found. Returns the object that represents the best match. The collection of matches. Sorts Accept header values in descending order of q factor. Returns the sorted list of MediaTypeWithQualityHeaderValue objects. A collection of MediaTypeWithQualityHeaderValue objects, representing the Accept header values. Sorts a list of Accept-Charset, Accept-Encoding, Accept-Language or related header values in descending order or q factor. Returns the sorted list of StringWithQualityHeaderValue objects. A collection of StringWithQualityHeaderValue objects, representing the header fields. Evaluates whether a match is better than the current match. Returns whichever object is a better match. The current match. The match to evaluate against the current match. Helper class to serialize <see cref="T:System.Collections.Generic.IEnumerable`1" /> types by delegating them through a concrete implementation."/&gt;. The interface implementing to proxy. Initialize a DelegatingEnumerable. This constructor is necessary for to work. Initialize a DelegatingEnumerable with an <see cref="T:System.Collections.Generic.IEnumerable`1" />. This is a helper class to proxy <see cref="T:System.Collections.Generic.IEnumerable`1" /> interfaces for . The <see cref="T:System.Collections.Generic.IEnumerable`1" /> instance to get the enumerator from. This method is not implemented but is required method for serialization to work. Do not use. The item to add. Unused. Get the enumerator of the associated <see cref="T:System.Collections.Generic.IEnumerable`1" />. The enumerator of the <see cref="T:System.Collections.Generic.IEnumerable`1" /> source. Get the enumerator of the associated <see cref="T:System.Collections.Generic.IEnumerable`1" />. The enumerator of the <see cref="T:System.Collections.Generic.IEnumerable`1" /> source. Represent the collection of form data. Initializes a new instance of class. The pairs. Initializes a new instance of class. The query. Initializes a new instance of class. The URI Gets the collection of form data. The collection of form data. The key. Gets an enumerable that iterates through the collection. The enumerable that iterates through the collection. Gets the values of the collection of form data. The values of the collection of form data. The key. Reads the collection of form data as a collection of name value. The collection of form data as a collection of name value. Gets an enumerable that iterates through the collection. The enumerable that iterates through the collection. class for handling HTML form URL-ended data, also known as application/x-www-form-urlencoded. Initializes a new instance of the class. Queries whether the can deserializean object of the specified type. true if the can deserialize the type; otherwise, false. The type to deserialize. Queries whether the can serializean object of the specified type. true if the can serialize the type; otherwise, false. The type to serialize. Gets the default media type for HTML form-URL-encoded data, which is application/x-www-form-urlencoded. The default media type for HTML form-URL-encoded data Gets or sets the maximum depth allowed by this formatter. The maximum depth. Gets or sets the size of the buffer when reading the incoming stream. The buffer size. Asynchronously deserializes an object of the specified type. A whose result will be the object instance that has been read. The type of object to deserialize. The to read. The for the content being read. The to log events to. Performs content negotiation. This is the process of selecting a response writer (formatter) in compliance with header values in the request. Performs content negotiating by selecting the most appropriate out of the passed in formatters for the given request that can serialize an object of the given type. The result of the negotiation containing the most appropriate instance, or null if there is no appropriate formatter. The type to be serialized. Request message, which contains the header values used to perform negotiation. The set of objects from which to choose. Specifies a callback interface that a formatter can use to log errors while reading. Logs an error. The path to the member for which the error is being logged. The error message. Logs an error. The path to the member for which the error is being logged. The error message to be logged. Defines method that determines whether a given member is required on deserialization. Determines whether a given member is required on deserialization. true if should be treated as a required member; otherwise false. The to be deserialized. Represents the class to handle JSON. Initializes a new instance of the class. Determines whether this can read objects of the specified . true if objects of this can be read, otherwise false. The type of object that will be read. Determines whether this can write objects of the specified . true if objects of this can be written, otherwise false. The type of object that will be written. Creates a JsonSerializerSettings instance with the default settings used by the . A newly created JsonSerializerSettings instance with the default settings used by the . Gets the default media type for JSON, namely "application/json". The for JSON. Gets or sets a value indicating whether to indent elements when writing data. true if to indent elements when writing data; otherwise, false. Gets or sets the maximum depth allowed by this formatter. The maximum depth allowed by this formatter. Reads an object of the specified from the specified . This method is called during deserialization. Returns . The type of object to read. Thestream from which to read The content being written. The to log events to. Gets or sets the JsonSerializerSettings used to configure the JsonSerializer. The JsonSerializerSettings used to configure the JsonSerializer. Gets or sets a value indicating whether to use by default. true if to by default; otherwise, false. Writes an object of the specified to the specified . This method is called during serialization. A that will write the value to the stream. The type of object to write. The object to write. The to which to write. The where the content is being written. The . Base class to handle serializing and deserializing strongly-typed objects using . Initializes a new instance of the class. Queries whether this can deserializean object of the specified type. true if the can deserialize the type; otherwise, false. The type to deserialize. Queries whether this can serializean object of the specified type. true if the can serialize the type; otherwise, false. The type to serialize. Gets the default value for the specified type. The default value. The type for which to get the default value. Returns a specialized instance of the that can format a response for the given parameters. Returns . The type to format. The request. The media type. Gets or sets the maximum number of keys stored in a T: . The maximum number of keys. Gets the mutable collection of objects that match HTTP requests to media types. The collection. Asynchronously deserializes an object of the specified type. A whose result will be an object of the given type. The type of the object to deserialize. The to read. The , if available. It may be null. The to log events to. Derived types need to support reading. Gets or sets the instance used to determine required members. The instance. Determines the best character encoding for reading or writing an HTTP entity body, given a set of content headers. The encoding that is the best match. The content headers. Sets the default headers for content that will be formatted using this formatter. This method is called from the constructor. This implementation sets the Content-Type header to the value of mediaType if it is not null. If it is null it sets the Content-Type to the default media type of this formatter. If the Content-Type does not specify a charset it will set it using this formatters configured . The type of the object being serialized. See . The content headers that should be configured. The authoritative media type. Can be null. Gets the mutable collection of character encodings supported bythis . The collection of objects. Gets the mutable collection of media types supported bythis . The collection of objects. Asynchronously writes an object of the specified type. A that will perform the write. The type of the object to write. The object value to write. It may be null. The to which to write. The if available. It may be null. The if available. It may be null. Derived types need to support writing. Represents a collection class that contains instances. Initializes a new instance of the class with default values. Initializes a new instance of the class with the given . A collection of instances to place in the collection. Searches a collection for a formatter that can read the .NET in the given . The that can read the type, or null if no formatter found. The .NET type to read. The media type to match on. Searches a collection for a formatter that can write the .NET in the given . The that can write the type, or null if no formatter found. The .NET type to write. The media type to match on. Gets the to use for application/x-www-form-urlencoded data. The to use for application/x-www-form-urlencoded data. Determines whether the is one of those loosely defined types that should be excluded from validation. true if the type should be excluded; otherwise, false. The .NET to validate. Gets the to use for JSON. The to use for JSON. Gets the to use for XML. The to use for XML. Updates the given set of formatter of elements so that it associates the mediaType with s containing a specific query parameter and value. The to receive the new item. The name of the query parameter. The value assigned to that query parameter. The to associate with a containing a query string matching queryStringParameterName and queryStringParameterValue. Updates the given set of formatter of elements so that it associates the mediaType with s containing a specific query parameter and value. The to receive the new item. The name of the query parameter. The value assigned to that query parameter. The media type to associate with a containing a query string matching queryStringParameterName and queryStringParameterValue. Updates the given set of formatter of elements so that it associates the mediaType with a specific HTTP request header field with a specific value. The to receive the new item. Name of the header to match. The header value to match. The to use when matching headerValue. if set to true then headerValue is considered a match if it matches a substring of the actual header value. The to associate with a entry with a name matching headerName and a value matching headerValue. Updates the given set of formatter of elements so that it associates the mediaType with a specific HTTP request header field with a specific value. The to receive the new item. Name of the header to match. The header value to match. The to use when matching headerValue. if set to true then headerValue is considered a match if it matches a substring of the actual header value. The media type to associate with a entry with a name matching headerName and a value matching headerValue. This class describes how well a particular matches a request. Initializes a new instance of the class. The matching formatter. The media type. Can be null in which case the media type application/octet-stream is used. The quality of the match. Can be null in which case it is considered a full match with a value of 1.0 The kind of match. Gets the media type formatter. Gets the matched media type. Gets the quality of the match Gets the kind of match that occurred. Contains information about the degree to which a matches the explicit or implicit preferences found in an incoming request. No match was found Matched on a type, meaning that the formatter is able to serialize the type. Matched on an explicit literal accept header, such as “application/json”. Matched on an explicit subtype range in an Accept header, such as “application/*”. Matched on an explicit “*/*” range in the Accept header. Matched on after having applied the various s. Matched on the media type of the entity body in the HTTP request message. An abstract base class used to create an association between or instances that have certain characteristics and a specific . Initializes a new instance of a with the given mediaType value. The that is associated with or instances that have the given characteristics of the . Initializes a new instance of a with the given mediaType value. The that is associated with or instances that have the given characteristics of the . Gets the that is associated with or instances that have the given characteristics of the . Returns the quality of the match of the associated with request. The quality of the match. It must be between 0.0 and 1.0. A value of 0.0 signifies no match. A value of 1.0 signifies a complete match. The to evaluate for the characteristics associated with the of the . Class that provides s from query strings. Initializes a new instance of the class. The name of the query string parameter to match, if present. The value of the query string parameter specified by queryStringParameterName. The to use if the query parameter specified by queryStringParameterName is present and assigned the value specified by queryStringParameterValue. Initializes a new instance of the class. The name of the query string parameter to match, if present. The value of the query string parameter specified by queryStringParameterName. The media type to use if the query parameter specified by queryStringParameterName is present and assigned the value specified by queryStringParameterValue. Gets the query string parameter name. Gets the query string parameter value. Returns a value indicating whether the current instance can return a from request. If this instance can produce a from request it returns 1.0 otherwise 0.0. The to check. This class provides a mapping from an arbitrary HTTP request header field to a used to select instances for handling the entity body of an or . <remarks>This class only checks header fields associated with for a match. It does not check header fields associated with or instances.</remarks> Initializes a new instance of the class. Name of the header to match. The header value to match. The to use when matching headerValue. if set to true then headerValue is considered a match if it matches a substring of the actual header value. The to use if headerName and headerValue is considered a match. Initializes a new instance of the class. Name of the header to match. The header value to match. The value comparison to use when matching headerValue. if set to true then headerValue is considered a match if it matches a substring of the actual header value. The media type to use if headerName and headerValue is considered a match. Gets the name of the header to match. Gets the header value to match. Gets the to use when matching . Gets a value indicating whether is a matched as a substring of the actual header value. this instance is value substring. truefalse Returns a value indicating whether the current instance can return a from request. The quality of the match. It must be between 0.0 and 1.0. A value of 0.0 signifies no match. A value of 1.0 signifies a complete match. The to check. A that maps the X-Requested-With http header field set by AJAX XmlHttpRequest (XHR) to the media type application/json if no explicit Accept header fields are present in the request. Initializes a new instance of class Returns a value indicating whether the current instance can return a from request. The quality of the match. A value of 0.0 signifies no match. A value of 1.0 signifies a complete match and that the request was made using XmlHttpRequest without an Accept header. The to check. class to handle Xml. Initializes a new instance of the class. Queries whether the can deserializean object of the specified type. true if the can deserialize the type; otherwise, false. The type to deserialize. Queries whether the can serializean object of the specified type. true if the can serialize the type; otherwise, false. The type to serialize. Gets the default media type for the XML formatter. The default media type, which is “application/xml”. Gets or sets a value indicating whether to indent elements when writing data. true to indent elements; otherwise, false. Gets and sets the maximum nested node depth. The maximum nested node depth. Called during deserialization to read an object of the specified type from the specified readStream. A whose result will be the object instance that has been read. The type of object to read. The from which to read. The for the content being read. The to log events to. Unregisters the serializer currently associated with the given type. true if a serializer was previously registered for the type; otherwise, false. The type of object whose serializer should be removed. Registers an to read or write objects of a specified type. The instance. The type of object that will be serialized or deserialized with. Registers an to read or write objects of a specified type. The type of object that will be serialized or deserialized with. The instance. Registers an to read or write objects of a specified type. The type of object that will be serialized or deserialized with. The instance. Registers an to read or write objects of a specified type. The instance. The type of object that will be serialized or deserialized with. Gets or sets a value indicating whether the XML formatter uses the as the default serializer, instead of using the . If true, the formatter uses the by default; otherwise, it uses the by default. Called during serialization to write an object of the specified type to the specified writeStream. A that will write the value to the stream. The type of object to write. The object to write. The to which to write. The for the content being written. The . Represents the event arguments for the HTTP progress. Initializes a new instance of the class. The percentage of the progress. The user token. The number of bytes transferred. The total number of bytes transferred. Gets the number of bytes transferred in the HTTP progress. The number of bytes transferred in the HTTP progress. Gets the total number of bytes transferred by the HTTP progress. The total number of bytes transferred by the HTTP progress. Generates progress notification for both request entities being uploaded and response entities being downloaded. Initializes a new instance of the class. Initializes a new instance of the class. The inner message handler. Occurs when event entities are being downloaded. Occurs when event entities are being uploaded. Raises the event that handles the request of the progress. The request. The event handler for the request. Raises the event that handles the response of the progress. The request. The event handler for the request. Sends the specified progress message to an HTTP server for delivery. The sent progress message. The request. The cancellation token. Provides value for the cookie header. Initializes a new instance of the class. Initializes a new instance of the class. The value of the name. The values. Initializes a new instance of the class. The value of the name. The value. Creates a shallow copy of the cookie value. A shallow copy of the cookie value. Gets a collection of cookies sent by the client. A collection object representing the client’s cookie variables. Gets or sets the domain to associate the cookie with. The name of the domain to associate the cookie with. Gets or sets the expiration date and time for the cookie. The time of day (on the client) at which the cookie expires. Gets or sets a value that specifies whether a cookie is accessible by client-side script. true if the cookie has the HttpOnly attribute and cannot be accessed through a client-side script; otherwise, false. Gets a shortcut to the cookie property. The cookie value. Gets or sets the maximum age permitted for a resource. The maximum age permitted for a resource. Gets or sets the virtual path to transmit with the current cookie. The virtual path to transmit with the cookie. Gets or sets a value indicating whether to transmit the cookie using Secure Sockets Layer (SSL)—that is, over HTTPS only. true to transmit the cookie over an SSL connection (HTTPS); otherwise, false. Returns a string that represents the current object. A string that represents the current object. Indicates a value whether the string representation will be converted. true if the string representation will be converted; otherwise, false. The input value. The parsed value to convert. Contains cookie name and its associated cookie state. Initializes a new instance of the class. The name of the cookie. Initializes a new instance of the class. The name of the cookie. The collection of name-value pair for the cookie. Initializes a new instance of the class. The name of the cookie. The value of the cookie. Returns a new object that is a copy of the current instance. A new object that is a copy of the current instance. Gets or sets the cookie value with the specified cookie name, if the cookie data is structured. The cookie value with the specified cookie name. Gets or sets the name of the cookie. The name of the cookie. Returns the string representation the current object. The string representation the current object. Gets or sets the cookie value, if cookie data is a simple string value. The value of the cookie. Gets or sets the collection of name-value pair, if the cookie data is structured. The collection of name-value pair for the cookie. ================================================ FILE: packages/Microsoft.AspNet.WebApi.Core.4.0.20710.0/content/web.config.transform ================================================  ================================================ FILE: packages/Microsoft.AspNet.WebApi.Core.4.0.20710.0/lib/net40/System.Web.Http.xml ================================================  System.Web.Http Creates an that represents an exception. The request must be associated with an instance.An whose content is a serialized representation of an instance. The HTTP request. The status code of the response. The exception. Creates an that represents an error message. The request must be associated with an instance.An whose content is a serialized representation of an instance. The HTTP request. The status code of the response. The error message. Creates an that represents an exception with an error message. The request must be associated with an instance.An whose content is a serialized representation of an instance. The HTTP request. The status code of the response. The error message. The exception. Creates an that represents an error. The request must be associated with an instance.An whose content is a serialized representation of an instance. The HTTP request. The status code of the response. The HTTP error. Creates an that represents an error in the model state. The request must be associated with an instance.An whose content is a serialized representation of an instance. The HTTP request. The status code of the response. The model state. Creates an wired up to the associated . An initialized wired up to the associated . The HTTP request message which led to this response message. The HTTP response status code. The content of the HTTP response message. The type of the HTTP response message. Creates an wired up to the associated . An initialized wired up to the associated . The HTTP request message which led to this response message. The HTTP response status code. The content of the HTTP response message. The media type formatter. The type of the HTTP response message. Creates an wired up to the associated . An initialized wired up to the associated . The HTTP request message which led to this response message. The HTTP response status code. The content of the HTTP response message. The media type formatter. The media type header value. The type of the HTTP response message. Creates an wired up to the associated . An initialized wired up to the associated . The HTTP request message which led to this response message. The HTTP response status code. The content of the HTTP response message. The media type formatter. The media type. The type of the HTTP response message. Creates an wired up to the associated . An initialized wired up to the associated . The HTTP request message which led to this response message. The HTTP response status code. The content of the HTTP response message. The media type header value. The type of the HTTP response message. Creates an wired up to the associated . An initialized wired up to the associated . The HTTP request message which led to this response message. The HTTP response status code. The content of the HTTP response message. The media type. The type of the HTTP response message. Creates an wired up to the associated . An initialized wired up to the associated . The HTTP request message which led to this response message. The HTTP response status code. The content of the HTTP response message. The HTTP configuration which contains the dependency resolver used to resolve services. The type of the HTTP response message. Disposes of all tracked resources associated with the which were added via the method. The HTTP request. Gets the current X.509 certificate from the given HTTP request. The current , or null if a certificate is not available. The HTTP request. Retrieves the for the given request. The for the given request. The HTTP request. Retrieves the which has been assigned as the correlation ID associated with the given . The value will be created and set the first time this method is called. The object that represents the correlation ID associated with the request. The HTTP request. Retrieves the for the given request or null if not available. The for the given request or null if not available. The HTTP request. Gets the parsed query string as a collection of key-value pairs. The query string as a collection of key-value pairs. The HTTP request. Retrieves the for the given request or null if not available. The for the given request or null if not available. The HTTP request. Retrieves the for the given request or null if not available. The for the given request or null if not available. The HTTP request. Gets a instance for an HTTP request. A instance that is initialized for the specified HTTP request. The HTTP request. Adds the given to a list of resources that will be disposed by a host once the is disposed. The HTTP request controlling the lifecycle of . The resource to dispose when is being disposed. Represents the message extensions for the HTTP response from an ASP.NET operation. Attempts to retrieve the value of the content for the . The result of the retrieval of value of the content. The response of the operation. The value of the content. The type of the value to retrieve. Represents extensions for adding items to a . Updates the given formatter's set of elements so that it associates the mediaType with s ending with the given uriPathExtension. The to receive the new item. The string of the path extension. The to associate with s ending with uriPathExtension. Updates the given formatter's set of elements so that it associates the mediaType with s ending with the given uriPathExtension. The to receive the new item. The string of the path extension. The string media type to associate with s ending with uriPathExtension. Provides s from path extensions appearing in a . Initializes a new instance of the class. The extension corresponding to mediaType. This value should not include a dot or wildcards. The that will be returned if uriPathExtension is matched. Initializes a new instance of the class. The extension corresponding to mediaType. This value should not include a dot or wildcards. The media type that will be returned if uriPathExtension is matched. Returns a value indicating whether this instance can provide a for the of request. If this instance can match a file extension in request it returns 1.0 otherwise 0.0. The to check. Gets the path extension. The path extension. The path extension key. Represents an attribute that specifies which HTTP methods an action method will respond to. Initializes a new instance of the class by using a list of HTTP methods that the action method will respond to. The HTTP methods that the action method will respond to. Gets or sets the list of HTTP methods that the action method will respond to. Gets or sets the list of HTTP methods that the action method will respond to. Represents an attribute that is used for the name of an action. Initializes a new instance of the class. The name of the action. Gets or sets the name of the action. The name of the action. Specifies that actions and controllers are skipped by during authorization. Initializes a new instance of the class. Defines properties and methods for API controller. Initializes a new instance of the class. Gets or sets the of the current . The of the current . Gets the of the current . The of the current . Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Releases the unmanaged resources that are used by the object and, optionally, releases the managed resources. true to release both managed and unmanaged resources; false to release only unmanaged resources. Executes asynchronously a single HTTP operation. The newly started task. The controller context for a single HTTP operation. The cancellation token assigned for the HTTP operation. Initializes the instance with the specified . The object that is used for the initialization. Gets the model state after the model binding process. The model state after the model binding process. Gets or sets the of the current . The of the current . Returns an instance of a , which is used to generate URLs to other APIs. A object which is used to generate URLs to other APIs. Returns the current principal associated with this request. The current principal associated with this request. Specifies the authorization filter that verifies the request's . Initializes a new instance of the class. Processes requests that fail authorization. The context. Indicates whether the specified control is authorized. true if the control is authorized; otherwise, false. The context. Calls when an action is being authorized. The context. The context parameter is null. Gets or sets the authorized roles. The roles string. Gets a unique identifier for this attribute. A unique identifier for this attribute. Gets or sets the authorized users. The users string. An attribute that specifies that an action parameter comes only from the entity body of the incoming . Initializes a new instance of the class. Gets a parameter binding. The parameter binding. The parameter description. An attribute that specifies that an action parameter comes from the URI of the incoming . Initializes a new instance of the class. Gets the value provider factories for the model binder. A collection of objects. The configuration. Represents attributes that specifies that HTTP binding should exclude a property. Initializes a new instance of the class. Represents the required attribute for http binding. Initializes a new instance of the class. Configuration of instances. Initializes a new instance of the class. Initializes a new instance of the class with an HTTP route collection. The HTTP route collection to associate with this instance. Gets or sets the dependency resolver associated with thisinstance. The dependency resolver. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Releases the unmanaged resources that are used by the object and, optionally, releases the managed resources. true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets the list of filters that apply to all requests served using this instance. The list of filters. Gets the media-type formatters for this instance. A collection of objects. Gets or sets a value indicating whether error details should be included in error messages. The value that indicates that error detail policy. Gets or sets the action that will perform final initialization of the instance before it is used to process requests. The action that will perform final initialization of the instance. Gets an ordered list of instances to be invoked as an travels up the stack and an travels down in stack in return. The message handler collection. The collection of rules for how parameters should be bound. A collection of functions that can produce a parameter binding for a given parameter. Gets the properties associated with this instance. The that contains the properties. Gets the associated with this instance. The . Gets the container of default services associated with this instance. The that contains the default services for this instance. Gets the root virtual path. The root virtual path. Contains extension methods for the class. Register that the given parameter type on an Action is to be bound using the model binder. configuration to be updated. parameter type that binder is applied to a model binder No content here will be updated; please do not add material here. Initializes a new instance of the class. Gets a collection of HTTP methods. A collection of HTTP methods. Defines a serializable container for arbitrary error information. Initializes a new instance of the class. Initializes a new instance of the class for exception. The exception to use for error information. true to include the exception information in the error; false otherwise Initializes a new instance of the class containing error message message. The error message to associate with this instance. Initializes a new instance of the class for modelState. The invalid model state to use for error information. true to include exception messages in the error; false otherwise The error message associated with this instance. This method is reserved and should not be used. Always returns null. Generates an instance from its XML representation. The stream from which the object is deserialized. Converts an instance into its XML representation. The stream to which the object is serialized. No content here will be updated; please do not add material here. Initializes a new instance of the class. Gets the collection of HTTP methods. A collection of HTTP methods. Represents an HTTP head attribute. Initializes a new instance of the class. Gets the collection of HTTP methods. A collection of HTTP methods. Represents an attribute that is used to restrict an HTTP method so that the method handles only HTTP OPTIONS requests. Initializes a new instance of the class. Gets the collection of methods supported by HTTP OPTIONS requests. The collection of methods supported by HTTP OPTIONS requests. Represents a HTTP patch attribute. Initializes a new instance of the class. Gets a collection of HTTP methods. A collection of HTTP methods. No content here will be updated; please do not add material here. Initializes a new instance of the class. Gets a collection of HTTP methods. A collection of HTTP methods. Represents an attribute that is used to restrict an HTTP method so that the method handles only HTTP PUT requests. Initializes a new instance of the class. Gets the read-only collection of HTTP PUT methods. The read-only collection of HTTP PUT methods. An exception that allows for a given to be returned to the client. Initializes a new instance of the class. The HTTP response to return to the client. Initializes a new instance of the class. The status code of the response. Gets the HTTP response to return to the client. The that represents the HTTP response. A collection of instances. Initializes a new instance of the class. Initializes a new instance of the class. The virtual path root. Adds an instance to the collection. The name of the route. The instance to add to the collection. Removes all items from the collection. Determines whether the collection contains a specific . true if the is found in the collection; otherwise, false. The object to locate in the collection. Determines whether the collection contains an element with the specified key. true if the collection contains an element with the key; otherwise, false. The key to locate in the collection. Copies the instances of the collection to an array, starting at a particular array index. The array that is the destination of the elements copied from the collection. The zero-based index in at which copying begins. Copies the route names and instances of the collection to an array, starting at a particular array index. The array that is the destination of the elements copied from the collection. The zero-based index in at which copying begins. Gets the number of items in the collection. The number of items in the collection. Creates an instance. The new instance. The route template. An object that contains the default route parameters. An object that contains the route constraints. The route data tokens. Creates an instance. The new instance. The route template. An object that contains the default route parameters. An object that contains the route constraints. The route data tokens. The message handler for the route. Creates an instance. The new instance. The route template. An object that contains the default route parameters. An object that contains the route constraints. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Releases the unmanaged resources that are used by the object and, optionally, releases the managed resources. true to release both managed and unmanaged resources; false to release only unmanaged resources. Returns an enumerator that iterates through the collection. An that can be used to iterate through the collection. Gets the route data for a specified HTTP request. An instance that represents the route data. The HTTP request. Gets a virtual path. An instance that represents the virtual path. The HTTP request. The route name. The route values. Inserts an instance into the collection. The zero-based index at which should be inserted. The route name. The to insert. The value cannot be null. Gets a value indicating whether the collection is read-only. true if the collection is read-only; otherwise, false. Gets or sets the element at the specified index. The at the specified index. The zero-based index of the element to get or set. Gets or sets the element with the specified route name. The at the specified index. The route name. Called internally to get the enumerator for the collection. An that can be used to iterate through the collection. Removes an instance from the collection. true if the element is successfully removed; otherwise, false. This method also returns false if was not found in the collection. The name of the route to remove. Adds an item to the collection. The object to add to the collection. Removes the first occurrence of a specific object from the collection. true if was successfully removed from the collection; otherwise, false. This method also returns false if is not found in the original collection. The object to remove from the collection. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Gets the with the specified route name. true if the collection contains an element with the specified name; otherwise, false. The route name. When this method returns, contains the instance, if the route name is found; otherwise, null. This parameter is passed uninitialized. Gets the virtual path root. The virtual path root. Extension methods for Maps the specified route template. A reference to the mapped route. A collection of routes for the application. The name of the route to map. The route template for the route. Maps the specified route template and sets default route values. A reference to the mapped route. A collection of routes for the application. The name of the route to map. The route template for the route. An object that contains default route values. Maps the specified route template and sets default route values and constraints. A reference to the mapped route. A collection of routes for the application. The name of the route to map. The route template for the route. An object that contains default route values. A set of expressions that constrain the values for routeTemplate. Maps the specified route template and sets default route values, constraints, and end-point message handler. A reference to the mapped route. A collection of routes for the application. The name of the route to map. The route template for the route. An object that contains default route values. A set of expressions that constrain the values for routeTemplate. The handler to which the request will be dispatched. Defines an implementation of an which dispatches an incoming and creates an as a result. Initializes a new instance of the class, using the default configuration and dispatcher. Initializes a new instance of the class with a specified dispatcher. The HTTP dispatcher that will handle incoming requests. Initializes a new instance of the class with a specified configuration. The used to configure this instance. Initializes a new instance of the class with a specified configuration and dispatcher. The used to configure this instance. The HTTP dispatcher that will handle incoming requests. Gets the used to configure this instance. The used to configure this instance. Gets the HTTP dispatcher that handles incoming requests. The HTTP dispatcher that handles incoming requests. Releases the unmanaged resources that are used by the object and, optionally, releases the managed resources. true to release both managed and unmanaged resources; false to release only unmanaged resources. Prepares the server for operation. Dispatches an incoming . A task representing the asynchronous operation. The request to dispatch. The token to monitor for cancellation requests. Specifies whether error details, such as exception messages and stack traces, should be included in error messages. Use the default behavior for the host environment. For ASP.NET hosting, use the value from the customErrors element in the Web.config file. For self-hosting, use the value . Only include error details when responding to a local request. Always include error details. Never include error details. Represents an attribute that is used to indicate that a controller method is not an action method. Initializes a new instance of the class. Attribute on a parameter or type that produces a . If the attribute is on a type-declaration, then it's as if that attribute is present on all action parameters of that type. Initializes a new instance of the class. Gets the parameter binding. The parameter binding. The parameter description. Enables a controller action to support OData query parameters. Initializes a new instance of the class. Applies the result limit to the query results. The query results after the result limit is applied. The context for the action. The original query results. Called by the Web API framework after the action method executes. The filter context. Called by the Web API framework before the action method executes. The filter context. The maximum number of results that should be returned from this query regardless of query-specified limits. The maximum number of results that should be returned. A value of zero indicates no limit. The to use. Derived classes can use this to have a per-attribute query builder instead of the one on The class can be used to indicate properties about a route parameter (the literals and placeholders located within segments of a ). It can for example be used to indicate that a route parameter is optional. An optional parameter. Returns a that represents this instance. A that represents this instance. Provides type-safe accessors for services obtained from a object. Gets the service. Returns an instance. The services container. Gets the service. Returns aninstance. The services container. Gets the service. Returns aninstance. The services container. Gets the service. Returns an instance. The services container. Gets the service. Returns aninstance. The services container. Gets the service. Returns aninstance. The services container. Gets the service. Returns aninstance. The services container. Gets the service. Returns aninstance. The services container. Gets the collection. Returns a collection of objects. The services container. Gets the service. Returns an instance. The services container. Gets the service. Returns an instance, or null if no instance was registered. The services container. Gets the service. Returns aninstance. The services container. Gets the service. Returns an instance. The services container. Gets the collection. Returns a collection of objects. The services container. Gets the service. Returns an instance. The services container. Gets the collection. Returns a collection ofobjects. The services container. Gets the service. Returns aninstance. The services container. Gets the service. Returns aninstance. The services container. Gets the service. Returns aninstance. The services container. Gets the collection. Returns a colleciton ofobjects. The services container. Invokes the action methods of a controller. Initializes a new instance of the class. Asynchronously invokes the specified action by using the specified controller context. The invoked action. The controller context. The cancellation token. Represents a reflection based action selector. Initializes a new instance of the class. Gets the action mappings for the . The action mappings. The information that describes a controller. Selects an action for the . The selected action. The controller context. Represents a container for services that can be specific to a controller. This shadows the services from its parent . A controller can either set a service here, or fall through to the more global set of services. Initializes a new instance of the class. The parent services container. Removes a single-instance service from the default services. The type of service. Gets a service of the specified type. The first instance of the service, or null if the service is not found. The type of service. Gets the list of service objects for a given service type, and validates the service type. The list of service objects of the specified type. The service type. Gets the list of service objects for a given service type. The list of service objects of the specified type, or an empty list if the service is not found. The type of service. Queries whether a service type is single-instance. true if the service type has at most one instance, or false if the service type supports multiple instances. The service type. Replaces a single-instance service object. The service type. The service object that replaces the previous instance. Describes *how* the binding will happen and does not actually bind. Initializes a new instance of the class. Initializes a new instance of the class. The back pointer to the action this binding is for. The synchronous bindings for each parameter. Gets or sets the back pointer to the action this binding is for. The back pointer to the action this binding is for. Executes asynchronously the binding for the given request context. Task that is signaled when the binding is complete. The action context for the binding. This contains the parameter dictionary that will get populated. The cancellation token for cancelling the binding operation. Or a binder can also bind a parameter to this. Gets or sets the synchronous bindings for each parameter. The synchronous bindings for each parameter. Contains information for the executing action. Initializes a new instance of the class. Initializes a new instance of the class. The controller context. The action descriptor. Gets a list of action arguments. A list of action arguments. Gets or sets the action descriptor for the action context. The action descriptor. Gets or sets the controller context. The controller context. Gets the model state dictionary for the context. The model state dictionary. Gets the request message for the action context. The request message for the action context. Gets or sets the response message for the action context. The response message for the action context. Contains extension methods for . Binds the model to a value by using the specified controller context and binding context. true if the bind succeeded; otherwise, false. The execution context. The binding context. Binds the model to a value by using the specified controller context, binding context, and model binders. true if the bind succeeded; otherwise, false. The execution context. The binding context. The collection of model binders. Retrieves the instance for a given . An instance. The context. Retrieves the collection of registered instances. A collection of instances. The context. Retrieves the collection of registered instances. A collection of registered instances. The context. The metadata. Binds the model to the property by using the specified execution context and binding context. true if the bind succeeded; otherwise, false. The execution context. The parent binding context. The name of the property to bind with the model. The metadata provider for the model. When this method returns, contains the bound model. The type of the model. Provides information about the action methods. Initializes a new instance of the class. Initializes a new instance of the class with specified information that describes the controller of the action. The information that describes the controller of the action. Gets or sets the binding that describes the action. The binding that describes the action. Gets the name of the action. The name of the action. Gets or sets the action configuration. The action configuration. Gets the information that describes the controller of the action. The information that describes the controller of the action. Executes the described action and returns a that once completed will contain the return value of the action. A that once completed will contain the return value of the action. The controller context. A list of arguments. The cancellation token. Returns the custom attributes associated with the action descriptor. The custom attributes associated with the action descriptor. The action descriptor. Retrieves the filters for the given configuration and action. The filters for the given configuration and action. Retrieves the filters for the action descriptor. The filters for the action descriptor. Retrieves the parameters for the action descriptor. The parameters for the action descriptor. Gets the properties associated with this instance. The properties associated with this instance. Gets the converter for correctly transforming the result of calling " into an instance of . The action result converter. Gets the return type of the descriptor. The return type of the descriptor. Gets the collection of supported HTTP methods for the descriptor. The collection of supported HTTP methods for the descriptor. Contains information for a single HTTP operation. Initializes a new instance of the class. Initializes a new instance of the class. The configuration. The route data. The request. Gets or sets the configuration. The configuration. Gets or sets the HTTP controller. The HTTP controller. Gets or sets the controller descriptor. The controller descriptor. Gets or sets the request. The request. Gets or sets the route data. The route data. Represents information that describes the HTTP controller. Initializes a new instance of the class. Initializes a new instance of the class. The configuration. The controller name. The controller type. Gets or sets the configurations associated with the controller. The configurations associated with the controller. Gets or sets the name of the controller. The name of the controller. Gets or sets the type of the controller. The type of the controller. Creates a controller instance for the given . The created controller instance. The request message Retrieves a collection of custom attributes of the controller. A collection of custom attributes The type of the object. Returns a collection of filters associated with the controller. A collection of filters associated with the controller. Gets the properties associated with this instance. The properties associated with this instance. Contains settings for an HTTP controller. Initializes a new instance of the class. A configuration object that is used to initialize the instance. Gets the collection of instances for the controller. The collection of instances. Gets the collection of parameter bindingfunctions for for the controller. The collection of parameter binding functions. Gets the collection of service instances for the controller. The collection of service instances. Describes how a parameter is bound. The binding should be static (based purely on the descriptor) and can be shared across requests. Initializes a new instance of the class. An that describes the parameters. Gets the that was used to initialize this instance. The instance. If the binding is invalid, gets an error message that describes the binding error. An error message. If the binding was successful, the value is null. Asynchronously executes the binding for the given request. A task object representing the asynchronous operation. Metadata provider to use for validation. The action context for the binding. The action context contains the parameter dictionary that will get populated with the parameter. Cancellation token for cancelling the binding operation. Gets the parameter value from argument dictionary of the action context. The value for this parameter in the given action context, or null if the parameter has not yet been set. The action context. Gets a value that indicates whether the binding was successful. true if the binding was successful; otherwise, false. Sets the result of this parameter binding in the argument dictionary of the action context. The action context. The parameter value. Returns a value indicating whether this instance will read the entity body of the HTTP message. true if this will read the entity body; otherwise, false. No content here will be updated; please do not add material here. Initializes a new instance of the class. Initializes a new instance of the class. The action descriptor. Gets or sets the action descriptor. The action descriptor. Gets or sets the for the . The for the . Gets the default value of the parameter. The default value of the parameter. Retrieves a collection of the custom attributes from the parameter. A collection of the custom attributes from the parameter. The type of the custom attributes. Gets a value that indicates whether the parameter is optional. true if the parameter is optional; otherwise, false.. Gets or sets the parameter binding attribute. The parameter binding attribute. Gets the name of the parameter. The name of the parameter. Gets the type of the parameter. The type of the parameter. Gets the prefix of this parameter. The prefix of this parameter. Gets the properties of this parameter. The properties of this parameter. A contract for a conversion routine that can take the result of an action returned from <see cref="M:System.Web.Http.Controllers.HttpActionDescriptor.ExecuteAsync(System.Web.Http.Controllers.HttpControllerContext,System.Collections.Generic.IDictionary{System.String,System.Object})" /> and convert it to an instance of . Converts the specified object to another object. The converted object. The controller context. The action result. No content here will be updated; please do not add material here. Gets the A object. The action descriptor. If a controller is decorated with an attribute with this interface, then it gets invoked to initialize the controller settings. Callback invoked to set per-controller overrides for this controllerDescriptor. The controller settings to initialize. The controller descriptor. Note that the can be associated with the derived controller type given that is inherited. Contains method that is used to invoke HTTP operation. Executes asynchronously the HTTP operation. The newly started task. The execution context. The cancellation token assigned for the HTTP operation. Contains the logic for selecting an action method. Returns a map, keyed by action string, of all that the selector can select. This is primarily called by to discover all the possible actions in the controller. A map of that the selector can select, or null if the selector does not have a well-defined mapping of . The controller descriptor. Selects the action for the controller. The action for the controller. The context of the controller. No content here will be updated; please do not add material here. Executes the controller for synchronization. The controller. The current context for a test controller. The notification that cancels the operation. Defines extension methods for . Binds parameter that results as an error. The HTTP parameter binding object. The parameter descriptor that describes the parameter to bind. The error message that describes the reason for fail bind. Bind the parameter as if it had the given attribute on the declaration. The HTTP parameter binding object. The parameter to provide binding for. The attribute that describes the binding. Binds parameter by parsing the HTTP body content. The HTTP parameter binding object. The parameter descriptor that describes the parameter to bind. Binds parameter by parsing the HTTP body content. The HTTP parameter binding object. The parameter descriptor that describes the parameter to bind. The list of formatters which provides selection of an appropriate formatter for serializing the parameter into object. Binds parameter by parsing the HTTP body content. The HTTP parameter binding object. The parameter descriptor that describes the parameter to bind. The list of formatters which provides selection of an appropriate formatter for serializing the parameter into object. The body model validator used to validate the parameter. Binds parameter by parsing the HTTP body content. The HTTP parameter binding object. The parameter descriptor that describes the parameter to bind. The list of formatters which provides selection of an appropriate formatter for serializing the parameter into object. Binds parameter by parsing the query string. The HTTP parameter binding object. The parameter descriptor that describes the parameter to bind. Binds parameter by parsing the query string. The HTTP parameter binding object. The parameter descriptor that describes the parameter to bind. The value provider factories which provide query string parameter data. Binds parameter by parsing the query string. The HTTP parameter binding object. The parameter descriptor that describes the parameter to bind. The model binder used to assemble the parameter into an object. Binds parameter by parsing the query string. The HTTP parameter binding object. The parameter descriptor that describes the parameter to bind. The model binder used to assemble the parameter into an object. The value provider factories which provide query string parameter data. Binds parameter by parsing the query string. The HTTP parameter binding object. The parameter descriptor that describes the parameter to bind. The value provider factories which provide query string parameter data. Represents a reflected synchronous or asynchronous action method. Initializes a new instance of the class. Initializes a new instance of the class with the specified descriptor and method details. The controller descriptor. The action-method information. Gets the name of the action. The name of the action. Executes the described action and returns a that once completed will contain the return value of the action. A that once completed will contain the return value of the action. The context. The arguments. A cancellation token to cancel the action. Returns an array of custom attributes defined for this member, identified by type. An array of custom attributes or an empty array if no custom attributes exist. The type of the custom attributes. Retrieves information about action filters. The filter information. Retrieves the parameters of the action method. The parameters of the action method. Gets or sets the action-method information. The action-method information. Gets the return type of this method. The return type of this method. Gets or sets the supported http methods. The supported http methods. No content here will be updated; please do not add material here. Initializes a new instance of the class. Initializes a new instance of the class. The action descriptor. The parameter information. Gets the default value for the parameter. The default value for the parameter. Retrieves a collection of the custom attributes from the parameter. A collection of the custom attributes from the parameter. The type of the custom attributes. Gets a value that indicates whether the parameter is optional. true if the parameter is optional; otherwise false. Gets or sets the parameter information. The parameter information. Gets the name of the parameter. The name of the parameter. Gets the type of the parameter. The type of the parameter. Represents a converter for actions with a return type of . Initializes a new instance of the class. Converts a object to another object. The converted object. The controller context. The action result. An abstract class that provides a container for services used by ASP.NET Web API. Initializes a new instance of the class. Adds a service to the end of services list for the given service type. The service type. The service instance. Adds the services of the specified collection to the end of the services list for the given service type. The service type. The services to add. Removes all the service instances of the given service type. The service type to clear from the services list. Removes all instances of a multi-instance service type. The service type to remove. Removes a single-instance service type. The service type to remove. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Searches for a service that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence. The zero-based index of the first occurrence, if found; otherwise, -1. The service type. The delegate that defines the conditions of the element to search for. Gets a service instance of a specified type. The service type. Gets a mutable list of service instances of a specified type. A mutable list of service instances. The service type. Gets a collection of service instanes of a specified type. A collection of service instances. The service type. Inserts a service into the collection at the specified index. The service type. The zero-based index at which the service should be inserted. If is passed, ensures the element is added to the end. The service to insert. Inserts the elements of the collection into the service list at the specified index. The service type. The zero-based index at which the new elements should be inserted. If is passed, ensures the elements are added to the end. The collection of services to insert. Determine whether the service type should be fetched with GetService or GetServices. true iff the service is singular. type of service to query Removes the first occurrence of the given service from the service list for the given service type. true if the item is successfully removed; otherwise, false. The service type. The service instance to remove. Removes all the elements that match the conditions defined by the specified predicate. The number of elements removed from the list. The service type. The delegate that defines the conditions of the elements to remove. Removes the service at the specified index. The service type. The zero-based index of the service to remove. Replaces all existing services for the given service type with the given service instance. This works for both singular and plural services. The service type. The service instance. Replaces all instances of a multi-instance service with a new instance. The type of service. The service instance that will replace the current services of this type. Replaces all existing services for the given service type with the given service instances. The service type. The service instances. Replaces a single-instance service of a specified type. The service type. The service instance. Removes the cached values for a single service type. The service type. A converter for creating responses from actions that return an arbitrary value. The declared return type of an action. Initializes a new instance of the class. Converts the result of an action with arbitrary return type to an instance of . The newly created object. The action controller context. The execution result. Represents a converter for creating a response from actions that do not return a value. Initializes a new instance of the class. Converts the created response from actions that do not return a value. The converted response. The context of the controller. The result of the action. Represents a dependency injection container. Starts a resolution scope. The dependency scope. Represents an interface for the range of the dependencies. Retrieves a service from the scope. The retrieved service. The service to be retrieved. Retrieves a collection of services from the scope. The retrieved collection of services. The collection of services to be retrieved. Describes an API defined by relative URI path and HTTP method. Initializes a new instance of the class. Gets or sets the action descriptor that will handle the API. The action descriptor. Gets or sets the documentation of the API. The documentation. Gets or sets the HTTP method. The HTTP method. Gets the ID. The ID is unique within . Gets the parameter descriptions. Gets or sets the relative path. The relative path. Gets or sets the registered route for the API. The route. Gets the supported request body formatters. Gets the supported response formatters. Explores the URI space of the service based on routes, controllers and actions available in the system. Initializes a new instance of the class. The configuration. Gets the API descriptions. The descriptions are initialized on the first access. Gets or sets the documentation provider. The provider will be responsible for documenting the API. The documentation provider. Gets a collection of HttpMethods supported by the action. Called when initializing the . A collection of HttpMethods supported by the action. The route. The action descriptor. Determines whether the action should be considered for generation. Called when initializing the . true if the action should be considered for generation, false otherwise. The action variable value from the route. The action descriptor. The route. Determines whether the controller should be considered for generation. Called when initializing the . true if the controller should be considered for generation, false otherwise. The controller variable value from the route. The controller descriptor. The route. This attribute can be used on the controllers and actions to influence the behavior of . Initializes a new instance of the class. Gets or sets a value indicating whether to exclude the controller or action from the instances generated by . true if the controller or action should be ignored; otherwise, false. Describes a parameter on the API defined by relative URI path and HTTP method. Initializes a new instance of the class. Gets or sets the documentation. The documentation. Gets or sets the name. The name. Gets or sets the parameter descriptor. The parameter descriptor. Gets or sets the source of the parameter. It may come from the request URI, request body or other places. The source. Describes where the parameter come from. The parameter come from Uri. The parameter come from Body. The location is unknown. Defines the interface for getting a collection of . Gets the API descriptions. Defines the provider responsible for documenting the service. Gets the documentation based on . The documentation for the controller. The action descriptor. Gets the documentation based on . The documentation for the controller. The parameter descriptor. Provides an implementation of with no external dependencies. Initializes a new instance of the class. Returns a list of assemblies available for the application. A <see cref="T:System.Collections.ObjectModel.Collection`1" /> of assemblies. Represents a default implementation of an . A different implementation can be registered via the . We optimize for the case where we have an instance per instance but can support cases where there are many instances for one as well. In the latter case the lookup is slightly slower because it goes through the dictionary. Initializes a new instance of the class. Creates the specified by using the given . An instance of type . The request message. The controller descriptor. The type of the controller. Represents a default instance for choosing a given a . A different implementation can be registered via the . Initializes a new instance of the class. The configuration. Specifies the suffix string in the controller name. Returns a map, keyed by controller string, of all that the selector can select. A map of all that the selector can select, or null if the selector does not have a well-defined mapping of . Gets the name of the controller for the specified . The name of the controller for the specified . The HTTP request message. Selects a for the given . The instance for the given . The HTTP request message. Provides an implementation of with no external dependencies. Initializes a new instance of the class. Initializes a new instance using a predicate to filter controller types. The predicate. Returns a list of controllers available for the application. An <see cref="T:System.Collections.Generic.ICollection`1" /> of controllers. The assemblies resolver. Gets a value whether the resolver type is a controller type predicate. true if the resolver type is a controller type predicate; otherwise, false. Dispatches an incoming to an implementation for processing. Initializes a new instance of the class with the specified configuration. The http configuration. Gets the HTTP configuration. The HTTP configuration. Dispatches an incoming to an . A representing the ongoing operation. The request to dispatch The cancellation token. This class is the default endpoint message handler which examines the of the matched route, and chooses which message handler to call. If is null, then it delegates to . Initializes a new instance of the class, using the provided and as the default handler. The server configuration. Initializes a new instance of the class, using the provided and . The server configuration. The default handler to use when the has no . Sends an HTTP request as an asynchronous operation. The task object representing the asynchronous operation. The HTTP request message to send. The cancellation token to cancel operation. Provides an abstraction for managing the assemblies of an application. A different implementation can be registered via the . Returns a list of assemblies available for the application. An <see cref="T:System.Collections.Generic.ICollection`1" /> of assemblies. Defines the methods that are required for an . Creates an object. An object. The message request. The HTTP controller descriptor. The type of the controller. Defines the methods that are required for an factory. Returns a map, keyed by controller string, of all that the selector can select. This is primarily called by to discover all the possible controllers in the system. A map of all that the selector can select, or null if the selector does not have a well-defined mapping of . Selects a for the given . An instance. The request message. Provides an abstraction for managing the controller types of an application. A different implementation can be registered via the DependencyResolver. Returns a list of controllers available for the application. An <see cref="T:System.Collections.Generic.ICollection`1" /> of controllers. The resolver for failed assemblies. Provides information about an action method, such as its name, controller, parameters, attributes, and filters. Initializes a new instance of the class. Returns the filters that are associated with this action method. The filters that are associated with this action method. The configuration. The action descriptor. Represents the base class for all action-filter attributes. Initializes a new instance of the class. Occurs after the action method is invoked. The action executed context. Occurs before the action method is invoked. The action context. Executes the filter action asynchronously. The newly created task for this operation. The action context. The cancellation token assigned for this task. The delegate function to continue after the action method is invoked. No content here will be updated; please do not add material here. Initializes a new instance of the class. Calls when a process requests authorization. The action context, which encapsulates information for using . Executes the authorization filter during synchronization. The authorization filter during synchronization. The action context, which encapsulates information for using . The cancellation token that cancels the operation. A continuation of the operation. Represents the configuration filter provider. Initializes a new instance of the class. Returns the filters that are associated with this configuration method. The filters that are associated with this configuration method. The configuration. The action descriptor. Represents the attributes for the exception filter. Initializes a new instance of the class. Raises the exception event. The context for the action. Asynchronously executes the exception filter. The result of the execution. The context for the action. The cancellation context. Represents the base class for action-filter attributes. Initializes a new instance of the class. Gets a value that indicates whether multiple filters are allowed. true if multiple filters are allowed; otherwise, false. Provides information about the available action filters. Initializes a new instance of the class. The instance of this class. The scope of this class. Gets or sets an instance of the . A . Gets or sets the scope . The scope of the FilterInfo. Defines values that specify the order in which filters run within the same filter type and filter order. Specifies an action before Controller. Specifies an order before Action and after Global. Specifies an order after Controller. No content here will be updated; please do not add material here. Initializes a new instance of the class. Initializes a new instance of the class. The action context. The exception. Gets or sets the HTTP action context. The HTTP action context. Gets or sets the exception that was raised during the execution. The exception that was raised during the execution. Gets the object for the context. The object for the context. Gets or sets the for the context. The for the context. Represents a collection of HTTP filters. Initializes a new instance of the class. Adds an item at the end of the collection. The item to add to the collection. Removes all item in the collection. Determines whether the collection contains the specified item. true if the collection contains the specified item; otherwise, false. The item to check. Gets the number of elements in the collection. The number of elements in the collection. Gets an enumerator that iterates through the collection. An enumerator object that can be used to iterate through the collection. Removes the specified item from the collection. The item to remove in the collection. Gets an enumerator that iterates through the collection. An enumerator object that can be used to iterate through the collection. Defines the methods that are used in an action filter. Executes the filter action asynchronously. The newly created task for this operation. The action context. The cancellation token assigned for this task. The delegate function to continue after the action method is invoked. No content here will be updated; please do not add material here. Executes the authorization filter to synchronize. The authorization filter to synchronize. The action context. The cancellation token associated with the filter. The continuation. Defines the methods that are required for an exception filter. Executes an asynchronous exception filter. An asynchronous exception filter. The action executed context. The cancellation token. Specifies a server-side component that is used by the indexing system to index documents that have the file format associated with the IFilter. Gets or sets a value indicating whether more than one instance of the indicated attribute can be specified for a single program element. true if more than one instance is allowed to be specified; otherwise, false. The default is false. Provides filter information. Returns an enumeration of filters. An enumeration of filters. The HTTP configuration. The action descriptor. Provides common keys for properties stored in the . Provides a key for the client certificate for this request. Provides a key for the associated with this request. Provides a key for the collection of resources that should be disposed when a request is disposed. Provides a key for the associated with this request. Provides a key for the associated with this request. Provides a key that indicates whether error details are to be included in the response for this HTTP request. Provides a key that indicates whether the request originates from a local address. Provides a key for the stored in . This is the correlation ID for that request. Provides a key for the parsed query string stored in . Provides a key for a delegate which can retrieve the client certificate for this request. Provides a key for the current stored in . If is null then no context is stored. Interface for controlling the use of buffering requests and responses in the host. If a host provides support for buffering requests and/or responses then it can use this interface to determine the policy for when buffering is to be used. Determines whether the host should buffer the entity body. true if buffering should be used; otherwise a streamed request should be used. The host context. Determines whether the host should buffer the entity body. true if buffering should be used; otherwise a streamed response should be used. The HTTP response message. No content here will be updated; please do not add material here. Initializes a new instance of the class. The provider. The type of the container. The model accessor. The type of the model. The name of the property. Gets a dictionary that contains additional metadata about the model. A dictionary that contains additional metadata about the model. Gets or sets the type of the container for the model. The type of the container for the model. Gets or sets a value that indicates whether empty strings that are posted back in forms should be converted to null. true if empty strings that are posted back in forms should be converted to null; otherwise, false. The default value is true. Gets or sets the description of the model. The description of the model. The default value is null. Gets the display name for the model. The display name for the model. Gets a list of validators for the model. A list of validators for the model. The validator providers for the model. Gets or sets a value that indicates whether the model is a complex type. A value that indicates whether the model is considered a complex. Gets a value that indicates whether the type is nullable. true if the type is nullable; otherwise, false. Gets or sets a value that indicates whether the model is read-only. true if the model is read-only; otherwise, false. Gets the value of the model. The model value can be null. Gets the type of the model. The type of the model. Gets a collection of model metadata objects that describe the properties of the model. A collection of model metadata objects that describe the properties of the model. Gets the property name. The property name. Gets or sets the provider. The provider. No content here will be updated; please do not add material here. Initializes a new instance of the class. Gets a ModelMetadata object for each property of a model. A ModelMetadata object for each property of a model. The container. The type of the container. Get metadata for the specified property. The metadata model for the specified property. The model accessor. The type of the container. The property to get the metadata model for. Gets the metadata for the specified model accessor and model type. The metadata. The model accessor. The type of the mode. Provides an abstract class to implement a metadata provider. The type of the model metadata. Initializes a new instance of the class. When overridden in a derived class, creates the model metadata for the property using the specified prototype. The model metadata for the property. The prototype from which to create the model metadata. The model accessor. When overridden in a derived class, creates the model metadata for the property. The model metadata for the property. The set of attributes. The type of the container. The type of the model. The name of the property. Retrieves a list of properties for the model. A list of properties for the model. The model container. The type of the container. Retrieves the metadata for the specified property using the container type and property name. The metadata for the specified property. The model accessor. The type of the container. The name of the property. Returns the metadata for the specified property using the type of the model. The metadata for the specified property. The model accessor. The type of the container. Provides prototype cache data for . Initializes a new instance of the class. The attributes that provides data for the initialization. Gets or sets the metadata display attribute. The metadata display attribute. Gets or sets the metadata display format attribute. The metadata display format attribute. Gets or sets the metadata editable attribute. The metadata editable attribute. Gets or sets the metadata read-only attribute. The metadata read-only attribute. Provides a container for common metadata, for the class, for a data model. Initializes a new instance of the class. The prototype used to initialize the model metadata. The model accessor. Initializes a new instance of the class. The metadata provider. The type of the container. The type of the model. The name of the property. The attributes that provides data for the initialization. Retrieves a value that indicates whether empty strings that are posted back in forms should be converted to null. true if empty strings that are posted back in forms should be converted to null; otherwise, false. Retrieves the description of the model. The description of the model. Retrieves a value that indicates whether the model is read-only. true if the model is read-only; otherwise, false. No content here will be updated; please do not add material here. The type of prototype cache. Initializes a new instance of the class. The prototype. The model accessor. Initializes a new instance of the class. The provider. The type of container. The type of the model. The name of the property. The prototype cache. Indicates whether empty strings that are posted back in forms should be computed and converted to null. true if empty strings that are posted back in forms should be computed and converted to null; otherwise, false. Indicates the computation value. The computation value. Gets a value that indicates whether the model is a complex type. A value that indicates whether the model is considered a complex type by the Web API framework. Gets a value that indicates whether the model to be computed is read-only. true if the model to be computed is read-only; otherwise, false. Gets or sets a value that indicates whether empty strings that are posted back in forms should be converted to null. true if empty strings that are posted back in forms should be converted to null; otherwise, false. The default value is true. Gets or sets the description of the model. The description of the model. Gets a value that indicates whether the model is a complex type. A value that indicates whether the model is considered a complex type by the Web API framework. Gets or sets a value that indicates whether the model is read-only. true if the model is read-only; otherwise, false. Gets or sets a value that indicates whether the prototype cache is updating. true if the prototype cache is updating; otherwise, false. Implements the default model metadata provider. Initializes a new instance of the class. Creates the metadata from prototype for the specified property. The metadata for the property. The prototype. The model accessor. Creates the metadata for the specified property. The metadata for the property. The attributes. The type of the container. The type of the model. The name of the property. No content here will be updated; please do not add material here. Initializes a new instance of the class. Creates metadata from prototype. The metadata. The model metadata prototype. The model accessor. Creates a prototype of the metadata provider of the . A prototype of the metadata provider. The attributes. The type of container. The type of model. The name of the property. Represents the binding directly to the cancellation token. Initializes a new instance of the class. The binding descriptor. Executes the binding during synchronization. The binding during synchronization. The metadata provider. The action context. The notification after the cancellation of the operations. Represents an attribute that invokes a custom model binder. Initializes a new instance of the class. Retrieves the associated model binder. A reference to an object that implements the interface. No content here will be updated; please do not add material here. Initializes a new instance of the class. Default implementation of the interface. This interface is the primary entry point for binding action parameters. The associated with the . The action descriptor. Gets the associated with the . The associated with the . The parameter descriptor. Defines a binding error. Initializes a new instance of the class. The error descriptor. The message. Gets the error message. The error message. Executes the binding method during synchronization. The metadata provider. The action context. The cancellation Token value. Represents parameter binding that will read from the body and invoke the formatters. Initializes a new instance of the class. The descriptor. The formatter. The body model validator. Gets or sets an interface for the body model validator. An interface for the body model validator. Gets the error message. The error message. Asynchronously execute the binding of . The result of the action. The metadata provider. The context associated with the action. The cancellation token. Gets or sets an enumerable object that represents the formatter for the parameter binding. An enumerable object that represents the formatter for the parameter binding. Asynchronously reads the content of . The result of the action. The request. The type. The formatter. The format logger. Gets whether the will read body. True if the will read body; otherwise, false. Represents the extensions for the collection of form data. Reads the collection extensions with specified type. The read collection extensions. The form data. The generic type. Reads the collection extensions with specified type. The collection extensions. The form data. The name of the model. The required member selector. The formatter logger. The generic type. Reads the collection extensions with specified type. The collection extensions with specified type. The form data. The type of the object. Reads the collection extensions with specified type and model name. The collection extensions. The form data. The type of the object. The name of the model. The required member selector. The formatter logger. Enumerates the behavior of the HTTP binding. The optional binding behavior Never use HTTP binding. HTTP binding is required. Provides a base class for model-binding behavior attributes. Initializes a new instance of the class. The behavior. Gets or sets the behavior category. The behavior category. Gets the unique identifier for this attribute. The id for this attribute. Parameter binds to the request. Initializes a new instance of the class. The parameter descriptor. Asynchronously executes parameter binding. The binded parameter. The metadata provider. The action context. The cancellation token. Defines the methods that are required for a model binder. Binds the model to a value by using the specified controller context and binding context. The bound value. The action context. The binding context. Represents a value provider for parameter binding. Gets the instances used by this parameter binding. The instances used by this parameter binding. Represents the class for handling HTML form URL-ended data, also known as application/x-www-form-urlencoded. Initializes a new instance of the class. Determines whether this can read objects of the specified . true if objects of this type can be read; otherwise false. The type of object that will be read. Reads an object of the specified from the specified stream. This method is called during deserialization. A whose result will be the object instance that has been read. The type of object to read. The from which to read. The content being read. The to log events to. Specify this parameter uses a model binder. This can optionally specify the specific model binder and value providers that drive that model binder. Derived attributes may provide convenience settings for the model binder or value provider. Initializes a new instance of the class. Initializes a new instance of the class. The type of model binder. Gets or sets the type of model binder. The type of model binder. Gets the binding for a parameter. The that contains the binding. The parameter to bind. Get the IModelBinder for this type. a non-null model binder. The configuration. model type that the binder is expected to bind. Gets the model binder provider. The instance. The configuration object. Gets the value providers that will be fed to the model binder. A collection of instances. The configuration object. Gets or sets the name to consider as the parameter name during model binding. The parameter name to consider. Gets or sets a value that specifies whether the prefix check should be suppressed. true if the prefix check should be suppressed; otherwise, false. Provides a container for model-binder configuration. Gets or sets the name of the resource file (class key) that contains localized string values. The name of the resource file (class key). Gets or sets the current provider for type-conversion error message. The current provider for type-conversion error message. Gets or sets the current provider for value-required error messages. The error message provider. Provides a container for model-binder error message provider. Describes a parameter that gets bound via ModelBinding. Initializes a new instance of the class. The parameter descriptor. The model binder. The collection of value provider factory. Gets the model binder. The model binder. Asynchronously executes the parameter binding via the model binder. The task that is signaled when the binding is complete. The metadata provider to use for validation. The action context for the binding. The cancellation token assigned for this task for cancelling the binding operation. Gets the collection of value provider factory. The collection of value provider factory. Provides an abstract base class for model binder providers. Initializes a new instance of the class. Finds a binder for the given type. A binder, which can attempt to bind this type. Or null if the binder knows statically that it will never be able to bind the type. A configuration object. The type of the model to bind against. Provides the context in which a model binder functions. Initializes a new instance of the class. Initializes a new instance of the class. The binding context. Gets or sets a value that indicates whether the binder should use an empty prefix. true if the binder should use an empty prefix; otherwise, false. Gets or sets the model. The model. Gets or sets the model metadata. The model metadata. Gets or sets the name of the model. The name of the model. Gets or sets the state of the model. The state of the model. Gets or sets the type of the model. The type of the model. Gets the property metadata. The property metadata. Gets or sets the validation node. The validation node. Gets or sets the value provider. The value provider. Represents an error that occurs during model binding. Initializes a new instance of the class by using the specified exception. The exception. Initializes a new instance of the class by using the specified exception and error message. The exception. The error message Initializes a new instance of the class by using the specified error message. The error message Gets or sets the error message. The error message. Gets or sets the exception object. The exception object. Represents a collection of instances. Initializes a new instance of the class. Adds the specified Exception object to the model-error collection. The exception. Adds the specified error message to the model-error collection. The error message. Encapsulates the state of model binding to a property of an action-method argument, or to the argument itself. Initializes a new instance of the class. Gets a object that contains any errors that occurred during model binding. The model state errors. Gets a object that encapsulates the value that was being bound during model binding. The model state value. Represents the state of an attempt to bind a posted form to an action method, which includes validation information. Initializes a new instance of the class. Initializes a new instance of the class by using values that are copied from the specified model-state dictionary. The dictionary. Adds the specified item to the model-state dictionary. The object to add to the model-state dictionary. Adds an element that has the specified key and value to the model-state dictionary. The key of the element to add. The value of the element to add. Adds the specified model error to the errors collection for the model-state dictionary that is associated with the specified key. The key. The exception. Adds the specified error message to the errors collection for the model-state dictionary that is associated with the specified key. The key. The error message. Removes all items from the model-state dictionary. Determines whether the model-state dictionary contains a specific value. true if item is found in the model-state dictionary; otherwise, false. The object to locate in the model-state dictionary. Determines whether the model-state dictionary contains the specified key. true if the model-state dictionary contains the specified key; otherwise, false. The key to locate in the model-state dictionary. Copies the elements of the model-state dictionary to an array, starting at a specified index. The array. The array must have zero-based indexing. The zero-based index in array at which copying starts. Gets the number of key/value pairs in the collection. The number of key/value pairs in the collection. Returns an enumerator that can be used to iterate through the collection. An enumerator that can be used to iterate through the collection. Gets a value that indicates whether the collection is read-only. true if the collection is read-only; otherwise, false. Gets a value that indicates whether this instance of the model-state dictionary is valid. true if this instance is valid; otherwise, false. Determines whether there are any objects that are associated with or prefixed with the specified key. true if the model-state dictionary contains a value that is associated with the specified key; otherwise, false. The key. Gets or sets the value that is associated with the specified key. The model state item. The key. Gets a collection that contains the keys in the dictionary. A collection that contains the keys of the model-state dictionary. Copies the values from the specified object into this dictionary, overwriting existing values if keys are the same. The dictionary. Removes the first occurrence of the specified object from the model-state dictionary. true if item was successfully removed the model-state dictionary; otherwise, false. This method also returns false if item is not found in the model-state dictionary. The object to remove from the model-state dictionary. Removes the element that has the specified key from the model-state dictionary. true if the element is successfully removed; otherwise, false. This method also returns false if key was not found in the model-state dictionary. The key of the element to remove. Sets the value for the specified key by using the specified value provider dictionary. The key. The value. Returns an enumerator that iterates through a collection. An IEnumerator object that can be used to iterate through the collection. Attempts to gets the value that is associated with the specified key. true if the object contains an element that has the specified key; otherwise, false. The key of the value to get. The value associated with the specified key. Gets a collection that contains the values in the dictionary. A collection that contains the values of the model-state dictionary. Collection of functions that can produce a parameter binding for a given parameter. Initializes a new instance of the class. Adds function to the end of the collection. The function added is a wrapper around funcInner that checks that parameterType matches typeMatch. type to match against HttpParameterDescriptor.ParameterType inner function that is invoked if type match succeeds Insert a function at the specified index in the collection. /// The function added is a wrapper around funcInner that checks that parameterType matches typeMatch. index to insert at. type to match against HttpParameterDescriptor.ParameterType inner function that is invoked if type match succeeds Execute each binding function in order until one of them returns a non-null binding. the first non-null binding produced for the parameter. Of null if no binding is produced. parameter to bind. Maps a browser request to an array. The type of the array. Initializes a new instance of the class. Indicates whether the model is binded. true if the specified model is binded; otherwise, false. The action context. The binding context. Converts the collection to an array. true in all cases. The action context. The binding context. The new collection. Provides a model binder for arrays. Initializes a new instance of the class. Returns a model binder for arrays. A model binder object or null if the attempt to get a model binder is unsuccessful. The configuration. The type of model. Maps a browser request to a collection. The type of the collection. Initializes a new instance of the class. Binds the model by using the specified execution context and binding context. true if model binding is successful; otherwise, false. The action context. The binding context. Provides a way for derived classes to manipulate the collection before returning it from the binder. true in all cases. The action context. The binding context. The new collection. Provides a model binder for a collection. Initializes a new instance of the class. Retrieves a model binder for a collection. The model binder. The configuration of the model. The type of the model. Represents a data transfer object (DTO) for a complex model. Initializes a new instance of the class. The model metadata. The collection of property metadata. Gets or sets the model metadata of the . The model metadata of the . Gets or sets the collection of property metadata of the . The collection of property metadata of the . Gets or sets the results of the . The results of the . Represents a model binder for object. Initializes a new instance of the class. Determines whether the specified model is binded. true if the specified model is binded; otherwise, false. The action context. The binding context. Represents a complex model that invokes a model binder provider. Initializes a new instance of the class. Retrieves the associated model binder. The model binder. The configuration. The type of the model to retrieve. Represents the result for object. Initializes a new instance of the class. The object model. The validation node. Gets or sets the model for this object. The model for this object. Gets or sets the for this object. The for this object. Represents an that delegates to one of a collection of instances. Initializes a new instance of the class. An enumeration of binders. Initializes a new instance of the class. An array of binders. Indicates whether the specified model is binded. true if the model is binded; otherwise, false. The action context. The binding context. Represents the class for composite model binder providers. Initializes a new instance of the class. Initializes a new instance of the class. A collection of Gets the binder for the model. The binder for the model. The binder configuration. The type of the model. Gets the providers for the composite model binder. The collection of providers. Maps a browser request to a dictionary data object. The type of the key. The type of the value. Initializes a new instance of the class. Converts the collection to a dictionary. true in all cases. The action context. The binding context. The new collection. Provides a model binder for a dictionary. Initializes a new instance of the class. Retrieves the associated model binder. The associated model binder. The configuration to use. The type of model. Maps a browser request to a key/value pair data object. The type of the key. The type of the value. Initializes a new instance of the class. Binds the model by using the specified execution context and binding context. true if model binding is successful; otherwise, false. The action context. The binding context. Provides a model binder for a collection of key/value pairs. Initializes a new instance of the class. Retrieves the associated model binder. The associated model binder. The configuration. The type of model. Maps a browser request to a mutable data object. Initializes a new instance of the class. Binds the model by using the specified action context and binding context. true if binding is successful; otherwise, false. The action context. The binding context. Retrieves a value that indicates whether a property can be updated. true if the property can be updated; otherwise, false. The metadata for the property to be evaluated. Creates an instance of the model. The newly created model object. The action context. The binding context. Creates a model instance if an instance does not yet exist in the binding context. The action context. The binding context. Retrieves metadata for properties of the model. The metadata for properties of the model. The action context. The binding context. Sets the value of a specified property. The action context. The binding context. The metadata for the property to set. The validation information about the property. The validator for the model. Provides a model binder for mutable objects. Initializes a new instance of the class. Retrieves the model binder for the specified type. The model binder. The configuration. The type of the model to retrieve. No content here will be updated; please do not add material here. Initializes a new instance of the class. The model type. The model binder factory. Initializes a new instance of the class by using the specified model type and the model binder. The model type. The model binder. Returns a model binder by using the specified execution context and binding context. The model binder, or null if the attempt to get a model binder is unsuccessful. The configuration. The model type. Gets the type of the model. The type of the model. Gets or sets a value that specifies whether the prefix check should be suppressed. true if the prefix check should be suppressed; otherwise, false. Maps a browser request to a data object. This type is used when model binding requires conversions using a .NET Framework type converter. Initializes a new instance of the class. Binds the model by using the specified controller context and binding context. true if model binding is successful; otherwise, false. The action context. The binding context. Provides a model binder for a model that requires type conversion. Initializes a new instance of the class. Retrieve a model binder for a model that requires type conversion. The model binder, or Nothing if the type cannot be converted or there is no value to convert. The configuration of the binder. The type of the model. Maps a browser request to a data object. This class is used when model binding does not require type conversion. Initializes a new instance of the class. Binds the model by using the specified execution context and binding context. true if model binding is successful; otherwise, false. The action context. The binding context. Provides a model binder for a model that does not require type conversion. Initializes a new instance of the class. Retrieves the associated model binder. The associated model binder. The configuration. The type of model. The understands $filter, $orderby, $top and $skip OData query parameters Initializes a new instance of the class. Build the for the given uri. The The to build the from A is used to extract the query from a Uri. Build the for the given uri. Return null if there is no query in the Uri. The The to build the from Represents a query option like $filter, $top etc. Applies this on to an returning the resultant The resultant The source The value part of the query parameter for this query part. The query operator that this query parameter is for. Represents an . Initializes a new instance of the class. Gets or sets a list of query parts. Enables you to define which HTTP verbs are allowed when ASP.NET routing determines whether a URL matches a route. Initializes a new instance of the class by using the HTTP verbs that are allowed for the route. The HTTP verbs that are valid for the route. Gets or sets the collection of allowed HTTP verbs for the route. A collection of allowed HTTP verbs for the route. Determines whether the request was made with an HTTP verb that is one of the allowed verbs for the route. When ASP.NET routing is processing a request, true if the request was made by using an allowed HTTP verb; otherwise, false. When ASP.NET routing is constructing a URL, true if the supplied values contain an HTTP verb that matches one of the allowed HTTP verbs; otherwise, false. The default is true. The request that is being checked to determine whether it matches the URL. The object that is being checked to determine whether it matches the URL. The name of the parameter that is being checked. An object that contains the parameters for a route. An object that indicates whether the constraint check is being performed when an incoming request is processed or when a URL is generated. Determines whether the request was made with an HTTP verb that is one of the allowed verbs for the route. When ASP.NET routing is processing a request, true if the request was made by using an allowed HTTP verb; otherwise, false. When ASP.NET routing is constructing a URL, true if the supplied values contain an HTTP verb that matches one of the allowed HTTP verbs; otherwise, false. The default is true. The request that is being checked to determine whether it matches the URL. The object that is being checked to determine whether it matches the URL. The name of the parameter that is being checked. An object that contains the parameters for a route. An object that indicates whether the constraint check is being performed when an incoming request is processed or when a URL is generated. Represents a route class for self-host (i.e. hosted outside of ASP.NET). Initializes a new instance of the class. Initializes a new instance of the class. The route template. Initializes a new instance of the class. The route template. The default values for the route parameters. Initializes a new instance of the class. The route template. The default values for the route parameters. The constraints for the route parameters. Initializes a new instance of the class. The route template. The default values for the route parameters. The constraints for the route parameters. Any additional tokens for the route parameters. Initializes a new instance of the class. The route template. The default values for the route parameters. The constraints for the route parameters. Any additional tokens for the route parameters. The message handler that will be the recipient of the request. Gets the constraints for the route parameters. The constraints for the route parameters. Gets any additional data tokens not used directly to determine whether a route matches an incoming . Any additional data tokens not used directly to determine whether a route matches an incoming . Gets the default values for route parameters if not provided by the incoming . The default values for route parameters if not provided by the incoming . Determines whether this route is a match for the incoming request by looking up the for the route. The for a route if matches; otherwise null. The virtual path root. The HTTP request. Attempts to generate a URI that represents the values passed in based on current values from the and new values using the specified . A instance or null if URI cannot be generated. The HTTP request message. The route values. Gets or sets the http route handler. The http route handler. Determines whether this instance equals a specified route. true if this instance equals a specified route; otherwise, false. The HTTP request. The constraints for the route parameters. The name of the parameter. The list of parameter values. One of the enumeration values of the enumeration. Gets the route template describing the URI pattern to match against. The route template describing the URI pattern to match against. Encapsulates information regarding the HTTP route. Initializes a new instance of the class. An object that defines the route. Initializes a new instance of the class. An object that defines the route. The value. Gets the object that represents the route. the object that represents the route. Gets a collection of URL parameter values and default values for the route. An object that contains values that are parsed from the URL and from default values. Specifies an enumeration of route direction. The UriResolution direction. The UriGeneration direction. Represents a route class for self-host of specified key/value pairs. Initializes a new instance of the class. Initializes a new instance of the class. The dictionary. Initializes a new instance of the class. The key value. Presents the data regarding the HTTP virtual path. Initializes a new instance of the class. The route of the virtual path. The URL that was created from the route definition. Gets or sets the route of the virtual path.. The route of the virtual path. Gets or sets the URL that was created from the route definition. The URL that was created from the route definition. defines the interface for a route expressing how to map an incoming to a particular controller and action. Gets the constraints for the route parameters. The constraints for the route parameters. Gets any additional data tokens not used directly to determine whether a route matches an incoming . The additional data tokens. Gets the default values for route parameters if not provided by the incoming . The default values for route parameters. Determine whether this route is a match for the incoming request by looking up the <see cref="!:IRouteData" /> for the route. The <see cref="!:RouteData" /> for a route if matches; otherwise null. The virtual path root. The request. Gets a virtual path data based on the route and the values provided. The virtual path data. The request message. The values. Gets the message handler that will be the recipient of the request. The message handler. Gets the route template describing the URI pattern to match against. The route template. Represents a base class route constraint. Determines whether this instance equals a specified route. True if this instance equals a specified route; otherwise, false. The request. The route to compare. The name of the parameter. A list of parameter values. The route direction. Provides information about a route. Gets the object that represents the route. The object that represents the route. Gets a collection of URL parameter values and default values for the route. The values that are parsed from the URL and from default values. Defines the properties for HTTP route. Gets the HTTP route. The HTTP route. Gets the URI that represents the virtual path of the current HTTP route. The URI that represents the virtual path of the current HTTP route. No content here will be updated; please do not add material here. Initializes a new instance of the class. The HTTP request for this instance. Returns a link for the specified route. A link for the specified route. The name of the route. An object that contains the parameters for a route. Returns a link for the specified route. A link for the specified route. The name of the route. A route value. Gets or sets the of the current instance. The of the current instance. Returns the route for the . The route for the . The name of the route. A list of route values. Returns the route for the . The route for the . The name of the route. The route values. Represents a container for service instances used by the . Note that this container only supports known types, and methods to get or set arbitrary service types will throw when called. For creation of arbitrary types, please use instead. The supported types for this container are: Passing any type which is not on this to any method on this interface will cause an to be thrown. Initializes a new instance of the class. Initializes a new instance of the class with a specified object. The object. Removes a single-instance service from the default services. The type of the service. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Gets a service of the specified type. The first instance of the service, or null if the service is not found. The type of service. Gets the list of service objects for a given service type, and validates the service type. The list of service objects of the specified type. The service type. Gets the list of service objects for a given service type. The list of service objects of the specified type, or an empty list if the service is not found. The type of service. Queries whether a service type is single-instance. true if the service type has at most one instance, or false if the service type supports multiple instances. The service type. Replaces a single-instance service object. The service type. The service object that replaces the previous instance. Removes the cached values for a single service type. The service type. Represents a performance tracing class to log method entry/exit and duration. Initializes the class with a specified configuration. The configuration. Represents the trace writer. Invokes the specified traceAction to allow setting values in a new if and only if tracing is permitted at the given category and level. The current . It may be null but doing so will prevent subsequent trace analysis from correlating the trace to a particular request. The logical category for the trace. Users can define their own. The at which to write this trace. The action to invoke if tracing is enabled. The caller is expected to fill in the fields of the given in this action. Represents an extension methods for . Provides a set of methods and properties that help debug your code with the specified writer, request, category and exception. The . The with which to associate the trace. It may be null. The logical category of the trace. The error occurred during execution. Provides a set of methods and properties that help debug your code with the specified writer, request, category, exception, message format and argument. The . The with which to associate the trace. It may be null. The logical category of the trace. The error occurred during execution. The format of the message. The message argument. Provides a set of methods and properties that help debug your code with the specified writer, request, category, exception, message format and argument. The . The with which to associate the trace. It may be null. The logical category of the trace. The format of the message. The message argument. Displays an error message in the list with the specified writer, request, category and exception. The . The with which to associate the trace. It may be null. The logical category of the trace. The error occurred during execution. Displays an error message in the list with the specified writer, request, category, exception, message format and argument. The . The with which to associate the trace. It may be null. The logical category of the trace. The exception. The format of the message. The argument in the message. Displays an error message in the list with the specified writer, request, category, message format and argument. The . The with which to associate the trace. It may be null. The logical category of the trace. The format of the message. The argument in the message. Displays an error message in the class with the specified writer, request, category and exception. The . The with which to associate the trace. It may be null. The logical category of the trace. The exception that appears during execution. Displays an error message in the class with the specified writer, request, category and exception, message format and argument. The . The with which to associate the trace. It may be null. The logical category of the trace. The exception. The format of the message. The message argument. Displays an error message in the class with the specified writer, request, category and message format and argument. The . The with which to associate the trace. It may be null. The logical category of the trace. The format of the message. The message argument. Displays the details in the . The . The with which to associate the trace. It may be null. The logical category of the trace. The error occurred during execution. Displays the details in the . The . The with which to associate the trace. It may be null. The logical category of the trace. The error occurred during execution. The format of the message. The message argument. Displays the details in the . The . The with which to associate the trace. It may be null. The logical category of the trace. The format of the message. The message argument. Indicates the trace listeners in the Listeners collection. The . The with which to associate the trace. It may be null. The logical category of the trace. The trace level. The error occurred during execution. Indicates the trace listeners in the Listeners collection. The . The with which to associate the trace. It may be null. The logical category of the trace. The trace level. The error occurred during execution. The format of the message. The message argument. Indicates the trace listeners in the Listeners collection. The . The with which to associate the trace. It may be null. The logical category of the trace. The of the trace. The format of the message. The message argument. Traces both a begin and an end trace around a specified operation. The . The with which to associate the trace. It may be null. The logical category of the trace. The of the trace. The name of the object performing the operation. It may be null. The name of the operation being performed. It may be null. The to invoke prior to performing the operation, allowing the given to be filled in. It may be null. An <see cref="T:System.Func`1" /> that returns the that will perform the operation. The to invoke after successfully performing the operation, allowing the given to be filled in. It may be null. The to invoke if an error was encountered performing the operation, allowing the given to be filled in. It may be null. Traces both a begin and an end trace around a specified operation. The returned by the operation. The . The with which to associate the trace. It may be null. The logical category of the trace. The of the trace. The name of the object performing the operation. It may be null. The name of the operation being performed. It may be null. The to invoke prior to performing the operation, allowing the given to be filled in. It may be null. An <see cref="T:System.Func`1" /> that returns the that will perform the operation. The to invoke after successfully performing the operation, allowing the given to be filled in. The result of the completed task will also be passed to this action. This action may be null. The to invoke if an error was encountered performing the operation, allowing the given to be filled in. It may be null. The type of result produced by the . Traces both a begin and an end trace around a specified operation. The returned by the operation. The . The with which to associate the trace. It may be null. The logical category of the trace. The of the trace. The name of the object performing the operation. It may be null. The name of the operation being performed. It may be null. The to invoke prior to performing the operation, allowing the given to be filled in. It may be null. An <see cref="T:System.Func`1" /> that returns the that will perform the operation. The to invoke after successfully performing the operation, allowing the given to be filled in. It may be null. The to invoke if an error was encountered performing the operation, allowing the given to be filled in. It may be null. Indicates the warning level of execution. The . The with which to associate the trace. It may be null. The logical category of the trace. The error occurred during execution. Indicates the warning level of execution. The . The with which to associate the trace. It may be null. The logical category of the trace. The error occurred during execution. The format of the message. The message argument. Indicates the warning level of execution. The . The with which to associate the trace. It may be null. The logical category of the trace. The format of the message. The message argument. Specifies an enumeration of tracing categories. An action category. The controllers category. The filters category. The formatting category. The message handlers category. The model binding category. The request category. The routing category. Specifies the kind of tracing operation. Single trace, not part of a Begin/End trace pair. Trace marking the beginning of some operation. Trace marking the end of some operation. Specifies an enumeration of tracing level. Tracing is disabled. Trace level for debugging traces. Trace level for informational traces. Trace level for warning traces. Trace level for error traces. Trace level for fatal traces. Represents a trace record. Initializes a new instance of the class. The message request. The trace category. The trace level. Gets or sets the tracing category. The tracing category. Gets or sets the exception. The exception. Gets or sets the kind of trace. The kind of trace. Gets or sets the tracing level. The tracing level. Gets or sets the message. The message. Gets or sets the logical operation name being performed. The logical operation name being performed. Gets or sets the logical name of the object performing the operation. The logical name of the object performing the operation. Gets the optional user-defined properties. The optional user-defined properties. Gets the from the record. The from the record. Gets the correlation ID from the . The correlation ID from the . Gets or sets the associated with the . The associated with the . Gets the of this trace (via ). The of this trace (via ). Represents a class used to recursively validate an object. Initializes a new instance of the class. Determines whether the model is valid and adds any validation errors to the actionContext's . True if model is valid, false otherwise. The model to be validated. The to use for validation. The used to provide the model metadata. The within which the model is being validated. The to append to the key for any validation errors. Represents an interface for the validation of the models Determines whether the model is valid and adds any validation errors to the actionContext's trueif model is valid, false otherwise. The model to be validated. The to use for validation. The used to provide the model metadata. The within which the model is being validated. The to append to the key for any validation errors. This logs formatter errors to the provided . Initializes a new instance of the class. The model state. The prefix. Logs the specified model error. The error path. The error message. Logs the specified model error. The error path. The error message. Provides data for the event. Initializes a new instance of the class. The action context. The parent node. Gets or sets the context for an action. The context for an action. Gets or sets the parent of this node. The parent of this node. Provides data for the event. Initializes a new instance of the class. The action context. The parent node. Gets or sets the context for an action. The context for an action. Gets or sets the parent of this node. The parent of this node. Provides a container for model validation information. Initializes a new instance of the class, using the model metadata and state key. The model metadata. The model state key. Initializes a new instance of the class, using the model metadata, the model state key, and child model-validation nodes. The model metadata. The model state key. The model child nodes. Gets or sets the child nodes. The child nodes. Combines the current instance with a specified instance. The model validation node to combine with the current instance. Gets or sets the model metadata. The model metadata. Gets or sets the model state key. The model state key. Gets or sets a value that indicates whether validation should be suppressed. true if validation should be suppressed; otherwise, false. Validates the model using the specified execution context. The action context. Validates the model using the specified execution context and parent node. The action context. The parent node. Gets or sets a value that indicates whether all properties of the model should be validated. true if all properties of the model should be validated, or false if validation should be skipped. Occurs when the model has been validated. Occurs when the model is being validated. Represents the selection of required members by checking for any required ModelValidators associated with the member. Initializes a new instance of the class. The metadata provider. The validator providers. Indicates whether the member is required for validation. true if the member is required for validation; otherwise, false. The member. Provides a container for a validation result. Initializes a new instance of the class. Gets or sets the name of the member. The name of the member. Gets or sets the validation result message. The validation result message. Provides a base class for implementing validation logic. Initializes a new instance of the class. The validator providers. Returns a composite model validator for the model. A composite model validator for the model. An enumeration of validator providers. Gets a value that indicates whether a model property is required. true if the model property is required; otherwise, false. Validates a specified object. A list of validation results. The metadata. The container. Gets or sets an enumeration of validator providers. An enumeration of validator providers. Provides a list of validators for a model. Initializes a new instance of the class. Gets a list of validators associated with this . The list of validators. The metadata. The validator providers. Provides an abstract class for classes that implement a validation provider. Initializes a new instance of the class. Gets a type descriptor for the specified type. A type descriptor for the specified type. The type of the validation provider. Gets the validators for the model using the metadata and validator providers. The validators for the model. The metadata. An enumeration of validator providers. Gets the validators for the model using the metadata, the validator providers, and a list of attributes. The validators for the model. The metadata. An enumeration of validator providers. The list of attributes. Represents the method that creates a instance. Represents an implementation of which providers validators for attributes which derive from . It also provides a validator for types which implement . To support client side validation, you can either register adapters through the static methods on this class, or by having your validation attributes implement . The logic to support IClientValidatable is implemented in . Initializes a new instance of the class. Gets the validators for the model using the specified metadata, validator provider and attributes. The validators for the model. The metadata. The validator providers. The attributes. Registers an adapter to provide client-side validation. The type of the validation attribute. The type of the adapter. Registers an adapter factory for the validation provider. The type of the attribute. The factory that will be used to create the object for the specified attribute. Registers the default adapter. The type of the adapter. Registers the default adapter factory. The factory that will be used to create the object for the default adapter. Registers the default adapter type for objects which implement . The adapter type must derive from and it must contain a public constructor which takes two parameters of types and . The type of the adapter. Registers the default adapter factory for objects which implement . The factory. Registers an adapter type for the given modelType, which must implement . The adapter type must derive from and it must contain a public constructor which takes two parameters of types and . The model type. The type of the adapter. Registers an adapter factory for the given modelType, which must implement . The model type. The factory. Provides a factory for validators that are based on . Represents a validator provider for data member model. Initializes a new instance of the class. Gets the validators for the model. The validators for the model. The metadata. An enumerator of validator providers. A list of attributes. An implementation of which provides validators that throw exceptions when the model is invalid. Initializes a new instance of the class. Gets a list of validators associated with this . The list of validators. The metadata. The validator providers. The list of attributes. Represents the provider for the required member model validator. Initializes a new instance of the class. The required member selector. Gets the validator for the member model. The validator for the member model. The metadata. The validator providers Provides a model validator. Initializes a new instance of the class. The validator providers. The validation attribute for the model. Gets or sets the validation attribute for the model validator. The validation attribute for the model validator. Gets a value that indicates whether model validation is required. true if model validation is required; otherwise, false. Validates the model and returns the validation errors if any. A list of validation error messages for the model, or an empty list if no errors have occurred. The model metadata. The container for the model. A to represent an error. This validator will always throw an exception regardless of the actual model value. Initializes a new instance of the class. The list of model validator providers. The error message for the exception. Validates a specified object. A list of validation results. The metadata. The container. Represents the for required members. Initializes a new instance of the class. The validator providers. Gets or sets a value that instructs the serialization engine that the member must be presents when validating. true if the member is required; otherwise, false. Validates the object. A list of validation results. The metadata. The container. Provides an object adapter that can be validated. Initializes a new instance of the class. The validation provider. Validates the specified object. A list of validation results. The metadata. The container. Represents the base class for value providers whose values come from a collection that implements the interface. Retrieves the keys from the specified . The keys from the specified . The prefix. Defines the methods that are required for a value provider in ASP.NET MVC. Determines whether the collection contains the specified prefix. true if the collection contains the specified prefix; otherwise, false. The prefix to search for. Retrieves a value object using the specified key. The value object for the specified key. The key of the value object to retrieve. This attribute is used to specify a custom . Initializes a new instance of the . The type of the model binder. Initializes a new instance of the . An array of model binder types. Gets the value provider factories. A collection of value provider factories. A configuration object. Gets the types of object returned by the value provider factory. A collection of types. Represents a factory for creating value-provider objects. Initializes a new instance of the class. Returns a value-provider object for the specified controller context. A value-provider object. An object that encapsulates information about the current HTTP request. Represents the result of binding a value (such as from a form post or query string) to an action-method argument property, or to the argument itself. Initializes a new instance of the class. Initializes a new instance of the class. The raw value. The attempted value. The culture. Gets or sets the raw value that is converted to a string for display. The raw value that is converted to a string for display. Converts the value that is encapsulated by this result to the specified type. The converted value. The target type. Converts the value that is encapsulated by this result to the specified type by using the specified culture information. The converted value. The target type. The culture to use in the conversion. Gets or sets the culture. The culture. Gets or set the raw value that is supplied by the value provider. The raw value that is supplied by the value provider. Represents a value provider whose values come from a list of value providers that implements the interface. Initializes a new instance of the class. Initializes a new instance of the class. The list of value providers. Determines whether the collection contains the specified . true if the collection contains the specified ; otherwise, false. The prefix to search for. Retrieves the keys from the specified . The keys from the specified . The prefix from which keys are retrieved. Retrieves a value object using the specified . The value object for the specified . The key of the value object to retrieve. Inserts an element into the collection at the specified index. The zero-based index at which should be inserted. The object to insert. Replaces the element at the specified index. The zero-based index of the element to replace. The new value for the element at the specified index. Represents a factory for creating a list of value-provider objects. Initializes a new instance of the class. The collection of value-provider factories. Retrieves a list of value-provider objects for the specified controller context. The list of value-provider objects for the specified controller context. An object that encapsulates information about the current HTTP request. A value provider for name/value pairs. Initializes a new instance of the class. The name/value pairs for the provider. The culture used for the name/value pairs. Initializes a new instance of the class, using a function delegate to provide the name/value pairs. A function delegate that returns a collection of name/value pairs. The culture used for the name/value pairs. Determines whether the collection contains the specified prefix. true if the collection contains the specified prefix; otherwise, false. The prefix to search for. Gets the keys from a prefix. The keys. The prefix. Retrieves a value object using the specified key. The value object for the specified key. The key of the value object to retrieve. Represents a value provider for query strings that are contained in a object. Initializes a new instance of the class. An object that encapsulates information about the current HTTP request. An object that contains information about the target culture. Represents a class that is responsible for creating a new instance of a query-string value-provider object. Initializes a new instance of the class. Retrieves a value-provider object for the specified controller context. A query-string value-provider object. An object that encapsulates information about the current HTTP request. Represents a value provider for route data that is contained in an object that implements the IDictionary(Of TKey, TValue) interface. Initializes a new instance of the class. An object that contain information about the HTTP request. An object that contains information about the target culture. Represents a factory for creating route-data value provider objects. Initializes a new instance of the class. Retrieves a value-provider object for the specified controller context. A value-provider object. An object that encapsulates information about the current HTTP request. ================================================ FILE: packages/Microsoft.AspNet.WebApi.WebHost.4.0.20710.0/lib/net40/System.Web.Http.WebHost.xml ================================================  System.Web.Http.WebHost Provides a global for ASP.NET applications. Gets the default message handler that will be called for all requests. Extension methods for Maps the specified route template. A reference to the mapped route. A collection of routes for the application. The name of the route to map. The route template for the route. Maps the specified route template and sets default route. A reference to the mapped route. A collection of routes for the application. The name of the route to map. The route template for the route. An object that contains default route values. Maps the specified route template and sets default route values and constraints. A reference to the mapped route. A collection of routes for the application. The name of the route to map. The route template for the route. An object that contains default route values. A set of expressions that specify values for routeTemplate. Maps the specified route template and sets default route values, constraints, and end-point message handler. A reference to the mapped route. A collection of routes for the application. The name of the route to map. The route template for the route. An object that contains default route values. A set of expressions that specify values for routeTemplate. The handler to which the request will be dispatched. A that passes ASP.NET requests into the pipeline and write the result back. Initializes a new instance of the class. The route data. Begins the process request. An that contains information about the status of the process. The HTTP context base. The callback. The state. Provides an asynchronous process End method when the process ends. An that contains information about the status of the process. Gets a value indicating whether another request can use the instance. Processes the request. The HTTP context base. Begins processing the request. An that contains information about the status of the process. The HTTP context. The callback. The state. Provides an asynchronous process End method when the process ends. An that contains information about the status of the process. Gets a value indicating whether another request can use the instance. Processes the request. The HTTP context base. A that returns instances of that can pass requests to a given instance. Initializes a new instance of the class. Provides the object that processes the request. An object that processes the request. An object that encapsulates information about the request. Gets the singleton instance. Provides the object that processes the request. An object that processes the request. An object that encapsulates information about the request. Provides a registration point for the simple membership pre-application start code. Registers the simple membership pre-application start code. Represents the web host buffer policy selector. Initializes a new instance of the class. Gets a value that indicates whether the host should buffer the entity body of the HTTP request. true if buffering should be used; otherwise a streamed request should be used. The host context. Uses a buffered output stream for the web host. A buffered output stream. The response. ================================================ FILE: packages/Microsoft.AspNet.WebPages.2.0.20710.0/lib/net40/System.Web.Helpers.xml ================================================  System.Web.Helpers Displays data in the form of a graphical chart. Initializes a new instance of the class. The width, in pixels, of the complete chart image. The height, in pixels, of the complete chart image. (Optional) The template (theme) to apply to the chart. (Optional) The template (theme) path and file name to apply to the chart. Adds a legend to the chart. The chart. The text of the legend title. The unique name of the legend. Provides data points and series attributes for the chart. The chart. The unique name of the series. The chart type of a series. The name of the chart area that is used to plot the data series. The axis label text for the series. The name of the series that is associated with the legend. The granularity of data point markers. The values to plot along the x-axis. The name of the field for x-values. The values to plot along the y-axis. A comma-separated list of name or names of the field or fields for y-values. Adds a title to the chart. The chart. The title text. The unique name of the title. Binds a chart to a data table, where one series is created for each unique value in a column. The chart. The chart data source. The name of the column that is used to group data into the series. The name of the column for x-values. A comma-separated list of names of the columns for y-values. Other data point properties that can be bound. The order in which the series will be sorted. The default is "Ascending". Creates and binds series data to the specified data table, and optionally populates multiple x-values. The chart. The chart data source. This can be can be any object. The name of the table column used for the series x-values. Gets or sets the name of the file that contains the chart image. The name of the file. Returns a chart image as a byte array. The chart. The image format. The default is "jpeg". Retrieves the specified chart from the cache. The chart. The ID of the cache item that contains the chart to retrieve. The key is set when you call the method. Gets or sets the height, in pixels, of the chart image. The chart height. Saves a chart image to the specified file. The chart. The location and name of the image file. The image file format, such as "png" or "jpeg". Saves a chart in the system cache. The ID of the cache item that contains the chart. The ID of the chart in the cache. The number of minutes to keep the chart image in the cache. The default is 20. true to indicate that the chart cache item's expiration is reset each time the item is accessed, or false to indicate that the expiration is based on an absolute interval since the time that the item was added to the cache. The default is true. Saves a chart as an XML file. The chart. The path and name of the XML file. Sets values for the horizontal axis. The chart. The title of the x-axis. The minimum value for the x-axis. The maximum value for the x-axis. Sets values for the vertical axis. The chart. The title of the y-axis. The minimum value for the y-axis. The maximum value for the y-axis. Creates a object based on the current object. The chart. The format of the image to save the object as. The default is "jpeg". The parameter is not case sensitive. Gets or set the width, in pixels, of the chart image. The chart width. Renders the output of the object as an image. The chart. The format of the image. The default is "jpeg". Renders the output of a object that has been cached as an image. The chart. The ID of the chart in the cache. The format of the image. The default is "jpeg". Specifies visual themes for a object. A theme for 2D charting that features a visual container with a blue gradient, rounded edges, drop-shadowing, and high-contrast gridlines. A theme for 2D charting that features a visual container with a green gradient, rounded edges, drop-shadowing, and low-contrast gridlines. A theme for 2D charting that features no visual container and no gridlines. A theme for 3D charting that features no visual container, limited labeling and, sparse, high-contrast gridlines. A theme for 2D charting that features a visual container that has a yellow gradient, rounded edges, drop-shadowing, and high-contrast gridlines. Provides methods to generate hash values and encrypt passwords or other sensitive data. Generates a cryptographically strong sequence of random byte values. The generated salt value as a base-64-encoded string. The number of cryptographically random bytes to generate. Returns a hash value for the specified byte array. The hash value for as a string of hexadecimal characters. The data to provide a hash value for. The algorithm that is used to generate the hash value. The default is "sha256". is null. Returns a hash value for the specified string. The hash value for as a string of hexadecimal characters. The data to provide a hash value for. The algorithm that is used to generate the hash value. The default is "sha256". is null. Returns an RFC 2898 hash value for the specified password. The hash value for as a base-64-encoded string. The password to generate a hash value for. is null. Returns a SHA-1 hash value for the specified string. The SHA-1 hash value for as a string of hexadecimal characters. The data to provide a hash value for. is null. Returns a SHA-256 hash value for the specified string. The SHA-256 hash value for as a string of hexadecimal characters. The data to provide a hash value for. is null. Determines whether the specified RFC 2898 hash and password are a cryptographic match. true if the hash value is a cryptographic match for the password; otherwise, false. The previously-computed RFC 2898 hash value as a base-64-encoded string. The plaintext password to cryptographically compare with . or is null. Represents a series of values as a JavaScript-like array by using the dynamic capabilities of the Dynamic Language Runtime (DLR). Initializes a new instance of the class using the specified array element values. An array of objects that contains the values to add to the instance. Returns an enumerator that can be used to iterate through the elements of the instance. An enumerator that can be used to iterate through the elements of the JSON array. Returns the value at the specified index in the instance. The value at the specified index. The zero-based index of the value in the JSON array to return. Returns the number of elements in the instance. The number of elements in the JSON array. Converts a instance to an array of objects. The array of objects that represents the JSON array. The JSON array to convert. Converts a instance to an array of objects. The array of objects that represents the JSON array. The JSON array to convert. Returns an enumerator that can be used to iterate through a collection. An enumerator that can be used to iterate through the collection. Converts the instance to a compatible type. true if the conversion was successful; otherwise, false. Provides information about the conversion operation. When this method returns, contains the result of the type conversion operation. This parameter is passed uninitialized. Tests the instance for dynamic members (which are not supported) in a way that does not cause an exception to be thrown. true in all cases. Provides information about the get operation. When this method returns, contains null. This parameter is passed uninitialized. Represents a collection of values as a JavaScript-like object by using the capabilities of the Dynamic Language Runtime. Initializes a new instance of the class using the specified field values. A dictionary of property names and values to add to the instance as dynamic members. Returns a list that contains the name of all dynamic members (JSON fields) of the instance. A list that contains the name of every dynamic member (JSON field). Converts the instance to a compatible type. true in all cases. Provides information about the conversion operation. When this method returns, contains the result of the type conversion operation. This parameter is passed uninitialized. The instance could not be converted to the specified type. Gets the value of a field using the specified index. true in all cases. Provides information about the indexed get operation. An array that contains a single object that indexes the field by name. The object must be convertible to a string that specifies the name of the JSON field to return. If multiple indexes are specified, contains null when this method returns. When this method returns, contains the value of the indexed field, or null if the get operation was unsuccessful. This parameter is passed uninitialized. Gets the value of a field using the specified name. true in all cases. Provides information about the get operation. When this method returns, contains the value of the field, or null if the get operation was unsuccessful. This parameter is passed uninitialized. Sets the value of a field using the specified index. true in all cases. Provides information about the indexed set operation. An array that contains a single object that indexes the field by name. The object must be convertible to a string that specifies the name of the JSON field to return. If multiple indexes are specified, no field is changed or added. The value to set the field to. Sets the value of a field using the specified name. true in all cases. Provides information about the set operation. The value to set the field to. Provides methods for working with data in JavaScript Object Notation (JSON) format. Converts data in JavaScript Object Notation (JSON) format into the specified strongly typed data list. The JSON-encoded data converted to a strongly typed list. The JSON-encoded string to convert. The type of the strongly typed list to convert JSON data into. Converts data in JavaScript Object Notation (JSON) format into a data object. The JSON-encoded data converted to a data object. The JSON-encoded string to convert. Converts data in JavaScript Object Notation (JSON) format into a data object of a specified type. The JSON-encoded data converted to the specified type. The JSON-encoded string to convert. The type that the data should be converted to. Converts a data object to a string that is in the JavaScript Object Notation (JSON) format. Returns a string of data converted to the JSON format. The data object to convert. Converts a data object to a string in JavaScript Object Notation (JSON) format and adds the string to the specified object. The data object to convert. The object that contains the converted JSON data. Renders the property names and values of the specified object and of any subobjects that it references. Renders the property names and values of the specified object and of any subobjects. For a simple variable, returns the type and the value. For an object that contains multiple items, returns the property name or key and the value for each property. The object to render information for. Optional. Specifies the depth of nested subobjects to render information for. The default is 10. Optional. Specifies the maximum number of characters that the method displays for object values. The default is 1000. is less than zero. is less than or equal to zero. Displays information about the web server environment that hosts the current web page. Displays information about the web server environment. A string of name-value pairs that contains information about the web server. Specifies the direction in which to sort a list of items. Sort from smallest to largest —for example, from 1 to 10. Sort from largest to smallest — for example, from 10 to 1. Provides a cache to store frequently accessed data. Retrieves the specified item from the object. The item retrieved from the cache, or null if the item is not found. The identifier for the cache item to retrieve. Removes the specified item from the object. The item removed from the object. If the item is not found, returns null. The identifier for the cache item to remove. Inserts an item into the object. The identifier for the cache item. The data to insert into the cache. Optional. The number of minutes to keep an item in the cache. The default is 20. Optional. true to indicate that the cache item expiration is reset each time the item is accessed, or false to indicate that the expiration is based the absolute time since the item was added to the cache. The default is true. In that case, if you also use the default value for the parameter, a cached item expires 20 minutes after it was last accessed. The value of is less than or equal to zero. Sliding expiration is enabled and the value of is greater than a year. Displays data on a web page using an HTML table element. Initializes a new instance of the class. The data to display. A collection that contains the names of the data columns to display. By default, this value is auto-populated according to the values in the parameter. The name of the data column that is used to sort the grid by default. The number of rows that are displayed on each page of the grid when paging is enabled. The default is 10. true to specify that paging is enabled for the instance; otherwise false. The default is true. true to specify that sorting is enabled for the instance; otherwise, false. The default is true. The value of the HTML id attribute that is used to mark the HTML element that gets dynamic Ajax updates that are associated with the instance. The name of the JavaScript function that is called after the HTML element specified by the property has been updated. If the name of a function is not provided, no function will be called. If the specified function does not exist, a JavaScript error will occur if it is invoked. The prefix that is applied to all query-string fields that are associated with the instance. This value is used in order to support multiple instances on the same web page. The name of the query-string field that is used to specify the current page of the instance. The name of the query-string field that is used to specify the currently selected row of the instance. The name of the query-string field that is used to specify the name of the data column that the instance is sorted by. The name of the query-string field that is used to specify the direction in which the instance is sorted. Gets the name of the JavaScript function to call after the HTML element that is associated with the instance has been updated in response to an Ajax update request. The name of the function. Gets the value of the HTML id attribute that marks an HTML element on the web page that gets dynamic Ajax updates that are associated with the instance. The value of the id attribute. Binds the specified data to the instance. The bound and populated instance. The data to display. A collection that contains the names of the data columns to bind. true to enable sorting and paging of the instance; otherwise, false. The number of rows to display on each page of the grid. Gets a value that indicates whether the instance supports sorting. true if the instance supports sorting; otherwise, false. Creates a new instance. The new column. The name of the data column to associate with the instance. The text that is rendered in the header of the HTML table column that is associated with the instance. The function that is used to format the data values that are associated with the instance. A string that specifies the name of the CSS class that is used to style the HTML table cells that are associated with the instance. true to enable sorting in the instance by the data values that are associated with the instance; otherwise, false. The default is true. Gets a collection that contains the name of each data column that is bound to the instance. The collection of data column names. Returns an array that contains the specified instances. An array of columns. A variable number of column instances. Gets the prefix that is applied to all query-string fields that are associated with the instance. The query-string field prefix of the instance. Returns a JavaScript statement that can be used to update the HTML element that is associated with the instance on the specified web page. A JavaScript statement that can be used to update the HTML element in a web page that is associated with the instance. The URL of the web page that contains the instance that is being updated. The URL can include query-string arguments. Returns the HTML markup that is used to render the instance and using the specified paging options. The HTML markup that represents the fully-populated instance. The name of the CSS class that is used to style the whole table. The name of the CSS class that is used to style the table header. The name of the CSS class that is used to style the table footer. The name of the CSS class that is used to style each table row. The name of the CSS class that is used to style even-numbered table rows. The name of the CSS class that is used to style the selected table row. (Only one row can be selected at a time.) The table caption. true to display the table header; otherwise, false. The default is true. true to insert additional rows in the last page when there are insufficient data items to fill the last page; otherwise, false. The default is false. Additional rows are populated using the text specified by the parameter. The text that is used to populate additional rows in a page when there are insufficient data items to fill the last page. The parameter must be set to true to display these additional rows. A collection of instances that specify how each column is displayed. This includes which data column is associated with each grid column, and how to format the data values that each grid column contains. A collection that contains the names of the data columns to exclude when the grid auto-populates columns. A bitwise combination of the enumeration values that specify methods that are provided for moving between pages of the instance. The text for the HTML link element that is used to link to the first page of the instance. The flag of the parameter must be set to display this page navigation element. The text for the HTML link element that is used to link to previous page of the instance. The flag of the parameter must be set to display this page navigation element. The text for the HTML link element that is used to link to the next page of the instance. The flag of the parameter must be set to display this page navigation element. The text for the HTML link element that is used to link to the last page of the instance. The flag of the parameter must be set to display this page navigation element. The number of numeric page links that are provided to nearby pages. The text of each numeric page link contains the page number. The flag of the parameter must be set to display these page navigation elements. An object that represents a collection of attributes (names and values) to set for the HTML table element that represents the instance. Returns a URL that can be used to display the specified data page of the instance. A URL that can be used to display the specified data page of the grid. The index of the page to display. Returns a URL that can be used to sort the instance by the specified column. A URL that can be used to sort the grid. The name of the data column to sort by. Gets a value that indicates whether a row in the instance is selected. true if a row is currently selected; otherwise, false. Returns a value that indicates whether the instance can use Ajax calls to refresh the display. true if the instance supports Ajax calls; otherwise, false.. Gets the number of pages that the instance contains. The page count. Gets the full name of the query-string field that is used to specify the current page of the instance. The full name of the query string field that is used to specify the current page of the grid. Gets or sets the index of the current page of the instance. The index of the current page. The property cannot be set because paging is not enabled. Returns the HTML markup that is used to provide the specified paging support for the instance. The HTML markup that provides paging support for the grid. A bitwise combination of the enumeration values that specify the methods that are provided for moving between the pages of the grid. The default is the bitwise OR of the and flags. The text for the HTML link element that navigates to the first page of the grid. The text for the HTML link element that navigates to the previous page of the grid. The text for the HTML link element that navigates to the next page of the grid. The text for the HTML link element that navigates to the last page of the grid. The number of numeric page links to display. The default is 5. Gets a list that contains the rows that are on the current page of the instance after the grid has been sorted. The list of rows. Gets the number of rows that are displayed on each page of the instance. The number of rows that are displayed on each page of the grid. Gets or sets the index of the selected row relative to the current page of the instance. The index of the selected row relative to the current page. Gets the currently selected row of the instance. The currently selected row. Gets the full name of the query-string field that is used to specify the selected row of the instance. The full name of the query string field that is used to specify the selected row of the grid. Gets or sets the name of the data column that the instance is sorted by. The name of the data column that is used to sort the grid. Gets or sets the direction in which the instance is sorted. The sort direction. Gets the full name of the query-string field that is used to specify the sort direction of the instance. The full name of the query string field that is used to specify the sort direction of the grid. Gets the full name of the query-string field that is used to specify the name of the data column that the instance is sorted by. The full name of the query-string field that is used to specify the name of the data column that the grid is sorted by. Returns the HTML markup that is used to render the instance. The HTML markup that represents the fully-populated instance. The name of the CSS class that is used to style the whole table. The name of the CSS class that is used to style the table header. The name of the CSS class that is used to style the table footer. The name of the CSS class that is used to style each table row. The name of the CSS class that is used to style even-numbered table rows. The name of the CSS class that is used use to style the selected table row. The table caption. true to display the table header; otherwise, false. The default is true. true to insert additional rows in the last page when there are insufficient data items to fill the last page; otherwise, false. The default is false. Additional rows are populated using the text specified by the parameter. The text that is used to populate additional rows in the last page when there are insufficient data items to fill the last page. The parameter must be set to true to display these additional rows. A collection of instances that specify how each column is displayed. This includes which data column is associated with each grid column, and how to format the data values that each grid column contains. A collection that contains the names of the data columns to exclude when the grid auto-populates columns. A function that returns the HTML markup that is used to render the table footer. An object that represents a collection of attributes (names and values) to set for the HTML table element that represents the instance. Gets the total number of rows that the instance contains. The total number of rows in the grid. This value includes all rows from every page, but does not include the additional rows inserted in the last page when there are insufficient data items to fill the last page. Represents a column in a instance. Initializes a new instance of the class. Gets or sets a value that indicates whether the column can be sorted. true to indicate that the column can be sorted; otherwise, false. Gets or sets the name of the data item that is associated with the column. The name of the data item. Gets or sets a function that is used to format the data item that is associated with the column. The function that is used to format that data item that is associated with the column. Gets or sets the text that is rendered in the header of the column. The text that is rendered to the column header. Gets or sets the CSS class attribute that is rendered as part of the HTML table cells that are associated with the column. The CSS class attribute that is applied to cells that are associated with the column. Specifies flags that describe the methods that are provided for moving between the pages of a instance. Indicates that methods for moving to a nearby page by using a page number are provided. Indicates that methods for moving to the next or previous page are provided. Indicates that methods for moving directly to the first or last page are provided. Indicates that all methods for moving between pages are provided. Represents a row in a instance. Initializes a new instance of the class using the specified instance, row value, and index. The instance that contains the row. An object that contains a property member for each value in the row. The index of the row. Returns an enumerator that can be used to iterate through the values of the instance. An enumerator that can be used to iterate through the values of the row. Returns an HTML element (a link) that users can use to select the row. The link that users can click to select the row. The inner text of the link element. If is empty or null, "Select" is used. Returns the URL that can be used to select the row. The URL that is used to select a row. Returns the value at the specified index in the instance. The value at the specified index. The zero-based index of the value in the row to return. is less than 0 or greater than or equal to the number of values in the row. Returns the value that has the specified name in the instance. The specified value. The name of the value in the row to return. is null or empty. specifies a value that does not exist. Returns an enumerator that can be used to iterate through a collection. An enumerator that can be used to iterate through the collection. Returns a string that represents all of the values of the instance. A string that represents the row's values. Returns the value of a member that is described by the specified binder. true if the value of the item was successfully retrieved; otherwise, false. The getter of the bound property member. When this method returns, contains an object that holds the value of the item described by . This parameter is passed uninitialized. Gets an object that contains a property member for each value in the row. An object that contains each value in the row as a property. Gets the instance that the row belongs to. The instance that contains the row. Represents an object that lets you display and manage images in a web page. Initializes a new instance of the class using a byte array to represent the image. The image. Initializes a new instance of the class using a stream to represent the image. The image. Initializes a new instance of the class using a path to represent the image location. The path of the file that contains the image. Adds a watermark image using a path to the watermark image. The watermarked image. The path of a file that contains the watermark image. The width, in pixels, of the watermark image. The height, in pixels, of the watermark image. The horizontal alignment for watermark image. Values can be "Left", "Right", or "Center". The vertical alignment for the watermark image. Values can be "Top", "Middle", or "Bottom". The opacity for the watermark image, specified as a value between 0 and 100. The size, in pixels, of the padding around the watermark image. Adds a watermark image using the specified image object. The watermarked image. A object. The width, in pixels, of the watermark image. The height, in pixels, of the watermark image. The horizontal alignment for watermark image. Values can be "Left", "Right", or "Center". The vertical alignment for the watermark image. Values can be "Top", "Middle", or "Bottom". The opacity for the watermark image, specified as a value between 0 and 100. The size, in pixels, of the padding around the watermark image. Adds watermark text to the image. The watermarked image. The text to use as a watermark. The color of the watermark text. The font size of the watermark text. The font style of the watermark text. The font type of the watermark text. The horizontal alignment for watermark text. Values can be "Left", "Right", or "Center". The vertical alignment for the watermark text. Values can be "Top", "Middle", or "Bottom". The opacity for the watermark image, specified as a value between 0 and 100. The size, in pixels, of the padding around the watermark text. Copies the object. The image. Crops an image. The cropped image. The number of pixels to remove from the top. The number of pixels to remove from the left. The number of pixels to remove from the bottom. The number of pixels to remove from the right. Gets or sets the file name of the object. The file name. Flips an image horizontally. The flipped image. Flips an image vertically. The flipped image. Returns the image as a byte array. The image. The value of the object. Returns an image that has been uploaded using the browser. The image. (Optional) The name of the file that has been posted. If no file name is specified, the first file that was uploaded is returned. Gets the height, in pixels, of the image. The height. Gets the format of the image (for example, "jpeg" or "png"). The file format of the image. Resizes an image. The resized image. The width, in pixels, of the object. The height, in pixels, of the object. true to preserve the aspect ratio of the image; otherwise, false. true to prevent the enlargement of the image; otherwise, false. Rotates an image to the left. The rotated image. Rotates an image to the right. The rotated image. Saves the image using the specified file name. The image. The path to save the image to. The format to use when the image file is saved, such as "gif", or "png". true to force the correct file-name extension to be used for the format that is specified in ; otherwise, false. If there is a mismatch between the file type and the specified file-name extension, and if is true, the correct extension will be appended to the file name. For example, a PNG file named Photograph.txt is saved using the name Photograph.txt.png. Gets the width, in pixels, of the image. The width. Renders an image to the browser. The image. (Optional) The file format to use when the image is written. Provides a way to construct and send an email message using Simple Mail Transfer Protocol (SMTP). Gets or sets a value that indicates whether Secure Sockets Layer (SSL) is used to encrypt the connection when an email message is sent. true if SSL is used to encrypt the connection; otherwise, false. Gets or sets the email address of the sender. The email address of the sender. Gets or sets the password of the sender's email account. The sender's password. Sends the specified message to an SMTP server for delivery. The email address of the recipient or recipients. Separate multiple recipients using a semicolon (;). The subject line for the email message. The body of the email message. If is true, HTML in the body is interpreted as markup. (Optional) The email address of the message sender, or null to not specify a sender. The default value is null. (Optional) The email addresses of additional recipients to send a copy of the message to, or null if there are no additional recipients. Separate multiple recipients using a semicolon (;). The default value is null. (Optional) A collection of file names that specifies the files to attach to the email message, or null if there are no files to attach. The default value is null. (Optional) true to specify that the email message body is in HTML format; false to indicate that the body is in plain-text format. The default value is true. (Optional) A collection of headers to add to the normal SMTP headers included in this email message, or null to send no additional headers. The default value is null. (Optional) The email addresses of additional recipients to send a "blind" copy of the message to, or null if there are no additional recipients. Separate multiple recipients using a semicolon (;). The default value is null. (Optional) The encoding to use for the body of the message. Possible values are property values for the class, such as . The default value is null. (Optional) The encoding to use for the header of the message. Possible values are property values for the class, such as . The default value is null. (Optional) A value ("Normal", "Low", "High") that specifies the priority of the message. The default is "Normal". (Optional) The email address that will be used when the recipient replies to the message. The default value is null, which indicates that the reply address is the value of the From property. Gets or sets the port that is used for SMTP transactions. The port that is used for SMTP transactions. Gets or sets the name of the SMTP server that is used to transmit the email message. The SMTP server. Gets or sets a value that indicates whether the default credentials are sent with the requests. true if credentials are sent with the email message; otherwise, false. Gets or sets the name of email account that is used to send email. The name of the user account. ================================================ FILE: packages/Microsoft.AspNet.WebPages.2.0.20710.0/lib/net40/System.Web.WebPages.Deployment.xml ================================================  System.Web.WebPages.Deployment Provides a registration point for pre-application start code for Web Pages deployment. Registers pre-application start code for Web Pages deployment. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. The path of the root directory for the application. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. ================================================ FILE: packages/Microsoft.AspNet.WebPages.2.0.20710.0/lib/net40/System.Web.WebPages.Razor.xml ================================================  System.Web.WebPages.Razor This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. Provides configuration system support for the host configuration section. Initializes a new instance of the class. Gets or sets the host factory. The host factory. Represents the name of the configuration section for a Razor host environment. Provides configuration system support for the pages configuration section. Initializes a new instance of the class. Gets or sets the collection of namespaces to add to Web Pages pages in the current application. The collection of namespaces. Gets or sets the name of the page base type class. The name of the page base type class. Represents the name of the configuration section for Razor pages. Provides configuration system support for the system.web.webPages.razor configuration section. Initializes a new instance of the class. Represents the name of the configuration section for Razor Web section. Contains the static, read-only string "system.web.webPages.razor". Gets or sets the host value for system.web.webPages.razor section group. The host value. Gets or sets the value of the pages element for the system.web.webPages.razor section. The pages element value. ================================================ FILE: packages/Microsoft.AspNet.WebPages.2.0.20710.0/lib/net40/System.Web.WebPages.xml ================================================  System.Web.WebPages Helps prevent malicious scripts from submitting forged page requests. Adds an authenticating token to a form to help protect against request forgery. Returns a string that contains the encrypted token value in a hidden HTML field. The current object is null. Adds an authenticating token to a form to help protect against request forgery and lets callers specify authentication details. Returns the encrypted token value in a hidden HTML field. The HTTP context data for a request. An optional string of random characters (such as Z*7g1&p4) that is used to add complexity to the encryption for extra safety. The default is null. The domain of a web application that a request is submitted from. The virtual root path of a web application that a request is submitted from. is null. Validates that input data from an HTML form field comes from the user who submitted the data. The current value is null. The HTTP cookie token that accompanies a valid request is missing-or-The form token is missing.-or-The form token value does not match the cookie token value.-or-The form token value does not match the cookie token value. Validates that input data from an HTML form field comes from the user who submitted the data and lets callers specify additional validation details. The HTTP context data for a request. An optional string of random characters (such as Z*7g1&p4) that is used to decrypt an authentication token created by the class. The default is null. The current value is null. The HTTP cookie token that accompanies a valid request is missing.-or-The form token is missing.-or-The form token value does not match the cookie token value.-or-The form token value does not match the cookie token value.-or-The value supplied does not match the value that was used to create the form token. Provides programmatic configuration for the anti-forgery token system. Gets a data provider that can provide additional data to put into all generated tokens and that can validate additional data in incoming tokens. The data provider. Gets or sets the name of the cookie that is used by the anti-forgery system. The cookie name. Gets or sets a value that indicates whether the anti-forgery cookie requires SSL in order to be returned to the server. true if SSL is required to return the anti-forgery cookie to the server; otherwise, false. Gets or sets a value that indicates whether the anti-forgery system should skip checking for conditions that might indicate misuse of the system. true if the anti-forgery system should not check for possible misuse; otherwise, false. If claims-based authorization is in use, gets or sets the claim type from the identity that is used to uniquely identify the user. The claim type. Provides a way to include or validate custom data for anti-forgery tokens. Provides additional data to store for the anti-forgery tokens that are generated during this request. The supplemental data to embed in the anti-forgery token. Information about the current request. Validates additional data that was embedded inside an incoming anti-forgery token. true if the data is valid, or false if the data is invalid. Information about the current request. The supplemental data that was embedded in the token. Provides access to unvalidated form values in the object. Gets a collection of unvalidated form values that were posted from the browser. An unvalidated collection of form values. Gets the specified unvalidated object from the collection of posted values in the object. The specified member, or null if the specified item is not found. The name of the collection member to get. Gets a collection of unvalidated query-string values. A collection of unvalidated query-string values. Excludes fields of the Request object from being checked for potentially unsafe HTML markup and client script. Returns a version of form values, cookies, and query-string variables without checking them first for HTML markup and client script. An object that contains unvalidated versions of the form and query-string values. The object that contains values to exclude from request validation. Returns a value from the specified form field, cookie, or query-string variable without checking it first for HTML markup and client script. A string that contains unvalidated text from the specified field, cookie, or query-string value. The object that contains values to exclude from validation. The name of the field to exclude from validation. can refer to a form field, to a cookie, or to the query-string variable. Returns all values from the Request object (including form fields, cookies, and the query string) without checking them first for HTML markup and client script. An object that contains unvalidated versions of the form, cookie, and query-string values. The object that contains values to exclude from validation. Returns the specified value from the Request object without checking it first for HTML markup and client script. A string that contains unvalidated text from the specified field, cookie, or query-string value. The object that contains values to exclude from validation. The name of the field to exclude from validation. can refer to a form field, to a cookie, or to the query-string variable. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This member supports the .NET Framework infrastructure and is not intended to be used directly from your code. The message. The inner exception. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. The error message. The other. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. The error message. The minimum value. The maximum value. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. Contains classes and properties that are used to create HTML elements. This class is used to write helpers, such as those found in the namespace. Creates a new tag that has the specified tag name. The tag name without the "<", "/", or ">" delimiters. is null or empty. Adds a CSS class to the list of CSS classes in the tag. The CSS class to add. Gets the collection of attributes. The collection of attributes. Replaces each invalid character in the tag ID with a valid HTML character. The sanitized tag ID, or null if is null or empty, or if does not begin with a letter. The ID that might contain characters to replace. Replaces each invalid character in the tag ID with the specified replacement string. The sanitized tag ID, or null if is null or empty, or if does not begin with a letter. The ID that might contain characters to replace. The replacement string. is null. Generates a sanitized ID attribute for the tag by using the specified name. The name to use to generate an ID attribute. Gets or sets a string that can be used to replace invalid HTML characters. The string to use to replace invalid HTML characters. Gets or sets the inner HTML value for the element. The inner HTML value for the element. Adds a new attribute to the tag. The key for the attribute. The value of the attribute. Adds a new attribute or optionally replaces an existing attribute in the opening tag. The key for the attribute. The value of the attribute. true to replace an existing attribute if an attribute exists that has the specified value, or false to leave the original attribute unchanged. Adds new attributes to the tag. The collection of attributes to add. The type of the key object. The type of the value object. Adds new attributes or optionally replaces existing attributes in the tag. The collection of attributes to add or replace. For each attribute in , true to replace the attribute if an attribute already exists that has the same key, or false to leave the original attribute unchanged. The type of the key object. The type of the value object. Sets the property of the element to an HTML-encoded version of the specified string. The string to HTML-encode. Gets the tag name for this tag. The name. Renders the element as a element. Renders the HTML tag by using the specified render mode. The rendered HTML tag. The render mode. Enumerates the modes that are available for rendering HTML tags. Represents the mode for rendering normal text. Represents the mode for rendering an opening tag (for example, <tag>). Represents the mode for rendering a closing tag (for example, </tag>). Represents the mode for rendering a self-closing tag (for example, <tag />). This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. Contains methods to register assemblies as application parts. Initializes a new instance of the class by using the specified assembly and root virtual path. The assembly. The root virtual path. is null or empty. Resolves a path to the specified assembly or resource within an assembly by using the specified base virtual path and specified virtual path. The path of the assembly or resource. The assembly. The base virtual path. The virtual path. is not registered. Adds an assembly and all web pages within the assembly to the list of available application parts. The application part. is already registered. Provides objects and methods that are used to execute and render ASP.NET Web Pages application start pages (_AppStart.cshtml or _AppStart.vbhtml files). Initializes a new instance of the class. Gets the HTTP application object that references this application startup page. The HTTP application object that references this application startup page. The prefix that is applied to all keys that are added to the cache by the application start page. Gets the object that represents context data that is associated with this page. The current context data. Returns the text writer instance that is used to render the page. The text writer. Gets the output from the application start page as an HTML-encoded string. The output from the application start page as an HTML-encoded string. Gets the text writer for the page. The text writer for the page. The path to the application start page. Gets or sets the virtual path of the page. The virtual path. Writes the string representation of the specified object as an HTML-encoded string. The object to encode and write. Writes the specified object as an HTML-encoded string. The helper result to encode and write. Writes the specified object without HTML encoding. The object to write. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. Provides a way to specify custom browser (user agent) information. Removes any overridden user agent for the current request. The current context. Returns the browser capabilities object for the overridden browser capabilities or for the actual browser if no override has been specified. The browser capabilities. The current context. Returns the overridden user agent value or the actual user agent string if no override has been specified. The user agent string The current context. Gets a string that varies based on the type of the browser. A string that identifies the browser. The current context. Gets a string that varies based on the type of the browser. A string that identifies the browser. The current context base. Overrides the request's actual user agent value using the specified user agent. The current context. The user agent to use. Overrides the request's actual user agent value using the specified browser override information. The current context. One of the enumeration values that represents the browser override information to use. Specifies browser types that can be defined for the method. Specifies a desktop browser. Specifies a mobile browser. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. Represents a base class for pages that is used when ASP.NET compiles a .cshtml or .vbhtml file and that exposes page-level and application-level properties and methods. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. Gets the application-state data as a object that callers can use to create and access custom application-scoped properties. The application-state data. Gets a reference to global application-state data that can be shared across sessions and requests in an ASP.NET application. The application-state data. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. Gets the cache object for the current application domain. The cache object. Gets the object that is associated with a page. The current context data. Gets the current page for this helper page. The current page. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. Builds an absolute URL from an application-relative URL by using the specified parameters. The absolute URL. The initial path to use in the URL. Additional path information, such as folders and subfolders. Gets the object that is associated with a page. An object that supports rendering HTML form controls in a page. Gets a value that indicates whether Ajax is being used during the request of the web page. true if Ajax is being used during the request; otherwise, false. Gets a value that indicates whether the current request is a post (submitted using the HTTP POST verb). true if the HTTP verb is POST; otherwise, false. Gets the model that is associated with a page. An object that represents a model that is associated with the view data for a page. Gets the state data for the model that is associated with a page. The state of the model. Gets property-like access to page data that is shared between pages, layout pages, and partial pages. An object that contains page data. Gets and sets the HTTP context for the web page. The HTTP context for the web page. Gets array-like access to page data that is shared between pages, layout pages, and partial pages. An object that provides array-like access to page data. Gets the object for the current HTTP request. An object that contains the HTTP values that were sent by a client during a web request. Gets the object for the current HTTP response. An object that contains the HTTP-response information from an ASP.NET operation. Gets the object that provides methods that can be used as part of web-page processing. The object. Gets the object for the current HTTP request. The object for the current HTTP request. Gets data related to the URL path. Data related to the URL path. Gets a user value based on the HTTP context. A user value based on the HTTP context. Gets the virtual path of the page. The virtual path. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. Defines methods that are implemented by virtual path handler factories. Creates a handler factory for the specified virtual path. A handler factory for the specified virtual path. The virtual path. Determines whether the specified virtual path is associated with a handler factory. true if a handler factory exists for the specified virtual path; otherwise, false. The virtual path. Defines methods to implement an executor class that can execute the code on a web page. Executes the code on the specified web page. true if the executor took over execution of the web page; otherwise, false. The web page. Represents a path attribute for a web page class. Initializes a new instance of the class by using the specified virtual path. The virtual path. Gets the virtual path of the current web page. The virtual path. Provides a registration point for pre-application start code for web pages. Registers pre-application start code for web pages. Defines extension methods for the class. Determines whether the specified URL references the local computer. true if the specified URL references the local computer; otherwise, false. The HTTP request object. The URL to test. Serves as the abstract base class for the validation helper classes. Initializes a new instance of the derived class and specifies the name of the HTML element that is being validated. The name (value of the name attribute) of the user input element to validate. Initializes a new instance of the derived class, registers the specified string as the error message to display if no value is supplied, and specifies whether the method can use unvalidated data. The error message. true to use unvalidated user input; false to reject unvalidated data. This parameter is set to true by calling methods in circumstances when the actual value of the user input is not important, such as for required fields. When implemented in a derived class, gets a container for client validation for the required field. The container. Returns the HTTP context of the current request. The context. The validation context. Returns the value to validate. The value to validate. The current request. The name of the field from the current request to validate. Returns a value that indicates whether the specified value is valid. true if the value is valid; otherwise, false. The current context. The value to validate. Performs the validation test. The result of the validation test. The context. Defines extension methods for the base class. Configures the cache policy of an HTTP response instance. The HTTP response instance. The length of time, in seconds, before items expire from the cache. true to indicate that items expire from the cache on a sliding basis; false to indicate that items expire when they reach the predefined expiration time. The list of all parameters that can be received by a GET or POST operation that affect caching. The list of all HTTP headers that affect caching. The list of all Content-Encoding headers that affect caching. One of the enumeration values that specifies how items are cached. Sets the HTTP status code of an HTTP response using the specified integer value. The HTTP response instance. The HTTP status code. Sets the HTTP status code of an HTTP response using the specified HTTP status code enumeration value. The HTTP response instance. The HTTP status code Writes a sequence of bytes that represent binary content of an unspecified type to the output stream of an HTTP response. The HTTP response instance. An array that contains the bytes to write. Writes a sequence of bytes that represent binary content of the specified MIME type to the output stream of an HTTP response. The receiving HTTP response instance. An array that contains the bytes to write. The MIME type of the binary content. Provides a delegate that represents one or more methods that are called when a content section is written. Provides methods and properties that are used to render start pages that use the Razor view engine. Initializes a new instance of the class. Gets or sets the child page of the current start page. The child page of the current start page. Gets or sets the context of the page. The context of the page. Calls the methods that are used to execute the developer-written code in the _PageStart start page and in the page. Returns the text writer instance that is used to render the page. The text writer. Returns the initialization page for the specified page. The _AppStart page if the _AppStart page exists. If the _AppStart page cannot be found, returns the _PageStart page if a _PageStart page exists. If the _AppStart and _PageStart pages cannot be found, returns . The page. The file name of the page. The collection of file-name extensions that can contain ASP.NET Razor syntax, such as "cshtml" and "vbhtml". Either or are null. is null or empty. Gets or sets the path of the layout page for the page. The path of the layout page for the page. Gets property-like access to page data that is shared between pages, layout pages, and partial pages. An object that contains page data. Gets array-like access to page data that is shared between pages, layout pages, and partial pages. An object that provides array-like access to page data. Renders the page. The HTML markup that represents the web page. The path of the page to render. Additional data that is used to render the page. Executes the developer-written code in the page. Writes the string representation of the specified object as an HTML-encoded string. The object to encode and write. Writes the string representation of the specified object as an HTML-encoded string. The helper result to encode and write. Writes the string representation of the specified object without HTML encoding. The object to write. Provides utility methods for converting string values to other data types. Converts a string to a strongly typed value of the specified data type. The converted value. The value to convert. The data type to convert to. Converts a string to the specified data type and specifies a default value. The converted value. The value to convert. The value to return if is null. The data type to convert to. Converts a string to a Boolean (true/false) value. The converted value. The value to convert. Converts a string to a Boolean (true/false) value and specifies a default value. The converted value. The value to convert. The value to return if is null or is an invalid value. Converts a string to a value. The converted value. The value to convert. Converts a string to a value and specifies a default value. The converted value. The value to convert. The value to return if is null or is an invalid value. The default is the minimum time value on the system. Converts a string to a number. The converted value. The value to convert. Converts a string to a number and specifies a default value. The converted value. The value to convert. The value to return if is null or invalid. Converts a string to a number. The converted value. The value to convert. Converts a string to a number and specifies a default value. The converted value. The value to convert. The value to return if is null. Converts a string to an integer. The converted value. The value to convert. Converts a string to an integer and specifies a default value. The converted value. The value to convert. The value to return if is null or is an invalid value. Checks whether a string can be converted to the specified data type. true if can be converted to the specified type; otherwise, false. The value to test. The data type to convert to. Checks whether a string can be converted to the Boolean (true/false) type. true if can be converted to the specified type; otherwise, false. The string value to test. Checks whether a string can be converted to the type. true if can be converted to the specified type; otherwise, false. The string value to test. Checks whether a string can be converted to the type. true if can be converted to the specified type; otherwise, false. The string value to test. Checks whether a string value is null or empty. true if is null or is a zero-length string (""); otherwise, false. The string value to test. Checks whether a string can be converted to the type. true if can be converted to the specified type; otherwise, false. The string value to test. Checks whether a string can be converted to an integer. true if can be converted to the specified type; otherwise, false. The string value to test. Contains methods and properties that describe a file information template. Initializes a new instance of the class by using the specified virtual path. The virtual path. Gets the virtual path of the web page. The virtual path. Represents a last-in-first-out (LIFO) collection of template files. Returns the current template file from the specified HTTP context. The template file, removed from the top of the stack. The HTTP context that contains the stack that stores the template files. Removes and returns the template file that is at the top of the stack in the specified HTTP context. The template file, removed from the top of the stack. The HTTP context that contains the stack that stores the template files. is null. Inserts a template file at the top of the stack in the specified HTTP context. The HTTP context that contains the stack that stores the template files. The template file to push onto the specified stack. or are null. Implements validation for user input. Registers a list of user input elements for validation. The names (value of the name attribute) of the user input elements to validate. The type of validation to register for each user input element specified in . Registers a user input element for validation. The name (value of the name attribute) of the user input element to validate. A list of one or more types of validation to register. Renders an attribute that references the CSS style definition to use when validation messages for the user input element are rendered. The attribute. The name (value of the name attribute) of the user input element to validate. Renders attributes that enable client-side validation for an individual user input element. The attributes to render. The name (value of the name attribute) of the user input element to validate. Gets the name of the current form. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. The name. Returns a list of current validation errors, , and optionally lets you specify a list of fields to check. The list of errors. Optional. The names (value of the name attribute) of the user input elements to get error information for. You can specify any number of element names, separated by commas. If you do not specify a list of fields, the method returns errors for all fields. Gets the name of the class that is used to specify the appearance of error-message display when errors have occurred. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. The name. Determines whether the contents of the user input fields pass validation checks, and optionally lets you specify a list of fields to check. true if all specified field or fields pass validation checks; false if any field contains a validation error. Optional. The names (value of the name attribute) of the user input elements to check for validation errors. You can specify any number of element names, separated by commas. If you do not specify a list of fields, the method checks all elements that are registered for validation. Registers the specified field as one that requires user entry. The name (value of the name attribute) of the user input element to validate. Registers the specified field as one that requires user entry and registers the specified string as the error message to display if no value is supplied. The name (value of the name attribute) of the user input element to validate. The error message. Registers the specified fields as ones that require user entry. The names (value of the name attribute) of the user input elements to validate. You can specify any number of element names, separated by commas. Performs validation on elements registered for validation, and optionally lets you specify a list of fields to check. The list of errors for the specified fields, if any validation errors occurred. Optional. The names (value of the name attribute) of the user input elements to validate. You can specify any number of element names, separated by commas. If you do not specify a list, the method validates all registered elements. Gets the name of the class that is used to specify the appearance of error-message display when errors have occurred. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. The name. Defines validation tests that can be registered using the method. Initializes a new instance of the class. Defines a validation test that tests whether a value can be treated as a date/time value. The validation test. The error message to display if validation fails. Defines a validation test that tests whether a value can be treated as a decimal number. The validation test. The error message to display if validation fails. Defines a validation test that test user input against the value of another field. The validation test. The error message to display if validation fails. Defines a validation test that tests whether a value can be treated as a floating-point number. The validation test. The error message to display if validation fails. Defines a validation test that tests whether a value can be treated as an integer. The validation test. The error message to display if validation fails. Defines a validation test that tests whether a decimal number falls within a specific range. The validation test. The minimum value. The default is 0. The maximum value. The error message to display if validation fails. Defines a validation test that tests whether an integer value falls within a specific range. The validation test. The minimum value. The default is 0. The maximum value. The error message to display if validation fails. Defines a validation test that tests a value against a pattern specified as a regular expression. The validation test. The regular expression to use to test the user input. The error message to display if validation fails. Defines a validation test that tests whether a value has been provided. The validation test. The error message to display if validation fails. Defines a validation test that tests the length of a string. The validation test. The maximum length of the string. The minimum length of the string. The default is 0. The error message to display if validation fails. Defines a validation test that tests whether a value is a well-formed URL. The validation test. The error message to display if validation fails. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. Represents an ASP.NET Razor page. Called from a derived class to create a new instance that is based on the class. Gets or sets the object that is associated with a page. The current context data. Executes the code in a set of dependent pages. Gets the object that is associated with a page. An object that can render HTML form controls in a page. Initializes an object that inherits from the class. Gets the model that is associated with a page. An object that represents a model that is associated with the view data for a page. Gets the state of the model that is associated with a page. The state of the model. Adds a class to a list of classes that handle page execution and that implement custom features for pages. The class to add. Renders a content page. An object that can write the output of the page. The path of the page to render. Data to pass to the page. Gets the validation helper for the current page context. The validation helper. Serves as the base class for classes that represent an ASP.NET Razor page. Initializes the class for use by an inherited class instance. This constructor can only be called by an inherited class. When overridden in a derived class, configures the current web page based on the configuration of the parent web page. The parent page from which to read configuration information. Creates a new instance of the class by using the specified virtual path. The new object. The virtual path to use to create the instance. Called by content pages to create named content sections. The name of the section to create. The type of action to take with the new section. Executes the code in a set of dependent web pages. Executes the code in a set of dependent web pages by using the specified parameters. The context data for the page. The writer to use to write the executed HTML. Executes the code in a set of dependent web pages by using the specified context, writer, and start page. The context data for the page. The writer to use to write the executed HTML. The page to start execution in the page hierarchy. Returns the text writer instance that is used to render the page. The text writer. Initializes the current page. Returns a value that indicates whether the specified section is defined in the page. true if the specified section is defined in the page; otherwise, false. The name of the section to search for. Gets or sets the path of a layout page. The path of the layout page. Gets the current object for the page. The object. Gets the stack of objects for the current page context. The objects. Provides property-like access to page data that is shared between pages, layout pages, and partial pages. An object that contains page data. Provides array-like access to page data that is shared between pages, layout pages, and partial pages. A dictionary that contains page data. Returns and removes the context from the top of the instance. Inserts the specified context at the top of the instance. The page context to push onto the instance. The writer for the page context. In layout pages, renders the portion of a content page that is not within a named section. The HTML content to render. Renders the content of one page within another page. The HTML content to render. The path of the page to render. (Optional) An array of data to pass to the page being rendered. In the rendered page, these parameters can be accessed by using the property. In layout pages, renders the content of a named section. The HTML content to render. The section to render. The section was already rendered.-or-The section was marked as required but was not found. In layout pages, renders the content of a named section and specifies whether the section is required. The HTML content to render. The section to render. true to specify that the section is required; otherwise, false. Writes the specified object as an HTML-encoded string. The object to encode and write. Writes the specified object as an HTML-encoded string. The helper result to encode and write. Writes the specified object without HTML-encoding it first. The object to write. Contains data that is used by a object to reference details about the web application, the current HTTP request, the current execution context, and page-rendering data. Initializes a new instance of the class. Initializes a new instance of the class by using the specified context, page, and model. The HTTP request context data to associate with the page context. The page data to share between pages, layout pages, and partial pages. The model to associate with the view data. Gets a reference to the current object that is associated with a page. The current page context object. Gets the model that is associated with a page. An object that represents a model that is associated with the view data for a page. Gets the object that is associated with a page. The object that renders the page. Gets the page data that is shared between pages, layout pages, and partial pages. A dictionary that contains page data. Provides objects and methods that are used to execute and render ASP.NET pages that include Razor syntax. Initializes the class for use by an inherited class instance. This constructor can only be called by an inherited class. Gets the application-state data as a object that callers can use to create and access custom application-scoped properties. The application-state data. Gets a reference to global application-state data that can be shared across sessions and requests in an ASP.NET application. The application-state data. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. When overridden in a derived class, gets or sets the object that is associated with a page. The current context data. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. Executes the server code in the current web page that is marked using Razor syntax. Returns the text writer instance that is used to render the page. The text writer. Builds an absolute URL from an application-relative URL by using the specified parameters. The absolute URL. The initial path to use in the URL. Additional path information, such as folders and subfolders. Returns a normalized path from the specified path. The normalized path. The path to normalize. Gets or sets the virtual path of the page. The virtual path. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. Writes the string representation of the specified object as an HTML-encoded string. The object to encode and write. Writes the specified object as an HTML-encoded string. The helper result to encode and write. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. Writes the specified object without HTML encoding. The object to write. Writes the specified object to the specified instance without HTML encoding. The text writer. The object to write. Writes the specified object as an HTML-encoded string to the specified text writer. The text writer. The object to encode and write. Writes the specified object as an HTML-encoded string to the specified text writer. The text writer. The helper result to encode and write. Provides methods and properties that are used to process specific URL extensions. Initializes a new instance of the class by using the specified web page. The web page to process. is null. Creates a new handler object from the specified virtual path. A object for the specified virtual path. The virtual path to use to create the handler. Gets or sets a value that indicates whether web page response headers are disabled. true if web page response headers are disabled; otherwise, false. Returns a list of file name extensions that the current instance can process. A read-only list of file name extensions that are processed by the current instance. Gets a value that indicates whether another request can use the instance. true if the instance is reusable; otherwise, false. Processes the web page by using the specified context. The context to use when processing the web page. Adds a file name extension to the list of extensions that are processed by the current instance. The extension to add, without a leading period. The HTML tag name (X-AspNetWebPages-Version) for the version of the ASP.NET Web Pages specification that is used by this web page. Provides methods and properties that are used to render pages that use the Razor view engine. Initializes a new instance of the class. When overridden in a derived class, gets the cache object for the current application domain. The cache object. When overridden in a derived class, gets or sets the culture for the current thread. The culture for the current thread. Gets the display mode for the request. The display mode. When overridden in a derived class, calls the methods that are used to initialize the page. When overridden in a derived class, get a value that indicates whether Ajax is being used during the request of the web page. true if Ajax is being used during the request; otherwise, false. When overridden in a derived class, returns a value that indicates whether the HTTP data transfer method used by the client to request the web page is a POST request. true if the HTTP verb is "POST"; otherwise, false. When overridden in a derived class, gets or sets the path of a layout page. The path of a layout page. When overridden in a derived class, provides property-like access to page data that is shared between pages, layout pages, and partial pages. An object that contains page data. When overridden in a derived class, gets the HTTP context for the web page. The HTTP context for the web page. When overridden in a derived class, provides array-like access to page data that is shared between pages, layout pages, and partial pages. An object that provides array-like access to page data. Gets profile information for the current request context. The profile information. When overridden in a derived class, renders a web page. The markup that represents the web page. The path of the page to render. Additional data that is used to render the page. When overridden in a derived class, gets the object for the current HTTP request. An object that contains the HTTP values sent by a client during a web request. When overridden in a derived class, gets the object for the current HTTP response. An object that contains the HTTP response information from an ASP.NET operation. When overridden in a derived class, gets the object that provides methods that can be used as part of web-page processing. The object. When overridden in a derived class, gets the object for the current HTTP request. Session data for the current request. When overridden in a derived class, gets information about the currently executing file. Information about the currently executing file. When overridden in a derived class, gets or sets the current culture used by the Resource Manager to look up culture-specific resources at run time. The current culture used by the Resource Manager. When overridden in a derived class, gets data related to the URL path. Data related to the URL path. When overridden in a derived class, gets a user value based on the HTTP context. A user value based on the HTTP context. Provides support for rendering HTML form controls and performing form validation in a web page. Returns an HTML-encoded string that represents the specified object by using a minimal encoding that is suitable only for HTML attributes that are enclosed in quotation marks. An HTML-encoded string that represents the object. The object to encode. Returns an HTML-encoded string that represents the specified string by using a minimal encoding that is suitable only for HTML attributes that are enclosed in quotation marks. An HTML-encoded string that represents the original string. The string to encode Returns an HTML check box control that has the specified name. The HTML markup that represents the check box control. The value to assign to the name attribute of the HTML control element. is null or empty. Returns an HTML check box control that has the specified name and default checked status. The HTML markup that represents the check box control. The value to assign to the name attribute of the HTML control element. true to indicate that the checked attribute is set to checked; otherwise, false. is null or empty. Returns an HTML check box control that has the specified name, default checked status, and custom attributes defined by an attribute dictionary. The HTML markup that represents the check box control. The value to assign to the name attribute of the HTML control element. true to indicate that the checked attribute is set to checked; otherwise, false. The names and values of custom attributes for the element. is null or empty. Returns an HTML check box control that has the specified name, default checked status, and custom attributes defined by an attribute object. The HTML markup that represents the check box control. The value to assign to the name attribute of the HTML control element. true to indicate that the checked attribute is set to checked; otherwise, false. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. is null or empty. Returns an HTML check box control that has the specified name and custom attributes defined by an attribute dictionary. The HTML markup that represents the check box control. The value to assign to the name attribute of the HTML control element. The names and values of custom attributes for the element. is null or empty. Returns an HTML check box control that has the specified name and custom attributes defined by an attribute object. The HTML markup that represents the check box control. The value to assign to the name attribute of the HTML control element. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. is null or empty. Returns an HTML drop-down list control that has the specified name and that contains the specified list items. The HTML markup that represents the drop-down list control. The value to assign to the name attribute of the HTML select element. A list of instances that are used to populate the list. is null or empty. Returns an HTML drop-down list control that has the specified name and custom attributes defined by an attribute dictionary, and that contains the specified list items. The HTML markup that represents the drop-down list control. The value to assign to the name attribute of the HTML select element. A list of instances that are used to populate the list. The names and values of custom attributes for the element. is null or empty. Returns an HTML drop-down list control that has the specified name and custom attributes defined by an attribute object, and that contains the specified list items. The HTML markup that represents the drop-down list control. The value to assign to the name attribute of the HTML select element. A list of instances that are used to populate the list. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. is null or empty. Returns an HTML drop-down list control that has the specified name, and that contains the specified list items and default item. The HTML markup that represents the drop-down list control. The value to assign to the name attribute of the HTML select element. The text to display for the default option in the list. A list of instances that are used to populate the list. is null or empty. Returns an HTML drop-down list control that has the specified name and custom attributes defined by an attribute dictionary, and that contains the specified list items and default item. The HTML markup that represents the drop-down list control. The value to assign to the name attribute of the HTML select element. The text to display for the default option in the list. A list of instances that are used to populate the list. The names and values of custom attributes for the element. is null or empty. Returns an HTML drop-down list control that has the specified name and custom attributes defined by an attribute object, and that contains the specified list items and default item. The HTML markup that represents the drop-down list control. The value to assign to the name attribute of the HTML select element. The text to display for the default option in the list. A list of instances that are used to populate the list. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. is null or empty. Returns an HTML drop-down list control that has the specified name, custom attributes defined by an attribute dictionary, and default selection, and that contains the specified list items and default item. The HTML markup that represents the drop-down list control. The value to assign to the name attribute of the HTML select element. The text to display for the default option in the list. A list of instances that are used to populate the list. The value that specifies the item in the list that is selected by default. The selected item is the first item in the list whose value matches the parameter (or whose text matches, if there is no value.) The names and values of custom attributes for the element. is null or empty. Returns an HTML drop-down list control that has the specified name, custom attributes defined by an attribute object, and default selection, and that contains the specified list items and default item. The HTML markup that represents the drop-down list control. The value to assign to the name attribute of the HTML select element. The text to display for the default option in the list. A list of instances that are used to populate the list. The value that specifies the item in the list that is selected by default. The item that is selected is the first item in the list that has a matching value, or that matches the items displayed text if the item has no value. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. is null or empty. Returns an HTML-encoded string that represents the specified object by using a full encoding that is suitable for arbitrary HTML. An HTML-encoded string that represents the object. The object to encode. Returns an HTML-encoded string that represents the specified string by using a full encoding that is suitable for arbitrary HTML. An HTML-encoded string that represents the original string. The string to encode. Returns an HTML hidden control that has the specified name. The HTML markup that represents the hidden control. The value to assign to the name attribute of the HTML control element. is null or empty. Returns an HTML hidden control that has the specified name and value. The HTML markup that represents the hidden control. The value to assign to the name attribute of the HTML control element. The value to assign to the value attribute of the element. is null or empty. Returns an HTML hidden control that has the specified name, value, and custom attributes defined by an attribute dictionary. The HTML markup that represents the hidden control. The value to assign to the name attribute of the HTML control element. The value to assign to the value attribute of the element. The names and values of custom attributes for the element. is null or empty. Returns an HTML hidden control that has the specified name, value, and custom attributes defined by an attribute object. The HTML markup that represents the hidden control. The value to assign to the name attribute of the HTML control element. The value to assign to the value attribute of the element. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. is null or empty. Gets or sets the character that is used to replace the dot (.) in the id attribute of rendered form controls. The character that is used to replace the dot in the id attribute of rendered form controls. The default is an underscore (_). Returns an HTML label that displays the specified text. The HTML markup that represents the label. The text to display. is null or empty. Returns an HTML label that displays the specified text and that has the specified custom attributes. The HTML markup that represents the label. The text to display. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. is null or empty. Returns an HTML label that displays the specified text and that has the specified for attribute. The HTML markup that represents the label. The text to display. The value to assign to the for attribute of the HTML control element. is null or empty. Returns an HTML label that displays the specified text, and that has the specified for attribute and custom attributes defined by an attribute dictionary. The HTML markup that represents the label. The text to display. The value to assign to the for attribute of the HTML control element. The names and values of custom attributes for the element. is null or empty. Returns an HTML label that displays the specified text, and that has the specified for attribute and custom attributes defined by an attribute object. The HTML markup that represents the label. The text to display. The value to assign to the for attribute of the HTML control element. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. is null or empty. Returns an HTML list box control that has the specified name and that contains the specified list items. The HTML markup that represents the list box control. The value to assign to the name attribute of the HTML select element. A list of instances that are used to populate the list. is null or empty. Returns an HTML list box control that has the specified name and custom attributes defined by an attribute dictionary, and that contains the specified list items. The HTML markup that represents the list box control. The value to assign to the name attribute of the HTML select element. A list of instances that are used to populate the list. The names and values of custom attributes for the element. is null or empty. Returns an HTML list box control that has the specified name and custom attributes defined by an attribute object, and that contains the specified list items. The HTML markup that represents the list box control. The value to assign to the name attribute of the HTML select element. A list of instances that are used to populate the list. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. is null or empty. Returns an HTML list box control that has the specified name, size, list items, and default selections, and that specifies whether multiple selections are enabled. The HTML markup that represents the list box control. The value to assign to the name attribute of the HTML select element. A list of instances that are used to populate the list. An object that specifies the items in the list that are selected by default. The selections are retrieved through reflection by examining the properties of the object. The value to assign to the size attribute of the element. true to indicate that the multiple selections are enabled; otherwise, false. is null or empty. Returns an HTML list box control that has the specified name, and that contains the specified list items and default item. The HTML markup that represents the list box control. The value to assign to the name attribute of the HTML select element. The text to display for the default option in the list. A list of instances that are used to populate the list box. is null or empty. Returns an HTML list box control that has the specified name and custom attributes defined by an attribute dictionary, and that contains the specified list items and default item. The HTML markup that represents the list box control. The value to assign to the name attribute of the HTML select element. The text to display for the default option in the list. A list of instances that are used to populate the list. The names and values of custom attributes for the element. is null or empty. Returns an HTML list box control that has the specified name and custom attributes defined by an attribute object, and that contains the specified list items and default item. The HTML markup that represents the list box control. The value to assign to the name attribute of the HTML select element. The text to display for the default option in the list. A list of instances that are used to populate the list box. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. is null or empty. Returns an HTML list box control that has the specified name and custom attributes defined by an attribute dictionary, and that contains the specified list items, default item, and selections. The HTML markup that represents the list box control. The value to assign to the name attribute of the HTML select element. The text to display for the default option in the list. A list of instances that are used to populate the list. An object that specifies the items in the list that are selected by default. The selections are retrieved through reflection by examining the properties of the object. The names and values of custom attributes for the element. is null or empty. Returns an HTML list box control that has the specified name, size, items, default item, and selections, and that specifies whether multiple selections are enabled. The HTML markup that represents the list box control. The value to assign to the name attribute of the HTML select element. The text to display for the default option in the list. A list of instances that are used to populate the list. An object that specifies the items in the list that are selected by default. The selections are retrieved through reflection by examining the properties of the object. The value to assign to the size attribute of the element. true to indicate that multiple selections are enabled; otherwise, false. is null or empty. Returns an HTML list box control that has the specified name, size, custom attributes defined by an attribute dictionary, items, default item, and selections, and that specifies whether multiple selections are enabled. The HTML markup that represents the list box control. The value to assign to the name attribute of the HTML select element. The text to display for the default option in the list. A list of instances that are used to populate the list. An object that specifies the items in the list that are selected by default. The selections are retrieved through reflection by examining the properties of the object. The value to assign to the size attribute of the element. true to indicate that multiple selections are enabled; otherwise, false. The names and values of custom attributes for the element. is null or empty. Returns an HTML list box control that has the specified name, size, custom attributes defined by an attribute object, items, default item, and selections, and that specifies whether multiple selections are enabled. The HTML markup that represents the list box control. The value to assign to the name attribute of the HTML select element. The text to display for the default option in the list. A list of instances that are used to populate the list. An object that specifies the items in the list that are selected by default. The selections are retrieved through reflection by examining the properties of the object. The value to assign to the size attribute of the element. true to indicate that multiple selections are enabled; otherwise, false. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. is null or empty. Returns an HTML list box control that has the specified name, items, default item, and custom attributes defined by an attribute object, and selections. The HTML markup that represents the list box control. The value to assign to the name attribute of the HTML select element. The text to display for the default option in the list. A list of instances that are used to populate the list. An object that specifies the items in the list that are selected by default. The selections are retrieved through reflection by examining the properties of the object. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. is null or empty. Returns an HTML password control that has the specified name. The HTML markup that represents the password control. The value to assign to the name attribute of the HTML control element. is null or empty. Returns an HTML password control that has the specified name and value. The HTML markup that represents the password control. The value to assign to the name attribute of the HTML control element. The value to assign to the value attribute of the element. is null or empty. Returns an HTML password control that has the specified name, value, and custom attributes defined by an attribute dictionary. The HTML markup that represents the password control. The value to assign to the name attribute of the HTML control element. The value to assign to the value attribute of the element. The names and values of custom attributes for the element. is null or empty. Returns an HTML password control that has the specified name, value, and custom attributes defined by an attribute object. The HTML markup that represents the password control. The value to assign to the name attribute of the HTML control element. The value to assign to the value attribute of the element. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. is null or empty. Returns an HTML radio button control that has the specified name and value. The HTML markup that represents the radio button control. The value to assign to the name attribute of the HTML control element. The name attribute defines the group that the radio button belongs to. The value to assign to the value attribute of the element. is null or empty. Returns an HTML radio button control that has the specified name, value, and default selected status. The HTML markup that represents the radio button control. The value to assign to the name attribute of the HTML control element. The name attribute defines the group that the radio button belongs to. The value to assign to the value attribute of the element. true to indicate that the control is selected; otherwise, false. is null or empty. Returns an HTML radio button control that has the specified name, value, default selected status, and custom attributes defined by an attribute dictionary. The HTML markup that represents the radio button control. The value to assign to the name attribute of the HTML control element. The name attribute defines the group that the radio button belongs to. The value to assign to the value attribute of the element. true to indicate that the control is selected; otherwise, false. The names and values of custom attributes for the element. is null or empty. Returns an HTML radio button control that has the specified name, value, default selected status, and custom attributes defined by an attribute object. The HTML markup that represents the radio button control. The value to assign to the name attribute of the HTML control element. The name attribute defines the group that the radio button belongs to. The value to assign to the value attribute of the element. true to indicate that the control is selected; otherwise, false. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. is null or empty. Returns an HTML radio button control that has the specified name, value, and custom attributes defined by an attribute dictionary. The HTML markup that represents the radio button control. The value to assign to the name attribute of the HTML control element. The name attribute defines the group that the radio button belongs to. The value to assign to the value attribute of the element. The names and values of custom attributes for the element. is null or empty. Returns an HTML radio button control that has the specified name, value, and custom attributes defined by an attribute object. The HTML markup that represents the radio button control. The value to assign to the name attribute of the HTML control element. The name attribute defines the group that the radio button belongs to. The value to assign to the value attribute of the element. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. is null or empty. Wraps HTML markup in an instance so that it is interpreted as HTML markup. The unencoded HTML. The object to render HTML for. Wraps HTML markup in an instance so that it is interpreted as HTML markup. The unencoded HTML. The string to interpret as HTML markup instead of being HTML-encoded. Returns an HTML multi-line text input (text area) control that has the specified name. The HTML markup that represents the text area control. The value to assign to the name attribute of the HTML textarea element. is null or empty. Returns an HTML multi-line text input (text area) control that has the specified name and custom attributes defined by an attribute dictionary. The HTML markup that represents the text area control. The value to assign to the name attribute of the HTML textarea element. The names and values of custom attributes for the element. is null or empty. Returns an HTML multi-line text input (text area) control that has the specified name and custom attributes defined by an attribute object. The HTML markup that represents the text area control. The value to assign to the name attribute of the HTML textarea element. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. is null or empty. Returns an HTML multi-line text input (text area) control that has the specified name and value. The HTML markup that represents the text area control. The value to assign to the name attribute of the HTML textrarea element. The text to display. is null or empty. Returns an HTML multi-line text input (text area) control that has the specified name, value, and custom attributes defined by an attribute dictionary. The HTML markup that represents the text area control. The value to assign to the name attribute of the HTML textarea element. The text to display. The names and values of custom attributes for the element. is null or empty. Returns an HTML multi-line text input (text area) control that has the specified name, value, row attribute, col attribute, and custom attributes defined by an attribute dictionary. The HTML markup that represents the text area control. The value to assign to the name attribute of the HTML textarea element. The text to display. The value to assign to the rows attribute of the element. The value to assign to the cols attribute of the element. The names and values of custom attributes for the element. is null or empty. Returns an HTML multi-line text input (text area) control that has the specified name, value, row attribute, col attribute, and custom attributes defined by an attribute object. The HTML markup that represents the text area control. The value to assign to the name attribute of the HTML textarea element. The text to display. The value to assign to the rows attribute of the element. The value to assign to the cols attribute of the element. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. is null or empty. Returns an HTML multi-line text input (text area) control that has the specified name, value, and custom attributes defined by an attribute object. The HTML markup that represents the text area control. The value to assign to the name attribute of the HTML textarea element. The text to display. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. is null or empty. Returns an HTML text control that has the specified name. The HTML markup that represents the text control. The value to assign to the name attribute of the HTML control element. is null or empty. Returns an HTML text control that has the specified name and value. The HTML markup that represents the text control. The value to assign to the name attribute of the HTML control element. The value to assign to the value attribute of the element. is null or empty. Returns an HTML text control that has the specified name, value, and custom attributes defined by an attribute dictionary. The HTML markup that represents the text control. The value to assign to the name attribute of the HTML control element. The value to assign to the value attribute of the element. The names and values of custom attributes for the element. is null or empty. Returns an HTML text control that has the specified name, value, and custom attributes defined by an attribute object. The HTML markup that represents the text control. The value to assign to the name attribute of the HTML control element. The value to assign to the value attribute of the element. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. is null or empty. Gets or sets a value that indicates whether the page uses unobtrusive JavaScript for Ajax functionality. true if the page uses unobtrusive JavaScript; otherwise, false. Gets or sets the name of the CSS class that defines the appearance of input elements when validation fails. The name of the CSS class. The default is field-validation-error. Gets or sets the name of the CSS class that defines the appearance of input elements when validation passes. The name of the CSS class. The default is input-validation-valid. Returns an HTML span element that contains the first validation error message for the specified form field. If the value in the specified field is valid, null; otherwise, the HTML markup that represents the validation error message that is associated with the specified field. The name of the form field that was validated. is null or empty. Returns an HTML span element that has the specified custom attributes defined by an attribute dictionary, and that contains the first validation error message for the specified form field. If the value in the specified field is valid, null; otherwise, the HTML markup that represents the validation error message that is associated with the specified field. The name of the form field that was validated. The names and values of custom attributes for the element. is null or empty. Returns an HTML span element that has the specified custom attributes defined by an attribute object, and that contains the first validation error message for the specified form field. If the value in the specified field is valid, null; otherwise, the HTML markup that represents the validation error message that is associated with the specified field. The name of the form field that was validated. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. is null or empty. Returns an HTML span element that contains a validation error message for the specified form field. If the value in the specified field is valid, null; otherwise, the HTML markup that represents the validation error message that is associated with the specified field. The name of the form field that was validated. The validation error message to display. If null, the first validation error message that is associated with the specified form field is displayed. is null or empty. Returns an HTML span element that has the specified custom attributes defined by an attribute dictionary, and that contains a validation error message for the specified form field. If the specified field is valid, null; otherwise, the HTML markup that represents a validation error message that is associated with the specified field. The name of the form field that was validated. The validation error message to display. If null, the first validation error message that is associated with the specified form field is displayed. The names and values of custom attributes for the element. is null or empty. Returns an HTML span element that has the specified custom attributes defined by an attribute object, and that contains a validation error message for the specified form field. If the specified field is valid, null; otherwise, the HTML markup that represents a validation error message that is associated with the specified field. The name of the form field that was validated. The validation error message to display. If null, the first validation error message that is associated with the specified form field is displayed. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. is null or empty. Gets or sets the name of the CSS class that defines the appearance of validation error messages when validation fails. The name of the CSS class. The default is field-validation-error. Gets or sets the name of the CSS class that defines the appearance of validation error messages when validation passes. The name of the CSS class. The default is field-validation-valid. Returns an HTML div element that contains an unordered list of all validation error messages from the model-state dictionary. The HTML markup that represents the validation error messages. Returns an HTML div element that contains an unordered list of validation error message from the model-state dictionary, optionally excluding field-level errors. The HTML markup that represents the validation error messages. true to exclude field-level validation error messages from the list; false to include both model-level and field-level validation error messages. Returns an HTML div element that has the specified custom attributes defined by an attribute dictionary, and that contains an unordered list of all validation error messages that are in the model-state dictionary. The HTML markup that represents the validation error messages. The names and values of custom attributes for the element. Returns an HTML div element that has the specified custom attributes defined by an attribute object, and that contains an unordered list of all validation error messages that are in the model-state dictionary. The HTML markup that represents the validation error messages. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. Returns an HTML div element that contains a summary message and an unordered list of all validation error messages that are in the model-state dictionary. The HTML markup that represents the validation error messages. The message that comes before the list of validation error messages. Returns an HTML div element that has the specified custom attributes defined by an attribute dictionary, and that contains a summary message and an unordered list of validation error message from the model-state dictionary, optionally excluding field-level errors. The HTML markup that represents the validation error messages. The summary message that comes before the list of validation error messages. true to exclude field-level validation error messages from the results; false to include both model-level and field-level validation error messages. The names and values of custom attributes for the element. Returns an HTML div element that has the specified custom attributes defined by an attribute object, and that contains a summary message and an unordered list of validation error message from the model-state dictionary, optionally excluding field-level errors. The HTML markup that represents the validation error messages. The summary message that comes before the list of validation error messages. true to exclude field-level validation error messages from the results; false to include and field-level validation error messages. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. Returns an HTML div element that has the specified custom attributes defined by an attribute dictionary, and that contains a summary message and an unordered list of all validation error message from the model-state dictionary. The HTML markup that represents the validation error messages. The message that comes before the list of validation error messages. The names and values of custom attributes for the element. Returns an HTML div element that has the specified custom attributes defined by an attribute object, and that contains a summary message and an unordered list of all validation error message from the model-state dictionary. The HTML markup that represents the validation error messages. The summary message that comes before the list of validation error messages. An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object. Gets or sets the name of the CSS class that defines the appearance of a validation summary when validation fails. The name of the CSS class. The default is validation-summary-errors. Gets or sets the name of the CSS class that defines the appearance of a validation summary when validation passes. The name of the CSS class. The default is validation-summary-valid. Encapsulates the state of model binding to a property of an action-method argument, or to the argument itself. Initializes a new instance of the class. Returns a list of strings that contains any errors that occurred during model binding. The errors that occurred during model binding. Returns an object that encapsulates the value that was bound during model binding. The value that was bound. Represents the result of binding a posted form to an action method, which includes information such as validation status and validation error messages. Initializes a new instance of the class. Initializes a new instance of the class by using values that are copied from the specified model-state dictionary. The model-state dictionary that values are copied from. Adds the specified item to the model-state dictionary. The item to add to the model-state dictionary. Adds an item that has the specified key and value to the model-state dictionary. The key. The value. Adds an error message to the model state that is associated with the specified key. The key that is associated with the model state that the error message is added to. The error message. Adds an error message to the model state that is associated with the entire form. The error message. Removes all items from the model-state dictionary. Determines whether the model-state dictionary contains the specified item. true if the model-state dictionary contains the specified item; otherwise, false. The item to look for. Determines whether the model-state dictionary contains the specified key. true if the model-state dictionary contains the specified key; otherwise, false. The key to look for. Copies the elements of the model-state dictionary to an array, starting at the specified index. The one-dimensional instance where the elements will be copied to. The index in at which copying begins. Gets the number of model states that the model-state dictionary contains. The number of model states in the model-state dictionary. Returns an enumerator that can be used to iterate through the collection. An enumerator that can be used to iterate through the collection. Gets a value that indicates whether the model-state dictionary is read-only. true if the model-state dictionary is read-only; otherwise, false. Gets a value that indicates whether any error messages are associated with any model state in the model-state dictionary. true if any error messages are associated with any model state in the dictionary; otherwise, false. Determines whether any error messages are associated with the specified key. true if no error messages are associated with the specified key, or the specified key does not exist; otherwise, false. The key. is null. Gets or sets the model state that is associated with the specified key in the model-state dictionary. The model state that is associated with the specified key in the dictionary. The key that is associated with the model state. Gets a list that contains the keys in the model-state dictionary. The list of keys in the dictionary. Copies the values from the specified model-state dictionary into this instance, overwriting existing values when the keys are the same. The model-state dictionary that values are copied from. Removes the first occurrence of the specified item from the model-state dictionary. true if the item was successfully removed from the model-state dictionary; false if the item was not removed or if the item does not exist in the model-state dictionary. The item to remove. Removes the item that has the specified key from the model-state dictionary. true if the item was successfully removed from the model-state dictionary; false if the item was not removed or does not exist in the model-state dictionary. The key of the element to remove. Sets the value of the model state that is associated with the specified key. The key to set the value of. The value to set the key to. Returns an enumerator that can be used to iterate through the model-state dictionary. An enumerator that can be used to iterate through the model-state dictionary. Gets the model-state value that is associated with the specified key. true if the model-state dictionary contains an element that has the specified key; otherwise, false. The key to get the value of. When this method returns, if the key is found, contains the model-state value that is associated with the specified key; otherwise, contains the default value for the type. This parameter is passed uninitialized. Gets a list that contains the values in the model-state dictionary. The list of values in the dictionary. Represents an item in an HTML select list. Initializes a new instance of the class using the default settings. Initializes a new instance of the class by copying the specified select list item. The select list item to copy. Gets or sets a value that indicates whether the instance is selected. true if the select list item is selected; otherwise, false. Gets or sets the text that is used to display the instance on a web page. The text that is used to display the select list item. Gets or sets the value of the HTML value attribute of the HTML option element that is associated with the instance. The value of the HTML value attribute that is associated with the select list item. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code. Defines an ASP.NET request scope storage provider. Initializes a new instance of the class. Gets the dictionary to store data in the application scope. The dictionary that stores application scope data. Gets or sets the dictionary to store data in the current scope. The dictionary that stores current scope data. The application start page was not executed before the attempt was made to set this property. Gets the dictionary to store data in the global scope. The dictionary that stores global scope data. Gets the dictionary to store data in the request scope. The dictionary that stores request scope data. The application start page was not executed before the attempt was made to get this property. Defines a dictionary that provides scoped access to data. Gets and sets the dictionary that is used to store data in the current scope. The dictionary that stores current scope data. Gets the dictionary that is used to store data in the global scope. The dictionary that stores global scope data. Defines a class that is used to contain storage for a transient scope. Returns a dictionary that is used to store data in a transient scope, based on the scope in the property. The dictionary that stores transient scope data. Returns a dictionary that is used to store data in a transient scope. The dictionary that stores transient scope data. The context. Gets or sets the current scope provider. The current scope provider. Gets the dictionary that is used to store data in the current scope. The dictionary that stores current scope data. Gets the dictionary that is used to store data in the global scope. The dictionary that stores global scope data. Represents a collection of keys and values that are used to store data at different scope levels (local, global, and so on). Initializes a new instance of the class. Initializes a new instance of the class using the specified base scope. The base scope. Adds a key/value pair to the object using the specified generic collection. The key/value pair. Adds the specified key and specified value to the object. The key. The value. Gets the dictionary that stores the object data. Gets the base scope for the object. The base scope for the object. Removes all keys and values from the concatenated and objects. Returns a value that indicates whether the specified key/value pair exists in either the object or in the object. true if the object or the object contains an element that has the specified key/value pair; otherwise, false. The key/value pair. Returns a value that indicates whether the specified key exists in the object or in the object. true if the object or the object contains an element that has the specified key; otherwise, false. The key. Copies all of the elements in the object and the object to an object, starting at the specified index. The array. The zero-based index in . Gets the number of key/value pairs that are in the concatenated and objects. The number of key/value pairs. Returns an enumerator that can be used to iterate through concatenated and objects. An object. Returns an enumerator that can be used to iterate through the distinct elements of concatenated and objects. An enumerator that contains distinct elements from the concatenated dictionary objects. Gets a value that indicates whether the object is read-only. true if the object is read-only; otherwise, false. Gets or sets the element that is associated with the specified key. The element that has the specified key. The key of the element to get or set. Gets a object that contains the keys from the concatenated and objects. An object that contains that contains the keys. Removes the specified key/value pair from the concatenated and objects. true if the key/value pair is removed, or false if is not found in the concatenated and objects. The key/value pair. Removes the value that has the specified key from the concatenated and objects. true if the key/value pair is removed, or false if is not found in the concatenated and objects. The key. Sets a value using the specified key in the concatenated and objects. The key. The value. Returns an enumerator for the concatenated and objects. The enumerator. Gets the value that is associated with the specified key from the concatenated and objects. true if the concatenated and objects contain an element that has the specified key; otherwise, false. The key. When this method returns, if the key is found, contains the value that is associated with the specified key; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. Gets a object that contains the values from the concatenated and objects. The object that contains the values. Provides scoped access to static data. Initializes a new instance of the class. Gets or sets a dictionary that stores current data under a static context. The dictionary that provides current scoped data. Gets a dictionary that stores global data under a static context. The dictionary that provides global scoped data. ================================================ FILE: packages/Microsoft.AspNet.WebPages.Data.2.0.20710.0/lib/net40/WebMatrix.Data.xml ================================================  WebMatrix.Data Provides data for the event of the class. Initializes a new instance of the class. The connection that is associated with the event. Gets the connection that is associated with the event. The connection that was opened. Provides methods and properties that are used to access and manage data that is stored in a database. Closes an open database. Gets the current connection to a database. The connection. Occurs when a new database connection is opened by a instance. Releases all resources used by a instance. Releases the unmanaged resources used by a instance and optionally releases the managed resources. true to release both managed and unmanaged resources; false to release only unmanaged resources. Executes a non-query SQL statement. The count of records affected by the SQL statement. The SQL statement to execute. (Optional) Parameters to pass to the SQL statement. is null or empty. Returns the identity column of the most recently inserted row. The ID of the most recently inserted row. Opens a connection to a database using the specified file name or using the named connection string. The database instance. The name associated with the database to open. can specify an .sdf or .mdf database file that is in the App_Data folder. (Do not include the file-name extension.) Alternatively, can specify the name of a connection string in the Web.config file. Opens a connection to a database using the specified connection string. The database instance. The connection string that contains information that is used to connect to a database. is null or empty. Opens a connection to a database using a connection string and the specified provider. The database instance. The connection string that contains information that is used to connect to a database. (Optional) The name of the .NET Framework data provider to use to connect to the data source. is null or empty. Executes a SQL query that returns a list of rows as the result. The rows returned by the SQL query. The SQL query to execute. (Optional) Parameters to pass to the SQL query. Executes a SQL query that returns a single row as the result. The single row returned by the SQL query. The SQL query to execute. (Optional) Parameters to pass to the SQL query. Executes a SQL query that returns a single scalar value as the result. The scalar value returned by the SQL query. The SQL query to execute. (Optional) Parameters to pass to the SQL query. Represents a data record by using a custom type descriptor and the capabilities of the Dynamic Language Runtime (DLR). Returns a list that contains the name of each column in the instance. A list that contains the name of each column. Returns a list that contains the name of all dynamic members of the instance. A list that contains the name of every dynamic member. Returns the value of a column in the instance using the specified index. The value of the specified column. The zero-based index of the column that contains the value to return. Returns the value of a column in the instance using the specified name. The value of the specified column. The name of the column that contains the value to return. Name matching is case-insensitive. The instance does not contain a column whose name is a case-insensitive match with the specified name. Returns a list of custom attributes for this instance of a component. in all cases. Returns the class name for this instance of a component. null in all cases. Returns the name for this instance of a component. null in all cases. Returns the type converter for this instance of a component. null in all cases. Returns the default event for this instance of a component. null in all cases. Returns the default property for this instance of a component. null in all cases. Returns an editor of the specified type for this instance of a component. null in all cases. The editor for this object. The value of this parameter is ignored by this implementation and does not affect the outcome of this method. Returns the events for this instance of a component. in all cases. Returns the events for this instance of a component by using the specified filter. in all cases. An array that is used as a filter. The value of this parameter is ignored by this implementation and does not affect the outcome of this method. Returns the properties for this instance of a component. A collection that represents the properties for this component instance. Returns the properties for this instance of a component by using the specified filter. A collection that represents the properties for this component instance. An array that is used as a filter. The value of this parameter is ignored by this implementation and does not affect the outcome of this method. Returns the object that contains the specified property. This instance. The property to get the owner of. Gets the value of a member using the specified name. true in all cases. Provides information about the get operation. When this method returns, contains the value of the member, which can be null. This parameter is passed uninitialized. The instance does not contain a member whose name is a case-insensitive match with the name that is specified by the parameter. ================================================ FILE: packages/Microsoft.AspNet.WebPages.OAuth.2.0.20710.0/lib/net40/Microsoft.Web.WebPages.OAuth.xml ================================================  Microsoft.Web.WebPages.OAuth Represents an OAuth or OpenID account. Initializes a new instance of the class. The name of the provider. The provider user ID. Gets the provider name. The provider name. Gets the provider user ID. The provider user ID. Manages security that uses OAuth authentication providers like Facebook, Twitter, LinkedIn, Windows Live and OpenID authentication providers like Google and Yahoo. Creates or updates the account using the specified provider and user ID for the provider ID and associate the new account with the specified user name. The provider name. The user ID for the specified provider. The name of the user. Deletes the specified membership account. true if the account was deleted, or false if it was not. The provider name. The user ID for the specified provider. Gets the account or accounts that are associated using the specified user name. The collection of accounts. The user name. Returns the user ID for the specified OAuth or OpenID provider and provider user ID. The user ID, or null if there is no user ID associated with the OAuth or Open ID provider user ID. The provider name. The user ID for the specified provider. Gets a value that indicates whether the user has been authenticated using OAuth. true if the user has been authenticated using OAuth; otherwise, false. Logs the user in. true if login was successful; otherwise, false. The provider name. The user ID for the specified provider. true to create a persistent cookie so that the login information is saved across browser sessions; otherwise, false. Registers an OAuth authentication client. One of the supported OAuth clients. Requests the specified provider to start the authentication by directing users to an external website. The OAuth provider. Requests the specified provider to start the authentication by directing users to an external website, and directs the provider to redirect the user to the specified URL when authentication is successful. The OAuth provider. The URL to return to when authentication is successful. Returns a value that indicates whether the user account has been confirmed by the provider. A instance that you can query to determine whether verification was successful. Provides a registration point for pre-application start code for OAuth-based security. Registers the OAuth pre-application start code. ================================================ FILE: packages/Microsoft.AspNet.WebPages.WebData.2.0.20710.0/lib/net40/WebMatrix.WebData.xml ================================================  WebMatrix.WebData Represents an abstract class that is used to extend the membership system that is provided by the class. When overridden in a derived class, instantiates a new instance of the class. Activates a pending membership account. true if the account is confirmed; otherwise, false. A confirmation token to pass to the authentication provider. Activates a pending membership account for the specified user. true if the account is confirmed; otherwise, false. The user name. A confirmation token to pass to the authentication provider. Creates a new user account using the specified user name and password. A token that can be sent to the user to confirm the account. The user name. The password. When overridden in a derived class, creates a new user account using the specified user name and password, optionally requiring that the new account must be confirmed before the account is available for use. A token that can be sent to the user to confirm the account. The user name. The password. (Optional) true to specify that the account must be confirmed; otherwise, false. The default is false. When overridden in a derived class, creates a new OAuth membership account, or updates an existing OAuth Membership account. The OAuth or OpenID provider. The OAuth or OpenID provider user ID. This is not the user ID of the user account, but the user ID on the OAuth or Open ID provider. The user name. Creates a new user profile and a new membership account. A token that can be sent to the user to confirm the user account. The user name. The password. Creates a new user profile and a new membership account. A token that can be sent to the user to confirm the user account. The user name. The password. (Optional) true to specify that the user account must be confirmed; otherwise, false. The default is false. When overridden in a derived class, creates a new user profile and a new membership account. A token that can be sent to the user to confirm the user account. The user name. The password. (Optional) true to specify that the user account must be confirmed; otherwise, false. The default is false. (Optional) A dictionary that contains additional user attributes to store in the user profile. The default is null. When overridden in a derived class, creates a new user profile and a new membership account. A token that can be sent to the user to confirm the user account. The user name. The password. (Optional) A dictionary that contains additional user attributes to store in the user profile. The default is null. When overridden in a derived class, deletes the specified membership account. true if the user account was deleted; otherwise, false. The user name. When overridden in a derived class, deletes the OAuth or OpenID account with the specified provider name and provider user ID. The name of the OAuth or OpenID provider. The OAuth or OpenID provider user ID. This is not the user ID of the user account, but the user ID on the OAuth or Open ID provider. Generates a password reset token that can be sent to a user in email. A token to send to the user. The user name. When overridden in a derived class, generates a password reset token that can be sent to a user in email. A token to send to the user. The user name. (Optional) The time, in minutes, until the password reset token expires. The default is 1440 (24 hours). When overridden in a derived class, returns all OAuth membership accounts associated with the specified user name. A list of all OAuth membership accounts associated with the specified user name. The user name. When overridden in a derived class, returns the date and time when the specified user account was created. The date and time the account was created, or if the account creation date is not available. The user name of the account. When overridden in a derived class, returns the date and time when an incorrect password was most recently entered for the specified user account. The date and time when an incorrect password was most recently entered for this user account, or if an incorrect password has not been entered for this user account. The user name of the account. When overridden in a derived class, returns the date and time when the password was most recently changed for the specified membership account. The date and time when the password was more recently changed for membership account, or if the password has never been changed for this user account. The user name of the account. When overridden in a derived class, returns the number of times that the password for the specified user account was incorrectly entered since the most recent successful login or since the user account was created. The count of failed password attempts for the specified user account. The user name of the account. When overridden in a derived class, returns the user ID for the specified OAuth or OpenID provider and provider user ID. The name of the OAuth or OpenID provider. The OAuth or OpenID provider user ID. This is not the user ID of the user account, but the user ID on the OAuth or Open ID provider. When overridden in a derived class, returns an ID for a user based on a password reset token. The user ID. The password reset token. Returns the user name that is associated with the specified user ID. The user name. The user ID to get the name for. When overridden in a derived class, returns a value that indicates whether the user account has been confirmed by the provider. true if the user is confirmed; otherwise, false. The user name. When overridden in a derived class, resets a password after verifying that the specified password reset token is valid. true if the password was changed; otherwise, false. A password reset token. The new password. Defines key names that override default settings in the <appSettings> section of the Web.config file. The key to access the default login URL. The key to access the login URL key. The key to access the setting that preserves the term "login" instead of overriding it with "logon". Represents an OAuth or OpenID account. Initializes a new instance of the class by using the specified OAuth or Open ID provider and provider user ID. The provider. The provider user id. Gets the OAuth or Open ID provider name. The provider name. Gets the OAuth or Open ID provider user ID. The provider user ID. Provides a registration point for the simple membership pre-application start code. Registers the simple membership pre-application start code. Provides support for website membership tasks, such as creating accounts, deleting accounts, and managing passwords. Initializes a new instance of the class. Initializes a new instance of the class by using the specified membership provider. The membership provider to use. Gets or sets the name of the application. The name of the application. Changes the password for the specified membership account. true if the password is successfully changed; otherwise, false. The user name. The old password. The new password. Changes the password question and answer for the specified account. true if the password question and answer are successfully changed; otherwise, false. The user name. The new password. The security question that the user must answer in order to change the password. The answer to the security question. Activates a pending membership account. true if the user account is confirmed; otherwise, false. A confirmation token to pass to the authentication provider. The class was not initialized using a call to the method. Returns . Creates a new user account by using the specified user name and password. A token that can be sent to the user to confirm the user account. The user name. The password. (Optional) true to specify that the user account must be confirmed; otherwise, false. The default is false. is empty.-or- already has a user account.-or- is empty.-or- is longer than 128 characters.-or-A user record that corresponds to does not exist in the table (the user profile table).-or-The database operation failed. The class was not initialized using a call to the method. Creates a new OAuth membership account, or updates an existing OAuth Membership account. The OAuth or OpenID provider. The OAuth or OpenID provider user ID. This is not the user ID of the user account, but the user ID on the OAuth or Open ID provider. The user name. The class was not initialized using a call to the method. is empty.-or-A user record that corresponds to does not exist in the table (the user profile table).-or-The database operation failed. Adds the specified user to the membership database. A object that is populated with the information for the newly created user account. The user name for the new user account. The password for the new user account. The email address for the new user account. The security question for the new user account. The answer to the security question for the new user account. true to indicate that the user account is approved to be validated; otherwise, false. The unique identifier from the membership data source for the user account. When this method returns, contains a enumeration value that indicates whether the user account was created successfully. This parameter is passed uninitiated. Creates a new user profile and a new membership account. A token that can be sent to the user to confirm the user account. The user name. The password. (Optional) true to specify that the user account must be confirmed by using the method; otherwise, false. The default is false. (Optional) A dictionary that contains additional key/value pair attributes that you can add to the data store as default values for new user profile. The key for each entry is the database column, and the value of each entry is the value for the column. The default is null. The class was not initialized using a call to the method. A membership account for this user name already exists in the membership database. Deletes the specified membership account. true if the user account was deleted; otherwise, false. The user name. is null or empty. The class was not initialized using a call to the method. Deletes the OAuth or OpenID account with the specified provider name and provider user ID. The name of the OAuth or OpenID provider. The OAuth or OpenID provider user ID. This is not the user ID of the user account, but the user ID on the OAuth or Open ID provider. The class was not initialized using a call to the method. is empty.-or-A user record that corresponds to does not exist in the table (the user profile table).-or-The database operation failed. Deletes the specified user account, and optionally deletes all profile data that is related to that user account. true if the user account was deleted; otherwise, false. The user name. true to delete profile data that is related to the user, or false to retain data that is related to the user. is null or empty. Gets a value that indicates whether the membership provider lets users reset their passwords. true if the membership provider supports password reset; otherwise, false. The default is true. Gets a value that indicates whether the membership provider lets users retrieve their passwords. true if the membership provider supports password retrieval; otherwise, false. The default is false. Returns all of the user accounts whose email address matches the specified email address. A collection that contains a page of user accounts starting at the page specified by . The email address to search for. The zero-based index of the page of results to return. The size of the page of results to return. When this method returns, contains the total number of matched user accounts. Returns all of the user accounts whose name matches the specified user name. A collection that contains a page of user accounts starting at the page specified by . The user name to search for. The zero-based index of the page of results to return. The size of the page of results to return. When this method returns, contains the total number of matched users. Generates a password reset token that can be sent to a user in email. A token to send to the user. The user name. (Optional) The time, in minutes, until the password reset token expires. The default is 1440 (24 hours). is empty. The database operation failed. The class was not initialized using a call to the method. Returns all OAuth membership accounts that are associated with the specified user name. A list of all OAuth membership accounts that are associated with the specified user name. The user name. The class was not initialized using a call to the method. Returns all of the user accounts in the data source. A collection that contains a page of user accounts starting at the page specified by . The zero-based index of the page of results to return. The size of the page of results to return. When this method returns, contains the total number of matched user accounts. Returns the date and time when the specified user account was created. The date and time on which the user account was created, or if the user account creation date is not available. The user name of the account. The user specified by does not have a user account. Returns the date and time when an incorrect password was most recently entered for the specified user account. The date and time when an incorrect password was most recently entered for this user account, or if an incorrect password has not been entered for this user account. The user name of the account. Returns the number of users who are currently accessing the application. The number of users who are currently accessing the application. Returns the password for the specified user account from the data source. The password for the specified user account. The user to retrieve the password for. The answer for the password security question. is false. does not match the security answer for the user account and is true. Returns the date and time when the password was most recently changed for the specified membership account. The date and time when the password was more recently changed for this account, or if the password has never been changed for this membership account. The user name of the account. The user specified by does not have a membership account. Returns the number of times that the password for the specified user account was incorrectly entered since the most recent successful login or since the user account was created. The count of failed password attempts for the specified user account, or -1 if the user specified by does not have a user account. The user name of the account. Returns information about the user account using the specified user ID, and optionally updates the timestamp of the most recent activity for the user account. An object that is populated with the user account information, or null if is not found. The ID for the user account to get information for. The ID is a value that is stored as an instance. true to update the last-activity timestamp for the user account, or false to return user account information without updating the timestamp. Returns information about the user account using the specified user name, and optionally updates the timestamp of the most recent activity for the user account. An object that is populated with the user account information, or null if is not found. The name of the user to get information for. true to update the last-activity timestamp for the user account, or false to return user account information without updating the timestamp. Returns the ID for a user based on the specified user name. The user ID. The user name. The class was not initialized using a call to the method. Returns the user ID for the specified OAuth or OpenID provider and provider user ID. The user ID, or -1 if there is no user ID associated with the OAuth or Open ID provider user ID. The name of the OAuth or OpenID provider. The OAuth or OpenID provider user ID. This is not the user ID of the user account, but the user ID on the OAuth or Open ID provider. Returns the ID for a user based on a password reset token. The user ID, or -1 if there is no user ID associated with the specified password reset token. The password reset token. The class was not initialized using a call to the method. Returns the user name that is associated with the specified email address. The user name that is associated with the specified email address, or null if no match is found. The email address to search for. Returns the user name that is associated with the specified user ID. The user name. The user ID to get the name for. Initializes the provider. The friendly name of the provider. A collection of name/value pairs that represent provider-specific attributes. is null. contains an unrecognized attribute. Returns a value that indicates whether the user account has been confirmed by the provider. true if the user account has been confirmed; otherwise, false. The user name. is null or empty. The class was not initialized using a call to the method. Gets the number of invalid password or password-answer attempts that are allowed before the membership user is locked out. The number of invalid password or password-answer attempts that are allowed before the membership user is locked out. Gets the minimum number of special (non-alphanumeric) characters that a password must contain. The minimum number of special characters that a password must contain. Gets the minimum length that is required for a password. The minimum length that is required for a password. Gets the number of minutes during which the maximum number of invalid password or security-question answer attempts are allowed before the user account is locked out. The number of minutes. Gets a value that indicates the format for storing passwords. One of the enumeration values that indicates the format. Gets the regular expression that is used to evaluate password complexity. The regular expression that is used to evaluate password complexity. Gets a value that indicates whether the membership provider requires that the user answer a security question for password reset and retrieval. true if a security-question answer is required; otherwise, false. The default is true. Gets a value that indicates whether the membership provider requires a unique email address for each user name. true if the membership provider requires a unique email address; otherwise, false. The default is true. Resets the password for a user account to a new, automatically generated password. The new password for the specified user account. The user account to reset the password for. The answer to the security question for the new user. is false. does not match the security answer for the user account in the membership table and is true. Resets a password after verifying that the specified password reset token is valid. true if the password was changed; otherwise, false. A password reset token. The new password. is null or empty. The class was not initialized using a call to the method. Unlocks a user account so that the membership user can be validated. true if the user account was unlocked; otherwise, false. The user whose user account you want to unlock. Updates user information. An object that represents the user account to update and the information to update for that user account. Gets or sets the name of the database column that contains user IDs. The name of the database column that contains user IDs. Gets or sets the name of the database column that contains user names. The name of the database column that contains user names. Gets or sets the name of the database table that contains user information. The name of the database table that contains user information. Verifies that the specified user account and password exist. true if the specified user name and password exist, and if the account has been confirmed; otherwise, false. The name of the user account to validate. The password for the specified user. or are null or empty. Provides basic role-management functionality. Initializes a new instance of the class. Initializes a new instance of the class by using the specified role provider. The previous role provider. Adds the specified user names to the specified roles. The user names to add. The roles to add the names to. One or more of the specified users already exists in one or more of the specified roles. Gets or sets the name of the application to store and retrieve role information for. The name of the application to store and retrieve role information for. Adds a new role. The name of the role to create. The role already exists. Deletes the specified role. true if the role was deleted; otherwise, false. The name of the role to delete. true to cause an exception to be thrown if one or more users are in . In that case, the specified role is not deleted. has one or more members, and is true. Returns all of the specified users who are in the specified role. The names of all of the users where the user name matches and the user is in the specified role. The role to search in. The user name to search for. Returns a list of all roles. The names of all of the roles. Returns a list of the roles that a specified user is in. The names of all of the roles that the specified user is a member of. The user to return a list of roles for. The specified user does not have a membership account. Returns the user names that are in the specified role. The user names that are in the specified role. The name of the role. Returns a value that indicates whether the specified user is in the specified role. true if the user is in the role; otherwise, false. The user name. The name of the role. Removes the specified user names from the specified roles. The user names to remove from the specified roles. The role names to remove the specified user names from. One or more of the specified roles do not exist.-or-One or more users are not in all of the specified roles. The database operation failed. Returns a value that indicates whether a specified role exists. true if the role exists; otherwise, false. The name of the role. Gets the name of the database column that contains user IDs. The name of the database column in the table that contains user IDs. Gets the name of the database column that contains user names. The name of the database column in the table that contains user names. Gets the name of the database table that contains user information. The name of the database table in the table that contains user information. Provides security and authentication features for ASP.NET Web Pages applications, including the ability to create user accounts, log users in and out, reset or change passwords, and perform related tasks. Changes the password for the specified user. true if the password is successfully changed; otherwise, false. The user name. The current password for the user. The new password. The method was not called.-or-The method was not called.-or-The membership provider is not registered in the configuration of your site. For more information, contact your site's system administrator. Confirms that an account is valid and activates the account. true if the account is confirmed; otherwise, false. A confirmation token to pass to the authentication provider. The method was not called.-or-The method was not called.-or-The membership provider is not registered in the configuration of your site. For more information, contact your site's system administrator. Confirms that an account for the specified user name is valid and activates the account. true if the account is confirmed; otherwise, false. The user name. A confirmation token to pass to the authentication provider. The method was not called.-or-The method was not called.-or-The membership provider is not registered in the configuration of your site. For more information, contact your site's system administrator. Creates a new membership account using the specified user name and password and optionally lets you specify that the user must explicitly confirm the account. A token that can be sent to the user to confirm the account. The user name. The password. (Optional) true to specify that the account must be confirmed by using the token return value; otherwise, false. The default is false. is empty.-or- already has a membership account.-or- is empty.-or- is too long.-or-The database operation failed. The method was not called.-or-The method was not called.-or-The membership provider is not registered in the configuration of your site. For more information, contact your site's system administrator. Creates a new user profile entry and a new membership account. A token that can be sent to the user to confirm the user account. The user name. The password for the user. (Optional) A dictionary that contains additional user attributes. The default is null. (Optional) true to specify that the user account must be confirmed; otherwise, false. The default is false. The method was not called.-or-The method was not called.-or-The membership provider is not registered in the configuration of your site. For more information, contact your site's system administrator. Gets the ID for the current user. The ID for the current user. Gets the user name for the current user. The name of the current user. Represents the key to the enableSimpleMembership value in the property. Generates a password reset token that can be sent to a user in email. A token to send to the user. The user name. (Optional) The time in minutes until the password reset token expires. The default is 1440 (24 hours). The method was not called.-or-The method was not called.-or-The membership provider is not registered in the configuration of your site. For more information, contact your site's system administrator. Returns the date and time when the specified membership account was created. The date and time that the membership account was created, or if the account creation date is not available. The user name for the membership account. The method was not called.-or-The method was not called.-or-The membership provider is not registered in the configuration of your site. For more information, contact your site's system administrator. Returns the date and time when an incorrect password was most recently entered for the specified account. The date and time when an incorrect password was most recently entered for this account, or if an incorrect password has not been entered for this account. The user name of the membership account. The method was not called.-or-The method was not called.-or-The membership provider is not registered in the configuration of your site. For more information, contact your site's system administrator. Returns the date and time when the password was most recently changed for the specified membership account. The date and time when the password was most recently changed, or if the password has not been changed for this account. The user name of the account. The method was not called.-or-The method was not called.-or-The membership provider is not registered in the configuration of your site. For more information, contact your site's system administrator. Returns the number of times that the password for the specified account was incorrectly entered since the last successful login or since the membership account was created. The count of failed password attempts for the specified account. The user name of the account. The method was not called.-or-The method was not called.-or-The membership provider is not registered in the configuration of your site. For more information, contact your site's system administrator. Returns the ID for a user based on the specified user name. The user ID. The user name. The method was not called.-or-The method was not called.-or-The membership provider is not registered in the configuration of your site. For more information, contact your site's system administrator. Returns a user ID from a password reset token. The user ID. The password reset token. The method was not called.-or-The method was not called.-or-The membership provider is not registered in the configuration of your site. For more information, contact your site's system administrator. Gets a value that indicates whether the current user has a user ID. true if the user has a user ID; otherwise, false. Gets a value that indicates whether the method has been called. true if the initialization method has been called; otherwise, false. Initializes the membership system by connecting to a database that contains user information and optionally creates membership tables if they do not already exist. The name of the connection string for the database that contains user information. If you are using SQL Server Compact, this can be the name of the database file (.sdf file) without the .sdf file name extension. The name of the database table that contains the user profile information. The name of the database column that contains user IDs. This column must be typed as an integer (int). The name of the database column that contains user names. This column is used to match user profile data to membership account data. true to indicate that user profile and membership tables should be created if they do not exist; false to indicate that tables should not be created automatically. Although the membership tables can be created automatically, the database itself must already exist. Initializes the membership system by connecting to a database that contains user information by using the specified membership or role provider, and optionally creates membership tables if they do not already exist. The name of the connection string for the database that contains user information. If you are using SQL Server Compact, this can be the name of the database file (.sdf file) without the .sdf file name extension. The name of the ADO.NET data provider. If you want to use Microsoft SQL Server, the overload is recommended. The name of the database table that contains the user profile information. The name of the database column that contains user IDs. This column must be typed as an integer (int). The name of the database column that contains user names. This column is used to match user profile data to membership account data. true to indicate that user profile and membership tables should be created automatically; false to indicate that tables should not be created automatically. Although the membership tables can be created automatically, the database itself must already exist. Returns a value that indicates whether the specified membership account is temporarily locked because of too many failed password attempts in the specified number of seconds. true if the membership account is locked; otherwise, false. The user name of the membership account. The number of password attempts the user is permitted before the membership account is locked. The number of seconds to lock a user account after the number of password attempts exceeds the value in the parameter. The method was not called.-or-The method was not called.-or-The membership provider is not registered in the configuration of your site. For more information, contact your site's system administrator. Returns a value that indicates whether the specified membership account is temporarily locked because of too many failed password attempts in the specified time span. true if the membership account is locked; otherwise, false. The user name of the membership account. The number of password attempts the user is permitted before the membership account is locked. The number of seconds to lock out a user account after the number of password attempts exceeds the value in the parameter. The method was not called.-or-The method was not called.-or-The membership provider is not registered in the configuration of your site. For more information, contact your site's system administrator. Gets the authentication status of the current user. true if the current user is authenticated; otherwise, false. The default is false. Returns a value that indicates whether the user has been confirmed. true if the user is confirmed; otherwise, false. The user name. Returns a value that indicates whether the user name of the logged-in user matches the specified user name. true if the logged-in user name matches ; otherwise, false. The user name to compare the logged-in user name to. The method was not called.-or-The method was not called.-or-The membership provider is not registered in the configuration of your site. For more information, contact your site's system administrator. Logs the user in. true if the user was logged in; otherwise, false. The user name. The password. (Optional) true to specify that the authentication token in the cookie should be persisted beyond the current session; otherwise false. The default is false. The method was not called.-or-The method was not called.-or-The membership provider is not registered in the configuration of your site. For more information, contact your site's system administrator. Logs the user out. The method was not called.-or-The method was not called.-or-The membership provider is not registered in the configuration of your site. For more information, contact your site's system administrator. If the user is not authenticated, sets the HTTP status to 401 (Unauthorized). If the current user is not in all of the specified roles, sets the HTTP status code to 401 (Unauthorized). The roles to check. The current user must be in all of the roles that are passed in this parameter. The method was not called.-or-The method was not called.-or-The membership provider is not registered in the configuration of your site. For more information, contact your site's system administrator. If the specified user is not logged on, sets the HTTP status to 401 (Unauthorized). The ID of the user to compare. The method was not called.-or-The method was not called.-or-The membership provider is not registered in the configuration of your site. For more information, contact your site's system administrator. If the current user does not match the specified user name, sets the HTTP status to 401 (Unauthorized). The name of the user to compare. The method was not called.-or-The method was not called.-or-The membership provider is not registered in the configuration of your site. For more information, contact your site's system administrator. Resets a password by using a password reset token. true if the password was changed; otherwise, false. A password reset token. The new password. The method was not called.-or-The method was not called.-or-The membership provider is not registered in the configuration of your site. For more information, contact your site's system administrator. Returns a value that indicates whether the specified user exists in the membership database. true if the exists in the user profile table; otherwise, false. The user name. The method was not called.-or-The method was not called.-or-The membership provider is not registered in the configuration of your site. For more information, contact your site's system administrator. ================================================ FILE: packages/Microsoft.Net.Http.2.0.20710.0/lib/net40/System.Net.Http.WebRequest.xml ================================================  System.Net.Http.WebRequest Represents the class that is used to create special for use with the Real-Time-Communications (RTC) background notification infrastructure. Creates a special for use with the Real-Time-Communications (RTC) background notification infrastructure. Returns .An HTTP request message for use with the RTC background notification infrastructure. The HTTP method. The Uri the request is sent to. Provides desktop-specific features not available to Windows Store apps or other environments. Initializes a new instance of the class. Gets or sets a value that indicates whether to pipeline the request to the Internet resource. Returns .true if the request should be pipelined; otherwise, false. The default is true. Gets or sets a value indicating the level of authentication and impersonation used for this request. Returns .A bitwise combination of the values. The default value is . Gets or sets the cache policy for this request. Returns .A object that defines a cache policy. The default is . Gets or sets the collection of security certificates that are associated with this request. Returns .The collection of security certificates associated with this request. Gets or sets the amount of time, in milliseconds, the application will wait for 100-continue from the server before uploading data. Returns .The amount of time, in milliseconds, the application will wait for 100-continue from the server before uploading data. The default value is 350 milliseconds. Gets or sets the impersonation level for the current request. Returns .The impersonation level for the request. The default is . Gets or sets the maximum allowed length of the response headers. Returns .The length, in kilobytes (1024 bytes), of the response headers. Gets or sets a time-out in milliseconds when writing a request to or reading a response from a server. Returns .The number of milliseconds before the writing or reading times out. The default value is 300,000 milliseconds (5 minutes). Gets or sets a callback method to validate the server certificate. Returns .A callback method to validate the server certificate. Gets or sets a value that indicates whether to allow high-speed NTLM-authenticated connection sharing. Returns .true to keep the authenticated connection open; otherwise, false. ================================================ FILE: packages/Microsoft.Net.Http.2.0.20710.0/lib/net40/System.Net.Http.xml ================================================  System.Net.Http Provides HTTP content based on a byte array. Initializes a new instance of the class. The content used to initialize the . The parameter is null. Initializes a new instance of the class. The content used to initialize the . The offset, in bytes, in the parameter used to initialize the . The number of bytes in the starting from the parameter used to initialize the . The parameter is null. The parameter is less than zero.-or-The parameter is greater than the length of content specified by the parameter.-or-The parameter is less than zero.-or-The parameter is greater than the length of content specified by the parameter - minus the parameter. Creates an HTTP content stream as an asynchronous operation for reading whose backing store is memory from the . Returns .The task object representing the asynchronous operation. Serialize and write the byte array provided in the constructor to an HTTP content stream as an asynchronous operation. Returns . The task object representing the asynchronous operation. The target stream. Information about the transport, like channel binding token. This parameter may be null. Determines whether a byte array has a valid length in bytes. Returns .true if is a valid length; otherwise, false. The length in bytes of the byte array. Specifies how client certificates are provided. The application manually provides the client certificates to the . This value is the default. The will attempt to provide all available client certificates automatically. A base type for HTTP handlers that delegate the processing of HTTP response messages to another handler, called the inner handler. Creates a new instance of the class. Creates a new instance of the class with a specific inner handler. The inner handler which is responsible for processing the HTTP response messages. Releases the unmanaged resources used by the , and optionally disposes of the managed resources. true to release both managed and unmanaged resources; false to releases only unmanaged resources. Gets or sets the inner handler which processes the HTTP response messages. Returns .The inner handler for HTTP response messages. Sends an HTTP request to the inner handler to send to the server as an asynchronous operation. Returns . The task object representing the asynchronous operation. The HTTP request message to send to the server. A cancellation token to cancel operation. The was null. A container for name/value tuples encoded using application/x-www-form-urlencoded MIME type. Initializes a new instance of the class with a specific collection of name/value pairs. A collection of name/value pairs. Provides a base class for sending HTTP requests and receiving HTTP responses from a resource identified by a URI. Initializes a new instance of the class. Initializes a new instance of the class with a specific handler. The HTTP handler stack to use for sending requests. Initializes a new instance of the class with a specific handler. The responsible for processing the HTTP response messages. true if the inner handler should be disposed of by Dispose(),false if you intend to reuse the inner handler. Gets or sets the base address of Uniform Resource Identifier (URI) of the Internet resource used when sending requests. Returns .The base address of Uniform Resource Identifier (URI) of the Internet resource used when sending requests. Cancel all pending requests on this instance. Gets the headers which should be sent with each request. Returns .The headers which should be sent with each request. Send a DELETE request to the specified Uri as an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. The was null. Send a DELETE request to the specified Uri with a cancellation token as an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. A cancellation token that can be used by other objects or threads to receive notice of cancellation. The was null. Send a DELETE request to the specified Uri as an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. The was null. Send a DELETE request to the specified Uri with a cancellation token as an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. A cancellation token that can be used by other objects or threads to receive notice of cancellation. The was null. Releases the unmanaged resources used by the and optionally disposes of the managed resources. true to release both managed and unmanaged resources; false to releases only unmanaged resources. Send a GET request to the specified Uri as an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. The was null. Send a GET request to the specified Uri with an HTTP completion option as an asynchronous operation. Returns . The Uri the request is sent to. An HTTP completion option value that indicates when the operation should be considered completed. The was null. Send a GET request to the specified Uri with an HTTP completion option and a cancellation token as an asynchronous operation. Returns . The Uri the request is sent to. An HTTP completion option value that indicates when the operation should be considered completed. A cancellation token that can be used by other objects or threads to receive notice of cancellation. The was null. Send a GET request to the specified Uri with a cancellation token as an asynchronous operation. Returns . The Uri the request is sent to. A cancellation token that can be used by other objects or threads to receive notice of cancellation. The was null. Send a GET request to the specified Uri as an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. The was null. Send a GET request to the specified Uri with an HTTP completion option as an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. An HTTP completion option value that indicates when the operation should be considered completed. The was null. Send a GET request to the specified Uri with an HTTP completion option and a cancellation token as an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. An HTTP completion option value that indicates when the operation should be considered completed. A cancellation token that can be used by other objects or threads to receive notice of cancellation. The was null. Send a GET request to the specified Uri with a cancellation token as an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. A cancellation token that can be used by other objects or threads to receive notice of cancellation. The was null. Send a GET request to the specified Uri and return the response body as a byte array in an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. The was null. Send a GET request to the specified Uri and return the response body as a byte array in an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. The was null. Send a GET request to the specified Uri and return the response body as a stream in an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. The was null. Send a GET request to the specified Uri and return the response body as a stream in an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. The was null. Send a GET request to the specified Uri and return the response body as a string in an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. The was null. Send a GET request to the specified Uri and return the response body as a string in an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. The was null. Gets or sets the maximum number of bytes to buffer when reading the response content. Returns .The maximum number of bytes to buffer when reading the response content. The default value for this property is 64K. The size specified is less than or equal to zero. An operation has already been started on the current instance. The current instance has been disposed. Send a POST request to the specified Uri as an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. The HTTP request content sent to the server. The was null. Send a POST request with a cancellation token as an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. The HTTP request content sent to the server. A cancellation token that can be used by other objects or threads to receive notice of cancellation. The was null. Send a POST request to the specified Uri as an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. The HTTP request content sent to the server. The was null. Send a POST request with a cancellation token as an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. The HTTP request content sent to the server. A cancellation token that can be used by other objects or threads to receive notice of cancellation. The was null. Send a PUT request to the specified Uri as an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. The HTTP request content sent to the server. The was null. Send a PUT request with a cancellation token as an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. The HTTP request content sent to the server. A cancellation token that can be used by other objects or threads to receive notice of cancellation. The was null. Send a PUT request to the specified Uri as an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. The HTTP request content sent to the server. The was null. Send a PUT request with a cancellation token as an asynchronous operation. Returns .The task object representing the asynchronous operation. The Uri the request is sent to. The HTTP request content sent to the server. A cancellation token that can be used by other objects or threads to receive notice of cancellation. The was null. Send an HTTP request as an asynchronous operation. Returns .The task object representing the asynchronous operation. The HTTP request message to send. The was null. The request message was already sent by the instance. Send an HTTP request as an asynchronous operation. Returns .The task object representing the asynchronous operation. The HTTP request message to send. When the operation should complete (as soon as a response is available or after reading the whole response content). The was null. The request message was already sent by the instance. Send an HTTP request as an asynchronous operation. Returns .The task object representing the asynchronous operation. The HTTP request message to send. When the operation should complete (as soon as a response is available or after reading the whole response content). The cancellation token to cancel operation. The was null. The request message was already sent by the instance. Send an HTTP request as an asynchronous operation. Returns .The task object representing the asynchronous operation. The HTTP request message to send. The cancellation token to cancel operation. The was null. The request message was already sent by the instance. Gets or sets the number of milliseconds to wait before the request times out. Returns .The number of milliseconds to wait before the request times out. The timeout specified is less than or equal to zero and is not . An operation has already been started on the current instance. The current instance has been disposed. The default message handler used by . Creates an instance of a class. Gets or sets a value that indicates whether the handler should follow redirection responses. Returns .true if the if the handler should follow redirection responses; otherwise false. The default value is true. Gets or sets the type of decompression method used by the handler for automatic decompression of the HTTP content response. Returns .The automatic decompression method used by the handler. The default value is . Gets or sets the collection of security certificates that are associated with this handler. Returns .The collection of security certificates associated with this handler. Gets or sets the cookie container used to store server cookies by the handler. Returns .The cookie container used to store server cookies by the handler. Gets or sets authentication information used by this handler. Returns .The authentication credentials associated with the handler. The default is null. Releases the unmanaged resources used by the and optionally disposes of the managed resources. true to release both managed and unmanaged resources; false to releases only unmanaged resources. Gets or sets the maximum number of redirects that the handler follows. Returns .The maximum number of redirection responses that the handler follows. The default value is 50. Gets or sets the maximum request content buffer size used by the handler. Returns .The maximum request content buffer size in bytes. The default value is 65,536 bytes. Gets or sets a value that indicates whether the handler sends an Authorization header with the request. Returns .true for the handler to send an HTTP Authorization header with requests after authentication has taken place; otherwise, false. The default is false. Gets or sets proxy information used by the handler. Returns .The proxy information used by the handler. The default value is null. Creates an instance of based on the information provided in the as an operation that will not block. Returns .The task object representing the asynchronous operation. The HTTP request message. A cancellation token to cancel the operation. The was null. Gets a value that indicates whether the handler supports automatic response content decompression. Returns .true if the if the handler supports automatic response content decompression; otherwise false. The default value is true. Gets a value that indicates whether the handler supports proxy settings. Returns .true if the if the handler supports proxy settings; otherwise false. The default value is true. Gets a value that indicates whether the handler supports configuration settings for the and properties. Returns .true if the if the handler supports configuration settings for the and properties; otherwise false. The default value is true. Gets or sets a value that indicates whether the handler uses the property to store server cookies and uses these cookies when sending requests. Returns .true if the if the handler supports uses the property to store server cookies and uses these cookies when sending requests; otherwise false. The default value is true. Gets or sets a value that controls whether default credentials are sent with requests by the handler. Returns .true if the default credentials are used; otherwise false. The default value is false. Gets or sets a value that indicates whether the handler uses a proxy for requests. Returns .true if the handler should use a proxy for requests; otherwise false. The default value is true. Indicates if operations should be considered completed either as soon as a response is available, or after reading the entire response message including the content. The operation should complete after reading the entire response including the content. The operation should complete as soon as a response is available and headers are read. The content is not read yet. A base class representing an HTTP entity body and content headers. Initializes a new instance of the class. Write the HTTP content to a stream as an asynchronous operation. Returns .The task object representing the asynchronous operation. The target stream. Write the HTTP content to a stream as an asynchronous operation. Returns .The task object representing the asynchronous operation. The target stream. Information about the transport (channel binding token, for example). This parameter may be null. Write the HTTP content to a memory stream as an asynchronous operation. Returns .The task object representing the asynchronous operation. Releases the unmanaged resources and disposes of the managed resources used by the . Releases the unmanaged resources used by the and optionally disposes of the managed resources. true to release both managed and unmanaged resources; false to releases only unmanaged resources. Gets the HTTP content headers as defined in RFC 2616. Returns .The content headers as defined in RFC 2616. Serialize the HTTP content to a memory buffer as an asynchronous operation. Returns .The task object representing the asynchronous operation. Serialize the HTTP content to a memory buffer as an asynchronous operation. Returns .The task object representing the asynchronous operation. The maximum size, in bytes, of the buffer to use. Write the HTTP content to a byte array as an asynchronous operation. Returns .The task object representing the asynchronous operation. Write the HTTP content to a stream as an asynchronous operation. Returns .The task object representing the asynchronous operation. Write the HTTP content to a string as an asynchronous operation. Returns .The task object representing the asynchronous operation. Serialize the HTTP content to a stream as an asynchronous operation. Returns .The task object representing the asynchronous operation. The target stream. Information about the transport (channel binding token, for example). This parameter may be null. Determines whether the HTTP content has a valid length in bytes. Returns .true if is a valid length; otherwise, false. The length in bytes of the HHTP content. A base type for HTTP message handlers. Initializes a new instance of the class. Releases the unmanaged resources and disposes of the managed resources used by the . Releases the unmanaged resources used by the and optionally disposes of the managed resources. true to release both managed and unmanaged resources; false to releases only unmanaged resources. Send an HTTP request as an asynchronous operation. Returns .The task object representing the asynchronous operation. The HTTP request message to send. The cancellation token to cancel operation. The was null. The base type for and other message originators. Initializes an instance of a class with a specific . The responsible for processing the HTTP response messages. Initializes an instance of a class with a specific . The responsible for processing the HTTP response messages. true if the inner handler should be disposed of by Dispose(),false if you intend to reuse the inner handler. Releases the unmanaged resources and disposes of the managed resources used by the . Releases the unmanaged resources used by the and optionally disposes of the managed resources. true to release both managed and unmanaged resources; false to releases only unmanaged resources. Send an HTTP request as an asynchronous operation. Returns .The task object representing the asynchronous operation. The HTTP request message to send. The cancellation token to cancel operation. The was null. A helper class for retrieving and comparing standard HTTP methods. Initializes a new instance of the class with a specific HTTP method. The HTTP method. Represents an HTTP DELETE protocol method. Returns . Determines whether the specified is equal to the current . Returns .true if the specified object is equal to the current object; otherwise, false. The HTTP method to compare with the current object. Determines whether the specified is equal to the current . Returns .true if the specified object is equal to the current object; otherwise, false. The object to compare with the current object. Represents an HTTP GET protocol method. Returns . Serves as a hash function for this type. Returns .A hash code for the current . Represents an HTTP HEAD protocol method. The HEAD method is identical to GET except that the server only returns message-headers in the response, without a message-body. Returns . An HTTP method. Returns .An HTTP method represented as a . The equality operator for comparing two objects. Returns .true if the specified and parameters are equal; otherwise, false. The left to an equality operator. The right to an equality operator. The inequality operator for comparing two objects. Returns .true if the specified and parameters are inequal; otherwise, false. The left to an inequality operator. The right to an inequality operator. Represents an HTTP OPTIONS protocol method. Returns . Represents an HTTP POST protocol method that is used to post a new entity as an addition to a URI. Returns . Represents an HTTP PUT protocol method that is used to replace an entity identified by a URI. Returns . Returns a string that represents the current object. Returns .A string representing the current object. Represents an HTTP TRACE protocol method. Returns . A base class for exceptions thrown by the and classes. Initializes a new instance of the class. Initializes a new instance of the class with a specific message that describes the current exception. A message that describes the current exception. Initializes a new instance of the class with a specific message that describes the current exception and an inner exception. A message that describes the current exception. The inner exception. Represents a HTTP request message. Initializes a new instance of the class. Initializes a new instance of the class with an HTTP method and a request . The HTTP method. A string that represents the request . Initializes a new instance of the class with an HTTP method and a request . The HTTP method. The to request. Gets or sets the contents of the HTTP message. Returns .The content of a message Releases the unmanaged resources and disposes of the managed resources used by the . Releases the unmanaged resources used by the and optionally disposes of the managed resources. true to release both managed and unmanaged resources; false to releases only unmanaged resources. Gets the collection of HTTP request headers. Returns .The collection of HTTP request headers. Gets or sets the HTTP method used by the HTTP request message. Returns .The HTTP method used by the request message. The default is the GET method. Gets a set of properties for the HTTP request. Returns . Gets or sets the used for the HTTP request. Returns .The used for the HTTP request. Returns a string that represents the current object. Returns .A string representation of the current object. Gets or sets the HTTP message version. Returns .The HTTP message version. The default is 1.1. Represents a HTTP response message. Initializes a new instance of the class. Initializes a new instance of the class with a specific . The status code of the HTTP response. Gets or sets the content of a HTTP response message. Returns .The content of the HTTP response message. Releases the unmanaged resources and disposes of unmanaged resources used by the . Releases the unmanaged resources used by the and optionally disposes of the managed resources. true to release both managed and unmanaged resources; false to releases only unmanaged resources. Throws an exception if the property for the HTTP response is false. Returns .The HTTP response message if the call is successful. Gets the collection of HTTP response headers. Returns .The collection of HTTP response headers. Gets a value that indicates if the HTTP response was successful. Returns .A value that indicates if the HTTP response was successful. true if was in the range 200-299; otherwise false. Gets or sets the reason phrase which typically is sent by servers together with the status code. Returns .The reason phrase sent by the server. Gets or sets the request message which led to this response message. Returns .The request message which led to this response message. Gets or sets the status code of the HTTP response. Returns .The status code of the HTTP response. Returns a string that represents the current object. Returns .A string representation of the current object. Gets or sets the HTTP message version. Returns .The HTTP message version. The default is 1.1. A base type for handlers which only do some small processing of request and/or response messages. Creates an instance of a class. Creates an instance of a class with a specific inner handler. The inner handler which is responsible for processing the HTTP response messages. Processes an HTTP request message. Returns .The HTTP request message that was processed. The HTTP request message to process. A cancellation token that can be used by other objects or threads to receive notice of cancellation. Processes an HTTP response message. Returns .The HTTP response message that was processed. The HTTP response message to process. A cancellation token that can be used by other objects or threads to receive notice of cancellation. Sends an HTTP request to the inner handler to send to the server as an asynchronous operation. Returns .The task object representing the asynchronous operation. The HTTP request message to send to the server. A cancellation token that can be used by other objects or threads to receive notice of cancellation. The was null. Provides a collection of objects that get serialized using the multipart/* content type specification. Creates a new instance of the class. Creates a new instance of the class. The subtype of the multipart content. The was null or contains only white space characters. Creates a new instance of the class. The subtype of the multipart content. The boundary string for the multipart content. The was null or an empty string.The was null or contains only white space characters.-or-The ends with a space character. The length of the was greater than 70. Add multipart HTTP content to a collection of objects that get serialized using the multipart/* content type specification. The HTTP content to add to the collection. The was null. Releases the unmanaged resources used by the and optionally disposes of the managed resources. true to release both managed and unmanaged resources; false to releases only unmanaged resources. Returns an enumerator that iterates through the collection of objects that get serialized using the multipart/* content type specification.. Returns .An object that can be used to iterate through the collection. Serialize the multipart HTTP content to a stream as an asynchronous operation. Returns .The task object representing the asynchronous operation. The target stream. Information about the transport (channel binding token, for example). This parameter may be null. The explicit implementation of the method. Returns .An object that can be used to iterate through the collection. Determines whether the HTTP multipart content has a valid length in bytes. Returns .true if is a valid length; otherwise, false. The length in bytes of the HHTP content. Provides a container for content encoded using multipart/form-data MIME type. Creates a new instance of the class. Creates a new instance of the class. The boundary string for the multipart form data content. The was null or contains only white space characters.-or-The ends with a space character. The length of the was greater than 70. Add HTTP content to a collection of objects that get serialized to multipart/form-data MIME type. The HTTP content to add to the collection. The was null. Add HTTP content to a collection of objects that get serialized to multipart/form-data MIME type. The HTTP content to add to the collection. The name for the HTTP content to add. The was null or contains only white space characters. The was null. Add HTTP content to a collection of objects that get serialized to multipart/form-data MIME type. The HTTP content to add to the collection. The name for the HTTP content to add. The file name for the HTTP content to add to the collection. The was null or contains only white space characters.-or-The was null or contains only white space characters. The was null. Provides HTTP content based on a stream. Creates a new instance of the class. The content used to initialize the . Creates a new instance of the class. The content used to initialize the . The size, in bytes, of the buffer for the . The was null. The was less than or equal to zero. Write the HTTP stream content to a memory stream as an asynchronous operation. Returns .The task object representing the asynchronous operation. Releases the unmanaged resources used by the and optionally disposes of the managed resources. true to release both managed and unmanaged resources; false to releases only unmanaged resources. Serialize the HTTP content to a stream as an asynchronous operation. Returns .The task object representing the asynchronous operation. The target stream. Information about the transport (channel binding token, for example). This parameter may be null. Determines whether the stream content has a valid length in bytes. Returns .true if is a valid length; otherwise, false. The length in bytes of the stream content. Provides HTTP content based on a string. Creates a new instance of the class. The content used to initialize the . Creates a new instance of the class. The content used to initialize the . The encoding to use for the content. Creates a new instance of the class. The content used to initialize the . The encoding to use for the content. The media type to use for the content. Represents authentication information in Authorization, ProxyAuthorization, WWW-Authenticate, and Proxy-Authenticate header values. Initializes a new instance of the class. The scheme to use for authorization. Initializes a new instance of the class. The scheme to use for authorization. The credentials containing the authentication information of the user agent for the resource being requested. Determines whether the specified is equal to the current object. Returns .true if the specified is equal to the current object; otherwise, false. The object to compare with the current object. Serves as a hash function for an object. Returns .A hash code for the current object. Gets the credentials containing the authentication information of the user agent for the resource being requested. Returns .The credentials containing the authentication information. Converts a string to an instance. Returns .An instance. A string that represents authentication header value information. is a null reference. is not valid authentication header value information. Gets the scheme to use for authorization. Returns .The scheme to use for authorization. Creates a new object that is a copy of the current instance. Returns .A copy of the current instance. Returns a string that represents the current object. Returns .A string that represents the current object. Determines whether a string is valid information. Returns .true if is valid information; otherwise, false. The string to validate. The version of the string. Represents the value of the Cache-Control header. Initializes a new instance of the class. Determines whether the specified is equal to the current object. Returns .true if the specified is equal to the current object; otherwise, false. The object to compare with the current object. Cache-extension tokens, each with an optional assigned value. Returns .A collection of cache-extension tokens each with an optional assigned value. Serves as a hash function for a object. Returns .A hash code for the current object. The maximum age, specified in seconds, that the HTTP client is willing to accept a response. Returns .The time in seconds. Whether an HTTP client is willing to accept a response that has exceeded its expiration time. Returns .true if the HTTP client is willing to accept a response that has exceed the expiration time; otherwise, false. The maximum time, in seconds, an HTTP client is willing to accept a response that has exceeded its expiration time. Returns .The time in seconds. The freshness lifetime, in seconds, that an HTTP client is willing to accept a response. Returns .The time in seconds. Whether the origin server require revalidation of a cache entry on any subsequent use when the cache entry becomes stale. Returns .true if the origin server requires revalidation of a cache entry on any subsequent use when the entry becomes stale; otherwise, false. Whether an HTTP client is willing to accept a cached response. Returns .true if the HTTP client is willing to accept a cached response; otherwise, false. A collection of fieldnames in the "no-cache" directive in a cache-control header field on an HTTP response. Returns .A collection of fieldnames. Whether a cache must not store any part of either the HTTP request mressage or any response. Returns .true if a cache must not store any part of either the HTTP request mressage or any response; otherwise, false. Whether a cache or proxy must not change any aspect of the entity-body. Returns .true if a cache or proxy must not change any aspect of the entity-body; otherwise, false. Whether a cache should either respond using a cached entry that is consistent with the other constraints of the HTTP request, or respond with a 504 (Gateway Timeout) status. Returns .true if a cache should either respond using a cached entry that is consistent with the other constraints of the HTTP request, or respond with a 504 (Gateway Timeout) status; otherwise, false. Converts a string to an instance. Returns .A instance. A string that represents cache-control header value information. is a null reference. is not valid cache-control header value information. Whether all or part of the HTTP response message is intended for a single user and must not be cached by a shared cache. Returns .true if the HTTP response message is intended for a single user and must not be cached by a shared cache; otherwise, false. A collection fieldnames in the "private" directive in a cache-control header field on an HTTP response. Returns .A collection of fieldnames. Whether the origin server require revalidation of a cache entry on any subsequent use when the cache entry becomes stale for shared user agent caches. Returns .true if the origin server requires revalidation of a cache entry on any subsequent use when the entry becomes stale for shared user agent caches; otherwise, false. Whether an HTTP response may be cached by any cache, even if it would normally be non-cacheable or cacheable only within a non- shared cache. Returns .true if the HTTP response may be cached by any cache, even if it would normally be non-cacheable or cacheable only within a non- shared cache; otherwise, false. The shared maximum age, specified in seconds, in an HTTP response that overrides the "max-age" directive in a cache-control header or an Expires header for a shared cache. Returns .The time in seconds. Creates a new object that is a copy of the current instance. Returns .A copy of the current instance. Returns a string that represents the current object. Returns .A string that represents the current object. Determines whether a string is valid information. Returns .true if is valid information; otherwise, false. The string to validate. The version of the string. Represents the value of the Content-Disposition header. Initializes a new instance of the class. A . Initializes a new instance of the class. A string that contains a . The date at which the file was created. Returns .The file creation date. The disposition type for a content body part. Returns .The disposition type. Determines whether the specified is equal to the current object. Returns .true if the specified is equal to the current object; otherwise, false. The object to compare with the current object. A suggestion for how to construct a filename for storing the message payload to be used if the entity is detached and stored in a separate file. Returns .A suggested filename. A suggestion for how to construct filenames for storing message payloads to be used if the entities are detached and stored in a separate files. Returns .A suggested filename of the form filename*. Serves as a hash function for an object. Returns .A hash code for the current object. The date at which the file was last modified. Returns .The file modification date. The name for a content body part. Returns .The name for the content body part. A set of parameters included the Content-Disposition header. Returns .A collection of parameters. Converts a string to an instance. Returns .An instance. A string that represents content disposition header value information. is a null reference. is not valid content disposition header value information. The date the file was last read. Returns .The last read date. The approximate size, in bytes, of the file. Returns .The approximate size, in bytes. Creates a new object that is a copy of the current instance. Returns .A copy of the current instance. Returns a string that represents the current object. Returns .A string that represents the current object. Determines whether a string is valid information. Returns .true if is valid information; otherwise, false. The string to validate. The version of the string. Represents the value of the Content-Range header. Initializes a new instance of the class. The starting or ending point of the range, in bytes. Initializes a new instance of the class. The position, in bytes, at which to start sending data. The position, in bytes, at which to stop sending data. Initializes a new instance of the class. The position, in bytes, at which to start sending data. The position, in bytes, at which to stop sending data. The starting or ending point of the range, in bytes. Determines whether the specified Object is equal to the current object. Returns .true if the specified is equal to the current object; otherwise, false. The object to compare with the current object. Gets the position at which to start sending data. Returns .The position, in bytes, at which to start sending data. Serves as a hash function for an object. Returns .A hash code for the current object. Gets whether the Content-Range header has a length specified. Returns .true if the Content-Range has a length specified; otherwise, false. Gets whether the Content-Range has a range specified. Returns .true if the Content-Range has a range specified; otherwise, false. Gets the length of the full entity-body. Returns .The length of the full entity-body. Converts a string to an instance. Returns .An instance. A string that represents content range header value information. is a null reference. is not valid content range header value information. Creates a new object that is a copy of the current instance. Returns .A copy of the current instance. Gets the position at which to stop sending data. Returns .The position at which to stop sending data. Returns a string that represents the current object. Returns .A string that represents the current object. Determines whether a string is valid information. Returns .true if is valid information; otherwise, false. The string to validate. The version of the string. The range units used. Returns .A that contains range units. Represents an entity-tag header value. Initializes a new instance of the class. A string that contains an . Initializes a new instance of the class. A string that contains an . A value that indicates if this entity-tag header is a weak validator. If the entity-tag header is weak validator, then should be set to true. If the entity-tag header is a strong validator, then should be set to false. Gets the entity-tag header value. Returns . Determines whether the specified is equal to the current object. Returns .true if the specified is equal to the current object; otherwise, false. The object to compare with the current object. Serves as a hash function for an object. Returns .A hash code for the current object. Gets whether the entity-tag is prefaced by a weakness indicator. Returns .true if the entity-tag is prefaced by a weakness indicator; otherwise, false. Converts a string to an instance. Returns .An instance. A string that represents entity tag header value information. is a null reference. is not valid entity tag header value information. Creates a new object that is a copy of the current instance. Returns .A copy of the current instance. Gets the opaque quoted string. Returns .An opaque quoted string. Returns a string that represents the current object. Returns .A string that represents the current object. Determines whether a string is valid information. Returns .true if is valid information; otherwise, false. The string to validate. The version of the string. Represents the collection of Content Headers as defined in RFC 2616. Gets the value of the Allow content header on an HTTP response. Returns .The value of the Allow header on an HTTP response. Gets the value of the Content-Disposition content header on an HTTP response. Returns .The value of the Content-Disposition content header on an HTTP response. Gets the value of the Content-Encoding content header on an HTTP response. Returns .The value of the Content-Encoding content header on an HTTP response. Gets the value of the Content-Language content header on an HTTP response. Returns .The value of the Content-Language content header on an HTTP response. Gets or sets the value of the Content-Length content header on an HTTP response. Returns .The value of the Content-Length content header on an HTTP response. Gets or sets the value of the Content-Location content header on an HTTP response. Returns .The value of the Content-Location content header on an HTTP response. Gets or sets the value of the Content-MD5 content header on an HTTP response. Returns .The value of the Content-MD5 content header on an HTTP response. Gets or sets the value of the Content-Range content header on an HTTP response. Returns .The value of the Content-Range content header on an HTTP response. Gets or sets the value of the Content-Type content header on an HTTP response. Returns .The value of the Content-Type content header on an HTTP response. Gets or sets the value of the Expires content header on an HTTP response. Returns .The value of the Expires content header on an HTTP response. Gets or sets the value of the Last-Modified content header on an HTTP response. Returns .The value of the Last-Modified content header on an HTTP response. A collection of headers and their values as defined in RFC 2616. Initializes a new instance of the class. Adds the specified header and its values into the collection. The header to add to the collection. A list of header values to add to the collection. Adds the specified header and its value into the collection. The header to add to the collection. The content of the header. Removes all headers from the collection. Returns if a specific header exists in the collection. Returns .true is the specified header exists in the collection; otherwise false. The specific header. Returns an enumerator that can iterate through the instance. Returns .An enumerator for the . Returns all header values for a specified header stored in the collection. Returns .An array of header strings. The specified header to return values for. Removes the specified header from the collection. Returns . The name of the header to remove from the collection. Gets an enumerator that can iterate through a . Returns .An instance of an implementation of an that can iterate through a . Returns a string that represents the current object. Returns .A string that represents the current object. Returns a value that indicates whether the specified header and its values were added to the collection without validating the provided information. Returns .true if the specified header and could be added to the collection; otherwise false. The header to add to the collection. The values of the header. Returns a value that indicates whether the specified header and its value were added to the collection without validating the provided information. Returns .true if the specified header and could be added to the collection; otherwise false. The header to add to the collection. The content of the header. Return if a specified header and specified values are stored in the collection. Returns .true is the specified header and values are stored in the collection; otherwise false. The specified header. The specified header values. Represents a collection of header values. Returns . Returns . Returns . Returns . Returns . Returns . Returns a string that represents the current XXX object. Returns .A string that represents the current object. Determines whether a string is valid XXX information. Returns . The string to validate. Represents the collection of Request Headers as defined in RFC 2616. Gets the value of the Accept header for an HTTP request. Returns .The value of the Accept header for an HTTP request. Gets the value of the Accept-Charset header for an HTTP request. Returns .The value of the Accept-Charset header for an HTTP request. Gets the value of the Accept-Encoding header for an HTTP request. Returns .The value of the Accept-Encoding header for an HTTP request. Gets the value of the Accept-Language header for an HTTP request. Returns .The value of the Accept-Language header for an HTTP request. Gets or sets the value of the Authorization header for an HTTP request. Returns .The value of the Authorization header for an HTTP request. Gets or sets the value of the Cache-Control header for an HTTP request. Returns .The value of the Cache-Control header for an HTTP request. Gets the value of the Connection header for an HTTP request. Returns .The value of the Connection header for an HTTP request. Gets or sets a value that indicates if the Connection header for an HTTP request contains Close. Returns .true if the Connection header contains Close, otherwise false. Gets or sets the value of the Date header for an HTTP request. Returns .The value of the Date header for an HTTP request. Gets the value of the Expect header for an HTTP request. Returns .The value of the Expect header for an HTTP request. Gets or sets a value that indicates if the Expect header for an HTTP request contains Continue. Returns .true if the Expect header contains Continue, otherwise false. Gets or sets the value of the From header for an HTTP request. Returns .The value of the From header for an HTTP request. Gets or sets the value of the Host header for an HTTP request. Returns .The value of the Host header for an HTTP request. Gets the value of the If-Match header for an HTTP request. Returns .The value of the If-Match header for an HTTP request. Gets or sets the value of the If-Modified-Since header for an HTTP request. Returns .The value of the If-Modified-Since header for an HTTP request. Gets the value of the If-None-Match header for an HTTP request. Returns .Gets the value of the If-None-Match header for an HTTP request. Gets or sets the value of the If-Range header for an HTTP request. Returns .The value of the If-Range header for an HTTP request. Gets or sets the value of the If-Unmodified-Since header for an HTTP request. Returns .The value of the If-Unmodified-Since header for an HTTP request. Gets or sets the value of the Max-Forwards header for an HTTP request. Returns .The value of the Max-Forwards header for an HTTP request. Gets the value of the Pragma header for an HTTP request. Returns .The value of the Pragma header for an HTTP request. Gets or sets the value of the Proxy-Authorization header for an HTTP request. Returns .The value of the Proxy-Authorization header for an HTTP request. Gets or sets the value of the Range header for an HTTP request. Returns .The value of the Range header for an HTTP request. Gets or sets the value of the Referer header for an HTTP request. Returns .The value of the Referer header for an HTTP request. Gets the value of the TE header for an HTTP request. Returns .The value of the TE header for an HTTP request. Gets the value of the Trailer header for an HTTP request. Returns .The value of the Trailer header for an HTTP request. Gets the value of the Transfer-Encoding header for an HTTP request. Returns .The value of the Transfer-Encoding header for an HTTP request. Gets or sets a value that indicates if the Transfer-Encoding header for an HTTP request contains chunked. Returns .true if the Transfer-Encoding header contains chunked, otherwise false. Gets the value of the Upgrade header for an HTTP request. Returns .The value of the Upgrade header for an HTTP request. Gets the value of the User-Agent header for an HTTP request. Returns .The value of the User-Agent header for an HTTP request. Gets the value of the Via header for an HTTP request. Returns .The value of the Via header for an HTTP request. Gets the value of the Warning header for an HTTP request. Returns .The value of the Warning header for an HTTP request. Represents the collection of Response Headers as defined in RFC 2616. Gets the value of the Accept-Ranges header for an HTTP response. Returns .The value of the Accept-Ranges header for an HTTP response. Gets or sets the value of the Age header for an HTTP response. Returns .The value of the Age header for an HTTP response. Gets or sets the value of the Cache-Control header for an HTTP response. Returns .The value of the Cache-Control header for an HTTP response. Gets the value of the Connection header for an HTTP response. Returns .The value of the Connection header for an HTTP response. Gets or sets a value that indicates if the Connection header for an HTTP response contains Close. Returns .true if the Connection header contains Close, otherwise false. Gets or sets the value of the Date header for an HTTP response. Returns .The value of the Date header for an HTTP response. Gets or sets the value of the ETag header for an HTTP response. Returns .The value of the ETag header for an HTTP response. Gets or sets the value of the Location header for an HTTP response. Returns .The value of the Location header for an HTTP response. Gets the value of the Pragma header for an HTTP response. Returns .The value of the Pragma header for an HTTP response. Gets the value of the Proxy-Authenticate header for an HTTP response. Returns .The value of the Proxy-Authenticate header for an HTTP response. Gets or sets the value of the Retry-After header for an HTTP response. Returns .The value of the Retry-After header for an HTTP response. Gets the value of the Server header for an HTTP response. Returns .The value of the Server header for an HTTP response. Gets the value of the Trailer header for an HTTP response. Returns .The value of the Trailer header for an HTTP response. Gets the value of the Transfer-Encoding header for an HTTP response. Returns .The value of the Transfer-Encoding header for an HTTP response. Gets or sets a value that indicates if the Transfer-Encoding header for an HTTP response contains chunked. Returns .true if the Transfer-Encoding header contains chunked, otherwise false. Gets the value of the Upgrade header for an HTTP response. Returns .The value of the Upgrade header for an HTTP response. Gets the value of the Vary header for an HTTP response. Returns .The value of the Vary header for an HTTP response. Gets the value of the Via header for an HTTP response. Returns .The value of the Via header for an HTTP response. Gets the value of the Warning header for an HTTP response. Returns .The value of the Warning header for an HTTP response. Gets the value of the WWW-Authenticate header for an HTTP response. Returns .The value of the WWW-Authenticate header for an HTTP response. Represents a media-type as defined in the RFC 2616. Initializes a new instance of the class. Initializes a new instance of the class. Gets or sets the character set. Returns .The character set. Determines whether the specified is equal to the current object. Returns .true if the specified is equal to the current object; otherwise, false. The object to compare with the current object. Serves as a hash function for an object. Returns .A hash code for the current object. Gets or sets the media-type header value. Returns .The media-type header value. Gets or sets the media-type header value parameters. Returns .The media-type header value parameters. Converts a string to an instance. Returns .An instance. A string that represents media type header value information. is a null reference. is not valid media type header value information. Creates a new object that is a copy of the current instance. Returns .A copy of the current instance. Returns a string that represents the current object. Returns .A string that represents the current object. Determines whether a string is valid information. Returns .true if is valid information; otherwise, false. The string to validate. The version of the string. Represents a content-type header value with an additional quality. Initializes a new instance of the class. Initializes a new instance of the class. Converts a string to an instance. Returns .An instance. A string that represents media type with quality header value information. is a null reference. is not valid media type with quality header value information. Returns . Creates a new object that is a copy of the current instance. Returns .A copy of the current instance. Determines whether a string is valid information. Returns .true if is valid information; otherwise, false. The string to validate. The version of the string. Represents a name/value pair. Initializes a new instance of the class. Initializes a new instance of the class. The header name. Initializes a new instance of the class. The header name. The header value. Determines whether the specified is equal to the current object. Returns .true if the specified is equal to the current object; otherwise, false. The object to compare with the current object. Serves as a hash function for an object. Returns .A hash code for the current object. Gets the header name. Returns .The header name. Converts a string to an instance. Returns .An instance. A string that represents name value header value information. is a null reference. is not valid name value header value information. Creates a new object that is a copy of the current instance. Returns .A copy of the current instance. Returns a string that represents the current object. Returns .A string that represents the current object. Determines whether a string is valid information. Returns .true if is valid information; otherwise, false. The string to validate. The version of the string. Gets the header value. Returns .The header value. Represents a name/value pair with parameters. Initializes a new instance of the class. Initializes a new instance of the class. Initializes a new instance of the class. Determines whether the specified is equal to the current object. Returns .true if the specified is equal to the current object; otherwise, false. The object to compare with the current object. Serves as a hash function for an object. Returns .A hash code for the current object. Returns . Converts a string to an instance. Returns .An instance. A string that represents name value with parameter header value information. is a null reference. is not valid name value with parameter header value information. Creates a new object that is a copy of the current instance. Returns .A copy of the current instance. Returns a string that represents the current object. Returns .A string that represents the current object. Determines whether a string is valid information. Returns .true if is valid information; otherwise, false. The string to validate. The version of the string. Represents a product token in header value. Initializes a new instance of the class. Initializes a new instance of the class. Determines whether the specified is equal to the current object. Returns .true if the specified is equal to the current object; otherwise, false. The object to compare with the current object. Serves as a hash function for an object. Returns .A hash code for the current object. Gets the name of the product token. Returns .The name of the product token. Converts a string to an instance. Returns .An instance. A string that represents product header value information. Creates a new object that is a copy of the current instance. Returns .A copy of the current instance. Returns a string that represents the current object. Returns .A string that represents the current object. Determines whether a string is valid information. Returns .true if is valid information; otherwise, false. The string to validate. The version of the string. Gets the version of the product token. Returns .The version of the product token. Represents a value which can either be a product or a comment. Initializes a new instance of the class. Initializes a new instance of the class. Initializes a new instance of the class. Returns . Determines whether the specified is equal to the current object. Returns .true if the specified is equal to the current object; otherwise, false. The object to compare with the current object. Serves as a hash function for an object. Returns .A hash code for the current object. Converts a string to an instance. Returns .An instance. A string that represents product info header value information. is a null reference. is not valid product info header value information. Returns . Creates a new object that is a copy of the current instance. Returns .A copy of the current instance. Returns a string that represents the current object. Returns .A string that represents the current object. Determines whether a string is valid information. Returns .true if is valid information; otherwise, false. The string to validate. The version of the string. Represents a header value which can either be a date/time or an entity-tag value. Initializes a new instance of the class. Initializes a new instance of the class. Initializes a new instance of the class. Returns . Returns . Determines whether the specified is equal to the current object. Returns .true if the specified is equal to the current object; otherwise, false. Serves as a hash function for an object. Returns .A hash code for the current object. Converts a string to an instance. Returns .An instance. A string that represents range condition header value information. is a null reference. is not valid range Condition header value information. Creates a new object that is a copy of the current instance. Returns .A copy of the current instance. Returns a string that represents the current object. Returns .A string that represents the current object. Determines whether a string is valid information. Returns .true if is valid information; otherwise, false. The string to validate. The version of the string. Represents the value of the Range header. Initializes a new instance of the class. Initializes a new instance of the class. Determines whether the specified is equal to the current object. Returns .true if the specified is equal to the current object; otherwise, false. The object to compare with the current object. Serves as a hash function for an object. Returns .A hash code for the current object. Converts a string to an instance. Returns .An instance. A string that represents range header value information. is a null reference. is not valid range header value information. Returns . Creates a new object that is a copy of the current instance. Returns .A copy of the current instance. Returns a string that represents the current object. Returns .A string that represents the current object. Determines whether a string is valid information. Returns .true if is valid information; otherwise, false. he string to validate. The version of the string. Returns . Represents a byte-range header value. Initializes a new instance of the class. Determines whether the specified is equal to the current object. Returns .true if the specified is equal to the current object; otherwise, false. The object to compare with the current object. Returns . Serves as a hash function for an object. Returns .A hash code for the current object. Creates a new object that is a copy of the current instance. Returns .A copy of the current instance. Returns . Returns a string that represents the current object. Returns .A string that represents the current object. Represents a header value which can either be a date/time or a timespan value. Initializes a new instance of the class. Initializes a new instance of the class. Returns . Returns . Determines whether the specified is equal to the current object. Returns .true if the specified is equal to the current object; otherwise, false. The object to compare with the current object. Serves as a hash function for an object. Returns .A hash code for the current object. Converts a string to an instance. Returns .An instance. A string that represents retry condition header value information. is a null reference. is not valid retry condition header value information. Creates a new object that is a copy of the current instance. Returns .A copy of the current instance. Returns a string that represents the current object. Returns .A string that represents the current object. Determines whether a string is valid information. Returns .true if is valid information; otherwise, false. The string to validate. The version of the string. Represents a string header value with an optional quality. Initializes a new instance of the class. Initializes a new instance of the class. Determines whether the specified Object is equal to the current object. Returns .true if the specified is equal to the current object; otherwise, false. The object to compare with the current object. Serves as a hash function for an object. Returns .A hash code for the current object. Converts a string to an instance. Returns .An instance. A string that represents quality header value information. is a null reference. is not valid string with quality header value information. Returns . Creates a new object that is a copy of the current instance. Returns .A copy of the current instance. Returns a string that represents the current object. Returns .A string that represents the current object. Determines whether a string is valid information. Returns .true if is valid information; otherwise, false. The string to validate. The version of the string. Returns . Represents a transfer-coding header value. Initializes a new instance of the class. Initializes a new instance of the class. Determines whether the specified Object is equal to the current object. Returns .true if the specified is equal to the current object; otherwise, false. The object to compare with the current object. Serves as a hash function for an object. Returns .A hash code for the current object. Gets the transfer-coding parameters. Returns .The transfer-coding parameters. Converts a string to an instance. Returns .An instance. A string that represents transfer-coding header value information. is a null reference. is not valid transfer-coding header value information. Creates a new object that is a copy of the current instance. Returns .A copy of the current instance. Returns a string that represents the current object. Returns .A string that represents the current object. Determines whether a string is valid information. Returns .true if is valid information; otherwise, false. The string to validate. The version of the string. Gets the transfer-coding value. Returns .The transfer-coding value. Represents a transfer-coding header value with optional quality. Initializes a new instance of the class. Initializes a new instance of the class. Converts a string to an instance. Returns .An instance. A string that represents transfer-coding value information. is a null reference. is not valid transfer-coding with quality header value information. Returns . Creates a new object that is a copy of the current instance. Returns .A copy of the current instance. Determines whether a string is valid information. Returns .true if is valid information; otherwise, false. The string to validate. The version of the string. Represents the value of a Via header. Initializes a new instance of the class. The protocol version of the received protocol. The host and port that the request or response was received by. Initializes a new instance of the class. The protocol version of the received protocol. The host and port that the request or response was received by. The protocol name of the received protocol. Initializes a new instance of the class. The protocol version of the received protocol. The host and port that the request or response was received by. The protocol name of the received protocol. The comment field used to identify the software of the recipient proxy or gateway. Gets the comment field used to identify the software of the recipient proxy or gateway. Returns .The comment field used to identify the software of the recipient proxy or gateway. Determines whether the specified is equal to the current object. Returns .true if the specified is equal to the current object; otherwise, false. The object to compare with the current object. Serves as a hash function for an object. Returns .Returns a hash code for the current object. Converts a string to an instance. Returns .An instance. A string that represents via header value information. is a null reference. is not valid via header value information. Gets the protocol name of the received protocol. Returns .The protocol name. Gets the protocol version of the received protocol. Returns .The protocol version. Gets the host and port that the request or response was received by. Returns .The host and port that the request or response was received by. Creates a new object that is a copy of the current instance. Returns .A copy of the current instance. Returns a string that represents the current object. Returns .A string that represents the current object. Determines whether a string is valid information. Returns .true if is valid information; otherwise, false. The string to validate. The version of the string. Represents a warning value used by the Warning header. Initializes a new instance of the class. The specific warning code. The host that attached the warning. A quoted-string containing the warning text. Initializes a new instance of the class. The specific warning code. The host that attached the warning. A quoted-string containing the warning text. The date/time stamp of the warning. Gets the host that attached the warning. Returns .The host that attached the warning. Gets the specific warning code. Returns .The specific warning code. Gets the date/time stamp of the warning. Returns .The date/time stamp of the warning. Determines whether the specified is equal to the current object. Returns .true if the specified is equal to the current object; otherwise, false. The object to compare with the current object. Serves as a hash function for an object. Returns .A hash code for the current object. Converts a string to an instance. Returns an instance. A string that represents authentication header value information. is a null reference. is not valid authentication header value information. Creates a new object that is a copy of the current instance. Returns .Returns a copy of the current instance. Gets a quoted-string containing the warning text. Returns .A quoted-string containing the warning text. Returns a string that represents the current object. Returns .A string that represents the current object. Determines whether a string is valid information. Returns .true if is valid information; otherwise, false. The string to validate. The version of the string. ================================================ FILE: packages/Microsoft.Net.Http.2.0.20710.0/lib/net45/_._ ================================================  ================================================ FILE: packages/Microsoft.jQuery.Unobtrusive.Ajax.2.0.20710.0/Content/Scripts/jquery.unobtrusive-ajax.js ================================================ /*! ** Unobtrusive Ajax support library for jQuery ** Copyright (C) Microsoft Corporation. All rights reserved. */ /*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: false */ /*global window: false, jQuery: false */ (function ($) { var data_click = "unobtrusiveAjaxClick", data_validation = "unobtrusiveValidation"; function getFunction(code, argNames) { var fn = window, parts = (code || "").split("."); while (fn && parts.length) { fn = fn[parts.shift()]; } if (typeof (fn) === "function") { return fn; } argNames.push(code); return Function.constructor.apply(null, argNames); } function isMethodProxySafe(method) { return method === "GET" || method === "POST"; } function asyncOnBeforeSend(xhr, method) { if (!isMethodProxySafe(method)) { xhr.setRequestHeader("X-HTTP-Method-Override", method); } } function asyncOnSuccess(element, data, contentType) { var mode; if (contentType.indexOf("application/x-javascript") !== -1) { // jQuery already executes JavaScript for us return; } mode = (element.getAttribute("data-ajax-mode") || "").toUpperCase(); $(element.getAttribute("data-ajax-update")).each(function (i, update) { var top; switch (mode) { case "BEFORE": top = update.firstChild; $("
").html(data).contents().each(function () { update.insertBefore(this, top); }); break; case "AFTER": $("
").html(data).contents().each(function () { update.appendChild(this); }); break; default: $(update).html(data); break; } }); } function asyncRequest(element, options) { var confirm, loading, method, duration; confirm = element.getAttribute("data-ajax-confirm"); if (confirm && !window.confirm(confirm)) { return; } loading = $(element.getAttribute("data-ajax-loading")); duration = element.getAttribute("data-ajax-loading-duration") || 0; $.extend(options, { type: element.getAttribute("data-ajax-method") || undefined, url: element.getAttribute("data-ajax-url") || undefined, beforeSend: function (xhr) { var result; asyncOnBeforeSend(xhr, method); result = getFunction(element.getAttribute("data-ajax-begin"), ["xhr"]).apply(this, arguments); if (result !== false) { loading.show(duration); } return result; }, complete: function () { loading.hide(duration); getFunction(element.getAttribute("data-ajax-complete"), ["xhr", "status"]).apply(this, arguments); }, success: function (data, status, xhr) { asyncOnSuccess(element, data, xhr.getResponseHeader("Content-Type") || "text/html"); getFunction(element.getAttribute("data-ajax-success"), ["data", "status", "xhr"]).apply(this, arguments); }, error: getFunction(element.getAttribute("data-ajax-failure"), ["xhr", "status", "error"]) }); options.data.push({ name: "X-Requested-With", value: "XMLHttpRequest" }); method = options.type.toUpperCase(); if (!isMethodProxySafe(method)) { options.type = "POST"; options.data.push({ name: "X-HTTP-Method-Override", value: method }); } $.ajax(options); } function validate(form) { var validationInfo = $(form).data(data_validation); return !validationInfo || !validationInfo.validate || validationInfo.validate(); } $("a[data-ajax=true]").live("click", function (evt) { evt.preventDefault(); asyncRequest(this, { url: this.href, type: "GET", data: [] }); }); $("form[data-ajax=true] input[type=image]").live("click", function (evt) { var name = evt.target.name, $target = $(evt.target), form = $target.parents("form")[0], offset = $target.offset(); $(form).data(data_click, [ { name: name + ".x", value: Math.round(evt.pageX - offset.left) }, { name: name + ".y", value: Math.round(evt.pageY - offset.top) } ]); setTimeout(function () { $(form).removeData(data_click); }, 0); }); $("form[data-ajax=true] :submit").live("click", function (evt) { var name = evt.target.name, form = $(evt.target).parents("form")[0]; $(form).data(data_click, name ? [{ name: name, value: evt.target.value }] : []); setTimeout(function () { $(form).removeData(data_click); }, 0); }); $("form[data-ajax=true]").live("submit", function (evt) { var clickInfo = $(this).data(data_click) || []; evt.preventDefault(); if (!validate(this)) { return; } asyncRequest(this, { url: this.action, type: this.method || "GET", data: clickInfo.concat($(this).serializeArray()) }); }); }(jQuery)); ================================================ FILE: packages/Microsoft.jQuery.Unobtrusive.Validation.2.0.20710.0/Content/Scripts/jquery.validate.unobtrusive.js ================================================ /*! ** Unobtrusive validation support library for jQuery and jQuery Validate ** Copyright (C) Microsoft Corporation. All rights reserved. */ /*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: false */ /*global document: false, jQuery: false */ (function ($) { var $jQval = $.validator, adapters, data_validation = "unobtrusiveValidation"; function setValidationValues(options, ruleName, value) { options.rules[ruleName] = value; if (options.message) { options.messages[ruleName] = options.message; } } function splitAndTrim(value) { return value.replace(/^\s+|\s+$/g, "").split(/\s*,\s*/g); } function escapeAttributeValue(value) { // As mentioned on http://api.jquery.com/category/selectors/ return value.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g, "\\$1"); } function getModelPrefix(fieldName) { return fieldName.substr(0, fieldName.lastIndexOf(".") + 1); } function appendModelPrefix(value, prefix) { if (value.indexOf("*.") === 0) { value = value.replace("*.", prefix); } return value; } function onError(error, inputElement) { // 'this' is the form element var container = $(this).find("[data-valmsg-for='" + escapeAttributeValue(inputElement[0].name) + "']"), replace = $.parseJSON(container.attr("data-valmsg-replace")) !== false; container.removeClass("field-validation-valid").addClass("field-validation-error"); error.data("unobtrusiveContainer", container); if (replace) { container.empty(); error.removeClass("input-validation-error").appendTo(container); } else { error.hide(); } } function onErrors(event, validator) { // 'this' is the form element var container = $(this).find("[data-valmsg-summary=true]"), list = container.find("ul"); if (list && list.length && validator.errorList.length) { list.empty(); container.addClass("validation-summary-errors").removeClass("validation-summary-valid"); $.each(validator.errorList, function () { $("
  • ").html(this.message).appendTo(list); }); } } function onSuccess(error) { // 'this' is the form element var container = error.data("unobtrusiveContainer"), replace = $.parseJSON(container.attr("data-valmsg-replace")); if (container) { container.addClass("field-validation-valid").removeClass("field-validation-error"); error.removeData("unobtrusiveContainer"); if (replace) { container.empty(); } } } function onReset(event) { // 'this' is the form element var $form = $(this); $form.data("validator").resetForm(); $form.find(".validation-summary-errors") .addClass("validation-summary-valid") .removeClass("validation-summary-errors"); $form.find(".field-validation-error") .addClass("field-validation-valid") .removeClass("field-validation-error") .removeData("unobtrusiveContainer") .find(">*") // If we were using valmsg-replace, get the underlying error .removeData("unobtrusiveContainer"); } function validationInfo(form) { var $form = $(form), result = $form.data(data_validation), onResetProxy = $.proxy(onReset, form); if (!result) { result = { options: { // options structure passed to jQuery Validate's validate() method errorClass: "input-validation-error", errorElement: "span", errorPlacement: $.proxy(onError, form), invalidHandler: $.proxy(onErrors, form), messages: {}, rules: {}, success: $.proxy(onSuccess, form) }, attachValidation: function () { $form .unbind("reset." + data_validation, onResetProxy) .bind("reset." + data_validation, onResetProxy) .validate(this.options); }, validate: function () { // a validation function that is called by unobtrusive Ajax $form.validate(); return $form.valid(); } }; $form.data(data_validation, result); } return result; } $jQval.unobtrusive = { adapters: [], parseElement: function (element, skipAttach) { /// /// Parses a single HTML element for unobtrusive validation attributes. /// /// The HTML element to be parsed. /// [Optional] true to skip attaching the /// validation to the form. If parsing just this single element, you should specify true. /// If parsing several elements, you should specify false, and manually attach the validation /// to the form when you are finished. The default is false. var $element = $(element), form = $element.parents("form")[0], valInfo, rules, messages; if (!form) { // Cannot do client-side validation without a form return; } valInfo = validationInfo(form); valInfo.options.rules[element.name] = rules = {}; valInfo.options.messages[element.name] = messages = {}; $.each(this.adapters, function () { var prefix = "data-val-" + this.name, message = $element.attr(prefix), paramValues = {}; if (message !== undefined) { // Compare against undefined, because an empty message is legal (and falsy) prefix += "-"; $.each(this.params, function () { paramValues[this] = $element.attr(prefix + this); }); this.adapt({ element: element, form: form, message: message, params: paramValues, rules: rules, messages: messages }); } }); $.extend(rules, { "__dummy__": true }); if (!skipAttach) { valInfo.attachValidation(); } }, parse: function (selector) { /// /// Parses all the HTML elements in the specified selector. It looks for input elements decorated /// with the [data-val=true] attribute value and enables validation according to the data-val-* /// attribute values. /// /// Any valid jQuery selector. var $forms = $(selector) .parents("form") .andSelf() .add($(selector).find("form")) .filter("form"); $(selector).find(":input[data-val=true]").each(function () { $jQval.unobtrusive.parseElement(this, true); }); $forms.each(function () { var info = validationInfo(this); if (info) { info.attachValidation(); } }); } }; adapters = $jQval.unobtrusive.adapters; adapters.add = function (adapterName, params, fn) { /// Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation. /// The name of the adapter to be added. This matches the name used /// in the data-val-nnnn HTML attribute (where nnnn is the adapter name). /// [Optional] An array of parameter names (strings) that will /// be extracted from the data-val-nnnn-mmmm HTML attributes (where nnnn is the adapter name, and /// mmmm is the parameter name). /// The function to call, which adapts the values from the HTML /// attributes into jQuery Validate rules and/or messages. /// if (!fn) { // Called with no params, just a function fn = params; params = []; } this.push({ name: adapterName, params: params, adapt: fn }); return this; }; adapters.addBool = function (adapterName, ruleName) { /// Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where /// the jQuery Validate validation rule has no parameter values. /// The name of the adapter to be added. This matches the name used /// in the data-val-nnnn HTML attribute (where nnnn is the adapter name). /// [Optional] The name of the jQuery Validate rule. If not provided, the value /// of adapterName will be used instead. /// return this.add(adapterName, function (options) { setValidationValues(options, ruleName || adapterName, true); }); }; adapters.addMinMax = function (adapterName, minRuleName, maxRuleName, minMaxRuleName, minAttribute, maxAttribute) { /// Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where /// the jQuery Validate validation has three potential rules (one for min-only, one for max-only, and /// one for min-and-max). The HTML parameters are expected to be named -min and -max. /// The name of the adapter to be added. This matches the name used /// in the data-val-nnnn HTML attribute (where nnnn is the adapter name). /// The name of the jQuery Validate rule to be used when you only /// have a minimum value. /// The name of the jQuery Validate rule to be used when you only /// have a maximum value. /// The name of the jQuery Validate rule to be used when you /// have both a minimum and maximum value. /// [Optional] The name of the HTML attribute that /// contains the minimum value. The default is "min". /// [Optional] The name of the HTML attribute that /// contains the maximum value. The default is "max". /// return this.add(adapterName, [minAttribute || "min", maxAttribute || "max"], function (options) { var min = options.params.min, max = options.params.max; if (min && max) { setValidationValues(options, minMaxRuleName, [min, max]); } else if (min) { setValidationValues(options, minRuleName, min); } else if (max) { setValidationValues(options, maxRuleName, max); } }); }; adapters.addSingleVal = function (adapterName, attribute, ruleName) { /// Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where /// the jQuery Validate validation rule has a single value. /// The name of the adapter to be added. This matches the name used /// in the data-val-nnnn HTML attribute(where nnnn is the adapter name). /// [Optional] The name of the HTML attribute that contains the value. /// The default is "val". /// [Optional] The name of the jQuery Validate rule. If not provided, the value /// of adapterName will be used instead. /// return this.add(adapterName, [attribute || "val"], function (options) { setValidationValues(options, ruleName || adapterName, options.params[attribute]); }); }; $jQval.addMethod("__dummy__", function (value, element, params) { return true; }); $jQval.addMethod("regex", function (value, element, params) { var match; if (this.optional(element)) { return true; } match = new RegExp(params).exec(value); return (match && (match.index === 0) && (match[0].length === value.length)); }); $jQval.addMethod("nonalphamin", function (value, element, nonalphamin) { var match; if (nonalphamin) { match = value.match(/\W/g); match = match && match.length >= nonalphamin; } return match; }); adapters.addSingleVal("accept", "exts").addSingleVal("regex", "pattern"); adapters.addBool("creditcard").addBool("date").addBool("digits").addBool("email").addBool("number").addBool("url"); adapters.addMinMax("length", "minlength", "maxlength", "rangelength").addMinMax("range", "min", "max", "range"); adapters.add("equalto", ["other"], function (options) { var prefix = getModelPrefix(options.element.name), other = options.params.other, fullOtherName = appendModelPrefix(other, prefix), element = $(options.form).find(":input[name='" + escapeAttributeValue(fullOtherName) + "']")[0]; setValidationValues(options, "equalTo", element); }); adapters.add("required", function (options) { // jQuery Validate equates "required" with "mandatory" for checkbox elements if (options.element.tagName.toUpperCase() !== "INPUT" || options.element.type.toUpperCase() !== "CHECKBOX") { setValidationValues(options, "required", true); } }); adapters.add("remote", ["url", "type", "additionalfields"], function (options) { var value = { url: options.params.url, type: options.params.type || "GET", data: {} }, prefix = getModelPrefix(options.element.name); $.each(splitAndTrim(options.params.additionalfields || options.element.name), function (i, fieldName) { var paramName = appendModelPrefix(fieldName, prefix); value.data[paramName] = function () { return $(options.form).find(":input[name='" + escapeAttributeValue(paramName) + "']").val(); }; }); setValidationValues(options, "remote", value); }); adapters.add("password", ["min", "nonalphamin", "regex"], function (options) { if (options.params.min) { setValidationValues(options, "minlength", options.params.min); } if (options.params.nonalphamin) { setValidationValues(options, "nonalphamin", options.params.nonalphamin); } if (options.params.regex) { setValidationValues(options, "regex", options.params.regex); } }); $(function () { $jQval.unobtrusive.parse(document); }); } (jQuery)); ================================================ FILE: packages/Modernizr.2.5.3/Content/Scripts/modernizr-2.5.3.js ================================================ /*! * Modernizr v2.5.3 * www.modernizr.com * * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton * Available under the BSD and MIT licenses: www.modernizr.com/license/ */ /* * Modernizr tests which native CSS3 and HTML5 features are available in * the current UA and makes the results available to you in two ways: * as properties on a global Modernizr object, and as classes on the * element. This information allows you to progressively enhance * your pages with a granular level of control over the experience. * * Modernizr has an optional (not included) conditional resource loader * called Modernizr.load(), based on Yepnope.js (yepnopejs.com). * To get a build that includes Modernizr.load(), as well as choosing * which tests to include, go to www.modernizr.com/download/ * * Authors Faruk Ates, Paul Irish, Alex Sexton * Contributors Ryan Seddon, Ben Alman */ window.Modernizr = (function( window, document, undefined ) { var version = '2.5.3', Modernizr = {}, // option for enabling the HTML classes to be added enableClasses = true, docElement = document.documentElement, /** * Create our "modernizr" element that we do most feature tests on. */ mod = 'modernizr', modElem = document.createElement(mod), mStyle = modElem.style, /** * Create the input element for various Web Forms feature tests. */ inputElem = document.createElement('input'), smile = ':)', toString = {}.toString, // List of property values to set for css tests. See ticket #21 prefixes = ' -webkit- -moz- -o- -ms- '.split(' '), // Following spec is to expose vendor-specific style properties as: // elem.style.WebkitBorderRadius // and the following would be incorrect: // elem.style.webkitBorderRadius // Webkit ghosts their properties in lowercase but Opera & Moz do not. // Microsoft uses a lowercase `ms` instead of the correct `Ms` in IE8+ // erik.eae.net/archives/2008/03/10/21.48.10/ // More here: github.com/Modernizr/Modernizr/issues/issue/21 omPrefixes = 'Webkit Moz O ms', cssomPrefixes = omPrefixes.split(' '), domPrefixes = omPrefixes.toLowerCase().split(' '), ns = {'svg': 'http://www.w3.org/2000/svg'}, tests = {}, inputs = {}, attrs = {}, classes = [], slice = classes.slice, featureName, // used in testing loop // Inject element with style element and some CSS rules injectElementWithStyles = function( rule, callback, nodes, testnames ) { var style, ret, node, div = document.createElement('div'), // After page load injecting a fake body doesn't work so check if body exists body = document.body, // IE6 and 7 won't return offsetWidth or offsetHeight unless it's in the body element, so we fake it. fakeBody = body ? body : document.createElement('body'); if ( parseInt(nodes, 10) ) { // In order not to give false positives we create a node for each test // This also allows the method to scale for unspecified uses while ( nodes-- ) { node = document.createElement('div'); node.id = testnames ? testnames[nodes] : mod + (nodes + 1); div.appendChild(node); } } // '].join(''); div.id = mod; // IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody. // Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270 fakeBody.innerHTML += style; fakeBody.appendChild(div); if(!body){ //avoid crashing IE8, if background image is used fakeBody.style.background = ""; docElement.appendChild(fakeBody); } ret = callback(div, rule); // If this is done after page load we don't want to remove the body so check if body exists !body ? fakeBody.parentNode.removeChild(fakeBody) : div.parentNode.removeChild(div); return !!ret; }, // adapted from matchMedia polyfill // by Scott Jehl and Paul Irish // gist.github.com/786768 testMediaQuery = function( mq ) { var matchMedia = window.matchMedia || window.msMatchMedia; if ( matchMedia ) { return matchMedia(mq).matches; } var bool; injectElementWithStyles('@media ' + mq + ' { #' + mod + ' { position: absolute; } }', function( node ) { bool = (window.getComputedStyle ? getComputedStyle(node, null) : node.currentStyle)['position'] == 'absolute'; }); return bool; }, /** * isEventSupported determines if a given element supports the given event * function from yura.thinkweb2.com/isEventSupported/ */ isEventSupported = (function() { var TAGNAMES = { 'select': 'input', 'change': 'input', 'submit': 'form', 'reset': 'form', 'error': 'img', 'load': 'img', 'abort': 'img' }; function isEventSupported( eventName, element ) { element = element || document.createElement(TAGNAMES[eventName] || 'div'); eventName = 'on' + eventName; // When using `setAttribute`, IE skips "unload", WebKit skips "unload" and "resize", whereas `in` "catches" those var isSupported = eventName in element; if ( !isSupported ) { // If it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element if ( !element.setAttribute ) { element = document.createElement('div'); } if ( element.setAttribute && element.removeAttribute ) { element.setAttribute(eventName, ''); isSupported = is(element[eventName], 'function'); // If property was created, "remove it" (by setting value to `undefined`) if ( !is(element[eventName], 'undefined') ) { element[eventName] = undefined; } element.removeAttribute(eventName); } } element = null; return isSupported; } return isEventSupported; })(); // hasOwnProperty shim by kangax needed for Safari 2.0 support var _hasOwnProperty = ({}).hasOwnProperty, hasOwnProperty; if ( !is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined') ) { hasOwnProperty = function (object, property) { return _hasOwnProperty.call(object, property); }; } else { hasOwnProperty = function (object, property) { /* yes, this can give false positives/negatives, but most of the time we don't care about those */ return ((property in object) && is(object.constructor.prototype[property], 'undefined')); }; } // Taken from ES5-shim https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js // ES-5 15.3.4.5 // http://es5.github.com/#x15.3.4.5 if (!Function.prototype.bind) { Function.prototype.bind = function bind(that) { var target = this; if (typeof target != "function") { throw new TypeError(); } var args = slice.call(arguments, 1), bound = function () { if (this instanceof bound) { var F = function(){}; F.prototype = target.prototype; var self = new F; var result = target.apply( self, args.concat(slice.call(arguments)) ); if (Object(result) === result) { return result; } return self; } else { return target.apply( that, args.concat(slice.call(arguments)) ); } }; return bound; }; } /** * setCss applies given styles to the Modernizr DOM node. */ function setCss( str ) { mStyle.cssText = str; } /** * setCssAll extrapolates all vendor-specific css strings. */ function setCssAll( str1, str2 ) { return setCss(prefixes.join(str1 + ';') + ( str2 || '' )); } /** * is returns a boolean for if typeof obj is exactly type. */ function is( obj, type ) { return typeof obj === type; } /** * contains returns a boolean for if substr is found within str. */ function contains( str, substr ) { return !!~('' + str).indexOf(substr); } /** * testProps is a generic CSS / DOM property test; if a browser supports * a certain property, it won't return undefined for it. * A supported CSS property returns empty string when its not yet set. */ function testProps( props, prefixed ) { for ( var i in props ) { if ( mStyle[ props[i] ] !== undefined ) { return prefixed == 'pfx' ? props[i] : true; } } return false; } /** * testDOMProps is a generic DOM property test; if a browser supports * a certain property, it won't return undefined for it. */ function testDOMProps( props, obj, elem ) { for ( var i in props ) { var item = obj[props[i]]; if ( item !== undefined) { // return the property name as a string if (elem === false) return props[i]; // let's bind a function if (is(item, 'function')){ // default to autobind unless override return item.bind(elem || obj); } // return the unbound function or obj or value return item; } } return false; } /** * testPropsAll tests a list of DOM properties we want to check against. * We specify literally ALL possible (known and/or likely) properties on * the element including the non-vendor prefixed one, for forward- * compatibility. */ function testPropsAll( prop, prefixed, elem ) { var ucProp = prop.charAt(0).toUpperCase() + prop.substr(1), props = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' '); // did they call .prefixed('boxSizing') or are we just testing a prop? if(is(prefixed, "string") || is(prefixed, "undefined")) { return testProps(props, prefixed); // otherwise, they called .prefixed('requestAnimationFrame', window[, elem]) } else { props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' '); return testDOMProps(props, prefixed, elem); } } /** * testBundle tests a list of CSS features that require element and style injection. * By bundling them together we can reduce the need to touch the DOM multiple times. */ /*>>testBundle*/ var testBundle = (function( styles, tests ) { var style = styles.join(''), len = tests.length; injectElementWithStyles(style, function( node, rule ) { var style = document.styleSheets[document.styleSheets.length - 1], // IE8 will bork if you create a custom build that excludes both fontface and generatedcontent tests. // So we check for cssRules and that there is a rule available // More here: github.com/Modernizr/Modernizr/issues/288 & github.com/Modernizr/Modernizr/issues/293 cssText = style ? (style.cssRules && style.cssRules[0] ? style.cssRules[0].cssText : style.cssText || '') : '', children = node.childNodes, hash = {}; while ( len-- ) { hash[children[len].id] = children[len]; } /*>>touch*/ Modernizr['touch'] = ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch || (hash['touch'] && hash['touch'].offsetTop) === 9; /*>>touch*/ /*>>csstransforms3d*/ Modernizr['csstransforms3d'] = (hash['csstransforms3d'] && hash['csstransforms3d'].offsetLeft) === 9 && hash['csstransforms3d'].offsetHeight === 3; /*>>csstransforms3d*/ /*>>generatedcontent*/Modernizr['generatedcontent'] = (hash['generatedcontent'] && hash['generatedcontent'].offsetHeight) >= 1; /*>>generatedcontent*/ /*>>fontface*/ Modernizr['fontface'] = /src/i.test(cssText) && cssText.indexOf(rule.split(' ')[0]) === 0; /*>>fontface*/ }, len, tests); })([ // Pass in styles to be injected into document /*>>fontface*/ '@font-face {font-family:"font";src:url("https://")}' /*>>fontface*/ /*>>touch*/ ,['@media (',prefixes.join('touch-enabled),('),mod,')', '{#touch{top:9px;position:absolute}}'].join('') /*>>touch*/ /*>>csstransforms3d*/ ,['@media (',prefixes.join('transform-3d),('),mod,')', '{#csstransforms3d{left:9px;position:absolute;height:3px;}}'].join('')/*>>csstransforms3d*/ /*>>generatedcontent*/,['#generatedcontent:after{content:"',smile,'";visibility:hidden}'].join('') /*>>generatedcontent*/ ], [ /*>>fontface*/ 'fontface' /*>>fontface*/ /*>>touch*/ ,'touch' /*>>touch*/ /*>>csstransforms3d*/ ,'csstransforms3d' /*>>csstransforms3d*/ /*>>generatedcontent*/,'generatedcontent' /*>>generatedcontent*/ ]);/*>>testBundle*/ /** * Tests * ----- */ // The *new* flexbox // dev.w3.org/csswg/css3-flexbox tests['flexbox'] = function() { return testPropsAll('flexOrder'); }; // The *old* flexbox // www.w3.org/TR/2009/WD-css3-flexbox-20090723/ tests['flexbox-legacy'] = function() { return testPropsAll('boxDirection'); }; // On the S60 and BB Storm, getContext exists, but always returns undefined // so we actually have to call getContext() to verify // github.com/Modernizr/Modernizr/issues/issue/97/ tests['canvas'] = function() { var elem = document.createElement('canvas'); return !!(elem.getContext && elem.getContext('2d')); }; tests['canvastext'] = function() { return !!(Modernizr['canvas'] && is(document.createElement('canvas').getContext('2d').fillText, 'function')); }; // this test initiates a new webgl context. // webk.it/70117 is tracking a legit feature detect proposal tests['webgl'] = function() { try { var canvas = document.createElement('canvas'), ret; ret = !!(window.WebGLRenderingContext && (canvas.getContext('experimental-webgl') || canvas.getContext('webgl'))); canvas = undefined; } catch (e){ ret = false; } return ret; }; /* * The Modernizr.touch test only indicates if the browser supports * touch events, which does not necessarily reflect a touchscreen * device, as evidenced by tablets running Windows 7 or, alas, * the Palm Pre / WebOS (touch) phones. * * Additionally, Chrome (desktop) used to lie about its support on this, * but that has since been rectified: crbug.com/36415 * * We also test for Firefox 4 Multitouch Support. * * For more info, see: modernizr.github.com/Modernizr/touch.html */ tests['touch'] = function() { return Modernizr['touch']; }; /** * geolocation tests for the new Geolocation API specification. * This test is a standards compliant-only test; for more complete * testing, including a Google Gears fallback, please see: * code.google.com/p/geo-location-javascript/ * or view a fallback solution using google's geo API: * gist.github.com/366184 */ tests['geolocation'] = function() { return !!navigator.geolocation; }; // Per 1.6: // This used to be Modernizr.crosswindowmessaging but the longer // name has been deprecated in favor of a shorter and property-matching one. // The old API is still available in 1.6, but as of 2.0 will throw a warning, // and in the first release thereafter disappear entirely. tests['postmessage'] = function() { return !!window.postMessage; }; // Chrome incognito mode used to throw an exception when using openDatabase // It doesn't anymore. tests['websqldatabase'] = function() { return !!window.openDatabase; }; // Vendors had inconsistent prefixing with the experimental Indexed DB: // - Webkit's implementation is accessible through webkitIndexedDB // - Firefox shipped moz_indexedDB before FF4b9, but since then has been mozIndexedDB // For speed, we don't test the legacy (and beta-only) indexedDB tests['indexedDB'] = function() { return !!testPropsAll("indexedDB",window); }; // documentMode logic from YUI to filter out IE8 Compat Mode // which false positives. tests['hashchange'] = function() { return isEventSupported('hashchange', window) && (document.documentMode === undefined || document.documentMode > 7); }; // Per 1.6: // This used to be Modernizr.historymanagement but the longer // name has been deprecated in favor of a shorter and property-matching one. // The old API is still available in 1.6, but as of 2.0 will throw a warning, // and in the first release thereafter disappear entirely. tests['history'] = function() { return !!(window.history && history.pushState); }; tests['draganddrop'] = function() { var div = document.createElement('div'); return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div); }; // FIXME: Once FF10 is sunsetted, we can drop prefixed MozWebSocket // bugzil.la/695635 tests['websockets'] = function() { for ( var i = -1, len = cssomPrefixes.length; ++i < len; ){ if ( window[cssomPrefixes[i] + 'WebSocket'] ){ return true; } } return 'WebSocket' in window; }; // css-tricks.com/rgba-browser-support/ tests['rgba'] = function() { // Set an rgba() color and check the returned value setCss('background-color:rgba(150,255,150,.5)'); return contains(mStyle.backgroundColor, 'rgba'); }; tests['hsla'] = function() { // Same as rgba(), in fact, browsers re-map hsla() to rgba() internally, // except IE9 who retains it as hsla setCss('background-color:hsla(120,40%,100%,.5)'); return contains(mStyle.backgroundColor, 'rgba') || contains(mStyle.backgroundColor, 'hsla'); }; tests['multiplebgs'] = function() { // Setting multiple images AND a color on the background shorthand property // and then querying the style.background property value for the number of // occurrences of "url(" is a reliable method for detecting ACTUAL support for this! setCss('background:url(https://),url(https://),red url(https://)'); // If the UA supports multiple backgrounds, there should be three occurrences // of the string "url(" in the return value for elemStyle.background return /(url\s*\(.*?){3}/.test(mStyle.background); }; // In testing support for a given CSS property, it's legit to test: // `elem.style[styleName] !== undefined` // If the property is supported it will return an empty string, // if unsupported it will return undefined. // We'll take advantage of this quick test and skip setting a style // on our modernizr element, but instead just testing undefined vs // empty string. tests['backgroundsize'] = function() { return testPropsAll('backgroundSize'); }; tests['borderimage'] = function() { return testPropsAll('borderImage'); }; // Super comprehensive table about all the unique implementations of // border-radius: muddledramblings.com/table-of-css3-border-radius-compliance tests['borderradius'] = function() { return testPropsAll('borderRadius'); }; // WebOS unfortunately false positives on this test. tests['boxshadow'] = function() { return testPropsAll('boxShadow'); }; // FF3.0 will false positive on this test tests['textshadow'] = function() { return document.createElement('div').style.textShadow === ''; }; tests['opacity'] = function() { // Browsers that actually have CSS Opacity implemented have done so // according to spec, which means their return values are within the // range of [0.0,1.0] - including the leading zero. setCssAll('opacity:.55'); // The non-literal . in this regex is intentional: // German Chrome returns this value as 0,55 // github.com/Modernizr/Modernizr/issues/#issue/59/comment/516632 return /^0.55$/.test(mStyle.opacity); }; // Note, Android < 4 will pass this test, but can only animate // a single property at a time // daneden.me/2011/12/putting-up-with-androids-bullshit/ tests['cssanimations'] = function() { return testPropsAll('animationName'); }; tests['csscolumns'] = function() { return testPropsAll('columnCount'); }; tests['cssgradients'] = function() { /** * For CSS Gradients syntax, please see: * webkit.org/blog/175/introducing-css-gradients/ * developer.mozilla.org/en/CSS/-moz-linear-gradient * developer.mozilla.org/en/CSS/-moz-radial-gradient * dev.w3.org/csswg/css3-images/#gradients- */ var str1 = 'background-image:', str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));', str3 = 'linear-gradient(left top,#9f9, white);'; setCss( // legacy webkit syntax (FIXME: remove when syntax not in use anymore) (str1 + '-webkit- '.split(' ').join(str2 + str1) // standard syntax // trailing 'background-image:' + prefixes.join(str3 + str1)).slice(0, -str1.length) ); return contains(mStyle.backgroundImage, 'gradient'); }; tests['cssreflections'] = function() { return testPropsAll('boxReflect'); }; tests['csstransforms'] = function() { return !!testPropsAll('transform'); }; tests['csstransforms3d'] = function() { var ret = !!testPropsAll('perspective'); // Webkit's 3D transforms are passed off to the browser's own graphics renderer. // It works fine in Safari on Leopard and Snow Leopard, but not in Chrome in // some conditions. As a result, Webkit typically recognizes the syntax but // will sometimes throw a false positive, thus we must do a more thorough check: if ( ret && 'webkitPerspective' in docElement.style ) { // Webkit allows this media query to succeed only if the feature is enabled. // `@media (transform-3d),(-o-transform-3d),(-moz-transform-3d),(-ms-transform-3d),(-webkit-transform-3d),(modernizr){ ... }` ret = Modernizr['csstransforms3d']; } return ret; }; tests['csstransitions'] = function() { return testPropsAll('transition'); }; /*>>fontface*/ // @font-face detection routine by Diego Perini // javascript.nwbox.com/CSSSupport/ // false positives in WebOS: github.com/Modernizr/Modernizr/issues/342 tests['fontface'] = function() { return Modernizr['fontface']; }; /*>>fontface*/ // CSS generated content detection tests['generatedcontent'] = function() { return Modernizr['generatedcontent']; }; // These tests evaluate support of the video/audio elements, as well as // testing what types of content they support. // // We're using the Boolean constructor here, so that we can extend the value // e.g. Modernizr.video // true // Modernizr.video.ogg // 'probably' // // Codec values from : github.com/NielsLeenheer/html5test/blob/9106a8/index.html#L845 // thx to NielsLeenheer and zcorpan // Note: in some older browsers, "no" was a return value instead of empty string. // It was live in FF3.5.0 and 3.5.1, but fixed in 3.5.2 // It was also live in Safari 4.0.0 - 4.0.4, but fixed in 4.0.5 tests['video'] = function() { var elem = document.createElement('video'), bool = false; // IE9 Running on Windows Server SKU can cause an exception to be thrown, bug #224 try { if ( bool = !!elem.canPlayType ) { bool = new Boolean(bool); bool.ogg = elem.canPlayType('video/ogg; codecs="theora"') .replace(/^no$/,''); bool.h264 = elem.canPlayType('video/mp4; codecs="avc1.42E01E"') .replace(/^no$/,''); bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,''); } } catch(e) { } return bool; }; tests['audio'] = function() { var elem = document.createElement('audio'), bool = false; try { if ( bool = !!elem.canPlayType ) { bool = new Boolean(bool); bool.ogg = elem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,''); bool.mp3 = elem.canPlayType('audio/mpeg;') .replace(/^no$/,''); // Mimetypes accepted: // developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements // bit.ly/iphoneoscodecs bool.wav = elem.canPlayType('audio/wav; codecs="1"') .replace(/^no$/,''); bool.m4a = ( elem.canPlayType('audio/x-m4a;') || elem.canPlayType('audio/aac;')) .replace(/^no$/,''); } } catch(e) { } return bool; }; // In FF4, if disabled, window.localStorage should === null. // Normally, we could not test that directly and need to do a // `('localStorage' in window) && ` test first because otherwise Firefox will // throw bugzil.la/365772 if cookies are disabled // Also in iOS5 Private Browsing mode, attepting to use localStorage.setItem // will throw the exception: // QUOTA_EXCEEDED_ERRROR DOM Exception 22. // Peculiarly, getItem and removeItem calls do not throw. // Because we are forced to try/catch this, we'll go aggressive. // Just FWIW: IE8 Compat mode supports these features completely: // www.quirksmode.org/dom/html5.html // But IE8 doesn't support either with local files tests['localstorage'] = function() { try { localStorage.setItem(mod, mod); localStorage.removeItem(mod); return true; } catch(e) { return false; } }; tests['sessionstorage'] = function() { try { sessionStorage.setItem(mod, mod); sessionStorage.removeItem(mod); return true; } catch(e) { return false; } }; tests['webworkers'] = function() { return !!window.Worker; }; tests['applicationcache'] = function() { return !!window.applicationCache; }; // Thanks to Erik Dahlstrom tests['svg'] = function() { return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect; }; // specifically for SVG inline in HTML, not within XHTML // test page: paulirish.com/demo/inline-svg tests['inlinesvg'] = function() { var div = document.createElement('div'); div.innerHTML = ''; return (div.firstChild && div.firstChild.namespaceURI) == ns.svg; }; // SVG SMIL animation tests['smil'] = function() { return !!document.createElementNS && /SVGAnimate/.test(toString.call(document.createElementNS(ns.svg, 'animate'))); }; // This test is only for clip paths in SVG proper, not clip paths on HTML content // demo: srufaculty.sru.edu/david.dailey/svg/newstuff/clipPath4.svg // However read the comments to dig into applying SVG clippaths to HTML content here: // github.com/Modernizr/Modernizr/issues/213#issuecomment-1149491 tests['svgclippaths'] = function() { return !!document.createElementNS && /SVGClipPath/.test(toString.call(document.createElementNS(ns.svg, 'clipPath'))); }; // input features and input types go directly onto the ret object, bypassing the tests loop. // Hold this guy to execute in a moment. function webforms() { // Run through HTML5's new input attributes to see if the UA understands any. // We're using f which is the element created early on // Mike Taylr has created a comprehensive resource for testing these attributes // when applied to all input types: // miketaylr.com/code/input-type-attr.html // spec: www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary // Only input placeholder is tested while textarea's placeholder is not. // Currently Safari 4 and Opera 11 have support only for the input placeholder // Both tests are available in feature-detects/forms-placeholder.js Modernizr['input'] = (function( props ) { for ( var i = 0, len = props.length; i < len; i++ ) { attrs[ props[i] ] = !!(props[i] in inputElem); } if (attrs.list){ // safari false positive's on datalist: webk.it/74252 // see also github.com/Modernizr/Modernizr/issues/146 attrs.list = !!(document.createElement('datalist') && window.HTMLDataListElement); } return attrs; })('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' ')); // Run through HTML5's new input types to see if the UA understands any. // This is put behind the tests runloop because it doesn't return a // true/false like all the other tests; instead, it returns an object // containing each input type with its corresponding true/false value // Big thanks to @miketaylr for the html5 forms expertise. miketaylr.com/ Modernizr['inputtypes'] = (function(props) { for ( var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++ ) { inputElem.setAttribute('type', inputElemType = props[i]); bool = inputElem.type !== 'text'; // We first check to see if the type we give it sticks.. // If the type does, we feed it a textual value, which shouldn't be valid. // If the value doesn't stick, we know there's input sanitization which infers a custom UI if ( bool ) { inputElem.value = smile; inputElem.style.cssText = 'position:absolute;visibility:hidden;'; if ( /^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined ) { docElement.appendChild(inputElem); defaultView = document.defaultView; // Safari 2-4 allows the smiley as a value, despite making a slider bool = defaultView.getComputedStyle && defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' && // Mobile android web browser has false positive, so must // check the height to see if the widget is actually there. (inputElem.offsetHeight !== 0); docElement.removeChild(inputElem); } else if ( /^(search|tel)$/.test(inputElemType) ){ // Spec doesnt define any special parsing or detectable UI // behaviors so we pass these through as true // Interestingly, opera fails the earlier test, so it doesn't // even make it here. } else if ( /^(url|email)$/.test(inputElemType) ) { // Real url and email support comes with prebaked validation. bool = inputElem.checkValidity && inputElem.checkValidity() === false; } else if ( /^color$/.test(inputElemType) ) { // chuck into DOM and force reflow for Opera bug in 11.00 // github.com/Modernizr/Modernizr/issues#issue/159 docElement.appendChild(inputElem); docElement.offsetWidth; bool = inputElem.value != smile; docElement.removeChild(inputElem); } else { // If the upgraded input compontent rejects the :) text, we got a winner bool = inputElem.value != smile; } } inputs[ props[i] ] = !!bool; } return inputs; })('search tel url email datetime date month week time datetime-local number range color'.split(' ')); } // End of test definitions // ----------------------- // Run through all tests and detect their support in the current UA. // todo: hypothetically we could be doing an array of tests and use a basic loop here. for ( var feature in tests ) { if ( hasOwnProperty(tests, feature) ) { // run the test, throw the return value into the Modernizr, // then based on that boolean, define an appropriate className // and push it into an array of classes we'll join later. featureName = feature.toLowerCase(); Modernizr[featureName] = tests[feature](); classes.push((Modernizr[featureName] ? '' : 'no-') + featureName); } } // input tests need to run. Modernizr.input || webforms(); /** * addTest allows the user to define their own feature tests * the result will be added onto the Modernizr object, * as well as an appropriate className set on the html element * * @param feature - String naming the feature * @param test - Function returning true if feature is supported, false if not */ Modernizr.addTest = function ( feature, test ) { if ( typeof feature == 'object' ) { for ( var key in feature ) { if ( hasOwnProperty( feature, key ) ) { Modernizr.addTest( key, feature[ key ] ); } } } else { feature = feature.toLowerCase(); if ( Modernizr[feature] !== undefined ) { // we're going to quit if you're trying to overwrite an existing test // if we were to allow it, we'd do this: // var re = new RegExp("\\b(no-)?" + feature + "\\b"); // docElement.className = docElement.className.replace( re, '' ); // but, no rly, stuff 'em. return Modernizr; } test = typeof test == 'function' ? test() : test; docElement.className += ' ' + (test ? '' : 'no-') + feature; Modernizr[feature] = test; } return Modernizr; // allow chaining. }; // Reset modElem.cssText to nothing to reduce memory footprint. setCss(''); modElem = inputElem = null; //>>BEGIN IEPP // Enable HTML 5 elements for styling in IE & add HTML5 css /*! HTML5 Shiv v3.4 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed */ ;(function(window, document) { /** Preset options */ var options = window.html5 || {}; /** Used to skip problem elements */ var reSkip = /^<|^(?:button|form|map|select|textarea)$/i; /** Detect whether the browser supports default html5 styles */ var supportsHtml5Styles; /** Detect whether the browser supports unknown elements */ var supportsUnknownElements; (function() { var a = document.createElement('a'); a.innerHTML = ''; //if the hidden property is implemented we can assume, that the browser supports HTML5 Styles supportsHtml5Styles = ('hidden' in a); supportsUnknownElements = a.childNodes.length == 1 || (function() { // assign a false positive if unable to shiv try { (document.createElement)('a'); } catch(e) { return true; } var frag = document.createDocumentFragment(); return ( typeof frag.cloneNode == 'undefined' || typeof frag.createDocumentFragment == 'undefined' || typeof frag.createElement == 'undefined' ); }()); }()); /*--------------------------------------------------------------------------*/ /** * Creates a style sheet with the given CSS text and adds it to the document. * @private * @param {Document} ownerDocument The document. * @param {String} cssText The CSS text. * @returns {StyleSheet} The style element. */ function addStyleSheet(ownerDocument, cssText) { var p = ownerDocument.createElement('p'), parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement; p.innerHTML = 'x'; return parent.insertBefore(p.lastChild, parent.firstChild); } /** * Returns the value of `html5.elements` as an array. * @private * @returns {Array} An array of shived element node names. */ function getElements() { var elements = html5.elements; return typeof elements == 'string' ? elements.split(' ') : elements; } /** * Shivs the `createElement` and `createDocumentFragment` methods of the document. * @private * @param {Document|DocumentFragment} ownerDocument The document. */ function shivMethods(ownerDocument) { var cache = {}, docCreateElement = ownerDocument.createElement, docCreateFragment = ownerDocument.createDocumentFragment, frag = docCreateFragment(); ownerDocument.createElement = function(nodeName) { // Avoid adding some elements to fragments in IE < 9 because // * Attributes like `name` or `type` cannot be set/changed once an element // is inserted into a document/fragment // * Link elements with `src` attributes that are inaccessible, as with // a 403 response, will cause the tab/window to crash // * Script elements appended to fragments will execute when their `src` // or `text` property is set var node = (cache[nodeName] || (cache[nodeName] = docCreateElement(nodeName))).cloneNode(); return html5.shivMethods && node.canHaveChildren && !reSkip.test(nodeName) ? frag.appendChild(node) : node; }; ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' + 'var n=f.cloneNode(),c=n.createElement;' + 'h.shivMethods&&(' + // unroll the `createElement` calls getElements().join().replace(/\w+/g, function(nodeName) { cache[nodeName] = docCreateElement(nodeName); frag.createElement(nodeName); return 'c("' + nodeName + '")'; }) + ');return n}' )(html5, frag); } /*--------------------------------------------------------------------------*/ /** * Shivs the given document. * @memberOf html5 * @param {Document} ownerDocument The document to shiv. * @returns {Document} The shived document. */ function shivDocument(ownerDocument) { var shived; if (ownerDocument.documentShived) { return ownerDocument; } if (html5.shivCSS && !supportsHtml5Styles) { shived = !!addStyleSheet(ownerDocument, // corrects block display not defined in IE6/7/8/9 'article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}' + // corrects audio display not defined in IE6/7/8/9 'audio{display:none}' + // corrects canvas and video display not defined in IE6/7/8/9 'canvas,video{display:inline-block;*display:inline;*zoom:1}' + // corrects 'hidden' attribute and audio[controls] display not present in IE7/8/9 '[hidden]{display:none}audio[controls]{display:inline-block;*display:inline;*zoom:1}' + // adds styling not present in IE6/7/8/9 'mark{background:#FF0;color:#000}' ); } if (!supportsUnknownElements) { shived = !shivMethods(ownerDocument); } if (shived) { ownerDocument.documentShived = shived; } return ownerDocument; } /*--------------------------------------------------------------------------*/ /** * The `html5` object is exposed so that more elements can be shived and * existing shiving can be detected on iframes. * @type Object * @example * * // options can be changed before the script is included * html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false }; */ var html5 = { /** * An array or space separated string of node names of the elements to shiv. * @memberOf html5 * @type Array|String */ 'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video', /** * A flag to indicate that the HTML5 style sheet should be inserted. * @memberOf html5 * @type Boolean */ 'shivCSS': !(options.shivCSS === false), /** * A flag to indicate that the document's `createElement` and `createDocumentFragment` * methods should be overwritten. * @memberOf html5 * @type Boolean */ 'shivMethods': !(options.shivMethods === false), /** * A string to describe the type of `html5` object ("default" or "default print"). * @memberOf html5 * @type String */ 'type': 'default', // shivs the document according to the specified `html5` object options 'shivDocument': shivDocument }; /*--------------------------------------------------------------------------*/ // expose html5 window.html5 = html5; // shiv the document shivDocument(document); }(this, document)); //>>END IEPP // Assign private properties to the return object with prefix Modernizr._version = version; // expose these for the plugin API. Look in the source for how to join() them against your input Modernizr._prefixes = prefixes; Modernizr._domPrefixes = domPrefixes; Modernizr._cssomPrefixes = cssomPrefixes; // Modernizr.mq tests a given media query, live against the current state of the window // A few important notes: // * If a browser does not support media queries at all (eg. oldIE) the mq() will always return false // * A max-width or orientation query will be evaluated against the current state, which may change later. // * You must specify values. Eg. If you are testing support for the min-width media query use: // Modernizr.mq('(min-width:0)') // usage: // Modernizr.mq('only screen and (max-width:768)') Modernizr.mq = testMediaQuery; // Modernizr.hasEvent() detects support for a given event, with an optional element to test on // Modernizr.hasEvent('gesturestart', elem) Modernizr.hasEvent = isEventSupported; // Modernizr.testProp() investigates whether a given style property is recognized // Note that the property names must be provided in the camelCase variant. // Modernizr.testProp('pointerEvents') Modernizr.testProp = function(prop){ return testProps([prop]); }; // Modernizr.testAllProps() investigates whether a given style property, // or any of its vendor-prefixed variants, is recognized // Note that the property names must be provided in the camelCase variant. // Modernizr.testAllProps('boxSizing') Modernizr.testAllProps = testPropsAll; // Modernizr.testStyles() allows you to add custom styles to the document and test an element afterwards // Modernizr.testStyles('#modernizr { position:absolute }', function(elem, rule){ ... }) Modernizr.testStyles = injectElementWithStyles; // Modernizr.prefixed() returns the prefixed or nonprefixed property name variant of your input // Modernizr.prefixed('boxSizing') // 'MozBoxSizing' // Properties must be passed as dom-style camelcase, rather than `box-sizing` hypentated style. // Return values will also be the camelCase variant, if you need to translate that to hypenated style use: // // str.replace(/([A-Z])/g, function(str,m1){ return '-' + m1.toLowerCase(); }).replace(/^ms-/,'-ms-'); // If you're trying to ascertain which transition end event to bind to, you might do something like... // // var transEndEventNames = { // 'WebkitTransition' : 'webkitTransitionEnd', // 'MozTransition' : 'transitionend', // 'OTransition' : 'oTransitionEnd', // 'msTransition' : 'MsTransitionEnd', // 'transition' : 'transitionend' // }, // transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ]; Modernizr.prefixed = function(prop, obj, elem){ if(!obj) { return testPropsAll(prop, 'pfx'); } else { // Testing DOM property e.g. Modernizr.prefixed('requestAnimationFrame', window) // 'mozRequestAnimationFrame' return testPropsAll(prop, obj, elem); } }; // Remove "no-js" class from element, if it exists: docElement.className = docElement.className.replace(/(^|\s)no-js(\s|$)/, '$1$2') + // Add the new classes to the element. (enableClasses ? ' js ' + classes.join(' ') : ''); return Modernizr; })(this, this.document); ================================================ FILE: packages/Newtonsoft.Json.4.5.6/lib/net20/Newtonsoft.Json.xml ================================================ Newtonsoft.Json Represents a BSON Oid (object id). Initializes a new instance of the class. The Oid value. Gets or sets the value of the Oid. The value of the Oid. Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. Initializes a new instance of the class with the specified . Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Skips the children of the current token. Sets the current token. The new token. Sets the current token and value. The new token. The value. Sets the state based on current token type. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Changes the to Closed. Gets the current reader state. The current reader state. Gets or sets a value indicating whether the underlying stream or should be closed when the reader is closed. true to close the underlying stream or when the reader is closed; otherwise false. The default is true. Gets the quotation mark character used to enclose the value of a string. Get or set how time zones are handling when reading JSON. Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . Gets the type of the current JSON token. Gets the text value of the current JSON token. Gets The Common Language Runtime (CLR) type for the current JSON token. Gets the depth of the current token in the JSON document. The depth of the current token in the JSON document. Gets the path of the current JSON token. Gets or sets the culture used when reading JSON. Defaults to . Specifies the state of the reader. The Read method has not been called. The end of the file has been reached successfully. Reader is at a property. Reader is at the start of an object. Reader is in an object. Reader is at the start of an array. Reader is in an array. The Close method has been called. Reader has just read a value. Reader is at the start of a constructor. Reader in a constructor. An error occurred that prevents the read operation from continuing. The end of the file has been reached successfully. Initializes a new instance of the class. The stream. Initializes a new instance of the class. The reader. Initializes a new instance of the class. The stream. if set to true the root object will be read as a JSON array. The used when reading values from BSON. Initializes a new instance of the class. The reader. if set to true the root object will be read as a JSON array. The used when reading values from BSON. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Changes the to Closed. Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary. true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. Gets or sets a value indicating whether the root object will be read as a JSON array. true if the root object will be read as a JSON array; otherwise, false. Gets or sets the used when reading values from BSON. The used when reading values from BSON. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Creates an instance of the JsonWriter class. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Closes this stream and the underlying stream. Writes the beginning of a Json object. Writes the end of a Json object. Writes the beginning of a Json array. Writes the end of an array. Writes the start of a constructor with the given name. The name of the constructor. Writes the end constructor. Writes the property name of a name/value pair on a Json object. The name of the property. Writes the end of the current Json object or array. Writes the current token. The to read the token from. Writes the specified end token. The end token to write. Writes indent characters. Writes the JSON value delimiter. Writes an indent space. Writes a null value. Writes an undefined value. Writes raw JSON without changing the writer's state. The raw JSON to write. Writes raw JSON where a value is expected and updates the writer's state. The raw JSON to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. An error will raised if the value cannot be written as a single JSON token. The value to write. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes out the given white space. The string of white space characters. Gets or sets a value indicating whether the underlying stream or should be closed when the writer is closed. true to close the underlying stream or when the writer is closed; otherwise false. The default is true. Gets the top. The top. Gets the state of the writer. Gets the path of the writer. Indicates how JSON text output is formatted. Get or set how dates are written to JSON text. Get or set how time zones are handling when writing JSON. Initializes a new instance of the class. The stream. Initializes a new instance of the class. The writer. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Writes the end. The token. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes the start of a constructor with the given name. The name of the constructor. Writes raw JSON. The raw JSON to write. Writes raw JSON where a value is expected and updates the writer's state. The raw JSON to write. Writes the beginning of a Json array. Writes the beginning of a Json object. Writes the property name of a name/value pair on a Json object. The name of the property. Closes this stream and the underlying stream. Writes a null value. Writes an undefined value. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value that represents a BSON object id. Writes a BSON regex. The regex pattern. The regex options. Gets or sets the used when writing values to BSON. When set to no conversion will occur. The used when writing values to BSON. Specifies how constructors are used when initializing objects during deserialization by the . First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor. Json.NET will use a non-public default constructor before falling back to a paramatized constructor. Converts a binary value to and from a base 64 string value. Converts an object to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets the of the JSON produced by the JsonConverter. The of the JSON produced by the JsonConverter. Gets a value indicating whether this can read JSON. true if this can read JSON; otherwise, false. Gets a value indicating whether this can write JSON. true if this can write JSON; otherwise, false. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts a to and from JSON and BSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Create a custom object Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Creates an object which will then be populated by the serializer. Type of the object. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets a value indicating whether this can write JSON. true if this can write JSON; otherwise, false. Converts a to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified value type. Type of the value. true if this instance can convert the specified value type; otherwise, false. Converts a to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified value type. Type of the value. true if this instance can convert the specified value type; otherwise, false. Provides a base class for converting a to and from JSON. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts a to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts a to and from JSON and BSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts an to and from its name string value. Converts an to and from its name string value. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. A cached representation of the Enum string representation to respect per Enum field name. The type of the Enum. A map of enum field name to either the field name, or the configured enum member name (). Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets or sets a value indicating whether the written enum text should be camel case. true if the written enum text will be camel case; otherwise, false. Converts a to and from a string (e.g. "1.2.3.4"). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing property value of the JSON that is being converted. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Specifies how dates are formatted when writing JSON text. Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. Date formatted strings are not parsed to a date type and are read as strings. Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . Specifies how to treat the time value when converting between string and . Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. Treat as a UTC. If the object represents a local time, it is converted to a UTC. Treat as a local time if a is being converted to a string. If a string is being converted to , convert to a local time if a time zone is specified. Time zone information should be preserved when converting. Specifies formatting options for the . No special formatting is applied. This is the default. Causes child objects to be indented according to the and settings. Instructs the to use the specified constructor when deserializing that object. Instructs the how to serialize the collection. Instructs the how to serialize the object. Initializes a new instance of the class. Initializes a new instance of the class with the specified container Id. The container Id. Gets or sets the id. The id. Gets or sets the title. The title. Gets or sets the description. The description. Gets the collection's items converter. The collection's items converter. Gets or sets a value that indicates whether to preserve object references. true to keep object reference; otherwise, false. The default is false. Gets or sets a value that indicates whether to preserve collection's items references. true to keep collection's items object references; otherwise, false. The default is false. Gets or sets the reference loop handling used when serializing the collection's items. The reference loop handling. Gets or sets the type name handling used when serializing the collection's items. The type name handling. Initializes a new instance of the class. Initializes a new instance of the class with the specified container Id. The container Id. The exception thrown when an error occurs during Json serialization or deserialization. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). Contract details for a used by the . Contract details for a used by the . Gets the underlying type for the contract. The underlying type for the contract. Gets or sets the type created during deserialization. The type created during deserialization. Gets or sets whether this type contract is serialized as a reference. Whether this type contract is serialized as a reference. Gets or sets the default for this contract. The converter. Gets or sets the method called immediately after deserialization of the object. The method called immediately after deserialization of the object. Gets or sets the method called during deserialization of the object. The method called during deserialization of the object. Gets or sets the method called after serialization of the object graph. The method called after serialization of the object graph. Gets or sets the method called before serialization of the object. The method called before serialization of the object. Gets or sets the default creator method used to create the object. The default creator method used to create the object. Gets or sets a value indicating whether the default creator is non public. true if the default object creator is non-public; otherwise, false. Gets or sets the method called when an error is thrown during the serialization of the object. The method called when an error is thrown during the serialization of the object. Initializes a new instance of the class. The underlying type for the contract. Gets or sets the default collection items . The converter. Gets or sets a value indicating whether the collection items preserve object references. true if collection items preserve object references; otherwise, false. Gets or sets the collection item reference loop handling. The reference loop handling. Gets or sets the collection item type name handling. The type name handling. Provides a set of static (Shared in Visual Basic) methods for querying objects that implement . Returns the input typed as . Returns an empty that has the specified type argument. Converts the elements of an to the specified type. Filters the elements of an based on a specified type. Generates a sequence of integral numbers within a specified range. The value of the first integer in the sequence. The number of sequential integers to generate. Generates a sequence that contains one repeated value. Filters a sequence of values based on a predicate. Filters a sequence of values based on a predicate. Each element's index is used in the logic of the predicate function. Projects each element of a sequence into a new form. Projects each element of a sequence into a new form by incorporating the element's index. Projects each element of a sequence to an and flattens the resulting sequences into one sequence. Projects each element of a sequence to an , and flattens the resulting sequences into one sequence. The index of each source element is used in the projected form of that element. Projects each element of a sequence to an , flattens the resulting sequences into one sequence, and invokes a result selector function on each element therein. Projects each element of a sequence to an , flattens the resulting sequences into one sequence, and invokes a result selector function on each element therein. The index of each source element is used in the intermediate projected form of that element. Returns elements from a sequence as long as a specified condition is true. Returns elements from a sequence as long as a specified condition is true. The element's index is used in the logic of the predicate function. Base implementation of First operator. Returns the first element of a sequence. Returns the first element in a sequence that satisfies a specified condition. Returns the first element of a sequence, or a default value if the sequence contains no elements. Returns the first element of the sequence that satisfies a condition or a default value if no such element is found. Base implementation of Last operator. Returns the last element of a sequence. Returns the last element of a sequence that satisfies a specified condition. Returns the last element of a sequence, or a default value if the sequence contains no elements. Returns the last element of a sequence that satisfies a condition or a default value if no such element is found. Base implementation of Single operator. Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. Returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than one such element exists. Returns the only element of a sequence, or a default value if the sequence is empty; this method throws an exception if there is more than one element in the sequence. Returns the only element of a sequence that satisfies a specified condition or a default value if no such element exists; this method throws an exception if more than one element satisfies the condition. Returns the element at a specified index in a sequence. Returns the element at a specified index in a sequence or a default value if the index is out of range. Inverts the order of the elements in a sequence. Returns a specified number of contiguous elements from the start of a sequence. Bypasses a specified number of elements in a sequence and then returns the remaining elements. Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. The element's index is used in the logic of the predicate function. Returns the number of elements in a sequence. Returns a number that represents how many elements in the specified sequence satisfy a condition. Returns an that represents the total number of elements in a sequence. Returns an that represents how many elements in a sequence satisfy a condition. Concatenates two sequences. Creates a from an . Creates an array from an . Returns distinct elements from a sequence by using the default equality comparer to compare values. Returns distinct elements from a sequence by using a specified to compare values. Creates a from an according to a specified key selector function. Creates a from an according to a specified key selector function and a key comparer. Creates a from an according to specified key and element selector functions. Creates a from an according to a specified key selector function, a comparer and an element selector function. Groups the elements of a sequence according to a specified key selector function. Groups the elements of a sequence according to a specified key selector function and compares the keys by using a specified comparer. Groups the elements of a sequence according to a specified key selector function and projects the elements for each group by using a specified function. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. Groups the elements of a sequence according to a key selector function. The keys are compared by using a comparer and each group's elements are projected by using a specified function. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. The elements of each group are projected by using a specified function. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. The keys are compared by using a specified comparer. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. Key values are compared by using a specified comparer, and the elements of each group are projected by using a specified function. Applies an accumulator function over a sequence. Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value. Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value, and the specified function is used to select the result value. Produces the set union of two sequences by using the default equality comparer. Produces the set union of two sequences by using a specified . Returns the elements of the specified sequence or the type parameter's default value in a singleton collection if the sequence is empty. Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. Determines whether all elements of a sequence satisfy a condition. Determines whether a sequence contains any elements. Determines whether any element of a sequence satisfies a condition. Determines whether a sequence contains a specified element by using the default equality comparer. Determines whether a sequence contains a specified element by using a specified . Determines whether two sequences are equal by comparing the elements by using the default equality comparer for their type. Determines whether two sequences are equal by comparing their elements by using a specified . Base implementation for Min/Max operator. Base implementation for Min/Max operator for nullable types. Returns the minimum value in a generic sequence. Invokes a transform function on each element of a generic sequence and returns the minimum resulting value. Returns the maximum value in a generic sequence. Invokes a transform function on each element of a generic sequence and returns the maximum resulting value. Makes an enumerator seen as enumerable once more. The supplied enumerator must have been started. The first element returned is the element the enumerator was on when passed in. DO NOT use this method if the caller must be a generator. It is mostly safe among aggregate operations. Sorts the elements of a sequence in ascending order according to a key. Sorts the elements of a sequence in ascending order by using a specified comparer. Sorts the elements of a sequence in descending order according to a key. Sorts the elements of a sequence in descending order by using a specified comparer. Performs a subsequent ordering of the elements in a sequence in ascending order according to a key. Performs a subsequent ordering of the elements in a sequence in ascending order by using a specified comparer. Performs a subsequent ordering of the elements in a sequence in descending order, according to a key. Performs a subsequent ordering of the elements in a sequence in descending order by using a specified comparer. Base implementation for Intersect and Except operators. Produces the set intersection of two sequences by using the default equality comparer to compare values. Produces the set intersection of two sequences by using the specified to compare values. Produces the set difference of two sequences by using the default equality comparer to compare values. Produces the set difference of two sequences by using the specified to compare values. Creates a from an according to a specified key selector function. Creates a from an according to a specified key selector function and key comparer. Creates a from an according to specified key selector and element selector functions. Creates a from an according to a specified key selector function, a comparer, and an element selector function. Correlates the elements of two sequences based on matching keys. The default equality comparer is used to compare keys. Correlates the elements of two sequences based on matching keys. The default equality comparer is used to compare keys. A specified is used to compare keys. Correlates the elements of two sequences based on equality of keys and groups the results. The default equality comparer is used to compare keys. Correlates the elements of two sequences based on equality of keys and groups the results. The default equality comparer is used to compare keys. A specified is used to compare keys. Computes the sum of a sequence of nullable values. Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. Computes the average of a sequence of nullable values. Computes the average of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. Computes the sum of a sequence of values. Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. Computes the average of a sequence of values. Computes the average of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. Returns the minimum value in a sequence of nullable values. Invokes a transform function on each element of a sequence and returns the minimum nullable value. Returns the maximum value in a sequence of nullable values. Invokes a transform function on each element of a sequence and returns the maximum nullable value. Computes the sum of a sequence of nullable values. Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. Computes the average of a sequence of nullable values. Computes the average of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. Computes the sum of a sequence of values. Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. Computes the average of a sequence of values. Computes the average of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. Returns the minimum value in a sequence of nullable values. Invokes a transform function on each element of a sequence and returns the minimum nullable value. Returns the maximum value in a sequence of nullable values. Invokes a transform function on each element of a sequence and returns the maximum nullable value. Computes the sum of a sequence of nullable values. Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. Computes the average of a sequence of nullable values. Computes the average of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. Computes the sum of a sequence of values. Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. Computes the average of a sequence of values. Computes the average of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. Returns the minimum value in a sequence of nullable values. Invokes a transform function on each element of a sequence and returns the minimum nullable value. Returns the maximum value in a sequence of nullable values. Invokes a transform function on each element of a sequence and returns the maximum nullable value. Computes the sum of a sequence of nullable values. Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. Computes the average of a sequence of nullable values. Computes the average of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. Computes the sum of a sequence of values. Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. Computes the average of a sequence of values. Computes the average of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. Returns the minimum value in a sequence of nullable values. Invokes a transform function on each element of a sequence and returns the minimum nullable value. Returns the maximum value in a sequence of nullable values. Invokes a transform function on each element of a sequence and returns the maximum nullable value. Computes the sum of a sequence of nullable values. Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. Computes the average of a sequence of nullable values. Computes the average of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. Computes the sum of a sequence of values. Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. Computes the average of a sequence of values. Computes the average of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. Returns the minimum value in a sequence of nullable values. Invokes a transform function on each element of a sequence and returns the minimum nullable value. Returns the maximum value in a sequence of nullable values. Invokes a transform function on each element of a sequence and returns the maximum nullable value. Represents a collection of objects that have a common key. Gets the key of the . Defines an indexer, size property, and Boolean search method for data structures that map keys to sequences of values. Represents a sorted sequence. Performs a subsequent ordering on the elements of an according to a key. Represents a collection of keys each mapped to one or more values. Determines whether a specified key is in the . Applies a transform function to each key and its associated values and returns the results. Returns a generic enumerator that iterates through the . Gets the number of key/value collection pairs in the . Gets the collection of values indexed by the specified key. See issue #11 for why this method is needed and cannot be expressed as a lambda at the call site. See issue #11 for why this method is needed and cannot be expressed as a lambda at the call site. This attribute allows us to define extension methods without requiring .NET Framework 3.5. For more information, see the section, Extension Methods in .NET Framework 2.0 Apps, of Basic Instincts: Extension Methods column in MSDN Magazine, issue Nov 2007. Represents a view of a . Initializes a new instance of the class. The name. Type of the property. When overridden in a derived class, returns whether resetting an object changes its value. true if resetting the component changes its value; otherwise, false. The component to test for reset capability. When overridden in a derived class, gets the current value of the property on a component. The value of a property for a given component. The component with the property for which to retrieve the value. When overridden in a derived class, resets the value for this property of the component to the default value. The component with the property value that is to be reset to the default value. When overridden in a derived class, sets the value of the component to a different value. The component with the property value that is to be set. The new value. When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. true if the property should be persisted; otherwise, false. The component with the property to be examined for persistence. When overridden in a derived class, gets the type of the component this property is bound to. A that represents the type of component this property is bound to. When the or methods are invoked, the object specified might be an instance of this type. When overridden in a derived class, gets a value indicating whether this property is read-only. true if the property is read-only; otherwise, false. When overridden in a derived class, gets the type of the property. A that represents the type of the property. Gets the hash code for the name of the member. The hash code for the name of the member. Represents a raw JSON string. Represents a value in JSON (string, integer, date, etc). Represents an abstract JSON token. Represents a collection of objects. The type of token Gets the with the specified key. Provides an interface to enable a class to return line and position information. Gets a value indicating whether the class can return line information. true if LineNumber and LinePosition can be provided; otherwise, false. Gets the current line number. The current line number or 0 if no line information is available (for example, HasLineInfo returns false). Gets the current line position. The current line position or 0 if no line information is available (for example, HasLineInfo returns false). Compares the values of two tokens, including the values of all descendant tokens. The first to compare. The second to compare. true if the tokens are equal; otherwise false. Adds the specified content immediately after this token. A content object that contains simple content or a collection of content objects to be added after this token. Adds the specified content immediately before this token. A content object that contains simple content or a collection of content objects to be added before this token. Returns a collection of the ancestor tokens of this token. A collection of the ancestor tokens of this token. Returns a collection of the sibling tokens after this token, in document order. A collection of the sibling tokens after this tokens, in document order. Returns a collection of the sibling tokens before this token, in document order. A collection of the sibling tokens before this token, in document order. Gets the with the specified key converted to the specified type. The type to convert the token to. The token key. The converted token value. Returns a collection of the child tokens of this token, in document order. An of containing the child tokens of this , in document order. Returns a collection of the child tokens of this token, in document order, filtered by the specified type. The type to filter the child tokens on. A containing the child tokens of this , in document order. Returns a collection of the child values of this token, in document order. The type to convert the values to. A containing the child values of this , in document order. Removes this token from its parent. Replaces this token with the specified token. The value. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Returns the indented JSON for this token. The indented JSON for this token. Returns the JSON for this token using the given formatting and converters. Indicates how the output is formatted. A collection of which will be used when writing the token. The JSON for this token using the given formatting and converters. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Creates an for this token. An that can be used to read this token and its descendants. Creates a from an object. The object that will be used to create . A with the value of the specified object Creates a from an object using the specified . The object that will be used to create . The that will be used when reading the object. A with the value of the specified object Creates the specified .NET type from the . The new object created from the JSON value. Creates the specified .NET type from the using the specified . The that will be used when creating the object. The new object created from the JSON value. Creates a from a . An positioned at the token to read into this . An that contains the token and its descendant tokens that were read from the reader. The runtime type of the token is determined by the token type of the first token encountered in the reader. Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Creates a from a . An positioned at the token to read into this . An that contains the token and its descendant tokens that were read from the reader. The runtime type of the token is determined by the token type of the first token encountered in the reader. Selects the token that matches the object path. The object path from the current to the to be returned. This must be a string of property names or array indexes separated by periods, such as Tables[0].DefaultView[0].Price in C# or Tables(0).DefaultView(0).Price in Visual Basic. The that matches the object path or a null reference if no matching token is found. Selects the token that matches the object path. The object path from the current to the to be returned. This must be a string of property names or array indexes separated by periods, such as Tables[0].DefaultView[0].Price in C# or Tables(0).DefaultView(0).Price in Visual Basic. A flag to indicate whether an error should be thrown if no token is found. The that matches the object path. Creates a new instance of the . All child tokens are recursively cloned. A new instance of the . Gets a comparer that can compare two tokens for value equality. A that can compare two nodes for value equality. Gets or sets the parent. The parent. Gets the root of this . The root of this . Gets the node type for this . The type. Gets a value indicating whether this token has childen tokens. true if this token has child values; otherwise, false. Gets the next sibling token of this node. The that contains the next sibling token. Gets the previous sibling token of this node. The that contains the previous sibling token. Gets the with the specified key. The with the specified key. Get the first child token of this token. A containing the first child token of the . Get the last child token of this token. A containing the last child token of the . Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Creates a comment with the given value. The value. A comment with the given value. Creates a string with the given value. The value. A string with the given value. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Indicates whether the current object is equal to another object of the same type. true if the current object is equal to the parameter; otherwise, false. An object to compare with this object. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. An object to compare with this instance. A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance is less than . Zero This instance is equal to . Greater than zero This instance is greater than . is not the same type as this instance. Gets a value indicating whether this token has childen tokens. true if this token has child values; otherwise, false. Gets the node type for this . The type. Gets or sets the underlying token value. The underlying token value. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class. The raw json. Creates an instance of with the content of the reader's current token. The reader. An instance of with the content of the reader's current token. Indicating whether a property is required. The property is not required. The default state. The property must be defined in JSON but can be a null value. The property must be defined in JSON and cannot be a null value. Used to resolve references when serializing and deserializing JSON by the . Resolves a reference to its object. The serialization context. The reference to resolve. The object that Gets the reference for the sepecified object. The serialization context. The object to get a reference for. The reference to the object. Determines whether the specified object is referenced. The serialization context. The object to test for a reference. true if the specified object is referenced; otherwise, false. Adds a reference to the specified object. The serialization context. The reference. The object to reference. Specifies reference handling options for the . Do not preserve references when serializing types. Preserve references when serializing into a JSON object structure. Preserve references when serializing into a JSON array structure. Preserve references when serializing. Instructs the how to serialize the collection. Initializes a new instance of the class. Initializes a new instance of the class with a flag indicating whether the array can contain null items A flag indicating whether the array can contain null items. Initializes a new instance of the class with the specified container Id. The container Id. Gets or sets a value indicating whether null items are allowed in the collection. true if null items are allowed in the collection; otherwise, false. Specifies default value handling options for the . Include members where the member value is the same as the member's default value when serializing objects. Included members are written to JSON. Has no effect when deserializing. Ignore members where the member value is the same as the member's default value when serializing objects so that is is not written to JSON, and ignores setting members when the JSON value equals the member's default value. Members with a default value but no JSON will be set to their default value when deserializing. Ignore members where the member value is the same as the member's default value when serializing objects and sets members to their default value when deserializing. Instructs the to use the specified when serializing the member or class. Initializes a new instance of the class. Type of the converter. Gets the type of the converter. The type of the converter. Instructs the how to serialize the object. Initializes a new instance of the class. Initializes a new instance of the class with the specified member serialization. The member serialization. Initializes a new instance of the class with the specified container Id. The container Id. Gets or sets the member serialization. The member serialization. Gets or sets a value that indicates whether the object's properties are required. A value indicating whether the object's properties are required. Specifies the settings on a object. Initializes a new instance of the class. Gets or sets how reference loops (e.g. a class referencing itself) is handled. Reference loop handling. Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. Missing member handling. Gets or sets how objects are created during deserialization. The object creation handling. Gets or sets how null values are handled during serialization and deserialization. Null value handling. Gets or sets how null default are handled during serialization and deserialization. The default value handling. Gets or sets a collection that will be used during serialization. The converters. Gets or sets how object references are preserved by the serializer. The preserve references handling. Gets or sets how type name writing and reading is handled by the serializer. The type name handling. Gets or sets how a type name assembly is written and resolved by the serializer. The type name assembly format. Gets or sets how constructors are used during deserialization. The constructor handling. Gets or sets the contract resolver used by the serializer when serializing .NET objects to JSON and vice versa. The contract resolver. Gets or sets the used by the serializer when resolving references. The reference resolver. Gets or sets the used by the serializer when resolving type names. The binder. Gets or sets the error handler called during serialization and deserialization. The error handler called during serialization and deserialization. Gets or sets the used by the serializer when invoking serialization callback methods. The context. Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . Indicates how JSON text output is formatted. Get or set how dates are written to JSON text. Get or set how time zones are handling during serialization and deserialization. Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. Gets or sets the culture used when reading JSON. Defaults to . Gets a value indicating whether there will be a check for additional content after deserializing an object. true if there will be a check for additional content after deserializing an object; otherwise, false. Represents a reader that provides validation. Initializes a new instance of the class that validates the content returned from the given . The to read from while validating. Reads the next JSON token from the stream as a . A . Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. Reads the next JSON token from the stream as a . A . Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Sets an event handler for receiving schema validation errors. Gets the text value of the current Json token. Gets the depth of the current token in the JSON document. The depth of the current token in the JSON document. Gets the path of the current JSON token. Gets the quotation mark character used to enclose the value of a string. Gets the type of the current Json token. Gets the Common Language Runtime (CLR) type for the current Json token. Gets or sets the schema. The schema. Gets the used to construct this . The specified in the constructor. Compares tokens to determine whether they are equal. Determines whether the specified objects are equal. The first object of type to compare. The second object of type to compare. true if the specified objects are equal; otherwise, false. Returns a hash code for the specified object. The for which a hash code is to be returned. A hash code for the specified object. The type of is a reference type and is null. Specifies the member serialization options for the . All public members are serialized by default. Members can be excluded using or . This is the default member serialization mode. Only members must be marked with or are serialized. This member serialization mode can also be set by marking the class with . All public and private fields are serialized. Members can be excluded using or . This member serialization mode can also be set by marking the class with and setting IgnoreSerializableAttribute on to false. Specifies how object creation is handled by the . Reuse existing objects, create new objects when needed. Only reuse existing objects. Always create new objects. Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Gets or sets the date time styles used when converting a date to and from JSON. The date time styles used when converting a date to and from JSON. Gets or sets the date time format used when converting a date to and from JSON. The date time format used when converting a date to and from JSON. Gets or sets the culture used when converting a date to and from JSON. The culture used when converting a date to and from JSON. Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing property value of the JSON that is being converted. The calling serializer. The object value. Converts XML to and from JSON. Writes the JSON representation of the object. The to write to. The calling serializer. The value. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Checks if the attributeName is a namespace attribute. Attribute name to test. The attribute name prefix if it has one, otherwise an empty string. True if attribute name is for a namespace attribute, otherwise false. Determines whether this instance can convert the specified value type. Type of the value. true if this instance can convert the specified value type; otherwise, false. Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements. The name of the deserialize root element. Gets or sets a flag to indicate whether to write the Json.NET array attribute. This attribute helps preserve arrays when converting the written XML back to JSON. true if the array attibute is written to the XML; otherwise, false. Gets or sets a value indicating whether to write the root JSON object. true if the JSON root object is omitted; otherwise, false. Represents a reader that provides fast, non-cached, forward-only access to JSON text data. Initializes a new instance of the class with the specified . The TextReader containing the XML data to read. Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Changes the state to closed. Gets a value indicating whether the class can return line information. true if LineNumber and LinePosition can be provided; otherwise, false. Gets the current line number. The current line number or 0 if no line information is available (for example, HasLineInfo returns false). Gets the current line position. The current line position or 0 if no line information is available (for example, HasLineInfo returns false). Instructs the to always serialize the member with the specified name. Initializes a new instance of the class. Initializes a new instance of the class with the specified name. Name of the property. Gets or sets the converter used when serializing the property's collection items. The collection's items converter. Gets or sets the null value handling used when serializing this property. The null value handling. Gets or sets the default value handling used when serializing this property. The default value handling. Gets or sets the reference loop handling used when serializing this property. The reference loop handling. Gets or sets the object creation handling used when deserializing this property. The object creation handling. Gets or sets the type name handling used when serializing this property. The type name handling. Gets or sets whether this property's value is serialized as a reference. Whether this property's value is serialized as a reference. Gets or sets the order of serialization and deserialization of a member. The numeric order of serialization or deserialization. Gets or sets a value indicating whether this property is required. A value indicating whether this property is required. Gets or sets the name of the property. The name of the property. Gets or sets the the reference loop handling used when serializing the property's collection items. The collection's items reference loop handling. Gets or sets the the type name handling used when serializing the property's collection items. The collection's items type name handling. Gets or sets whether this property's collection items are serialized as a reference. Whether this property's collection items are serialized as a reference. Instructs the not to serialize the public field or public read/write property value. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Creates an instance of the JsonWriter class using the specified . The TextWriter to write to. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Closes this stream and the underlying stream. Writes the beginning of a Json object. Writes the beginning of a Json array. Writes the start of a constructor with the given name. The name of the constructor. Writes the specified end token. The end token to write. Writes the property name of a name/value pair on a Json object. The name of the property. Writes indent characters. Writes the JSON value delimiter. Writes an indent space. Writes a null value. Writes an undefined value. Writes raw JSON. The raw JSON to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes out the given white space. The string of white space characters. Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. Gets or sets which character to use to quote attribute values. Gets or sets which character to use for indenting when is set to Formatting.Indented. Gets or sets a value indicating whether object names will be surrounded with quotes. The exception thrown when an error occurs while reading Json text. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. The exception thrown when an error occurs while reading Json text. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). Gets the line number indicating where the error occurred. The line number indicating where the error occurred. Gets the line position indicating where the error occurred. The line position indicating where the error occurred. Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. Represents a collection of . Provides methods for converting between common language runtime types and JSON types. Represents JavaScript's boolean value true as a string. This field is read-only. Represents JavaScript's boolean value false as a string. This field is read-only. Represents JavaScript's null as a string. This field is read-only. Represents JavaScript's undefined as a string. This field is read-only. Represents JavaScript's positive infinity as a string. This field is read-only. Represents JavaScript's negative infinity as a string. This field is read-only. Represents JavaScript's NaN as a string. This field is read-only. Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation using the specified. The value to convert. The format the date will be converted to. The time zone handling when the date is converted to a string. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. The string delimiter character. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Serializes the specified object to a JSON string. The object to serialize. A JSON string representation of the object. Serializes the specified object to a JSON string. The object to serialize. Indicates how the output is formatted. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. A collection converters used while serializing. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. Indicates how the output is formatted. A collection converters used while serializing. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. The used to serialize the object. If this is null, default serialization settings will be is used. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. Indicates how the output is formatted. The used to serialize the object. If this is null, default serialization settings will be is used. A JSON string representation of the object. Deserializes the JSON to a .NET object. The JSON to deserialize. The deserialized object from the Json string. Deserializes the JSON to a .NET object. The JSON to deserialize. The used to deserialize the object. If this is null, default serialization settings will be is used. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The JSON to deserialize. The of object being deserialized. The deserialized object from the Json string. Deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The JSON to deserialize. The deserialized object from the Json string. Deserializes the JSON to the given anonymous type. The anonymous type to deserialize to. This can't be specified traditionally and must be infered from the anonymous type passed as a parameter. The JSON to deserialize. The anonymous type object. The deserialized anonymous type from the JSON string. Deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The JSON to deserialize. Converters to use while deserializing. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The object to deserialize. The used to deserialize the object. If this is null, default serialization settings will be is used. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The JSON to deserialize. The type of the object to deserialize. Converters to use while deserializing. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The JSON to deserialize. The type of the object to deserialize to. The used to deserialize the object. If this is null, default serialization settings will be is used. The deserialized object from the JSON string. Populates the object with values from the JSON string. The JSON to populate values from. The target object to populate values onto. Populates the object with values from the JSON string. The JSON to populate values from. The target object to populate values onto. The used to deserialize the object. If this is null, default serialization settings will be is used. Serializes the XML node to a JSON string. The node to serialize. A JSON string of the XmlNode. Serializes the XML node to a JSON string. The node to serialize. Indicates how the output is formatted. A JSON string of the XmlNode. Serializes the XML node to a JSON string. The node to serialize. Indicates how the output is formatted. Omits writing the root object. A JSON string of the XmlNode. Deserializes the XmlNode from a JSON string. The JSON string. The deserialized XmlNode Deserializes the XmlNode from a JSON string nested in a root elment. The JSON string. The name of the root element to append when deserializing. The deserialized XmlNode Deserializes the XmlNode from a JSON string nested in a root elment. The JSON string. The name of the root element to append when deserializing. A flag to indicate whether to write the Json.NET array attribute. This attribute helps preserve arrays when converting the written XML back to JSON. The deserialized XmlNode The exception thrown when an error occurs during Json serialization or deserialization. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). Serializes and deserializes objects into and from the JSON format. The enables you to control how objects are encoded into JSON. Initializes a new instance of the class. Creates a new instance using the specified . The settings to be applied to the . A new instance using the specified . Populates the JSON values onto the target object. The that contains the JSON structure to reader values from. The target object to populate values onto. Populates the JSON values onto the target object. The that contains the JSON structure to reader values from. The target object to populate values onto. Deserializes the Json structure contained by the specified . The that contains the JSON structure to deserialize. The being deserialized. Deserializes the Json structure contained by the specified into an instance of the specified type. The containing the object. The of object being deserialized. The instance of being deserialized. Deserializes the Json structure contained by the specified into an instance of the specified type. The containing the object. The type of the object to deserialize. The instance of being deserialized. Deserializes the Json structure contained by the specified into an instance of the specified type. The containing the object. The of object being deserialized. The instance of being deserialized. Serializes the specified and writes the Json structure to a Stream using the specified . The used to write the Json structure. The to serialize. Serializes the specified and writes the Json structure to a Stream using the specified . The used to write the Json structure. The to serialize. Occurs when the errors during serialization and deserialization. Gets or sets the used by the serializer when resolving references. Gets or sets the used by the serializer when resolving type names. Gets or sets how type name writing and reading is handled by the serializer. Gets or sets how a type name assembly is written and resolved by the serializer. The type name assembly format. Gets or sets how object references are preserved by the serializer. Get or set how reference loops (e.g. a class referencing itself) is handled. Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. Get or set how null values are handled during serialization and deserialization. Get or set how null default are handled during serialization and deserialization. Gets or sets how objects are created during deserialization. The object creation handling. Gets or sets how constructors are used during deserialization. The constructor handling. Gets a collection that will be used during serialization. Collection that will be used during serialization. Gets or sets the contract resolver used by the serializer when serializing .NET objects to JSON and vice versa. Gets or sets the used by the serializer when invoking serialization callback methods. The context. Indicates how JSON text output is formatted. Get or set how dates are written to JSON text. Get or set how time zones are handling during serialization and deserialization. Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. Gets or sets the culture used when reading JSON. Defaults to . Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. true if there will be a check for additional JSON content after deserializing an object; otherwise, false. Contains the LINQ to JSON extension methods. Returns a collection of tokens that contains the ancestors of every token in the source collection. The type of the objects in source, constrained to . An of that contains the source collection. An of that contains the ancestors of every node in the source collection. Returns a collection of tokens that contains the descendants of every token in the source collection. The type of the objects in source, constrained to . An of that contains the source collection. An of that contains the descendants of every node in the source collection. Returns a collection of child properties of every object in the source collection. An of that contains the source collection. An of that contains the properties of every object in the source collection. Returns a collection of child values of every object in the source collection with the given key. An of that contains the source collection. The token key. An of that contains the values of every node in the source collection with the given key. Returns a collection of child values of every object in the source collection. An of that contains the source collection. An of that contains the values of every node in the source collection. Returns a collection of converted child values of every object in the source collection with the given key. The type to convert the values to. An of that contains the source collection. The token key. An that contains the converted values of every node in the source collection with the given key. Returns a collection of converted child values of every object in the source collection. The type to convert the values to. An of that contains the source collection. An that contains the converted values of every node in the source collection. Converts the value. The type to convert the value to. A cast as a of . A converted value. Converts the value. The source collection type. The type to convert the value to. A cast as a of . A converted value. Returns a collection of child tokens of every array in the source collection. The source collection type. An of that contains the source collection. An of that contains the values of every node in the source collection. Returns a collection of converted child tokens of every array in the source collection. An of that contains the source collection. The type to convert the values to. The source collection type. An that contains the converted values of every node in the source collection. Returns the input typed as . An of that contains the source collection. The input typed as . Returns the input typed as . The source collection type. An of that contains the source collection. The input typed as . Represents a JSON constructor. Represents a token that can contain other tokens. Raises the event. The instance containing the event data. Raises the event. The instance containing the event data. Returns a collection of the child tokens of this token, in document order. An of containing the child tokens of this , in document order. Returns a collection of the child values of this token, in document order. The type to convert the values to. A containing the child values of this , in document order. Returns a collection of the descendant tokens for this token in document order. An containing the descendant tokens of the . Adds the specified content as children of this . The content to be added. Adds the specified content as the first children of this . The content to be added. Creates an that can be used to add tokens to the . An that is ready to have content written to it. Replaces the children nodes of this token with the specified content. The content. Removes the child nodes from this token. Occurs when the list changes or an item in the list changes. Occurs before an item is added to the collection. Gets the container's children tokens. The container's children tokens. Gets a value indicating whether this token has childen tokens. true if this token has child values; otherwise, false. Get the first child token of this token. A containing the first child token of the . Get the last child token of this token. A containing the last child token of the . Gets the count of child JSON tokens. The count of child JSON tokens Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified name and content. The constructor name. The contents of the constructor. Initializes a new instance of the class with the specified name and content. The constructor name. The contents of the constructor. Initializes a new instance of the class with the specified name. The constructor name. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Gets the container's children tokens. The container's children tokens. Gets or sets the name of this constructor. The constructor name. Gets the node type for this . The type. Gets the with the specified key. The with the specified key. Represents a collection of objects. The type of token An empty collection of objects. Initializes a new instance of the struct. The enumerable. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the with the specified key. Represents a JSON object. Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified content. The contents of the object. Initializes a new instance of the class with the specified content. The contents of the object. Gets an of this object's properties. An of this object's properties. Gets a the specified name. The property name. A with the specified name or null. Gets an of this object's property values. An of this object's property values. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Creates a from an object. The object that will be used to create . A with the values of the specified object Creates a from an object. The object that will be used to create . The that will be used to read the object. A with the values of the specified object Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Adds the specified property name. Name of the property. The value. Removes the property with the specified name. Name of the property. true if item was successfully removed; otherwise, false. Tries the get value. Name of the property. The value. true if a value was successfully retrieved; otherwise, false. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Raises the event with the provided arguments. Name of the property. Returns the properties for this instance of a component. A that represents the properties for this component instance. Returns the properties for this instance of a component using the attribute array as a filter. An array of type that is used as a filter. A that represents the filtered properties for this component instance. Returns a collection of custom attributes for this instance of a component. An containing the attributes for this object. Returns the class name of this instance of a component. The class name of the object, or null if the class does not have a name. Returns the name of this instance of a component. The name of the object, or null if the object does not have a name. Returns a type converter for this instance of a component. A that is the converter for this object, or null if there is no for this object. Returns the default event for this instance of a component. An that represents the default event for this object, or null if this object does not have events. Returns the default property for this instance of a component. A that represents the default property for this object, or null if this object does not have properties. Returns an editor of the specified type for this instance of a component. A that represents the editor for this object. An of the specified type that is the editor for this object, or null if the editor cannot be found. Returns the events for this instance of a component using the specified attribute array as a filter. An array of type that is used as a filter. An that represents the filtered events for this component instance. Returns the events for this instance of a component. An that represents the events for this component instance. Returns an object that contains the property described by the specified property descriptor. A that represents the property whose owner is to be found. An that represents the owner of the specified property. Gets the container's children tokens. The container's children tokens. Occurs when a property value changes. Gets the node type for this . The type. Gets the with the specified key. The with the specified key. Gets or sets the with the specified property name. Represents a JSON array. Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified content. The contents of the array. Initializes a new instance of the class with the specified content. The contents of the array. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Creates a from an object. The object that will be used to create . A with the values of the specified object Creates a from an object. The object that will be used to create . The that will be used to read the object. A with the values of the specified object Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Determines the index of a specific item in the . The object to locate in the . The index of if found in the list; otherwise, -1. Inserts an item to the at the specified index. The zero-based index at which should be inserted. The object to insert into the . is not a valid index in the . The is read-only. Removes the item at the specified index. The zero-based index of the item to remove. is not a valid index in the . The is read-only. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Gets the container's children tokens. The container's children tokens. Gets the node type for this . The type. Gets the with the specified key. The with the specified key. Gets or sets the at the specified index. Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. Initializes a new instance of the class. The token to read from. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Initializes a new instance of the class writing to the given . The container being written to. Initializes a new instance of the class. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Closes this stream and the underlying stream. Writes the beginning of a Json object. Writes the beginning of a Json array. Writes the start of a constructor with the given name. The name of the constructor. Writes the end. The token. Writes the property name of a name/value pair on a Json object. The name of the property. Writes a null value. Writes an undefined value. Writes raw JSON. The raw JSON to write. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Gets the token being writen. The token being writen. Represents a JSON property. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class. The property name. The property content. Initializes a new instance of the class. The property name. The property content. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Gets the container's children tokens. The container's children tokens. Gets the property name. The property name. Gets or sets the property value. The property value. Gets the node type for this . The type. Specifies the type of token. No token type has been set. A JSON object. A JSON array. A JSON constructor. A JSON object property. A comment. An integer value. A float value. A string value. A boolean value. A null value. An undefined value. A date value. A raw JSON value. A collection of bytes value. A Guid value. A Uri value. A TimeSpan value. Contains the JSON schema extension methods. Determines whether the is valid. The source to test. The schema to test with. true if the specified is valid; otherwise, false. Determines whether the is valid. The source to test. The schema to test with. When this method returns, contains any error messages generated while validating. true if the specified is valid; otherwise, false. Validates the specified . The source to test. The schema to test with. Validates the specified . The source to test. The schema to test with. The validation event handler. Returns detailed information about the schema exception. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). Gets the line number indicating where the error occurred. The line number indicating where the error occurred. Gets the line position indicating where the error occurred. The line position indicating where the error occurred. Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. Resolves from an id. Initializes a new instance of the class. Gets a for the specified id. The id. A for the specified id. Gets or sets the loaded schemas. The loaded schemas. Specifies undefined schema Id handling options for the . Do not infer a schema Id. Use the .NET type name as the schema Id. Use the assembly qualified .NET type name as the schema Id. Returns detailed information related to the . Gets the associated with the validation error. The JsonSchemaException associated with the validation error. Gets the path of the JSON location where the validation error occurred. The path of the JSON location where the validation error occurred. Gets the text description corresponding to the validation error. The text description. Represents the callback method that will handle JSON schema validation events and the . Resolves member mappings for a type, camel casing property names. Used by to resolves a for a given . Used by to resolves a for a given . Resolves the contract for a given type. The type to resolve a contract for. The contract for a given type. Initializes a new instance of the class. Initializes a new instance of the class. If set to true the will use a cached shared with other resolvers of the same type. Sharing the cache will significantly performance because expensive reflection will only happen once but could cause unexpected behavior if different instances of the resolver are suppose to produce different results. When set to false it is highly recommended to reuse instances with the . Resolves the contract for a given type. The type to resolve a contract for. The contract for a given type. Gets the serializable members for the type. The type to get serializable members for. The serializable members for the type. Creates a for the given type. Type of the object. A for the given type. Creates the constructor parameters. The constructor to create properties for. The type's member properties. Properties for the given . Creates a for the given . The matching member property. The constructor parameter. A created for the given . Resolves the default for the contract. Type of the object. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Determines which contract type is created for the given type. Type of the object. A for the given type. Creates properties for the given . The type to create properties for. /// The member serialization mode for the type. Properties for the given . Creates the used by the serializer to get and set values from a member. The member. The used by the serializer to get and set values from a member. Creates a for the given . The member's parent . The member to create a for. A created for the given . Resolves the name of the property. Name of the property. Name of the property. Gets the resolved name of the property. Name of the property. Name of the property. Gets a value indicating whether members are being get and set using dynamic code generation. This value is determined by the runtime permissions available. true if using dynamic code generation; otherwise, false. Gets or sets the default members search flags. The default members search flags. Gets or sets a value indicating whether compiler generated members should be serialized. true if serialized compiler generated members; otherwise, false. Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. true if the interface will be ignored when serializing and deserializing types; otherwise, false. Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. true if the attribute will be ignored when serializing and deserializing types; otherwise, false. Initializes a new instance of the class. Resolves the name of the property. Name of the property. The property name camel cased. The default serialization binder used when resolving and loading classes from type names. When overridden in a derived class, controls the binding of a serialized object to a type. Specifies the name of the serialized object. Specifies the name of the serialized object. The type of the object the formatter creates a new instance of. Get and set values for a using dynamic methods. Provides methods to get and set values. Sets the value. The target to set the value on. The value to set on the target. Gets the value. The target to get the value from. The value. Initializes a new instance of the class. The member info. Sets the value. The target to set the value on. The value to set on the target. Gets the value. The target to get the value from. The value. Provides information surrounding an error. Gets or sets the error. The error. Gets the original object that caused the error. The original object that caused the error. Gets the member that caused the error. The member that caused the error. Gets the path of the JSON location where the error occurred. The path of the JSON location where the error occurred. Gets or sets a value indicating whether this is handled. true if handled; otherwise, false. Provides data for the Error event. Initializes a new instance of the class. The current object. The error context. Gets the current object the error event is being raised against. The current object the error event is being raised against. Gets the error context. The error context. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets the of the collection items. The of the collection items. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets or sets the property name resolver. The property name resolver. Gets the of the dictionary keys. The of the dictionary keys. Gets the of the dictionary values. The of the dictionary values. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets or sets the ISerializable object constructor. The ISerializable object constructor. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Maps a JSON property to a .NET member or constructor parameter. Returns a that represents this instance. A that represents this instance. Gets or sets the name of the property. The name of the property. Gets or sets the type that declared this property. The type that declared this property. Gets or sets the order of serialization and deserialization of a member. The numeric order of serialization or deserialization. Gets or sets the name of the underlying member or parameter. The name of the underlying member or parameter. Gets the that will get and set the during serialization. The that will get and set the during serialization. Gets or sets the type of the property. The type of the property. Gets or sets the for the property. If set this converter takes presidence over the contract converter for the property type. The converter. Gets the member converter. The member converter. Gets a value indicating whether this is ignored. true if ignored; otherwise, false. Gets a value indicating whether this is readable. true if readable; otherwise, false. Gets a value indicating whether this is writable. true if writable; otherwise, false. Gets the default value. The default value. Gets a value indicating whether this is required. A value indicating whether this is required. Gets a value indicating whether this property preserves object references. true if this instance is reference; otherwise, false. Gets the property null value handling. The null value handling. Gets the property default value handling. The default value handling. Gets the property reference loop handling. The reference loop handling. Gets the property object creation handling. The object creation handling. Gets or sets the type name handling. The type name handling. Gets or sets a predicate used to determine whether the property should be serialize. A predicate used to determine whether the property should be serialize. Gets or sets a predicate used to determine whether the property should be serialized. A predicate used to determine whether the property should be serialized. Gets or sets an action used to set whether the property has been deserialized. An action used to set whether the property has been deserialized. Gets or sets the converter used when serializing the property's collection items. The collection's items converter. Gets or sets whether this property's collection items are serialized as a reference. Whether this property's collection items are serialized as a reference. Gets or sets the the type name handling used when serializing the property's collection items. The collection's items type name handling. Gets or sets the the reference loop handling used when serializing the property's collection items. The collection's items reference loop handling. A collection of objects. Initializes a new instance of the class. The type. When implemented in a derived class, extracts the key from the specified element. The element from which to extract the key. The key for the specified element. Adds a object. The property to add to the collection. Gets the closest matching object. First attempts to get an exact case match of propertyName and then a case insensitive match. Name of the property. A matching property if found. Gets a property by property name. The name of the property to get. Type property name string comparison. A matching property if found. Specifies missing member handling options for the . Ignore a missing member and do not attempt to deserialize it. Throw a when a missing member is encountered during deserialization. Specifies null value handling options for the . Include null values when serializing and deserializing objects. Ignore null values when serializing and deserializing objects. Specifies reference loop handling options for the . Throw a when a loop is encountered. Ignore loop references and do not serialize. Serialize loop references. An in-memory representation of a JSON Schema. Initializes a new instance of the class. Reads a from the specified . The containing the JSON Schema to read. The object representing the JSON Schema. Reads a from the specified . The containing the JSON Schema to read. The to use when resolving schema references. The object representing the JSON Schema. Load a from a string that contains schema JSON. A that contains JSON. A populated from the string that contains JSON. Parses the specified json. The json. The resolver. A populated from the string that contains JSON. Writes this schema to a . A into which this method will write. Writes this schema to a using the specified . A into which this method will write. The resolver used. Returns a that represents the current . A that represents the current . Gets or sets the id. Gets or sets the title. Gets or sets whether the object is required. Gets or sets whether the object is read only. Gets or sets whether the object is visible to users. Gets or sets whether the object is transient. Gets or sets the description of the object. Gets or sets the types of values allowed by the object. The type. Gets or sets the pattern. The pattern. Gets or sets the minimum length. The minimum length. Gets or sets the maximum length. The maximum length. Gets or sets a number that the value should be divisble by. A number that the value should be divisble by. Gets or sets the minimum. The minimum. Gets or sets the maximum. The maximum. Gets or sets a flag indicating whether the value can not equal the number defined by the "minimum" attribute. A flag indicating whether the value can not equal the number defined by the "minimum" attribute. Gets or sets a flag indicating whether the value can not equal the number defined by the "maximum" attribute. A flag indicating whether the value can not equal the number defined by the "maximum" attribute. Gets or sets the minimum number of items. The minimum number of items. Gets or sets the maximum number of items. The maximum number of items. Gets or sets the of items. The of items. Gets or sets the of properties. The of properties. Gets or sets the of additional properties. The of additional properties. Gets or sets the pattern properties. The pattern properties. Gets or sets a value indicating whether additional properties are allowed. true if additional properties are allowed; otherwise, false. Gets or sets the required property if this property is present. The required property if this property is present. Gets or sets the identity. The identity. Gets or sets the a collection of valid enum values allowed. A collection of valid enum values allowed. Gets or sets a collection of options. A collection of options. Gets or sets disallowed types. The disallow types. Gets or sets the default value. The default value. Gets or sets the extend . The extended . Gets or sets the format. The format. Generates a from a specified . Generate a from the specified type. The type to generate a from. A generated from the specified type. Generate a from the specified type. The type to generate a from. The used to resolve schema references. A generated from the specified type. Generate a from the specified type. The type to generate a from. Specify whether the generated root will be nullable. A generated from the specified type. Generate a from the specified type. The type to generate a from. The used to resolve schema references. Specify whether the generated root will be nullable. A generated from the specified type. Gets or sets how undefined schemas are handled by the serializer. Gets or sets the contract resolver. The contract resolver. The value types allowed by the . No type specified. String type. Float type. Integer type. Boolean type. Object type. Array type. Null type. Any type. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets or sets the object member serialization. The member object serialization. Gets or sets a value that indicates whether the object's properties are required. A value indicating whether the object's properties are required. Gets the object's properties. The object's properties. Gets the constructor parameters required for any non-default constructor Gets or sets the override constructor used to create the object. This is set when a constructor is marked up using the JsonConstructor attribute. The override constructor. Gets or sets the parametrized constructor used to create the object. The parametrized constructor. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Represents a method that constructs an object. When applied to a method, specifies that the method is called when an error occurs serializing an object. Get and set values for a using reflection. Initializes a new instance of the class. The member info. Sets the value. The target to set the value on. The value to set on the target. Gets the value. The target to get the value from. The value. Specifies type name handling options for the . Do not include the .NET type name when serializing types. Include the .NET type name when serializing into a JSON object structure. Include the .NET type name when serializing into a JSON array structure. Always include the .NET type name when serializing. Include the .NET type name when the type of the object being serialized is not the same as its declared type. Converts the value to the specified type. The value to convert. The culture to use when converting. The type to convert the value to. The converted type. Converts the value to the specified type. The value to convert. The culture to use when converting. The type to convert the value to. The converted value if the conversion was successful or the default value of T if it failed. true if initialValue was converted successfully; otherwise, false. Converts the value to the specified type. If the value is unable to be converted, the value is checked whether it assignable to the specified type. The value to convert. The culture to use when converting. The type to convert or cast the value to. The converted type. If conversion was unsuccessful, the initial value is returned if assignable to the target type. Gets a dictionary of the names and values of an Enum type. Gets a dictionary of the names and values of an Enum type. The enum type to get names and values for. Specifies the type of Json token. This is returned by the if a method has not been called. An object start token. An array start token. A constructor start token. An object property name. A comment. Raw JSON. An integer. A float. A string. A boolean. A null token. An undefined token. An object end token. An array end token. A constructor end token. A Date. Byte data. Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. Determines whether the collection is null or empty. The collection. true if the collection is null or empty; otherwise, false. Adds the elements of the specified collection to the specified generic IList. The list to add to. The collection of elements to add. Returns the index of the first occurrence in a sequence by using a specified IEqualityComparer. The type of the elements of source. A sequence in which to locate a value. The object to locate in the sequence An equality comparer to compare values. The zero-based index of the first occurrence of value within the entire sequence, if found; otherwise, –1. Gets the type of the typed collection's items. The type. The type of the typed collection's items. Gets the member's underlying type. The member. The underlying type of the member. Determines whether the member is an indexed property. The member. true if the member is an indexed property; otherwise, false. Determines whether the property is an indexed property. The property. true if the property is an indexed property; otherwise, false. Gets the member's value on the object. The member. The target object. The member's value on the object. Sets the member's value on the target object. The member. The target. The value. Determines whether the specified MemberInfo can be read. The MemberInfo to determine whether can be read. /// if set to true then allow the member to be gotten non-publicly. true if the specified MemberInfo can be read; otherwise, false. Determines whether the specified MemberInfo can be set. The MemberInfo to determine whether can be set. if set to true then allow the member to be set non-publicly. if set to true then allow the member to be set if read-only. true if the specified MemberInfo can be set; otherwise, false. Determines whether the string is all white space. Empty string will return false. The string to test whether it is all white space. true if the string is all white space; otherwise, false. Nulls an empty string. The string. Null if the string was null, otherwise the string unchanged. Specifies the state of the . An exception has been thrown, which has left the in an invalid state. You may call the method to put the in the Closed state. Any other method calls results in an being thrown. The method has been called. An object is being written. A array is being written. A constructor is being written. A property is being written. A write method has not been called. ================================================ FILE: packages/Newtonsoft.Json.4.5.6/lib/net35/Newtonsoft.Json.xml ================================================ Newtonsoft.Json Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. Initializes a new instance of the class with the specified . Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Skips the children of the current token. Sets the current token. The new token. Sets the current token and value. The new token. The value. Sets the state based on current token type. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Changes the to Closed. Gets the current reader state. The current reader state. Gets or sets a value indicating whether the underlying stream or should be closed when the reader is closed. true to close the underlying stream or when the reader is closed; otherwise false. The default is true. Gets the quotation mark character used to enclose the value of a string. Get or set how time zones are handling when reading JSON. Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . Gets the type of the current JSON token. Gets the text value of the current JSON token. Gets The Common Language Runtime (CLR) type for the current JSON token. Gets the depth of the current token in the JSON document. The depth of the current token in the JSON document. Gets the path of the current JSON token. Gets or sets the culture used when reading JSON. Defaults to . Specifies the state of the reader. The Read method has not been called. The end of the file has been reached successfully. Reader is at a property. Reader is at the start of an object. Reader is in an object. Reader is at the start of an array. Reader is in an array. The Close method has been called. Reader has just read a value. Reader is at the start of a constructor. Reader in a constructor. An error occurred that prevents the read operation from continuing. The end of the file has been reached successfully. Initializes a new instance of the class. The stream. Initializes a new instance of the class. The reader. Initializes a new instance of the class. The stream. if set to true the root object will be read as a JSON array. The used when reading values from BSON. Initializes a new instance of the class. The reader. if set to true the root object will be read as a JSON array. The used when reading values from BSON. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Changes the to Closed. Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary. true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. Gets or sets a value indicating whether the root object will be read as a JSON array. true if the root object will be read as a JSON array; otherwise, false. Gets or sets the used when reading values from BSON. The used when reading values from BSON. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Creates an instance of the JsonWriter class. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Closes this stream and the underlying stream. Writes the beginning of a Json object. Writes the end of a Json object. Writes the beginning of a Json array. Writes the end of an array. Writes the start of a constructor with the given name. The name of the constructor. Writes the end constructor. Writes the property name of a name/value pair on a Json object. The name of the property. Writes the end of the current Json object or array. Writes the current token. The to read the token from. Writes the specified end token. The end token to write. Writes indent characters. Writes the JSON value delimiter. Writes an indent space. Writes a null value. Writes an undefined value. Writes raw JSON without changing the writer's state. The raw JSON to write. Writes raw JSON where a value is expected and updates the writer's state. The raw JSON to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. An error will raised if the value cannot be written as a single JSON token. The value to write. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes out the given white space. The string of white space characters. Gets or sets a value indicating whether the underlying stream or should be closed when the writer is closed. true to close the underlying stream or when the writer is closed; otherwise false. The default is true. Gets the top. The top. Gets the state of the writer. Gets the path of the writer. Indicates how JSON text output is formatted. Get or set how dates are written to JSON text. Get or set how time zones are handling when writing JSON. Initializes a new instance of the class. The stream. Initializes a new instance of the class. The writer. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Writes the end. The token. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes the start of a constructor with the given name. The name of the constructor. Writes raw JSON. The raw JSON to write. Writes raw JSON where a value is expected and updates the writer's state. The raw JSON to write. Writes the beginning of a Json array. Writes the beginning of a Json object. Writes the property name of a name/value pair on a Json object. The name of the property. Closes this stream and the underlying stream. Writes a null value. Writes an undefined value. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value that represents a BSON object id. Writes a BSON regex. The regex pattern. The regex options. Gets or sets the used when writing values to BSON. When set to no conversion will occur. The used when writing values to BSON. Represents a BSON Oid (object id). Initializes a new instance of the class. The Oid value. Gets or sets the value of the Oid. The value of the Oid. Converts a binary value to and from a base 64 string value. Converts an object to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets the of the JSON produced by the JsonConverter. The of the JSON produced by the JsonConverter. Gets a value indicating whether this can read JSON. true if this can read JSON; otherwise, false. Gets a value indicating whether this can write JSON. true if this can write JSON; otherwise, false. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts a to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified value type. Type of the value. true if this instance can convert the specified value type; otherwise, false. Converts a to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified value type. Type of the value. true if this instance can convert the specified value type; otherwise, false. Create a custom object Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Creates an object which will then be populated by the serializer. Type of the object. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets a value indicating whether this can write JSON. true if this can write JSON; otherwise, false. Provides a base class for converting a to and from JSON. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts an Entity Framework EntityKey to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts a to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts a to and from JSON and BSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts a to and from JSON and BSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts an to and from its name string value. Converts an to and from its name string value. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. A cached representation of the Enum string representation to respect per Enum field name. The type of the Enum. A map of enum field name to either the field name, or the configured enum member name (). Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets or sets a value indicating whether the written enum text should be camel case. true if the written enum text will be camel case; otherwise, false. Specifies how constructors are used when initializing objects during deserialization by the . First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor. Json.NET will use a non-public default constructor before falling back to a paramatized constructor. Converts a to and from a string (e.g. "1.2.3.4"). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing property value of the JSON that is being converted. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Specifies how dates are formatted when writing JSON text. Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. Date formatted strings are not parsed to a date type and are read as strings. Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . Specifies how to treat the time value when converting between string and . Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. Treat as a UTC. If the object represents a local time, it is converted to a UTC. Treat as a local time if a is being converted to a string. If a string is being converted to , convert to a local time if a time zone is specified. Time zone information should be preserved when converting. Specifies formatting options for the . No special formatting is applied. This is the default. Causes child objects to be indented according to the and settings. Instructs the to use the specified constructor when deserializing that object. Instructs the how to serialize the collection. Instructs the how to serialize the object. Initializes a new instance of the class. Initializes a new instance of the class with the specified container Id. The container Id. Gets or sets the id. The id. Gets or sets the title. The title. Gets or sets the description. The description. Gets the collection's items converter. The collection's items converter. Gets or sets a value that indicates whether to preserve object references. true to keep object reference; otherwise, false. The default is false. Gets or sets a value that indicates whether to preserve collection's items references. true to keep collection's items object references; otherwise, false. The default is false. Gets or sets the reference loop handling used when serializing the collection's items. The reference loop handling. Gets or sets the type name handling used when serializing the collection's items. The type name handling. Initializes a new instance of the class. Initializes a new instance of the class with the specified container Id. The container Id. The exception thrown when an error occurs during Json serialization or deserialization. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). Represents a view of a . Initializes a new instance of the class. The name. Type of the property. When overridden in a derived class, returns whether resetting an object changes its value. true if resetting the component changes its value; otherwise, false. The component to test for reset capability. When overridden in a derived class, gets the current value of the property on a component. The value of a property for a given component. The component with the property for which to retrieve the value. When overridden in a derived class, resets the value for this property of the component to the default value. The component with the property value that is to be reset to the default value. When overridden in a derived class, sets the value of the component to a different value. The component with the property value that is to be set. The new value. When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. true if the property should be persisted; otherwise, false. The component with the property to be examined for persistence. When overridden in a derived class, gets the type of the component this property is bound to. A that represents the type of component this property is bound to. When the or methods are invoked, the object specified might be an instance of this type. When overridden in a derived class, gets a value indicating whether this property is read-only. true if the property is read-only; otherwise, false. When overridden in a derived class, gets the type of the property. A that represents the type of the property. Gets the hash code for the name of the member. The hash code for the name of the member. Contract details for a used by the . Contract details for a used by the . Gets the underlying type for the contract. The underlying type for the contract. Gets or sets the type created during deserialization. The type created during deserialization. Gets or sets whether this type contract is serialized as a reference. Whether this type contract is serialized as a reference. Gets or sets the default for this contract. The converter. Gets or sets the method called immediately after deserialization of the object. The method called immediately after deserialization of the object. Gets or sets the method called during deserialization of the object. The method called during deserialization of the object. Gets or sets the method called after serialization of the object graph. The method called after serialization of the object graph. Gets or sets the method called before serialization of the object. The method called before serialization of the object. Gets or sets the default creator method used to create the object. The default creator method used to create the object. Gets or sets a value indicating whether the default creator is non public. true if the default object creator is non-public; otherwise, false. Gets or sets the method called when an error is thrown during the serialization of the object. The method called when an error is thrown during the serialization of the object. Initializes a new instance of the class. The underlying type for the contract. Gets or sets the default collection items . The converter. Gets or sets a value indicating whether the collection items preserve object references. true if collection items preserve object references; otherwise, false. Gets or sets the collection item reference loop handling. The reference loop handling. Gets or sets the collection item type name handling. The type name handling. Represents a raw JSON string. Represents a value in JSON (string, integer, date, etc). Represents an abstract JSON token. Represents a collection of objects. The type of token Gets the with the specified key. Provides an interface to enable a class to return line and position information. Gets a value indicating whether the class can return line information. true if LineNumber and LinePosition can be provided; otherwise, false. Gets the current line number. The current line number or 0 if no line information is available (for example, HasLineInfo returns false). Gets the current line position. The current line position or 0 if no line information is available (for example, HasLineInfo returns false). Compares the values of two tokens, including the values of all descendant tokens. The first to compare. The second to compare. true if the tokens are equal; otherwise false. Adds the specified content immediately after this token. A content object that contains simple content or a collection of content objects to be added after this token. Adds the specified content immediately before this token. A content object that contains simple content or a collection of content objects to be added before this token. Returns a collection of the ancestor tokens of this token. A collection of the ancestor tokens of this token. Returns a collection of the sibling tokens after this token, in document order. A collection of the sibling tokens after this tokens, in document order. Returns a collection of the sibling tokens before this token, in document order. A collection of the sibling tokens before this token, in document order. Gets the with the specified key converted to the specified type. The type to convert the token to. The token key. The converted token value. Returns a collection of the child tokens of this token, in document order. An of containing the child tokens of this , in document order. Returns a collection of the child tokens of this token, in document order, filtered by the specified type. The type to filter the child tokens on. A containing the child tokens of this , in document order. Returns a collection of the child values of this token, in document order. The type to convert the values to. A containing the child values of this , in document order. Removes this token from its parent. Replaces this token with the specified token. The value. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Returns the indented JSON for this token. The indented JSON for this token. Returns the JSON for this token using the given formatting and converters. Indicates how the output is formatted. A collection of which will be used when writing the token. The JSON for this token using the given formatting and converters. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Creates an for this token. An that can be used to read this token and its descendants. Creates a from an object. The object that will be used to create . A with the value of the specified object Creates a from an object using the specified . The object that will be used to create . The that will be used when reading the object. A with the value of the specified object Creates the specified .NET type from the . The new object created from the JSON value. Creates the specified .NET type from the using the specified . The that will be used when creating the object. The new object created from the JSON value. Creates a from a . An positioned at the token to read into this . An that contains the token and its descendant tokens that were read from the reader. The runtime type of the token is determined by the token type of the first token encountered in the reader. Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Creates a from a . An positioned at the token to read into this . An that contains the token and its descendant tokens that were read from the reader. The runtime type of the token is determined by the token type of the first token encountered in the reader. Selects the token that matches the object path. The object path from the current to the to be returned. This must be a string of property names or array indexes separated by periods, such as Tables[0].DefaultView[0].Price in C# or Tables(0).DefaultView(0).Price in Visual Basic. The that matches the object path or a null reference if no matching token is found. Selects the token that matches the object path. The object path from the current to the to be returned. This must be a string of property names or array indexes separated by periods, such as Tables[0].DefaultView[0].Price in C# or Tables(0).DefaultView(0).Price in Visual Basic. A flag to indicate whether an error should be thrown if no token is found. The that matches the object path. Creates a new instance of the . All child tokens are recursively cloned. A new instance of the . Gets a comparer that can compare two tokens for value equality. A that can compare two nodes for value equality. Gets or sets the parent. The parent. Gets the root of this . The root of this . Gets the node type for this . The type. Gets a value indicating whether this token has childen tokens. true if this token has child values; otherwise, false. Gets the next sibling token of this node. The that contains the next sibling token. Gets the previous sibling token of this node. The that contains the previous sibling token. Gets the with the specified key. The with the specified key. Get the first child token of this token. A containing the first child token of the . Get the last child token of this token. A containing the last child token of the . Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Creates a comment with the given value. The value. A comment with the given value. Creates a string with the given value. The value. A string with the given value. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Indicates whether the current object is equal to another object of the same type. true if the current object is equal to the parameter; otherwise, false. An object to compare with this object. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. An object to compare with this instance. A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance is less than . Zero This instance is equal to . Greater than zero This instance is greater than . is not the same type as this instance. Gets a value indicating whether this token has childen tokens. true if this token has child values; otherwise, false. Gets the node type for this . The type. Gets or sets the underlying token value. The underlying token value. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class. The raw json. Creates an instance of with the content of the reader's current token. The reader. An instance of with the content of the reader's current token. Indicating whether a property is required. The property is not required. The default state. The property must be defined in JSON but can be a null value. The property must be defined in JSON and cannot be a null value. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets or sets the ISerializable object constructor. The ISerializable object constructor. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Get and set values for a using dynamic methods. Provides methods to get and set values. Sets the value. The target to set the value on. The value to set on the target. Gets the value. The target to get the value from. The value. Initializes a new instance of the class. The member info. Sets the value. The target to set the value on. The value to set on the target. Gets the value. The target to get the value from. The value. Provides data for the Error event. Initializes a new instance of the class. The current object. The error context. Gets the current object the error event is being raised against. The current object the error event is being raised against. Gets the error context. The error context. Used to resolve references when serializing and deserializing JSON by the . Resolves a reference to its object. The serialization context. The reference to resolve. The object that Gets the reference for the sepecified object. The serialization context. The object to get a reference for. The reference to the object. Determines whether the specified object is referenced. The serialization context. The object to test for a reference. true if the specified object is referenced; otherwise, false. Adds a reference to the specified object. The serialization context. The reference. The object to reference. Specifies reference handling options for the . Do not preserve references when serializing types. Preserve references when serializing into a JSON object structure. Preserve references when serializing into a JSON array structure. Preserve references when serializing. Instructs the how to serialize the collection. Initializes a new instance of the class. Initializes a new instance of the class with a flag indicating whether the array can contain null items A flag indicating whether the array can contain null items. Initializes a new instance of the class with the specified container Id. The container Id. Gets or sets a value indicating whether null items are allowed in the collection. true if null items are allowed in the collection; otherwise, false. Specifies default value handling options for the . Include members where the member value is the same as the member's default value when serializing objects. Included members are written to JSON. Has no effect when deserializing. Ignore members where the member value is the same as the member's default value when serializing objects so that is is not written to JSON, and ignores setting members when the JSON value equals the member's default value. Members with a default value but no JSON will be set to their default value when deserializing. Ignore members where the member value is the same as the member's default value when serializing objects and sets members to their default value when deserializing. Instructs the to use the specified when serializing the member or class. Initializes a new instance of the class. Type of the converter. Gets the type of the converter. The type of the converter. Instructs the how to serialize the object. Initializes a new instance of the class. Initializes a new instance of the class with the specified member serialization. The member serialization. Initializes a new instance of the class with the specified container Id. The container Id. Gets or sets the member serialization. The member serialization. Gets or sets a value that indicates whether the object's properties are required. A value indicating whether the object's properties are required. Specifies the settings on a object. Initializes a new instance of the class. Gets or sets how reference loops (e.g. a class referencing itself) is handled. Reference loop handling. Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. Missing member handling. Gets or sets how objects are created during deserialization. The object creation handling. Gets or sets how null values are handled during serialization and deserialization. Null value handling. Gets or sets how null default are handled during serialization and deserialization. The default value handling. Gets or sets a collection that will be used during serialization. The converters. Gets or sets how object references are preserved by the serializer. The preserve references handling. Gets or sets how type name writing and reading is handled by the serializer. The type name handling. Gets or sets how a type name assembly is written and resolved by the serializer. The type name assembly format. Gets or sets how constructors are used during deserialization. The constructor handling. Gets or sets the contract resolver used by the serializer when serializing .NET objects to JSON and vice versa. The contract resolver. Gets or sets the used by the serializer when resolving references. The reference resolver. Gets or sets the used by the serializer when resolving type names. The binder. Gets or sets the error handler called during serialization and deserialization. The error handler called during serialization and deserialization. Gets or sets the used by the serializer when invoking serialization callback methods. The context. Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . Indicates how JSON text output is formatted. Get or set how dates are written to JSON text. Get or set how time zones are handling during serialization and deserialization. Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. Gets or sets the culture used when reading JSON. Defaults to . Gets a value indicating whether there will be a check for additional content after deserializing an object. true if there will be a check for additional content after deserializing an object; otherwise, false. Represents a reader that provides validation. Initializes a new instance of the class that validates the content returned from the given . The to read from while validating. Reads the next JSON token from the stream as a . A . Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. Reads the next JSON token from the stream as a . A . Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Sets an event handler for receiving schema validation errors. Gets the text value of the current Json token. Gets the depth of the current token in the JSON document. The depth of the current token in the JSON document. Gets the path of the current JSON token. Gets the quotation mark character used to enclose the value of a string. Gets the type of the current Json token. Gets the Common Language Runtime (CLR) type for the current Json token. Gets or sets the schema. The schema. Gets the used to construct this . The specified in the constructor. Compares tokens to determine whether they are equal. Determines whether the specified objects are equal. The first object of type to compare. The second object of type to compare. true if the specified objects are equal; otherwise, false. Returns a hash code for the specified object. The for which a hash code is to be returned. A hash code for the specified object. The type of is a reference type and is null. Specifies the member serialization options for the . All public members are serialized by default. Members can be excluded using or . This is the default member serialization mode. Only members must be marked with or are serialized. This member serialization mode can also be set by marking the class with . All public and private fields are serialized. Members can be excluded using or . This member serialization mode can also be set by marking the class with and setting IgnoreSerializableAttribute on to false. Specifies how object creation is handled by the . Reuse existing objects, create new objects when needed. Only reuse existing objects. Always create new objects. Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Gets or sets the date time styles used when converting a date to and from JSON. The date time styles used when converting a date to and from JSON. Gets or sets the date time format used when converting a date to and from JSON. The date time format used when converting a date to and from JSON. Gets or sets the culture used when converting a date to and from JSON. The culture used when converting a date to and from JSON. Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing property value of the JSON that is being converted. The calling serializer. The object value. Converts XML to and from JSON. Writes the JSON representation of the object. The to write to. The calling serializer. The value. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Checks if the attributeName is a namespace attribute. Attribute name to test. The attribute name prefix if it has one, otherwise an empty string. True if attribute name is for a namespace attribute, otherwise false. Determines whether this instance can convert the specified value type. Type of the value. true if this instance can convert the specified value type; otherwise, false. Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements. The name of the deserialize root element. Gets or sets a flag to indicate whether to write the Json.NET array attribute. This attribute helps preserve arrays when converting the written XML back to JSON. true if the array attibute is written to the XML; otherwise, false. Gets or sets a value indicating whether to write the root JSON object. true if the JSON root object is omitted; otherwise, false. Represents a reader that provides fast, non-cached, forward-only access to JSON text data. Initializes a new instance of the class with the specified . The TextReader containing the XML data to read. Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Changes the state to closed. Gets a value indicating whether the class can return line information. true if LineNumber and LinePosition can be provided; otherwise, false. Gets the current line number. The current line number or 0 if no line information is available (for example, HasLineInfo returns false). Gets the current line position. The current line position or 0 if no line information is available (for example, HasLineInfo returns false). Instructs the to always serialize the member with the specified name. Initializes a new instance of the class. Initializes a new instance of the class with the specified name. Name of the property. Gets or sets the converter used when serializing the property's collection items. The collection's items converter. Gets or sets the null value handling used when serializing this property. The null value handling. Gets or sets the default value handling used when serializing this property. The default value handling. Gets or sets the reference loop handling used when serializing this property. The reference loop handling. Gets or sets the object creation handling used when deserializing this property. The object creation handling. Gets or sets the type name handling used when serializing this property. The type name handling. Gets or sets whether this property's value is serialized as a reference. Whether this property's value is serialized as a reference. Gets or sets the order of serialization and deserialization of a member. The numeric order of serialization or deserialization. Gets or sets a value indicating whether this property is required. A value indicating whether this property is required. Gets or sets the name of the property. The name of the property. Gets or sets the the reference loop handling used when serializing the property's collection items. The collection's items reference loop handling. Gets or sets the the type name handling used when serializing the property's collection items. The collection's items type name handling. Gets or sets whether this property's collection items are serialized as a reference. Whether this property's collection items are serialized as a reference. Instructs the not to serialize the public field or public read/write property value. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Creates an instance of the JsonWriter class using the specified . The TextWriter to write to. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Closes this stream and the underlying stream. Writes the beginning of a Json object. Writes the beginning of a Json array. Writes the start of a constructor with the given name. The name of the constructor. Writes the specified end token. The end token to write. Writes the property name of a name/value pair on a Json object. The name of the property. Writes indent characters. Writes the JSON value delimiter. Writes an indent space. Writes a null value. Writes an undefined value. Writes raw JSON. The raw JSON to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes out the given white space. The string of white space characters. Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. Gets or sets which character to use to quote attribute values. Gets or sets which character to use for indenting when is set to Formatting.Indented. Gets or sets a value indicating whether object names will be surrounded with quotes. The exception thrown when an error occurs while reading Json text. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. The exception thrown when an error occurs while reading Json text. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). Gets the line number indicating where the error occurred. The line number indicating where the error occurred. Gets the line position indicating where the error occurred. The line position indicating where the error occurred. Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. Represents a collection of . Provides methods for converting between common language runtime types and JSON types. Represents JavaScript's boolean value true as a string. This field is read-only. Represents JavaScript's boolean value false as a string. This field is read-only. Represents JavaScript's null as a string. This field is read-only. Represents JavaScript's undefined as a string. This field is read-only. Represents JavaScript's positive infinity as a string. This field is read-only. Represents JavaScript's negative infinity as a string. This field is read-only. Represents JavaScript's NaN as a string. This field is read-only. Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation using the specified. The value to convert. The format the date will be converted to. The time zone handling when the date is converted to a string. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation using the specified. The value to convert. The format the date will be converted to. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. The string delimiter character. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Serializes the specified object to a JSON string. The object to serialize. A JSON string representation of the object. Serializes the specified object to a JSON string. The object to serialize. Indicates how the output is formatted. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. A collection converters used while serializing. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. Indicates how the output is formatted. A collection converters used while serializing. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. The used to serialize the object. If this is null, default serialization settings will be is used. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. Indicates how the output is formatted. The used to serialize the object. If this is null, default serialization settings will be is used. A JSON string representation of the object. Deserializes the JSON to a .NET object. The JSON to deserialize. The deserialized object from the Json string. Deserializes the JSON to a .NET object. The JSON to deserialize. The used to deserialize the object. If this is null, default serialization settings will be is used. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The JSON to deserialize. The of object being deserialized. The deserialized object from the Json string. Deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The JSON to deserialize. The deserialized object from the Json string. Deserializes the JSON to the given anonymous type. The anonymous type to deserialize to. This can't be specified traditionally and must be infered from the anonymous type passed as a parameter. The JSON to deserialize. The anonymous type object. The deserialized anonymous type from the JSON string. Deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The JSON to deserialize. Converters to use while deserializing. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The object to deserialize. The used to deserialize the object. If this is null, default serialization settings will be is used. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The JSON to deserialize. The type of the object to deserialize. Converters to use while deserializing. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The JSON to deserialize. The type of the object to deserialize to. The used to deserialize the object. If this is null, default serialization settings will be is used. The deserialized object from the JSON string. Populates the object with values from the JSON string. The JSON to populate values from. The target object to populate values onto. Populates the object with values from the JSON string. The JSON to populate values from. The target object to populate values onto. The used to deserialize the object. If this is null, default serialization settings will be is used. Serializes the XML node to a JSON string. The node to serialize. A JSON string of the XmlNode. Serializes the XML node to a JSON string. The node to serialize. Indicates how the output is formatted. A JSON string of the XmlNode. Serializes the XML node to a JSON string. The node to serialize. Indicates how the output is formatted. Omits writing the root object. A JSON string of the XmlNode. Deserializes the XmlNode from a JSON string. The JSON string. The deserialized XmlNode Deserializes the XmlNode from a JSON string nested in a root elment. The JSON string. The name of the root element to append when deserializing. The deserialized XmlNode Deserializes the XmlNode from a JSON string nested in a root elment. The JSON string. The name of the root element to append when deserializing. A flag to indicate whether to write the Json.NET array attribute. This attribute helps preserve arrays when converting the written XML back to JSON. The deserialized XmlNode Serializes the to a JSON string. The node to convert to JSON. A JSON string of the XNode. Serializes the to a JSON string. The node to convert to JSON. Indicates how the output is formatted. A JSON string of the XNode. Serializes the to a JSON string. The node to serialize. Indicates how the output is formatted. Omits writing the root object. A JSON string of the XNode. Deserializes the from a JSON string. The JSON string. The deserialized XNode Deserializes the from a JSON string nested in a root elment. The JSON string. The name of the root element to append when deserializing. The deserialized XNode Deserializes the from a JSON string nested in a root elment. The JSON string. The name of the root element to append when deserializing. A flag to indicate whether to write the Json.NET array attribute. This attribute helps preserve arrays when converting the written XML back to JSON. The deserialized XNode The exception thrown when an error occurs during Json serialization or deserialization. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). Serializes and deserializes objects into and from the JSON format. The enables you to control how objects are encoded into JSON. Initializes a new instance of the class. Creates a new instance using the specified . The settings to be applied to the . A new instance using the specified . Populates the JSON values onto the target object. The that contains the JSON structure to reader values from. The target object to populate values onto. Populates the JSON values onto the target object. The that contains the JSON structure to reader values from. The target object to populate values onto. Deserializes the Json structure contained by the specified . The that contains the JSON structure to deserialize. The being deserialized. Deserializes the Json structure contained by the specified into an instance of the specified type. The containing the object. The of object being deserialized. The instance of being deserialized. Deserializes the Json structure contained by the specified into an instance of the specified type. The containing the object. The type of the object to deserialize. The instance of being deserialized. Deserializes the Json structure contained by the specified into an instance of the specified type. The containing the object. The of object being deserialized. The instance of being deserialized. Serializes the specified and writes the Json structure to a Stream using the specified . The used to write the Json structure. The to serialize. Serializes the specified and writes the Json structure to a Stream using the specified . The used to write the Json structure. The to serialize. Occurs when the errors during serialization and deserialization. Gets or sets the used by the serializer when resolving references. Gets or sets the used by the serializer when resolving type names. Gets or sets how type name writing and reading is handled by the serializer. Gets or sets how a type name assembly is written and resolved by the serializer. The type name assembly format. Gets or sets how object references are preserved by the serializer. Get or set how reference loops (e.g. a class referencing itself) is handled. Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. Get or set how null values are handled during serialization and deserialization. Get or set how null default are handled during serialization and deserialization. Gets or sets how objects are created during deserialization. The object creation handling. Gets or sets how constructors are used during deserialization. The constructor handling. Gets a collection that will be used during serialization. Collection that will be used during serialization. Gets or sets the contract resolver used by the serializer when serializing .NET objects to JSON and vice versa. Gets or sets the used by the serializer when invoking serialization callback methods. The context. Indicates how JSON text output is formatted. Get or set how dates are written to JSON text. Get or set how time zones are handling during serialization and deserialization. Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. Gets or sets the culture used when reading JSON. Defaults to . Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. true if there will be a check for additional JSON content after deserializing an object; otherwise, false. Contains the LINQ to JSON extension methods. Returns a collection of tokens that contains the ancestors of every token in the source collection. The type of the objects in source, constrained to . An of that contains the source collection. An of that contains the ancestors of every node in the source collection. Returns a collection of tokens that contains the descendants of every token in the source collection. The type of the objects in source, constrained to . An of that contains the source collection. An of that contains the descendants of every node in the source collection. Returns a collection of child properties of every object in the source collection. An of that contains the source collection. An of that contains the properties of every object in the source collection. Returns a collection of child values of every object in the source collection with the given key. An of that contains the source collection. The token key. An of that contains the values of every node in the source collection with the given key. Returns a collection of child values of every object in the source collection. An of that contains the source collection. An of that contains the values of every node in the source collection. Returns a collection of converted child values of every object in the source collection with the given key. The type to convert the values to. An of that contains the source collection. The token key. An that contains the converted values of every node in the source collection with the given key. Returns a collection of converted child values of every object in the source collection. The type to convert the values to. An of that contains the source collection. An that contains the converted values of every node in the source collection. Converts the value. The type to convert the value to. A cast as a of . A converted value. Converts the value. The source collection type. The type to convert the value to. A cast as a of . A converted value. Returns a collection of child tokens of every array in the source collection. The source collection type. An of that contains the source collection. An of that contains the values of every node in the source collection. Returns a collection of converted child tokens of every array in the source collection. An of that contains the source collection. The type to convert the values to. The source collection type. An that contains the converted values of every node in the source collection. Returns the input typed as . An of that contains the source collection. The input typed as . Returns the input typed as . The source collection type. An of that contains the source collection. The input typed as . Represents a JSON constructor. Represents a token that can contain other tokens. Raises the event. The instance containing the event data. Raises the event. The instance containing the event data. Returns a collection of the child tokens of this token, in document order. An of containing the child tokens of this , in document order. Returns a collection of the child values of this token, in document order. The type to convert the values to. A containing the child values of this , in document order. Returns a collection of the descendant tokens for this token in document order. An containing the descendant tokens of the . Adds the specified content as children of this . The content to be added. Adds the specified content as the first children of this . The content to be added. Creates an that can be used to add tokens to the . An that is ready to have content written to it. Replaces the children nodes of this token with the specified content. The content. Removes the child nodes from this token. Occurs when the list changes or an item in the list changes. Occurs before an item is added to the collection. Gets the container's children tokens. The container's children tokens. Gets a value indicating whether this token has childen tokens. true if this token has child values; otherwise, false. Get the first child token of this token. A containing the first child token of the . Get the last child token of this token. A containing the last child token of the . Gets the count of child JSON tokens. The count of child JSON tokens Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified name and content. The constructor name. The contents of the constructor. Initializes a new instance of the class with the specified name and content. The constructor name. The contents of the constructor. Initializes a new instance of the class with the specified name. The constructor name. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Gets the container's children tokens. The container's children tokens. Gets or sets the name of this constructor. The constructor name. Gets the node type for this . The type. Gets the with the specified key. The with the specified key. Represents a collection of objects. The type of token An empty collection of objects. Initializes a new instance of the struct. The enumerable. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the with the specified key. Represents a JSON object. Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified content. The contents of the object. Initializes a new instance of the class with the specified content. The contents of the object. Gets an of this object's properties. An of this object's properties. Gets a the specified name. The property name. A with the specified name or null. Gets an of this object's property values. An of this object's property values. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Creates a from an object. The object that will be used to create . A with the values of the specified object Creates a from an object. The object that will be used to create . The that will be used to read the object. A with the values of the specified object Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Adds the specified property name. Name of the property. The value. Removes the property with the specified name. Name of the property. true if item was successfully removed; otherwise, false. Tries the get value. Name of the property. The value. true if a value was successfully retrieved; otherwise, false. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Raises the event with the provided arguments. Name of the property. Raises the event with the provided arguments. Name of the property. Returns the properties for this instance of a component. A that represents the properties for this component instance. Returns the properties for this instance of a component using the attribute array as a filter. An array of type that is used as a filter. A that represents the filtered properties for this component instance. Returns a collection of custom attributes for this instance of a component. An containing the attributes for this object. Returns the class name of this instance of a component. The class name of the object, or null if the class does not have a name. Returns the name of this instance of a component. The name of the object, or null if the object does not have a name. Returns a type converter for this instance of a component. A that is the converter for this object, or null if there is no for this object. Returns the default event for this instance of a component. An that represents the default event for this object, or null if this object does not have events. Returns the default property for this instance of a component. A that represents the default property for this object, or null if this object does not have properties. Returns an editor of the specified type for this instance of a component. A that represents the editor for this object. An of the specified type that is the editor for this object, or null if the editor cannot be found. Returns the events for this instance of a component using the specified attribute array as a filter. An array of type that is used as a filter. An that represents the filtered events for this component instance. Returns the events for this instance of a component. An that represents the events for this component instance. Returns an object that contains the property described by the specified property descriptor. A that represents the property whose owner is to be found. An that represents the owner of the specified property. Gets the container's children tokens. The container's children tokens. Occurs when a property value changes. Occurs when a property value is changing. Gets the node type for this . The type. Gets the with the specified key. The with the specified key. Gets or sets the with the specified property name. Represents a JSON array. Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified content. The contents of the array. Initializes a new instance of the class with the specified content. The contents of the array. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Creates a from an object. The object that will be used to create . A with the values of the specified object Creates a from an object. The object that will be used to create . The that will be used to read the object. A with the values of the specified object Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Determines the index of a specific item in the . The object to locate in the . The index of if found in the list; otherwise, -1. Inserts an item to the at the specified index. The zero-based index at which should be inserted. The object to insert into the . is not a valid index in the . The is read-only. Removes the item at the specified index. The zero-based index of the item to remove. is not a valid index in the . The is read-only. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Gets the container's children tokens. The container's children tokens. Gets the node type for this . The type. Gets the with the specified key. The with the specified key. Gets or sets the at the specified index. Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. Initializes a new instance of the class. The token to read from. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Initializes a new instance of the class writing to the given . The container being written to. Initializes a new instance of the class. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Closes this stream and the underlying stream. Writes the beginning of a Json object. Writes the beginning of a Json array. Writes the start of a constructor with the given name. The name of the constructor. Writes the end. The token. Writes the property name of a name/value pair on a Json object. The name of the property. Writes a null value. Writes an undefined value. Writes raw JSON. The raw JSON to write. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Gets the token being writen. The token being writen. Represents a JSON property. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class. The property name. The property content. Initializes a new instance of the class. The property name. The property content. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Gets the container's children tokens. The container's children tokens. Gets the property name. The property name. Gets or sets the property value. The property value. Gets the node type for this . The type. Specifies the type of token. No token type has been set. A JSON object. A JSON array. A JSON constructor. A JSON object property. A comment. An integer value. A float value. A string value. A boolean value. A null value. An undefined value. A date value. A raw JSON value. A collection of bytes value. A Guid value. A Uri value. A TimeSpan value. Contains the JSON schema extension methods. Determines whether the is valid. The source to test. The schema to test with. true if the specified is valid; otherwise, false. Determines whether the is valid. The source to test. The schema to test with. When this method returns, contains any error messages generated while validating. true if the specified is valid; otherwise, false. Validates the specified . The source to test. The schema to test with. Validates the specified . The source to test. The schema to test with. The validation event handler. Returns detailed information about the schema exception. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). Gets the line number indicating where the error occurred. The line number indicating where the error occurred. Gets the line position indicating where the error occurred. The line position indicating where the error occurred. Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. Resolves from an id. Initializes a new instance of the class. Gets a for the specified id. The id. A for the specified id. Gets or sets the loaded schemas. The loaded schemas. Specifies undefined schema Id handling options for the . Do not infer a schema Id. Use the .NET type name as the schema Id. Use the assembly qualified .NET type name as the schema Id. Returns detailed information related to the . Gets the associated with the validation error. The JsonSchemaException associated with the validation error. Gets the path of the JSON location where the validation error occurred. The path of the JSON location where the validation error occurred. Gets the text description corresponding to the validation error. The text description. Represents the callback method that will handle JSON schema validation events and the . Resolves member mappings for a type, camel casing property names. Used by to resolves a for a given . Used by to resolves a for a given . Resolves the contract for a given type. The type to resolve a contract for. The contract for a given type. Initializes a new instance of the class. Initializes a new instance of the class. If set to true the will use a cached shared with other resolvers of the same type. Sharing the cache will significantly performance because expensive reflection will only happen once but could cause unexpected behavior if different instances of the resolver are suppose to produce different results. When set to false it is highly recommended to reuse instances with the . Resolves the contract for a given type. The type to resolve a contract for. The contract for a given type. Gets the serializable members for the type. The type to get serializable members for. The serializable members for the type. Creates a for the given type. Type of the object. A for the given type. Creates the constructor parameters. The constructor to create properties for. The type's member properties. Properties for the given . Creates a for the given . The matching member property. The constructor parameter. A created for the given . Resolves the default for the contract. Type of the object. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Determines which contract type is created for the given type. Type of the object. A for the given type. Creates properties for the given . The type to create properties for. /// The member serialization mode for the type. Properties for the given . Creates the used by the serializer to get and set values from a member. The member. The used by the serializer to get and set values from a member. Creates a for the given . The member's parent . The member to create a for. A created for the given . Resolves the name of the property. Name of the property. Name of the property. Gets the resolved name of the property. Name of the property. Name of the property. Gets a value indicating whether members are being get and set using dynamic code generation. This value is determined by the runtime permissions available. true if using dynamic code generation; otherwise, false. Gets or sets the default members search flags. The default members search flags. Gets or sets a value indicating whether compiler generated members should be serialized. true if serialized compiler generated members; otherwise, false. Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. true if the interface will be ignored when serializing and deserializing types; otherwise, false. Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. true if the attribute will be ignored when serializing and deserializing types; otherwise, false. Initializes a new instance of the class. Resolves the name of the property. Name of the property. The property name camel cased. The default serialization binder used when resolving and loading classes from type names. When overridden in a derived class, controls the binding of a serialized object to a type. Specifies the name of the serialized object. Specifies the name of the serialized object. The type of the object the formatter creates a new instance of. Provides information surrounding an error. Gets or sets the error. The error. Gets the original object that caused the error. The original object that caused the error. Gets the member that caused the error. The member that caused the error. Gets the path of the JSON location where the error occurred. The path of the JSON location where the error occurred. Gets or sets a value indicating whether this is handled. true if handled; otherwise, false. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets the of the collection items. The of the collection items. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets or sets the property name resolver. The property name resolver. Gets the of the dictionary keys. The of the dictionary keys. Gets the of the dictionary values. The of the dictionary values. Maps a JSON property to a .NET member or constructor parameter. Returns a that represents this instance. A that represents this instance. Gets or sets the name of the property. The name of the property. Gets or sets the type that declared this property. The type that declared this property. Gets or sets the order of serialization and deserialization of a member. The numeric order of serialization or deserialization. Gets or sets the name of the underlying member or parameter. The name of the underlying member or parameter. Gets the that will get and set the during serialization. The that will get and set the during serialization. Gets or sets the type of the property. The type of the property. Gets or sets the for the property. If set this converter takes presidence over the contract converter for the property type. The converter. Gets the member converter. The member converter. Gets a value indicating whether this is ignored. true if ignored; otherwise, false. Gets a value indicating whether this is readable. true if readable; otherwise, false. Gets a value indicating whether this is writable. true if writable; otherwise, false. Gets the default value. The default value. Gets a value indicating whether this is required. A value indicating whether this is required. Gets a value indicating whether this property preserves object references. true if this instance is reference; otherwise, false. Gets the property null value handling. The null value handling. Gets the property default value handling. The default value handling. Gets the property reference loop handling. The reference loop handling. Gets the property object creation handling. The object creation handling. Gets or sets the type name handling. The type name handling. Gets or sets a predicate used to determine whether the property should be serialize. A predicate used to determine whether the property should be serialize. Gets or sets a predicate used to determine whether the property should be serialized. A predicate used to determine whether the property should be serialized. Gets or sets an action used to set whether the property has been deserialized. An action used to set whether the property has been deserialized. Gets or sets the converter used when serializing the property's collection items. The collection's items converter. Gets or sets whether this property's collection items are serialized as a reference. Whether this property's collection items are serialized as a reference. Gets or sets the the type name handling used when serializing the property's collection items. The collection's items type name handling. Gets or sets the the reference loop handling used when serializing the property's collection items. The collection's items reference loop handling. A collection of objects. Initializes a new instance of the class. The type. When implemented in a derived class, extracts the key from the specified element. The element from which to extract the key. The key for the specified element. Adds a object. The property to add to the collection. Gets the closest matching object. First attempts to get an exact case match of propertyName and then a case insensitive match. Name of the property. A matching property if found. Gets a property by property name. The name of the property to get. Type property name string comparison. A matching property if found. Specifies missing member handling options for the . Ignore a missing member and do not attempt to deserialize it. Throw a when a missing member is encountered during deserialization. Specifies null value handling options for the . Include null values when serializing and deserializing objects. Ignore null values when serializing and deserializing objects. Specifies reference loop handling options for the . Throw a when a loop is encountered. Ignore loop references and do not serialize. Serialize loop references. An in-memory representation of a JSON Schema. Initializes a new instance of the class. Reads a from the specified . The containing the JSON Schema to read. The object representing the JSON Schema. Reads a from the specified . The containing the JSON Schema to read. The to use when resolving schema references. The object representing the JSON Schema. Load a from a string that contains schema JSON. A that contains JSON. A populated from the string that contains JSON. Parses the specified json. The json. The resolver. A populated from the string that contains JSON. Writes this schema to a . A into which this method will write. Writes this schema to a using the specified . A into which this method will write. The resolver used. Returns a that represents the current . A that represents the current . Gets or sets the id. Gets or sets the title. Gets or sets whether the object is required. Gets or sets whether the object is read only. Gets or sets whether the object is visible to users. Gets or sets whether the object is transient. Gets or sets the description of the object. Gets or sets the types of values allowed by the object. The type. Gets or sets the pattern. The pattern. Gets or sets the minimum length. The minimum length. Gets or sets the maximum length. The maximum length. Gets or sets a number that the value should be divisble by. A number that the value should be divisble by. Gets or sets the minimum. The minimum. Gets or sets the maximum. The maximum. Gets or sets a flag indicating whether the value can not equal the number defined by the "minimum" attribute. A flag indicating whether the value can not equal the number defined by the "minimum" attribute. Gets or sets a flag indicating whether the value can not equal the number defined by the "maximum" attribute. A flag indicating whether the value can not equal the number defined by the "maximum" attribute. Gets or sets the minimum number of items. The minimum number of items. Gets or sets the maximum number of items. The maximum number of items. Gets or sets the of items. The of items. Gets or sets the of properties. The of properties. Gets or sets the of additional properties. The of additional properties. Gets or sets the pattern properties. The pattern properties. Gets or sets a value indicating whether additional properties are allowed. true if additional properties are allowed; otherwise, false. Gets or sets the required property if this property is present. The required property if this property is present. Gets or sets the identity. The identity. Gets or sets the a collection of valid enum values allowed. A collection of valid enum values allowed. Gets or sets a collection of options. A collection of options. Gets or sets disallowed types. The disallow types. Gets or sets the default value. The default value. Gets or sets the extend . The extended . Gets or sets the format. The format. Generates a from a specified . Generate a from the specified type. The type to generate a from. A generated from the specified type. Generate a from the specified type. The type to generate a from. The used to resolve schema references. A generated from the specified type. Generate a from the specified type. The type to generate a from. Specify whether the generated root will be nullable. A generated from the specified type. Generate a from the specified type. The type to generate a from. The used to resolve schema references. Specify whether the generated root will be nullable. A generated from the specified type. Gets or sets how undefined schemas are handled by the serializer. Gets or sets the contract resolver. The contract resolver. The value types allowed by the . No type specified. String type. Float type. Integer type. Boolean type. Object type. Array type. Null type. Any type. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets or sets the object member serialization. The member object serialization. Gets or sets a value that indicates whether the object's properties are required. A value indicating whether the object's properties are required. Gets the object's properties. The object's properties. Gets the constructor parameters required for any non-default constructor Gets or sets the override constructor used to create the object. This is set when a constructor is marked up using the JsonConstructor attribute. The override constructor. Gets or sets the parametrized constructor used to create the object. The parametrized constructor. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Get and set values for a using reflection. Initializes a new instance of the class. The member info. Sets the value. The target to set the value on. The value to set on the target. Gets the value. The target to get the value from. The value. When applied to a method, specifies that the method is called when an error occurs serializing an object. Represents a method that constructs an object. Specifies type name handling options for the . Do not include the .NET type name when serializing types. Include the .NET type name when serializing into a JSON object structure. Include the .NET type name when serializing into a JSON array structure. Always include the .NET type name when serializing. Include the .NET type name when the type of the object being serialized is not the same as its declared type. Converts the value to the specified type. The value to convert. The culture to use when converting. The type to convert the value to. The converted type. Converts the value to the specified type. The value to convert. The culture to use when converting. The type to convert the value to. The converted value if the conversion was successful or the default value of T if it failed. true if initialValue was converted successfully; otherwise, false. Converts the value to the specified type. If the value is unable to be converted, the value is checked whether it assignable to the specified type. The value to convert. The culture to use when converting. The type to convert or cast the value to. The converted type. If conversion was unsuccessful, the initial value is returned if assignable to the target type. Gets a dictionary of the names and values of an Enum type. Gets a dictionary of the names and values of an Enum type. The enum type to get names and values for. Specifies the type of Json token. This is returned by the if a method has not been called. An object start token. An array start token. A constructor start token. An object property name. A comment. Raw JSON. An integer. A float. A string. A boolean. A null token. An undefined token. An object end token. An array end token. A constructor end token. A Date. Byte data. Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. Determines whether the collection is null or empty. The collection. true if the collection is null or empty; otherwise, false. Adds the elements of the specified collection to the specified generic IList. The list to add to. The collection of elements to add. Returns the index of the first occurrence in a sequence by using a specified IEqualityComparer. The type of the elements of source. A sequence in which to locate a value. The object to locate in the sequence An equality comparer to compare values. The zero-based index of the first occurrence of value within the entire sequence, if found; otherwise, –1. Gets the type of the typed collection's items. The type. The type of the typed collection's items. Gets the member's underlying type. The member. The underlying type of the member. Determines whether the member is an indexed property. The member. true if the member is an indexed property; otherwise, false. Determines whether the property is an indexed property. The property. true if the property is an indexed property; otherwise, false. Gets the member's value on the object. The member. The target object. The member's value on the object. Sets the member's value on the target object. The member. The target. The value. Determines whether the specified MemberInfo can be read. The MemberInfo to determine whether can be read. /// if set to true then allow the member to be gotten non-publicly. true if the specified MemberInfo can be read; otherwise, false. Determines whether the specified MemberInfo can be set. The MemberInfo to determine whether can be set. if set to true then allow the member to be set non-publicly. if set to true then allow the member to be set if read-only. true if the specified MemberInfo can be set; otherwise, false. Determines whether the string is all white space. Empty string will return false. The string to test whether it is all white space. true if the string is all white space; otherwise, false. Nulls an empty string. The string. Null if the string was null, otherwise the string unchanged. Specifies the state of the . An exception has been thrown, which has left the in an invalid state. You may call the method to put the in the Closed state. Any other method calls results in an being thrown. The method has been called. An object is being written. A array is being written. A constructor is being written. A property is being written. A write method has not been called. ================================================ FILE: packages/Newtonsoft.Json.4.5.6/lib/net40/Newtonsoft.Json.xml ================================================ Newtonsoft.Json Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. Initializes a new instance of the class with the specified . Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Skips the children of the current token. Sets the current token. The new token. Sets the current token and value. The new token. The value. Sets the state based on current token type. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Changes the to Closed. Gets the current reader state. The current reader state. Gets or sets a value indicating whether the underlying stream or should be closed when the reader is closed. true to close the underlying stream or when the reader is closed; otherwise false. The default is true. Gets the quotation mark character used to enclose the value of a string. Get or set how time zones are handling when reading JSON. Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . Gets the type of the current JSON token. Gets the text value of the current JSON token. Gets The Common Language Runtime (CLR) type for the current JSON token. Gets the depth of the current token in the JSON document. The depth of the current token in the JSON document. Gets the path of the current JSON token. Gets or sets the culture used when reading JSON. Defaults to . Specifies the state of the reader. The Read method has not been called. The end of the file has been reached successfully. Reader is at a property. Reader is at the start of an object. Reader is in an object. Reader is at the start of an array. Reader is in an array. The Close method has been called. Reader has just read a value. Reader is at the start of a constructor. Reader in a constructor. An error occurred that prevents the read operation from continuing. The end of the file has been reached successfully. Initializes a new instance of the class. The stream. Initializes a new instance of the class. The reader. Initializes a new instance of the class. The stream. if set to true the root object will be read as a JSON array. The used when reading values from BSON. Initializes a new instance of the class. The reader. if set to true the root object will be read as a JSON array. The used when reading values from BSON. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Changes the to Closed. Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary. true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. Gets or sets a value indicating whether the root object will be read as a JSON array. true if the root object will be read as a JSON array; otherwise, false. Gets or sets the used when reading values from BSON. The used when reading values from BSON. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Creates an instance of the JsonWriter class. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Closes this stream and the underlying stream. Writes the beginning of a Json object. Writes the end of a Json object. Writes the beginning of a Json array. Writes the end of an array. Writes the start of a constructor with the given name. The name of the constructor. Writes the end constructor. Writes the property name of a name/value pair on a Json object. The name of the property. Writes the end of the current Json object or array. Writes the current token. The to read the token from. Writes the specified end token. The end token to write. Writes indent characters. Writes the JSON value delimiter. Writes an indent space. Writes a null value. Writes an undefined value. Writes raw JSON without changing the writer's state. The raw JSON to write. Writes raw JSON where a value is expected and updates the writer's state. The raw JSON to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. An error will raised if the value cannot be written as a single JSON token. The value to write. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes out the given white space. The string of white space characters. Gets or sets a value indicating whether the underlying stream or should be closed when the writer is closed. true to close the underlying stream or when the writer is closed; otherwise false. The default is true. Gets the top. The top. Gets the state of the writer. Gets the path of the writer. Indicates how JSON text output is formatted. Get or set how dates are written to JSON text. Get or set how time zones are handling when writing JSON. Initializes a new instance of the class. The stream. Initializes a new instance of the class. The writer. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Writes the end. The token. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes the start of a constructor with the given name. The name of the constructor. Writes raw JSON. The raw JSON to write. Writes raw JSON where a value is expected and updates the writer's state. The raw JSON to write. Writes the beginning of a Json array. Writes the beginning of a Json object. Writes the property name of a name/value pair on a Json object. The name of the property. Closes this stream and the underlying stream. Writes a null value. Writes an undefined value. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value that represents a BSON object id. Writes a BSON regex. The regex pattern. The regex options. Gets or sets the used when writing values to BSON. When set to no conversion will occur. The used when writing values to BSON. Represents a BSON Oid (object id). Initializes a new instance of the class. The Oid value. Gets or sets the value of the Oid. The value of the Oid. Converts a binary value to and from a base 64 string value. Converts an object to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets the of the JSON produced by the JsonConverter. The of the JSON produced by the JsonConverter. Gets a value indicating whether this can read JSON. true if this can read JSON; otherwise, false. Gets a value indicating whether this can write JSON. true if this can write JSON; otherwise, false. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts a to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified value type. Type of the value. true if this instance can convert the specified value type; otherwise, false. Converts a to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified value type. Type of the value. true if this instance can convert the specified value type; otherwise, false. Create a custom object Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Creates an object which will then be populated by the serializer. Type of the object. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets a value indicating whether this can write JSON. true if this can write JSON; otherwise, false. Provides a base class for converting a to and from JSON. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts an Entity Framework EntityKey to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts an ExpandoObject to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets a value indicating whether this can write JSON. true if this can write JSON; otherwise, false. Converts a to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts a to and from JSON and BSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts a to and from JSON and BSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts an to and from its name string value. Converts an to and from its name string value. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. A cached representation of the Enum string representation to respect per Enum field name. The type of the Enum. A map of enum field name to either the field name, or the configured enum member name (). Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets or sets a value indicating whether the written enum text should be camel case. true if the written enum text will be camel case; otherwise, false. Specifies how constructors are used when initializing objects during deserialization by the . First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor. Json.NET will use a non-public default constructor before falling back to a paramatized constructor. Converts a to and from a string (e.g. "1.2.3.4"). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing property value of the JSON that is being converted. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Instructs the how to serialize the collection. Instructs the how to serialize the object. Initializes a new instance of the class. Initializes a new instance of the class with the specified container Id. The container Id. Gets or sets the id. The id. Gets or sets the title. The title. Gets or sets the description. The description. Gets the collection's items converter. The collection's items converter. Gets or sets a value that indicates whether to preserve object references. true to keep object reference; otherwise, false. The default is false. Gets or sets a value that indicates whether to preserve collection's items references. true to keep collection's items object references; otherwise, false. The default is false. Gets or sets the reference loop handling used when serializing the collection's items. The reference loop handling. Gets or sets the type name handling used when serializing the collection's items. The type name handling. Initializes a new instance of the class. Initializes a new instance of the class with the specified container Id. The container Id. The exception thrown when an error occurs during Json serialization or deserialization. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). Specifies how dates are formatted when writing JSON text. Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. Date formatted strings are not parsed to a date type and are read as strings. Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . Specifies how to treat the time value when converting between string and . Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. Treat as a UTC. If the object represents a local time, it is converted to a UTC. Treat as a local time if a is being converted to a string. If a string is being converted to , convert to a local time if a time zone is specified. Time zone information should be preserved when converting. Specifies formatting options for the . No special formatting is applied. This is the default. Causes child objects to be indented according to the and settings. Instructs the to use the specified constructor when deserializing that object. Contract details for a used by the . Contract details for a used by the . Gets the underlying type for the contract. The underlying type for the contract. Gets or sets the type created during deserialization. The type created during deserialization. Gets or sets whether this type contract is serialized as a reference. Whether this type contract is serialized as a reference. Gets or sets the default for this contract. The converter. Gets or sets the method called immediately after deserialization of the object. The method called immediately after deserialization of the object. Gets or sets the method called during deserialization of the object. The method called during deserialization of the object. Gets or sets the method called after serialization of the object graph. The method called after serialization of the object graph. Gets or sets the method called before serialization of the object. The method called before serialization of the object. Gets or sets the default creator method used to create the object. The default creator method used to create the object. Gets or sets a value indicating whether the default creator is non public. true if the default object creator is non-public; otherwise, false. Gets or sets the method called when an error is thrown during the serialization of the object. The method called when an error is thrown during the serialization of the object. Initializes a new instance of the class. The underlying type for the contract. Gets or sets the default collection items . The converter. Gets or sets a value indicating whether the collection items preserve object references. true if collection items preserve object references; otherwise, false. Gets or sets the collection item reference loop handling. The reference loop handling. Gets or sets the collection item type name handling. The type name handling. Represents a raw JSON string. Represents a value in JSON (string, integer, date, etc). Represents an abstract JSON token. Represents a collection of objects. The type of token Gets the with the specified key. Provides an interface to enable a class to return line and position information. Gets a value indicating whether the class can return line information. true if LineNumber and LinePosition can be provided; otherwise, false. Gets the current line number. The current line number or 0 if no line information is available (for example, HasLineInfo returns false). Gets the current line position. The current line position or 0 if no line information is available (for example, HasLineInfo returns false). Compares the values of two tokens, including the values of all descendant tokens. The first to compare. The second to compare. true if the tokens are equal; otherwise false. Adds the specified content immediately after this token. A content object that contains simple content or a collection of content objects to be added after this token. Adds the specified content immediately before this token. A content object that contains simple content or a collection of content objects to be added before this token. Returns a collection of the ancestor tokens of this token. A collection of the ancestor tokens of this token. Returns a collection of the sibling tokens after this token, in document order. A collection of the sibling tokens after this tokens, in document order. Returns a collection of the sibling tokens before this token, in document order. A collection of the sibling tokens before this token, in document order. Gets the with the specified key converted to the specified type. The type to convert the token to. The token key. The converted token value. Returns a collection of the child tokens of this token, in document order. An of containing the child tokens of this , in document order. Returns a collection of the child tokens of this token, in document order, filtered by the specified type. The type to filter the child tokens on. A containing the child tokens of this , in document order. Returns a collection of the child values of this token, in document order. The type to convert the values to. A containing the child values of this , in document order. Removes this token from its parent. Replaces this token with the specified token. The value. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Returns the indented JSON for this token. The indented JSON for this token. Returns the JSON for this token using the given formatting and converters. Indicates how the output is formatted. A collection of which will be used when writing the token. The JSON for this token using the given formatting and converters. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Creates an for this token. An that can be used to read this token and its descendants. Creates a from an object. The object that will be used to create . A with the value of the specified object Creates a from an object using the specified . The object that will be used to create . The that will be used when reading the object. A with the value of the specified object Creates the specified .NET type from the . The new object created from the JSON value. Creates the specified .NET type from the using the specified . The that will be used when creating the object. The new object created from the JSON value. Creates a from a . An positioned at the token to read into this . An that contains the token and its descendant tokens that were read from the reader. The runtime type of the token is determined by the token type of the first token encountered in the reader. Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Creates a from a . An positioned at the token to read into this . An that contains the token and its descendant tokens that were read from the reader. The runtime type of the token is determined by the token type of the first token encountered in the reader. Selects the token that matches the object path. The object path from the current to the to be returned. This must be a string of property names or array indexes separated by periods, such as Tables[0].DefaultView[0].Price in C# or Tables(0).DefaultView(0).Price in Visual Basic. The that matches the object path or a null reference if no matching token is found. Selects the token that matches the object path. The object path from the current to the to be returned. This must be a string of property names or array indexes separated by periods, such as Tables[0].DefaultView[0].Price in C# or Tables(0).DefaultView(0).Price in Visual Basic. A flag to indicate whether an error should be thrown if no token is found. The that matches the object path. Returns the responsible for binding operations performed on this object. The expression tree representation of the runtime value. The to bind this object. Returns the responsible for binding operations performed on this object. The expression tree representation of the runtime value. The to bind this object. Creates a new instance of the . All child tokens are recursively cloned. A new instance of the . Gets a comparer that can compare two tokens for value equality. A that can compare two nodes for value equality. Gets or sets the parent. The parent. Gets the root of this . The root of this . Gets the node type for this . The type. Gets a value indicating whether this token has childen tokens. true if this token has child values; otherwise, false. Gets the next sibling token of this node. The that contains the next sibling token. Gets the previous sibling token of this node. The that contains the previous sibling token. Gets the with the specified key. The with the specified key. Get the first child token of this token. A containing the first child token of the . Get the last child token of this token. A containing the last child token of the . Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Creates a comment with the given value. The value. A comment with the given value. Creates a string with the given value. The value. A string with the given value. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Indicates whether the current object is equal to another object of the same type. true if the current object is equal to the parameter; otherwise, false. An object to compare with this object. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Returns the responsible for binding operations performed on this object. The expression tree representation of the runtime value. The to bind this object. Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. An object to compare with this instance. A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance is less than . Zero This instance is equal to . Greater than zero This instance is greater than . is not the same type as this instance. Gets a value indicating whether this token has childen tokens. true if this token has child values; otherwise, false. Gets the node type for this . The type. Gets or sets the underlying token value. The underlying token value. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class. The raw json. Creates an instance of with the content of the reader's current token. The reader. An instance of with the content of the reader's current token. Indicating whether a property is required. The property is not required. The default state. The property must be defined in JSON but can be a null value. The property must be defined in JSON and cannot be a null value. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets the object's properties. The object's properties. Gets or sets the property name resolver. The property name resolver. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets or sets the ISerializable object constructor. The ISerializable object constructor. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Get and set values for a using dynamic methods. Provides methods to get and set values. Sets the value. The target to set the value on. The value to set on the target. Gets the value. The target to get the value from. The value. Initializes a new instance of the class. The member info. Sets the value. The target to set the value on. The value to set on the target. Gets the value. The target to get the value from. The value. Provides data for the Error event. Initializes a new instance of the class. The current object. The error context. Gets the current object the error event is being raised against. The current object the error event is being raised against. Gets the error context. The error context. Represents a view of a . Initializes a new instance of the class. The name. Type of the property. When overridden in a derived class, returns whether resetting an object changes its value. true if resetting the component changes its value; otherwise, false. The component to test for reset capability. When overridden in a derived class, gets the current value of the property on a component. The value of a property for a given component. The component with the property for which to retrieve the value. When overridden in a derived class, resets the value for this property of the component to the default value. The component with the property value that is to be reset to the default value. When overridden in a derived class, sets the value of the component to a different value. The component with the property value that is to be set. The new value. When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. true if the property should be persisted; otherwise, false. The component with the property to be examined for persistence. When overridden in a derived class, gets the type of the component this property is bound to. A that represents the type of component this property is bound to. When the or methods are invoked, the object specified might be an instance of this type. When overridden in a derived class, gets a value indicating whether this property is read-only. true if the property is read-only; otherwise, false. When overridden in a derived class, gets the type of the property. A that represents the type of the property. Gets the hash code for the name of the member. The hash code for the name of the member. Used to resolve references when serializing and deserializing JSON by the . Resolves a reference to its object. The serialization context. The reference to resolve. The object that Gets the reference for the sepecified object. The serialization context. The object to get a reference for. The reference to the object. Determines whether the specified object is referenced. The serialization context. The object to test for a reference. true if the specified object is referenced; otherwise, false. Adds a reference to the specified object. The serialization context. The reference. The object to reference. Specifies reference handling options for the . Do not preserve references when serializing types. Preserve references when serializing into a JSON object structure. Preserve references when serializing into a JSON array structure. Preserve references when serializing. Instructs the how to serialize the collection. Initializes a new instance of the class. Initializes a new instance of the class with a flag indicating whether the array can contain null items A flag indicating whether the array can contain null items. Initializes a new instance of the class with the specified container Id. The container Id. Gets or sets a value indicating whether null items are allowed in the collection. true if null items are allowed in the collection; otherwise, false. Specifies default value handling options for the . Include members where the member value is the same as the member's default value when serializing objects. Included members are written to JSON. Has no effect when deserializing. Ignore members where the member value is the same as the member's default value when serializing objects so that is is not written to JSON, and ignores setting members when the JSON value equals the member's default value. Members with a default value but no JSON will be set to their default value when deserializing. Ignore members where the member value is the same as the member's default value when serializing objects and sets members to their default value when deserializing. Instructs the to use the specified when serializing the member or class. Initializes a new instance of the class. Type of the converter. Gets the type of the converter. The type of the converter. Instructs the how to serialize the object. Initializes a new instance of the class. Initializes a new instance of the class with the specified member serialization. The member serialization. Initializes a new instance of the class with the specified container Id. The container Id. Gets or sets the member serialization. The member serialization. Gets or sets a value that indicates whether the object's properties are required. A value indicating whether the object's properties are required. Specifies the settings on a object. Initializes a new instance of the class. Gets or sets how reference loops (e.g. a class referencing itself) is handled. Reference loop handling. Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. Missing member handling. Gets or sets how objects are created during deserialization. The object creation handling. Gets or sets how null values are handled during serialization and deserialization. Null value handling. Gets or sets how null default are handled during serialization and deserialization. The default value handling. Gets or sets a collection that will be used during serialization. The converters. Gets or sets how object references are preserved by the serializer. The preserve references handling. Gets or sets how type name writing and reading is handled by the serializer. The type name handling. Gets or sets how a type name assembly is written and resolved by the serializer. The type name assembly format. Gets or sets how constructors are used during deserialization. The constructor handling. Gets or sets the contract resolver used by the serializer when serializing .NET objects to JSON and vice versa. The contract resolver. Gets or sets the used by the serializer when resolving references. The reference resolver. Gets or sets the used by the serializer when resolving type names. The binder. Gets or sets the error handler called during serialization and deserialization. The error handler called during serialization and deserialization. Gets or sets the used by the serializer when invoking serialization callback methods. The context. Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . Indicates how JSON text output is formatted. Get or set how dates are written to JSON text. Get or set how time zones are handling during serialization and deserialization. Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. Gets or sets the culture used when reading JSON. Defaults to . Gets a value indicating whether there will be a check for additional content after deserializing an object. true if there will be a check for additional content after deserializing an object; otherwise, false. Represents a reader that provides validation. Initializes a new instance of the class that validates the content returned from the given . The to read from while validating. Reads the next JSON token from the stream as a . A . Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. Reads the next JSON token from the stream as a . A . Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Sets an event handler for receiving schema validation errors. Gets the text value of the current Json token. Gets the depth of the current token in the JSON document. The depth of the current token in the JSON document. Gets the path of the current JSON token. Gets the quotation mark character used to enclose the value of a string. Gets the type of the current Json token. Gets the Common Language Runtime (CLR) type for the current Json token. Gets or sets the schema. The schema. Gets the used to construct this . The specified in the constructor. Compares tokens to determine whether they are equal. Determines whether the specified objects are equal. The first object of type to compare. The second object of type to compare. true if the specified objects are equal; otherwise, false. Returns a hash code for the specified object. The for which a hash code is to be returned. A hash code for the specified object. The type of is a reference type and is null. Specifies the member serialization options for the . All public members are serialized by default. Members can be excluded using or . This is the default member serialization mode. Only members must be marked with or are serialized. This member serialization mode can also be set by marking the class with . All public and private fields are serialized. Members can be excluded using or . This member serialization mode can also be set by marking the class with and setting IgnoreSerializableAttribute on to false. Specifies how object creation is handled by the . Reuse existing objects, create new objects when needed. Only reuse existing objects. Always create new objects. Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Gets or sets the date time styles used when converting a date to and from JSON. The date time styles used when converting a date to and from JSON. Gets or sets the date time format used when converting a date to and from JSON. The date time format used when converting a date to and from JSON. Gets or sets the culture used when converting a date to and from JSON. The culture used when converting a date to and from JSON. Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing property value of the JSON that is being converted. The calling serializer. The object value. Converts XML to and from JSON. Writes the JSON representation of the object. The to write to. The calling serializer. The value. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Checks if the attributeName is a namespace attribute. Attribute name to test. The attribute name prefix if it has one, otherwise an empty string. True if attribute name is for a namespace attribute, otherwise false. Determines whether this instance can convert the specified value type. Type of the value. true if this instance can convert the specified value type; otherwise, false. Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements. The name of the deserialize root element. Gets or sets a flag to indicate whether to write the Json.NET array attribute. This attribute helps preserve arrays when converting the written XML back to JSON. true if the array attibute is written to the XML; otherwise, false. Gets or sets a value indicating whether to write the root JSON object. true if the JSON root object is omitted; otherwise, false. Represents a reader that provides fast, non-cached, forward-only access to JSON text data. Initializes a new instance of the class with the specified . The TextReader containing the XML data to read. Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Changes the state to closed. Gets a value indicating whether the class can return line information. true if LineNumber and LinePosition can be provided; otherwise, false. Gets the current line number. The current line number or 0 if no line information is available (for example, HasLineInfo returns false). Gets the current line position. The current line position or 0 if no line information is available (for example, HasLineInfo returns false). Instructs the to always serialize the member with the specified name. Initializes a new instance of the class. Initializes a new instance of the class with the specified name. Name of the property. Gets or sets the converter used when serializing the property's collection items. The collection's items converter. Gets or sets the null value handling used when serializing this property. The null value handling. Gets or sets the default value handling used when serializing this property. The default value handling. Gets or sets the reference loop handling used when serializing this property. The reference loop handling. Gets or sets the object creation handling used when deserializing this property. The object creation handling. Gets or sets the type name handling used when serializing this property. The type name handling. Gets or sets whether this property's value is serialized as a reference. Whether this property's value is serialized as a reference. Gets or sets the order of serialization and deserialization of a member. The numeric order of serialization or deserialization. Gets or sets a value indicating whether this property is required. A value indicating whether this property is required. Gets or sets the name of the property. The name of the property. Gets or sets the the reference loop handling used when serializing the property's collection items. The collection's items reference loop handling. Gets or sets the the type name handling used when serializing the property's collection items. The collection's items type name handling. Gets or sets whether this property's collection items are serialized as a reference. Whether this property's collection items are serialized as a reference. Instructs the not to serialize the public field or public read/write property value. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Creates an instance of the JsonWriter class using the specified . The TextWriter to write to. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Closes this stream and the underlying stream. Writes the beginning of a Json object. Writes the beginning of a Json array. Writes the start of a constructor with the given name. The name of the constructor. Writes the specified end token. The end token to write. Writes the property name of a name/value pair on a Json object. The name of the property. Writes indent characters. Writes the JSON value delimiter. Writes an indent space. Writes a null value. Writes an undefined value. Writes raw JSON. The raw JSON to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes out the given white space. The string of white space characters. Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. Gets or sets which character to use to quote attribute values. Gets or sets which character to use for indenting when is set to Formatting.Indented. Gets or sets a value indicating whether object names will be surrounded with quotes. The exception thrown when an error occurs while reading Json text. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. The exception thrown when an error occurs while reading Json text. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). Gets the line number indicating where the error occurred. The line number indicating where the error occurred. Gets the line position indicating where the error occurred. The line position indicating where the error occurred. Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. Represents a collection of . Provides methods for converting between common language runtime types and JSON types. Represents JavaScript's boolean value true as a string. This field is read-only. Represents JavaScript's boolean value false as a string. This field is read-only. Represents JavaScript's null as a string. This field is read-only. Represents JavaScript's undefined as a string. This field is read-only. Represents JavaScript's positive infinity as a string. This field is read-only. Represents JavaScript's negative infinity as a string. This field is read-only. Represents JavaScript's NaN as a string. This field is read-only. Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation using the specified. The value to convert. The format the date will be converted to. The time zone handling when the date is converted to a string. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation using the specified. The value to convert. The format the date will be converted to. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. The string delimiter character. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Serializes the specified object to a JSON string. The object to serialize. A JSON string representation of the object. Serializes the specified object to a JSON string. The object to serialize. Indicates how the output is formatted. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. A collection converters used while serializing. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. Indicates how the output is formatted. A collection converters used while serializing. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. The used to serialize the object. If this is null, default serialization settings will be is used. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. Indicates how the output is formatted. The used to serialize the object. If this is null, default serialization settings will be is used. A JSON string representation of the object. Asynchronously serializes the specified object to a JSON string using a collection of . The object to serialize. A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. Asynchronously serializes the specified object to a JSON string using a collection of . The object to serialize. Indicates how the output is formatted. A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. Asynchronously serializes the specified object to a JSON string using a collection of . The object to serialize. Indicates how the output is formatted. The used to serialize the object. If this is null, default serialization settings will be is used. A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. Deserializes the JSON to a .NET object. The JSON to deserialize. The deserialized object from the Json string. Deserializes the JSON to a .NET object. The JSON to deserialize. The used to deserialize the object. If this is null, default serialization settings will be is used. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The JSON to deserialize. The of object being deserialized. The deserialized object from the Json string. Deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The JSON to deserialize. The deserialized object from the Json string. Deserializes the JSON to the given anonymous type. The anonymous type to deserialize to. This can't be specified traditionally and must be infered from the anonymous type passed as a parameter. The JSON to deserialize. The anonymous type object. The deserialized anonymous type from the JSON string. Deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The JSON to deserialize. Converters to use while deserializing. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The object to deserialize. The used to deserialize the object. If this is null, default serialization settings will be is used. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The JSON to deserialize. The type of the object to deserialize. Converters to use while deserializing. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The JSON to deserialize. The type of the object to deserialize to. The used to deserialize the object. If this is null, default serialization settings will be is used. The deserialized object from the JSON string. Asynchronously deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The JSON to deserialize. A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. Asynchronously deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The JSON to deserialize. The used to deserialize the object. If this is null, default serialization settings will be is used. A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. Asynchronously deserializes the JSON to the specified .NET type. The JSON to deserialize. A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. Asynchronously deserializes the JSON to the specified .NET type. The JSON to deserialize. The type of the object to deserialize to. The used to deserialize the object. If this is null, default serialization settings will be is used. A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. Populates the object with values from the JSON string. The JSON to populate values from. The target object to populate values onto. Populates the object with values from the JSON string. The JSON to populate values from. The target object to populate values onto. The used to deserialize the object. If this is null, default serialization settings will be is used. Asynchronously populates the object with values from the JSON string. The JSON to populate values from. The target object to populate values onto. The used to deserialize the object. If this is null, default serialization settings will be is used. A task that represents the asynchronous populate operation. Serializes the XML node to a JSON string. The node to serialize. A JSON string of the XmlNode. Serializes the XML node to a JSON string. The node to serialize. Indicates how the output is formatted. A JSON string of the XmlNode. Serializes the XML node to a JSON string. The node to serialize. Indicates how the output is formatted. Omits writing the root object. A JSON string of the XmlNode. Deserializes the XmlNode from a JSON string. The JSON string. The deserialized XmlNode Deserializes the XmlNode from a JSON string nested in a root elment. The JSON string. The name of the root element to append when deserializing. The deserialized XmlNode Deserializes the XmlNode from a JSON string nested in a root elment. The JSON string. The name of the root element to append when deserializing. A flag to indicate whether to write the Json.NET array attribute. This attribute helps preserve arrays when converting the written XML back to JSON. The deserialized XmlNode Serializes the to a JSON string. The node to convert to JSON. A JSON string of the XNode. Serializes the to a JSON string. The node to convert to JSON. Indicates how the output is formatted. A JSON string of the XNode. Serializes the to a JSON string. The node to serialize. Indicates how the output is formatted. Omits writing the root object. A JSON string of the XNode. Deserializes the from a JSON string. The JSON string. The deserialized XNode Deserializes the from a JSON string nested in a root elment. The JSON string. The name of the root element to append when deserializing. The deserialized XNode Deserializes the from a JSON string nested in a root elment. The JSON string. The name of the root element to append when deserializing. A flag to indicate whether to write the Json.NET array attribute. This attribute helps preserve arrays when converting the written XML back to JSON. The deserialized XNode The exception thrown when an error occurs during Json serialization or deserialization. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). Serializes and deserializes objects into and from the JSON format. The enables you to control how objects are encoded into JSON. Initializes a new instance of the class. Creates a new instance using the specified . The settings to be applied to the . A new instance using the specified . Populates the JSON values onto the target object. The that contains the JSON structure to reader values from. The target object to populate values onto. Populates the JSON values onto the target object. The that contains the JSON structure to reader values from. The target object to populate values onto. Deserializes the Json structure contained by the specified . The that contains the JSON structure to deserialize. The being deserialized. Deserializes the Json structure contained by the specified into an instance of the specified type. The containing the object. The of object being deserialized. The instance of being deserialized. Deserializes the Json structure contained by the specified into an instance of the specified type. The containing the object. The type of the object to deserialize. The instance of being deserialized. Deserializes the Json structure contained by the specified into an instance of the specified type. The containing the object. The of object being deserialized. The instance of being deserialized. Serializes the specified and writes the Json structure to a Stream using the specified . The used to write the Json structure. The to serialize. Serializes the specified and writes the Json structure to a Stream using the specified . The used to write the Json structure. The to serialize. Occurs when the errors during serialization and deserialization. Gets or sets the used by the serializer when resolving references. Gets or sets the used by the serializer when resolving type names. Gets or sets how type name writing and reading is handled by the serializer. Gets or sets how a type name assembly is written and resolved by the serializer. The type name assembly format. Gets or sets how object references are preserved by the serializer. Get or set how reference loops (e.g. a class referencing itself) is handled. Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. Get or set how null values are handled during serialization and deserialization. Get or set how null default are handled during serialization and deserialization. Gets or sets how objects are created during deserialization. The object creation handling. Gets or sets how constructors are used during deserialization. The constructor handling. Gets a collection that will be used during serialization. Collection that will be used during serialization. Gets or sets the contract resolver used by the serializer when serializing .NET objects to JSON and vice versa. Gets or sets the used by the serializer when invoking serialization callback methods. The context. Indicates how JSON text output is formatted. Get or set how dates are written to JSON text. Get or set how time zones are handling during serialization and deserialization. Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. Gets or sets the culture used when reading JSON. Defaults to . Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. true if there will be a check for additional JSON content after deserializing an object; otherwise, false. Contains the LINQ to JSON extension methods. Returns a collection of tokens that contains the ancestors of every token in the source collection. The type of the objects in source, constrained to . An of that contains the source collection. An of that contains the ancestors of every node in the source collection. Returns a collection of tokens that contains the descendants of every token in the source collection. The type of the objects in source, constrained to . An of that contains the source collection. An of that contains the descendants of every node in the source collection. Returns a collection of child properties of every object in the source collection. An of that contains the source collection. An of that contains the properties of every object in the source collection. Returns a collection of child values of every object in the source collection with the given key. An of that contains the source collection. The token key. An of that contains the values of every node in the source collection with the given key. Returns a collection of child values of every object in the source collection. An of that contains the source collection. An of that contains the values of every node in the source collection. Returns a collection of converted child values of every object in the source collection with the given key. The type to convert the values to. An of that contains the source collection. The token key. An that contains the converted values of every node in the source collection with the given key. Returns a collection of converted child values of every object in the source collection. The type to convert the values to. An of that contains the source collection. An that contains the converted values of every node in the source collection. Converts the value. The type to convert the value to. A cast as a of . A converted value. Converts the value. The source collection type. The type to convert the value to. A cast as a of . A converted value. Returns a collection of child tokens of every array in the source collection. The source collection type. An of that contains the source collection. An of that contains the values of every node in the source collection. Returns a collection of converted child tokens of every array in the source collection. An of that contains the source collection. The type to convert the values to. The source collection type. An that contains the converted values of every node in the source collection. Returns the input typed as . An of that contains the source collection. The input typed as . Returns the input typed as . The source collection type. An of that contains the source collection. The input typed as . Represents a JSON constructor. Represents a token that can contain other tokens. Raises the event. The instance containing the event data. Raises the event. The instance containing the event data. Raises the event. The instance containing the event data. Returns a collection of the child tokens of this token, in document order. An of containing the child tokens of this , in document order. Returns a collection of the child values of this token, in document order. The type to convert the values to. A containing the child values of this , in document order. Returns a collection of the descendant tokens for this token in document order. An containing the descendant tokens of the . Adds the specified content as children of this . The content to be added. Adds the specified content as the first children of this . The content to be added. Creates an that can be used to add tokens to the . An that is ready to have content written to it. Replaces the children nodes of this token with the specified content. The content. Removes the child nodes from this token. Occurs when the list changes or an item in the list changes. Occurs before an item is added to the collection. Occurs when the items list of the collection has changed, or the collection is reset. Gets the container's children tokens. The container's children tokens. Gets a value indicating whether this token has childen tokens. true if this token has child values; otherwise, false. Get the first child token of this token. A containing the first child token of the . Get the last child token of this token. A containing the last child token of the . Gets the count of child JSON tokens. The count of child JSON tokens Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified name and content. The constructor name. The contents of the constructor. Initializes a new instance of the class with the specified name and content. The constructor name. The contents of the constructor. Initializes a new instance of the class with the specified name. The constructor name. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Gets the container's children tokens. The container's children tokens. Gets or sets the name of this constructor. The constructor name. Gets the node type for this . The type. Gets the with the specified key. The with the specified key. Represents a collection of objects. The type of token An empty collection of objects. Initializes a new instance of the struct. The enumerable. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the with the specified key. Represents a JSON object. Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified content. The contents of the object. Initializes a new instance of the class with the specified content. The contents of the object. Gets an of this object's properties. An of this object's properties. Gets a the specified name. The property name. A with the specified name or null. Gets an of this object's property values. An of this object's property values. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Creates a from an object. The object that will be used to create . A with the values of the specified object Creates a from an object. The object that will be used to create . The that will be used to read the object. A with the values of the specified object Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Adds the specified property name. Name of the property. The value. Removes the property with the specified name. Name of the property. true if item was successfully removed; otherwise, false. Tries the get value. Name of the property. The value. true if a value was successfully retrieved; otherwise, false. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Raises the event with the provided arguments. Name of the property. Raises the event with the provided arguments. Name of the property. Returns the properties for this instance of a component. A that represents the properties for this component instance. Returns the properties for this instance of a component using the attribute array as a filter. An array of type that is used as a filter. A that represents the filtered properties for this component instance. Returns a collection of custom attributes for this instance of a component. An containing the attributes for this object. Returns the class name of this instance of a component. The class name of the object, or null if the class does not have a name. Returns the name of this instance of a component. The name of the object, or null if the object does not have a name. Returns a type converter for this instance of a component. A that is the converter for this object, or null if there is no for this object. Returns the default event for this instance of a component. An that represents the default event for this object, or null if this object does not have events. Returns the default property for this instance of a component. A that represents the default property for this object, or null if this object does not have properties. Returns an editor of the specified type for this instance of a component. A that represents the editor for this object. An of the specified type that is the editor for this object, or null if the editor cannot be found. Returns the events for this instance of a component using the specified attribute array as a filter. An array of type that is used as a filter. An that represents the filtered events for this component instance. Returns the events for this instance of a component. An that represents the events for this component instance. Returns an object that contains the property described by the specified property descriptor. A that represents the property whose owner is to be found. An that represents the owner of the specified property. Returns the responsible for binding operations performed on this object. The expression tree representation of the runtime value. The to bind this object. Gets the container's children tokens. The container's children tokens. Occurs when a property value changes. Occurs when a property value is changing. Gets the node type for this . The type. Gets the with the specified key. The with the specified key. Gets or sets the with the specified property name. Represents a JSON array. Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified content. The contents of the array. Initializes a new instance of the class with the specified content. The contents of the array. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Creates a from an object. The object that will be used to create . A with the values of the specified object Creates a from an object. The object that will be used to create . The that will be used to read the object. A with the values of the specified object Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Determines the index of a specific item in the . The object to locate in the . The index of if found in the list; otherwise, -1. Inserts an item to the at the specified index. The zero-based index at which should be inserted. The object to insert into the . is not a valid index in the . The is read-only. Removes the item at the specified index. The zero-based index of the item to remove. is not a valid index in the . The is read-only. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Gets the container's children tokens. The container's children tokens. Gets the node type for this . The type. Gets the with the specified key. The with the specified key. Gets or sets the at the specified index. Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. Initializes a new instance of the class. The token to read from. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Initializes a new instance of the class writing to the given . The container being written to. Initializes a new instance of the class. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Closes this stream and the underlying stream. Writes the beginning of a Json object. Writes the beginning of a Json array. Writes the start of a constructor with the given name. The name of the constructor. Writes the end. The token. Writes the property name of a name/value pair on a Json object. The name of the property. Writes a null value. Writes an undefined value. Writes raw JSON. The raw JSON to write. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Gets the token being writen. The token being writen. Represents a JSON property. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class. The property name. The property content. Initializes a new instance of the class. The property name. The property content. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Gets the container's children tokens. The container's children tokens. Gets the property name. The property name. Gets or sets the property value. The property value. Gets the node type for this . The type. Specifies the type of token. No token type has been set. A JSON object. A JSON array. A JSON constructor. A JSON object property. A comment. An integer value. A float value. A string value. A boolean value. A null value. An undefined value. A date value. A raw JSON value. A collection of bytes value. A Guid value. A Uri value. A TimeSpan value. Contains the JSON schema extension methods. Determines whether the is valid. The source to test. The schema to test with. true if the specified is valid; otherwise, false. Determines whether the is valid. The source to test. The schema to test with. When this method returns, contains any error messages generated while validating. true if the specified is valid; otherwise, false. Validates the specified . The source to test. The schema to test with. Validates the specified . The source to test. The schema to test with. The validation event handler. Returns detailed information about the schema exception. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The parameter is null. The class name is null or is zero (0). Gets the line number indicating where the error occurred. The line number indicating where the error occurred. Gets the line position indicating where the error occurred. The line position indicating where the error occurred. Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. Resolves from an id. Initializes a new instance of the class. Gets a for the specified id. The id. A for the specified id. Gets or sets the loaded schemas. The loaded schemas. Specifies undefined schema Id handling options for the . Do not infer a schema Id. Use the .NET type name as the schema Id. Use the assembly qualified .NET type name as the schema Id. Returns detailed information related to the . Gets the associated with the validation error. The JsonSchemaException associated with the validation error. Gets the path of the JSON location where the validation error occurred. The path of the JSON location where the validation error occurred. Gets the text description corresponding to the validation error. The text description. Represents the callback method that will handle JSON schema validation events and the . Resolves member mappings for a type, camel casing property names. Used by to resolves a for a given . Used by to resolves a for a given . Resolves the contract for a given type. The type to resolve a contract for. The contract for a given type. Initializes a new instance of the class. Initializes a new instance of the class. If set to true the will use a cached shared with other resolvers of the same type. Sharing the cache will significantly performance because expensive reflection will only happen once but could cause unexpected behavior if different instances of the resolver are suppose to produce different results. When set to false it is highly recommended to reuse instances with the . Resolves the contract for a given type. The type to resolve a contract for. The contract for a given type. Gets the serializable members for the type. The type to get serializable members for. The serializable members for the type. Creates a for the given type. Type of the object. A for the given type. Creates the constructor parameters. The constructor to create properties for. The type's member properties. Properties for the given . Creates a for the given . The matching member property. The constructor parameter. A created for the given . Resolves the default for the contract. Type of the object. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Determines which contract type is created for the given type. Type of the object. A for the given type. Creates properties for the given . The type to create properties for. /// The member serialization mode for the type. Properties for the given . Creates the used by the serializer to get and set values from a member. The member. The used by the serializer to get and set values from a member. Creates a for the given . The member's parent . The member to create a for. A created for the given . Resolves the name of the property. Name of the property. Name of the property. Gets the resolved name of the property. Name of the property. Name of the property. Gets a value indicating whether members are being get and set using dynamic code generation. This value is determined by the runtime permissions available. true if using dynamic code generation; otherwise, false. Gets or sets the default members search flags. The default members search flags. Gets or sets a value indicating whether compiler generated members should be serialized. true if serialized compiler generated members; otherwise, false. Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. true if the interface will be ignored when serializing and deserializing types; otherwise, false. Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. true if the attribute will be ignored when serializing and deserializing types; otherwise, false. Initializes a new instance of the class. Resolves the name of the property. Name of the property. The property name camel cased. The default serialization binder used when resolving and loading classes from type names. When overridden in a derived class, controls the binding of a serialized object to a type. Specifies the name of the serialized object. Specifies the name of the serialized object. The type of the object the formatter creates a new instance of. When overridden in a derived class, controls the binding of a serialized object to a type. The type of the object the formatter creates a new instance of. Specifies the name of the serialized object. Specifies the name of the serialized object. Provides information surrounding an error. Gets or sets the error. The error. Gets the original object that caused the error. The original object that caused the error. Gets the member that caused the error. The member that caused the error. Gets the path of the JSON location where the error occurred. The path of the JSON location where the error occurred. Gets or sets a value indicating whether this is handled. true if handled; otherwise, false. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets the of the collection items. The of the collection items. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets or sets the property name resolver. The property name resolver. Gets the of the dictionary keys. The of the dictionary keys. Gets the of the dictionary values. The of the dictionary values. Maps a JSON property to a .NET member or constructor parameter. Returns a that represents this instance. A that represents this instance. Gets or sets the name of the property. The name of the property. Gets or sets the type that declared this property. The type that declared this property. Gets or sets the order of serialization and deserialization of a member. The numeric order of serialization or deserialization. Gets or sets the name of the underlying member or parameter. The name of the underlying member or parameter. Gets the that will get and set the during serialization. The that will get and set the during serialization. Gets or sets the type of the property. The type of the property. Gets or sets the for the property. If set this converter takes presidence over the contract converter for the property type. The converter. Gets the member converter. The member converter. Gets a value indicating whether this is ignored. true if ignored; otherwise, false. Gets a value indicating whether this is readable. true if readable; otherwise, false. Gets a value indicating whether this is writable. true if writable; otherwise, false. Gets the default value. The default value. Gets a value indicating whether this is required. A value indicating whether this is required. Gets a value indicating whether this property preserves object references. true if this instance is reference; otherwise, false. Gets the property null value handling. The null value handling. Gets the property default value handling. The default value handling. Gets the property reference loop handling. The reference loop handling. Gets the property object creation handling. The object creation handling. Gets or sets the type name handling. The type name handling. Gets or sets a predicate used to determine whether the property should be serialize. A predicate used to determine whether the property should be serialize. Gets or sets a predicate used to determine whether the property should be serialized. A predicate used to determine whether the property should be serialized. Gets or sets an action used to set whether the property has been deserialized. An action used to set whether the property has been deserialized. Gets or sets the converter used when serializing the property's collection items. The collection's items converter. Gets or sets whether this property's collection items are serialized as a reference. Whether this property's collection items are serialized as a reference. Gets or sets the the type name handling used when serializing the property's collection items. The collection's items type name handling. Gets or sets the the reference loop handling used when serializing the property's collection items. The collection's items reference loop handling. A collection of objects. Initializes a new instance of the class. The type. When implemented in a derived class, extracts the key from the specified element. The element from which to extract the key. The key for the specified element. Adds a object. The property to add to the collection. Gets the closest matching object. First attempts to get an exact case match of propertyName and then a case insensitive match. Name of the property. A matching property if found. Gets a property by property name. The name of the property to get. Type property name string comparison. A matching property if found. Specifies missing member handling options for the . Ignore a missing member and do not attempt to deserialize it. Throw a when a missing member is encountered during deserialization. Specifies null value handling options for the . Include null values when serializing and deserializing objects. Ignore null values when serializing and deserializing objects. Specifies reference loop handling options for the . Throw a when a loop is encountered. Ignore loop references and do not serialize. Serialize loop references. An in-memory representation of a JSON Schema. Initializes a new instance of the class. Reads a from the specified . The containing the JSON Schema to read. The object representing the JSON Schema. Reads a from the specified . The containing the JSON Schema to read. The to use when resolving schema references. The object representing the JSON Schema. Load a from a string that contains schema JSON. A that contains JSON. A populated from the string that contains JSON. Parses the specified json. The json. The resolver. A populated from the string that contains JSON. Writes this schema to a . A into which this method will write. Writes this schema to a using the specified . A into which this method will write. The resolver used. Returns a that represents the current . A that represents the current . Gets or sets the id. Gets or sets the title. Gets or sets whether the object is required. Gets or sets whether the object is read only. Gets or sets whether the object is visible to users. Gets or sets whether the object is transient. Gets or sets the description of the object. Gets or sets the types of values allowed by the object. The type. Gets or sets the pattern. The pattern. Gets or sets the minimum length. The minimum length. Gets or sets the maximum length. The maximum length. Gets or sets a number that the value should be divisble by. A number that the value should be divisble by. Gets or sets the minimum. The minimum. Gets or sets the maximum. The maximum. Gets or sets a flag indicating whether the value can not equal the number defined by the "minimum" attribute. A flag indicating whether the value can not equal the number defined by the "minimum" attribute. Gets or sets a flag indicating whether the value can not equal the number defined by the "maximum" attribute. A flag indicating whether the value can not equal the number defined by the "maximum" attribute. Gets or sets the minimum number of items. The minimum number of items. Gets or sets the maximum number of items. The maximum number of items. Gets or sets the of items. The of items. Gets or sets the of properties. The of properties. Gets or sets the of additional properties. The of additional properties. Gets or sets the pattern properties. The pattern properties. Gets or sets a value indicating whether additional properties are allowed. true if additional properties are allowed; otherwise, false. Gets or sets the required property if this property is present. The required property if this property is present. Gets or sets the identity. The identity. Gets or sets the a collection of valid enum values allowed. A collection of valid enum values allowed. Gets or sets a collection of options. A collection of options. Gets or sets disallowed types. The disallow types. Gets or sets the default value. The default value. Gets or sets the extend . The extended . Gets or sets the format. The format. Generates a from a specified . Generate a from the specified type. The type to generate a from. A generated from the specified type. Generate a from the specified type. The type to generate a from. The used to resolve schema references. A generated from the specified type. Generate a from the specified type. The type to generate a from. Specify whether the generated root will be nullable. A generated from the specified type. Generate a from the specified type. The type to generate a from. The used to resolve schema references. Specify whether the generated root will be nullable. A generated from the specified type. Gets or sets how undefined schemas are handled by the serializer. Gets or sets the contract resolver. The contract resolver. The value types allowed by the . No type specified. String type. Float type. Integer type. Boolean type. Object type. Array type. Null type. Any type. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets or sets the object member serialization. The member object serialization. Gets or sets a value that indicates whether the object's properties are required. A value indicating whether the object's properties are required. Gets the object's properties. The object's properties. Gets the constructor parameters required for any non-default constructor Gets or sets the override constructor used to create the object. This is set when a constructor is marked up using the JsonConstructor attribute. The override constructor. Gets or sets the parametrized constructor used to create the object. The parametrized constructor. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Get and set values for a using reflection. Initializes a new instance of the class. The member info. Sets the value. The target to set the value on. The value to set on the target. Gets the value. The target to get the value from. The value. When applied to a method, specifies that the method is called when an error occurs serializing an object. Helper method for generating a MetaObject which calls a specific method on Dynamic that returns a result Helper method for generating a MetaObject which calls a specific method on Dynamic, but uses one of the arguments for the result. Helper method for generating a MetaObject which calls a specific method on Dynamic, but uses one of the arguments for the result. Returns a Restrictions object which includes our current restrictions merged with a restriction limiting our type Represents a method that constructs an object. Specifies type name handling options for the . Do not include the .NET type name when serializing types. Include the .NET type name when serializing into a JSON object structure. Include the .NET type name when serializing into a JSON array structure. Always include the .NET type name when serializing. Include the .NET type name when the type of the object being serialized is not the same as its declared type. Converts the value to the specified type. The value to convert. The culture to use when converting. The type to convert the value to. The converted type. Converts the value to the specified type. The value to convert. The culture to use when converting. The type to convert the value to. The converted value if the conversion was successful or the default value of T if it failed. true if initialValue was converted successfully; otherwise, false. Converts the value to the specified type. If the value is unable to be converted, the value is checked whether it assignable to the specified type. The value to convert. The culture to use when converting. The type to convert or cast the value to. The converted type. If conversion was unsuccessful, the initial value is returned if assignable to the target type. Gets a dictionary of the names and values of an Enum type. Gets a dictionary of the names and values of an Enum type. The enum type to get names and values for. Specifies the type of Json token. This is returned by the if a method has not been called. An object start token. An array start token. A constructor start token. An object property name. A comment. Raw JSON. An integer. A float. A string. A boolean. A null token. An undefined token. An object end token. An array end token. A constructor end token. A Date. Byte data. Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. Determines whether the collection is null or empty. The collection. true if the collection is null or empty; otherwise, false. Adds the elements of the specified collection to the specified generic IList. The list to add to. The collection of elements to add. Returns the index of the first occurrence in a sequence by using a specified IEqualityComparer. The type of the elements of source. A sequence in which to locate a value. The object to locate in the sequence An equality comparer to compare values. The zero-based index of the first occurrence of value within the entire sequence, if found; otherwise, –1. Gets the type of the typed collection's items. The type. The type of the typed collection's items. Gets the member's underlying type. The member. The underlying type of the member. Determines whether the member is an indexed property. The member. true if the member is an indexed property; otherwise, false. Determines whether the property is an indexed property. The property. true if the property is an indexed property; otherwise, false. Gets the member's value on the object. The member. The target object. The member's value on the object. Sets the member's value on the target object. The member. The target. The value. Determines whether the specified MemberInfo can be read. The MemberInfo to determine whether can be read. /// if set to true then allow the member to be gotten non-publicly. true if the specified MemberInfo can be read; otherwise, false. Determines whether the specified MemberInfo can be set. The MemberInfo to determine whether can be set. if set to true then allow the member to be set non-publicly. if set to true then allow the member to be set if read-only. true if the specified MemberInfo can be set; otherwise, false. Determines whether the string is all white space. Empty string will return false. The string to test whether it is all white space. true if the string is all white space; otherwise, false. Nulls an empty string. The string. Null if the string was null, otherwise the string unchanged. Specifies the state of the . An exception has been thrown, which has left the in an invalid state. You may call the method to put the in the Closed state. Any other method calls results in an being thrown. The method has been called. An object is being written. A array is being written. A constructor is being written. A property is being written. A write method has not been called. ================================================ FILE: packages/Newtonsoft.Json.4.5.6/lib/sl3-wp/Newtonsoft.Json.xml ================================================ Newtonsoft.Json Represents a BSON Oid (object id). Initializes a new instance of the class. The Oid value. Gets or sets the value of the Oid. The value of the Oid. Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. Initializes a new instance of the class with the specified . Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Skips the children of the current token. Sets the current token. The new token. Sets the current token and value. The new token. The value. Sets the state based on current token type. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Changes the to Closed. Gets the current reader state. The current reader state. Gets or sets a value indicating whether the underlying stream or should be closed when the reader is closed. true to close the underlying stream or when the reader is closed; otherwise false. The default is true. Gets the quotation mark character used to enclose the value of a string. Get or set how time zones are handling when reading JSON. Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . Gets the type of the current JSON token. Gets the text value of the current JSON token. Gets The Common Language Runtime (CLR) type for the current JSON token. Gets the depth of the current token in the JSON document. The depth of the current token in the JSON document. Gets the path of the current JSON token. Gets or sets the culture used when reading JSON. Defaults to . Specifies the state of the reader. The Read method has not been called. The end of the file has been reached successfully. Reader is at a property. Reader is at the start of an object. Reader is in an object. Reader is at the start of an array. Reader is in an array. The Close method has been called. Reader has just read a value. Reader is at the start of a constructor. Reader in a constructor. An error occurred that prevents the read operation from continuing. The end of the file has been reached successfully. Initializes a new instance of the class. The stream. Initializes a new instance of the class. The reader. Initializes a new instance of the class. The stream. if set to true the root object will be read as a JSON array. The used when reading values from BSON. Initializes a new instance of the class. The reader. if set to true the root object will be read as a JSON array. The used when reading values from BSON. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Changes the to Closed. Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary. true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. Gets or sets a value indicating whether the root object will be read as a JSON array. true if the root object will be read as a JSON array; otherwise, false. Gets or sets the used when reading values from BSON. The used when reading values from BSON. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Creates an instance of the JsonWriter class. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Closes this stream and the underlying stream. Writes the beginning of a Json object. Writes the end of a Json object. Writes the beginning of a Json array. Writes the end of an array. Writes the start of a constructor with the given name. The name of the constructor. Writes the end constructor. Writes the property name of a name/value pair on a Json object. The name of the property. Writes the end of the current Json object or array. Writes the current token. The to read the token from. Writes the specified end token. The end token to write. Writes indent characters. Writes the JSON value delimiter. Writes an indent space. Writes a null value. Writes an undefined value. Writes raw JSON without changing the writer's state. The raw JSON to write. Writes raw JSON where a value is expected and updates the writer's state. The raw JSON to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. An error will raised if the value cannot be written as a single JSON token. The value to write. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes out the given white space. The string of white space characters. Gets or sets a value indicating whether the underlying stream or should be closed when the writer is closed. true to close the underlying stream or when the writer is closed; otherwise false. The default is true. Gets the top. The top. Gets the state of the writer. Gets the path of the writer. Indicates how JSON text output is formatted. Get or set how dates are written to JSON text. Get or set how time zones are handling when writing JSON. Initializes a new instance of the class. The stream. Initializes a new instance of the class. The writer. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Writes the end. The token. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes the start of a constructor with the given name. The name of the constructor. Writes raw JSON. The raw JSON to write. Writes raw JSON where a value is expected and updates the writer's state. The raw JSON to write. Writes the beginning of a Json array. Writes the beginning of a Json object. Writes the property name of a name/value pair on a Json object. The name of the property. Closes this stream and the underlying stream. Writes a null value. Writes an undefined value. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value that represents a BSON object id. Writes a BSON regex. The regex pattern. The regex options. Gets or sets the used when writing values to BSON. When set to no conversion will occur. The used when writing values to BSON. Specifies how constructors are used when initializing objects during deserialization by the . First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor. Json.NET will use a non-public default constructor before falling back to a paramatized constructor. Converts a to and from JSON and BSON. Converts an object to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets the of the JSON produced by the JsonConverter. The of the JSON produced by the JsonConverter. Gets a value indicating whether this can read JSON. true if this can read JSON; otherwise, false. Gets a value indicating whether this can write JSON. true if this can write JSON; otherwise, false. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Create a custom object Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Creates an object which will then be populated by the serializer. Type of the object. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets a value indicating whether this can write JSON. true if this can write JSON; otherwise, false. Provides a base class for converting a to and from JSON. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Gets or sets the date time styles used when converting a date to and from JSON. The date time styles used when converting a date to and from JSON. Gets or sets the date time format used when converting a date to and from JSON. The date time format used when converting a date to and from JSON. Gets or sets the culture used when converting a date to and from JSON. The culture used when converting a date to and from JSON. Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing property value of the JSON that is being converted. The calling serializer. The object value. Converts a to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts a to and from JSON and BSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts an to and from its name string value. Converts an to and from its name string value. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. A cached representation of the Enum string representation to respect per Enum field name. The type of the Enum. A map of enum field name to either the field name, or the configured enum member name (). Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets or sets a value indicating whether the written enum text should be camel case. true if the written enum text will be camel case; otherwise, false. Converts a to and from a string (e.g. "1.2.3.4"). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing property value of the JSON that is being converted. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts XML to and from JSON. Writes the JSON representation of the object. The to write to. The calling serializer. The value. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Checks if the attributeName is a namespace attribute. Attribute name to test. The attribute name prefix if it has one, otherwise an empty string. True if attribute name is for a namespace attribute, otherwise false. Determines whether this instance can convert the specified value type. Type of the value. true if this instance can convert the specified value type; otherwise, false. Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements. The name of the deserialize root element. Gets or sets a flag to indicate whether to write the Json.NET array attribute. This attribute helps preserve arrays when converting the written XML back to JSON. true if the array attibute is written to the XML; otherwise, false. Gets or sets a value indicating whether to write the root JSON object. true if the JSON root object is omitted; otherwise, false. Specifies how dates are formatted when writing JSON text. Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. Date formatted strings are not parsed to a date type and are read as strings. Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . Specifies how to treat the time value when converting between string and . Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. Treat as a UTC. If the object represents a local time, it is converted to a UTC. Treat as a local time if a is being converted to a string. If a string is being converted to , convert to a local time if a time zone is specified. Time zone information should be preserved when converting. Indicates the method that will be used during deserialization for locating and loading assemblies. In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method is used to load the assembly. In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the Assembly class is used to load the assembly. Specifies default value handling options for the . Include members where the member value is the same as the member's default value when serializing objects. Included members are written to JSON. Has no effect when deserializing. Ignore members where the member value is the same as the member's default value when serializing objects so that is is not written to JSON, and ignores setting members when the JSON value equals the member's default value. Members with a default value but no JSON will be set to their default value when deserializing. Ignore members where the member value is the same as the member's default value when serializing objects and sets members to their default value when deserializing. Specifies formatting options for the . No special formatting is applied. This is the default. Causes child objects to be indented according to the and settings. Provides an interface to enable a class to return line and position information. Gets a value indicating whether the class can return line information. true if LineNumber and LinePosition can be provided; otherwise, false. Gets the current line number. The current line number or 0 if no line information is available (for example, HasLineInfo returns false). Gets the current line position. The current line position or 0 if no line information is available (for example, HasLineInfo returns false). Instructs the how to serialize the collection. Instructs the how to serialize the object. Initializes a new instance of the class. Initializes a new instance of the class with the specified container Id. The container Id. Gets or sets the id. The id. Gets or sets the title. The title. Gets or sets the description. The description. Gets the collection's items converter. The collection's items converter. Gets or sets a value that indicates whether to preserve object references. true to keep object reference; otherwise, false. The default is false. Gets or sets a value that indicates whether to preserve collection's items references. true to keep collection's items object references; otherwise, false. The default is false. Gets or sets the reference loop handling used when serializing the collection's items. The reference loop handling. Gets or sets the type name handling used when serializing the collection's items. The type name handling. Initializes a new instance of the class. Initializes a new instance of the class with a flag indicating whether the array can contain null items A flag indicating whether the array can contain null items. Initializes a new instance of the class with the specified container Id. The container Id. Gets or sets a value indicating whether null items are allowed in the collection. true if null items are allowed in the collection; otherwise, false. Instructs the to use the specified constructor when deserializing that object. Provides methods for converting between common language runtime types and JSON types. Represents JavaScript's boolean value true as a string. This field is read-only. Represents JavaScript's boolean value false as a string. This field is read-only. Represents JavaScript's null as a string. This field is read-only. Represents JavaScript's undefined as a string. This field is read-only. Represents JavaScript's positive infinity as a string. This field is read-only. Represents JavaScript's negative infinity as a string. This field is read-only. Represents JavaScript's NaN as a string. This field is read-only. Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation using the specified. The value to convert. The format the date will be converted to. The time zone handling when the date is converted to a string. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation using the specified. The value to convert. The format the date will be converted to. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. The string delimiter character. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Serializes the specified object to a JSON string. The object to serialize. A JSON string representation of the object. Serializes the specified object to a JSON string. The object to serialize. Indicates how the output is formatted. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. A collection converters used while serializing. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. Indicates how the output is formatted. A collection converters used while serializing. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. The used to serialize the object. If this is null, default serialization settings will be is used. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. Indicates how the output is formatted. The used to serialize the object. If this is null, default serialization settings will be is used. A JSON string representation of the object. Deserializes the JSON to a .NET object. The JSON to deserialize. The deserialized object from the Json string. Deserializes the JSON to a .NET object. The JSON to deserialize. The used to deserialize the object. If this is null, default serialization settings will be is used. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The JSON to deserialize. The of object being deserialized. The deserialized object from the Json string. Deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The JSON to deserialize. The deserialized object from the Json string. Deserializes the JSON to the given anonymous type. The anonymous type to deserialize to. This can't be specified traditionally and must be infered from the anonymous type passed as a parameter. The JSON to deserialize. The anonymous type object. The deserialized anonymous type from the JSON string. Deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The JSON to deserialize. Converters to use while deserializing. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The object to deserialize. The used to deserialize the object. If this is null, default serialization settings will be is used. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The JSON to deserialize. The type of the object to deserialize. Converters to use while deserializing. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The JSON to deserialize. The type of the object to deserialize to. The used to deserialize the object. If this is null, default serialization settings will be is used. The deserialized object from the JSON string. Populates the object with values from the JSON string. The JSON to populate values from. The target object to populate values onto. Populates the object with values from the JSON string. The JSON to populate values from. The target object to populate values onto. The used to deserialize the object. If this is null, default serialization settings will be is used. Serializes the to a JSON string. The node to convert to JSON. A JSON string of the XNode. Serializes the to a JSON string. The node to convert to JSON. Indicates how the output is formatted. A JSON string of the XNode. Serializes the to a JSON string. The node to serialize. Indicates how the output is formatted. Omits writing the root object. A JSON string of the XNode. Deserializes the from a JSON string. The JSON string. The deserialized XNode Deserializes the from a JSON string nested in a root elment. The JSON string. The name of the root element to append when deserializing. The deserialized XNode Deserializes the from a JSON string nested in a root elment. The JSON string. The name of the root element to append when deserializing. A flag to indicate whether to write the Json.NET array attribute. This attribute helps preserve arrays when converting the written XML back to JSON. The deserialized XNode Instructs the to use the specified when serializing the member or class. Initializes a new instance of the class. Type of the converter. Gets the type of the converter. The type of the converter. Represents a collection of . Instructs the how to serialize the collection. Initializes a new instance of the class. Initializes a new instance of the class with the specified container Id. The container Id. The exception thrown when an error occurs during Json serialization or deserialization. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Instructs the not to serialize the public field or public read/write property value. Instructs the how to serialize the object. Initializes a new instance of the class. Initializes a new instance of the class with the specified member serialization. The member serialization. Initializes a new instance of the class with the specified container Id. The container Id. Gets or sets the member serialization. The member serialization. Gets or sets a value that indicates whether the object's properties are required. A value indicating whether the object's properties are required. Instructs the to always serialize the member with the specified name. Initializes a new instance of the class. Initializes a new instance of the class with the specified name. Name of the property. Gets or sets the converter used when serializing the property's collection items. The collection's items converter. Gets or sets the null value handling used when serializing this property. The null value handling. Gets or sets the default value handling used when serializing this property. The default value handling. Gets or sets the reference loop handling used when serializing this property. The reference loop handling. Gets or sets the object creation handling used when deserializing this property. The object creation handling. Gets or sets the type name handling used when serializing this property. The type name handling. Gets or sets whether this property's value is serialized as a reference. Whether this property's value is serialized as a reference. Gets or sets the order of serialization and deserialization of a member. The numeric order of serialization or deserialization. Gets or sets a value indicating whether this property is required. A value indicating whether this property is required. Gets or sets the name of the property. The name of the property. Gets or sets the the reference loop handling used when serializing the property's collection items. The collection's items reference loop handling. Gets or sets the the type name handling used when serializing the property's collection items. The collection's items type name handling. Gets or sets whether this property's collection items are serialized as a reference. Whether this property's collection items are serialized as a reference. The exception thrown when an error occurs while reading Json text. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Gets the line number indicating where the error occurred. The line number indicating where the error occurred. Gets the line position indicating where the error occurred. The line position indicating where the error occurred. Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. The exception thrown when an error occurs during Json serialization or deserialization. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Serializes and deserializes objects into and from the JSON format. The enables you to control how objects are encoded into JSON. Initializes a new instance of the class. Creates a new instance using the specified . The settings to be applied to the . A new instance using the specified . Populates the JSON values onto the target object. The that contains the JSON structure to reader values from. The target object to populate values onto. Populates the JSON values onto the target object. The that contains the JSON structure to reader values from. The target object to populate values onto. Deserializes the Json structure contained by the specified . The that contains the JSON structure to deserialize. The being deserialized. Deserializes the Json structure contained by the specified into an instance of the specified type. The containing the object. The of object being deserialized. The instance of being deserialized. Deserializes the Json structure contained by the specified into an instance of the specified type. The containing the object. The type of the object to deserialize. The instance of being deserialized. Deserializes the Json structure contained by the specified into an instance of the specified type. The containing the object. The of object being deserialized. The instance of being deserialized. Serializes the specified and writes the Json structure to a Stream using the specified . The used to write the Json structure. The to serialize. Serializes the specified and writes the Json structure to a Stream using the specified . The used to write the Json structure. The to serialize. Occurs when the errors during serialization and deserialization. Gets or sets the used by the serializer when resolving references. Gets or sets the used by the serializer when resolving type names. Gets or sets how type name writing and reading is handled by the serializer. Gets or sets how a type name assembly is written and resolved by the serializer. The type name assembly format. Gets or sets how object references are preserved by the serializer. Get or set how reference loops (e.g. a class referencing itself) is handled. Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. Get or set how null values are handled during serialization and deserialization. Get or set how null default are handled during serialization and deserialization. Gets or sets how objects are created during deserialization. The object creation handling. Gets or sets how constructors are used during deserialization. The constructor handling. Gets a collection that will be used during serialization. Collection that will be used during serialization. Gets or sets the contract resolver used by the serializer when serializing .NET objects to JSON and vice versa. Gets or sets the used by the serializer when invoking serialization callback methods. The context. Indicates how JSON text output is formatted. Get or set how dates are written to JSON text. Get or set how time zones are handling during serialization and deserialization. Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. Gets or sets the culture used when reading JSON. Defaults to . Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. true if there will be a check for additional JSON content after deserializing an object; otherwise, false. Specifies the settings on a object. Initializes a new instance of the class. Gets or sets how reference loops (e.g. a class referencing itself) is handled. Reference loop handling. Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. Missing member handling. Gets or sets how objects are created during deserialization. The object creation handling. Gets or sets how null values are handled during serialization and deserialization. Null value handling. Gets or sets how null default are handled during serialization and deserialization. The default value handling. Gets or sets a collection that will be used during serialization. The converters. Gets or sets how object references are preserved by the serializer. The preserve references handling. Gets or sets how type name writing and reading is handled by the serializer. The type name handling. Gets or sets how a type name assembly is written and resolved by the serializer. The type name assembly format. Gets or sets how constructors are used during deserialization. The constructor handling. Gets or sets the contract resolver used by the serializer when serializing .NET objects to JSON and vice versa. The contract resolver. Gets or sets the used by the serializer when resolving references. The reference resolver. Gets or sets the used by the serializer when resolving type names. The binder. Gets or sets the error handler called during serialization and deserialization. The error handler called during serialization and deserialization. Gets or sets the used by the serializer when invoking serialization callback methods. The context. Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . Indicates how JSON text output is formatted. Get or set how dates are written to JSON text. Get or set how time zones are handling during serialization and deserialization. Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. Gets or sets the culture used when reading JSON. Defaults to . Gets a value indicating whether there will be a check for additional content after deserializing an object. true if there will be a check for additional content after deserializing an object; otherwise, false. Represents a reader that provides fast, non-cached, forward-only access to JSON text data. Initializes a new instance of the class with the specified . The TextReader containing the XML data to read. Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Changes the state to closed. Gets a value indicating whether the class can return line information. true if LineNumber and LinePosition can be provided; otherwise, false. Gets the current line number. The current line number or 0 if no line information is available (for example, HasLineInfo returns false). Gets the current line position. The current line position or 0 if no line information is available (for example, HasLineInfo returns false). Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Creates an instance of the JsonWriter class using the specified . The TextWriter to write to. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Closes this stream and the underlying stream. Writes the beginning of a Json object. Writes the beginning of a Json array. Writes the start of a constructor with the given name. The name of the constructor. Writes the specified end token. The end token to write. Writes the property name of a name/value pair on a Json object. The name of the property. Writes indent characters. Writes the JSON value delimiter. Writes an indent space. Writes a null value. Writes an undefined value. Writes raw JSON. The raw JSON to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes out the given white space. The string of white space characters. Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. Gets or sets which character to use to quote attribute values. Gets or sets which character to use for indenting when is set to Formatting.Indented. Gets or sets a value indicating whether object names will be surrounded with quotes. Specifies the type of Json token. This is returned by the if a method has not been called. An object start token. An array start token. A constructor start token. An object property name. A comment. Raw JSON. An integer. A float. A string. A boolean. A null token. An undefined token. An object end token. An array end token. A constructor end token. A Date. Byte data. Represents a reader that provides validation. Initializes a new instance of the class that validates the content returned from the given . The to read from while validating. Reads the next JSON token from the stream as a . A . Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. Reads the next JSON token from the stream as a . A . Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Sets an event handler for receiving schema validation errors. Gets the text value of the current Json token. Gets the depth of the current token in the JSON document. The depth of the current token in the JSON document. Gets the path of the current JSON token. Gets the quotation mark character used to enclose the value of a string. Gets the type of the current Json token. Gets the Common Language Runtime (CLR) type for the current Json token. Gets or sets the schema. The schema. Gets the used to construct this . The specified in the constructor. The exception thrown when an error occurs while reading Json text. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. Contains the LINQ to JSON extension methods. Returns a collection of tokens that contains the ancestors of every token in the source collection. The type of the objects in source, constrained to . An of that contains the source collection. An of that contains the ancestors of every node in the source collection. Returns a collection of tokens that contains the descendants of every token in the source collection. The type of the objects in source, constrained to . An of that contains the source collection. An of that contains the descendants of every node in the source collection. Returns a collection of child properties of every object in the source collection. An of that contains the source collection. An of that contains the properties of every object in the source collection. Returns a collection of child values of every object in the source collection with the given key. An of that contains the source collection. The token key. An of that contains the values of every node in the source collection with the given key. Returns a collection of child values of every object in the source collection. An of that contains the source collection. An of that contains the values of every node in the source collection. Returns a collection of converted child values of every object in the source collection with the given key. The type to convert the values to. An of that contains the source collection. The token key. An that contains the converted values of every node in the source collection with the given key. Returns a collection of converted child values of every object in the source collection. The type to convert the values to. An of that contains the source collection. An that contains the converted values of every node in the source collection. Converts the value. The type to convert the value to. A cast as a of . A converted value. Converts the value. The source collection type. The type to convert the value to. A cast as a of . A converted value. Returns a collection of child tokens of every array in the source collection. The source collection type. An of that contains the source collection. An of that contains the values of every node in the source collection. Returns a collection of converted child tokens of every array in the source collection. An of that contains the source collection. The type to convert the values to. The source collection type. An that contains the converted values of every node in the source collection. Returns the input typed as . An of that contains the source collection. The input typed as . Returns the input typed as . The source collection type. An of that contains the source collection. The input typed as . Represents a collection of objects. The type of token Gets the with the specified key. Represents a JSON array. Represents a token that can contain other tokens. Represents an abstract JSON token. Compares the values of two tokens, including the values of all descendant tokens. The first to compare. The second to compare. true if the tokens are equal; otherwise false. Adds the specified content immediately after this token. A content object that contains simple content or a collection of content objects to be added after this token. Adds the specified content immediately before this token. A content object that contains simple content or a collection of content objects to be added before this token. Returns a collection of the ancestor tokens of this token. A collection of the ancestor tokens of this token. Returns a collection of the sibling tokens after this token, in document order. A collection of the sibling tokens after this tokens, in document order. Returns a collection of the sibling tokens before this token, in document order. A collection of the sibling tokens before this token, in document order. Gets the with the specified key converted to the specified type. The type to convert the token to. The token key. The converted token value. Returns a collection of the child tokens of this token, in document order. An of containing the child tokens of this , in document order. Returns a collection of the child tokens of this token, in document order, filtered by the specified type. The type to filter the child tokens on. A containing the child tokens of this , in document order. Returns a collection of the child values of this token, in document order. The type to convert the values to. A containing the child values of this , in document order. Removes this token from its parent. Replaces this token with the specified token. The value. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Returns the indented JSON for this token. The indented JSON for this token. Returns the JSON for this token using the given formatting and converters. Indicates how the output is formatted. A collection of which will be used when writing the token. The JSON for this token using the given formatting and converters. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Creates an for this token. An that can be used to read this token and its descendants. Creates a from an object. The object that will be used to create . A with the value of the specified object Creates a from an object using the specified . The object that will be used to create . The that will be used when reading the object. A with the value of the specified object Creates the specified .NET type from the . The new object created from the JSON value. Creates the specified .NET type from the using the specified . The that will be used when creating the object. The new object created from the JSON value. Creates a from a . An positioned at the token to read into this . An that contains the token and its descendant tokens that were read from the reader. The runtime type of the token is determined by the token type of the first token encountered in the reader. Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Creates a from a . An positioned at the token to read into this . An that contains the token and its descendant tokens that were read from the reader. The runtime type of the token is determined by the token type of the first token encountered in the reader. Selects the token that matches the object path. The object path from the current to the to be returned. This must be a string of property names or array indexes separated by periods, such as Tables[0].DefaultView[0].Price in C# or Tables(0).DefaultView(0).Price in Visual Basic. The that matches the object path or a null reference if no matching token is found. Selects the token that matches the object path. The object path from the current to the to be returned. This must be a string of property names or array indexes separated by periods, such as Tables[0].DefaultView[0].Price in C# or Tables(0).DefaultView(0).Price in Visual Basic. A flag to indicate whether an error should be thrown if no token is found. The that matches the object path. Creates a new instance of the . All child tokens are recursively cloned. A new instance of the . Gets a comparer that can compare two tokens for value equality. A that can compare two nodes for value equality. Gets or sets the parent. The parent. Gets the root of this . The root of this . Gets the node type for this . The type. Gets a value indicating whether this token has childen tokens. true if this token has child values; otherwise, false. Gets the next sibling token of this node. The that contains the next sibling token. Gets the previous sibling token of this node. The that contains the previous sibling token. Gets the with the specified key. The with the specified key. Get the first child token of this token. A containing the first child token of the . Get the last child token of this token. A containing the last child token of the . Raises the event. The instance containing the event data. Returns a collection of the child tokens of this token, in document order. An of containing the child tokens of this , in document order. Returns a collection of the child values of this token, in document order. The type to convert the values to. A containing the child values of this , in document order. Returns a collection of the descendant tokens for this token in document order. An containing the descendant tokens of the . Adds the specified content as children of this . The content to be added. Adds the specified content as the first children of this . The content to be added. Creates an that can be used to add tokens to the . An that is ready to have content written to it. Replaces the children nodes of this token with the specified content. The content. Removes the child nodes from this token. Occurs when the items list of the collection has changed, or the collection is reset. Gets the container's children tokens. The container's children tokens. Gets a value indicating whether this token has childen tokens. true if this token has child values; otherwise, false. Get the first child token of this token. A containing the first child token of the . Get the last child token of this token. A containing the last child token of the . Gets the count of child JSON tokens. The count of child JSON tokens Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified content. The contents of the array. Initializes a new instance of the class with the specified content. The contents of the array. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Creates a from an object. The object that will be used to create . A with the values of the specified object Creates a from an object. The object that will be used to create . The that will be used to read the object. A with the values of the specified object Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Determines the index of a specific item in the . The object to locate in the . The index of if found in the list; otherwise, -1. Inserts an item to the at the specified index. The zero-based index at which should be inserted. The object to insert into the . is not a valid index in the . The is read-only. Removes the item at the specified index. The zero-based index of the item to remove. is not a valid index in the . The is read-only. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Gets the container's children tokens. The container's children tokens. Gets the node type for this . The type. Gets the with the specified key. The with the specified key. Gets or sets the at the specified index. Represents a JSON constructor. Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified name and content. The constructor name. The contents of the constructor. Initializes a new instance of the class with the specified name and content. The constructor name. The contents of the constructor. Initializes a new instance of the class with the specified name. The constructor name. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Gets the container's children tokens. The container's children tokens. Gets or sets the name of this constructor. The constructor name. Gets the node type for this . The type. Gets the with the specified key. The with the specified key. Represents a collection of objects. The type of token An empty collection of objects. Initializes a new instance of the struct. The enumerable. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the with the specified key. Represents a JSON object. Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified content. The contents of the object. Initializes a new instance of the class with the specified content. The contents of the object. Gets an of this object's properties. An of this object's properties. Gets a the specified name. The property name. A with the specified name or null. Gets an of this object's property values. An of this object's property values. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Creates a from an object. The object that will be used to create . A with the values of the specified object Creates a from an object. The object that will be used to create . The that will be used to read the object. A with the values of the specified object Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Adds the specified property name. Name of the property. The value. Removes the property with the specified name. Name of the property. true if item was successfully removed; otherwise, false. Tries the get value. Name of the property. The value. true if a value was successfully retrieved; otherwise, false. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Raises the event with the provided arguments. Name of the property. Gets the container's children tokens. The container's children tokens. Occurs when a property value changes. Gets the node type for this . The type. Gets the with the specified key. The with the specified key. Gets or sets the with the specified property name. Represents a JSON property. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class. The property name. The property content. Initializes a new instance of the class. The property name. The property content. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Gets the container's children tokens. The container's children tokens. Gets the property name. The property name. Gets or sets the property value. The property value. Gets the node type for this . The type. Represents a raw JSON string. Represents a value in JSON (string, integer, date, etc). Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Creates a comment with the given value. The value. A comment with the given value. Creates a string with the given value. The value. A string with the given value. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Indicates whether the current object is equal to another object of the same type. true if the current object is equal to the parameter; otherwise, false. An object to compare with this object. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. An object to compare with this instance. A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance is less than . Zero This instance is equal to . Greater than zero This instance is greater than . is not the same type as this instance. Gets a value indicating whether this token has childen tokens. true if this token has child values; otherwise, false. Gets the node type for this . The type. Gets or sets the underlying token value. The underlying token value. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class. The raw json. Creates an instance of with the content of the reader's current token. The reader. An instance of with the content of the reader's current token. Compares tokens to determine whether they are equal. Determines whether the specified objects are equal. The first object of type to compare. The second object of type to compare. true if the specified objects are equal; otherwise, false. Returns a hash code for the specified object. The for which a hash code is to be returned. A hash code for the specified object. The type of is a reference type and is null. Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. Initializes a new instance of the class. The token to read from. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Specifies the type of token. No token type has been set. A JSON object. A JSON array. A JSON constructor. A JSON object property. A comment. An integer value. A float value. A string value. A boolean value. A null value. An undefined value. A date value. A raw JSON value. A collection of bytes value. A Guid value. A Uri value. A TimeSpan value. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Initializes a new instance of the class writing to the given . The container being written to. Initializes a new instance of the class. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Closes this stream and the underlying stream. Writes the beginning of a Json object. Writes the beginning of a Json array. Writes the start of a constructor with the given name. The name of the constructor. Writes the end. The token. Writes the property name of a name/value pair on a Json object. The name of the property. Writes a null value. Writes an undefined value. Writes raw JSON. The raw JSON to write. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Gets the token being writen. The token being writen. Specifies the member serialization options for the . All public members are serialized by default. Members can be excluded using or . This is the default member serialization mode. Only members must be marked with or are serialized. This member serialization mode can also be set by marking the class with . All public and private fields are serialized. Members can be excluded using or . This member serialization mode can also be set by marking the class with and setting IgnoreSerializableAttribute on to false. Specifies missing member handling options for the . Ignore a missing member and do not attempt to deserialize it. Throw a when a missing member is encountered during deserialization. Specifies null value handling options for the . Include null values when serializing and deserializing objects. Ignore null values when serializing and deserializing objects. Specifies how object creation is handled by the . Reuse existing objects, create new objects when needed. Only reuse existing objects. Always create new objects. Specifies reference handling options for the . Do not preserve references when serializing types. Preserve references when serializing into a JSON object structure. Preserve references when serializing into a JSON array structure. Preserve references when serializing. Specifies reference loop handling options for the . Throw a when a loop is encountered. Ignore loop references and do not serialize. Serialize loop references. Indicating whether a property is required. The property is not required. The default state. The property must be defined in JSON but can be a null value. The property must be defined in JSON and cannot be a null value. Allows users to control class loading and mandate what class to load. When overridden in a derived class, controls the binding of a serialized object to a type. Specifies the name of the serialized object. Specifies the name of the serialized object The type of the object the formatter creates a new instance of. When overridden in a derived class, controls the binding of a serialized object to a type. The type of the object the formatter creates a new instance of. Specifies the name of the serialized object. Specifies the name of the serialized object. Resolves member mappings for a type, camel casing property names. Used by to resolves a for a given . Used by to resolves a for a given . Resolves the contract for a given type. The type to resolve a contract for. The contract for a given type. Initializes a new instance of the class. Initializes a new instance of the class. If set to true the will use a cached shared with other resolvers of the same type. Sharing the cache will significantly performance because expensive reflection will only happen once but could cause unexpected behavior if different instances of the resolver are suppose to produce different results. When set to false it is highly recommended to reuse instances with the . Resolves the contract for a given type. The type to resolve a contract for. The contract for a given type. Gets the serializable members for the type. The type to get serializable members for. The serializable members for the type. Creates a for the given type. Type of the object. A for the given type. Creates the constructor parameters. The constructor to create properties for. The type's member properties. Properties for the given . Creates a for the given . The matching member property. The constructor parameter. A created for the given . Resolves the default for the contract. Type of the object. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Determines which contract type is created for the given type. Type of the object. A for the given type. Creates properties for the given . The type to create properties for. /// The member serialization mode for the type. Properties for the given . Creates the used by the serializer to get and set values from a member. The member. The used by the serializer to get and set values from a member. Creates a for the given . The member's parent . The member to create a for. A created for the given . Resolves the name of the property. Name of the property. Name of the property. Gets the resolved name of the property. Name of the property. Name of the property. Gets a value indicating whether members are being get and set using dynamic code generation. This value is determined by the runtime permissions available. true if using dynamic code generation; otherwise, false. Gets or sets the default members search flags. The default members search flags. Gets or sets a value indicating whether compiler generated members should be serialized. true if serialized compiler generated members; otherwise, false. Initializes a new instance of the class. Resolves the name of the property. Name of the property. The property name camel cased. Used to resolve references when serializing and deserializing JSON by the . Resolves a reference to its object. The serialization context. The reference to resolve. The object that Gets the reference for the sepecified object. The serialization context. The object to get a reference for. The reference to the object. Determines whether the specified object is referenced. The serialization context. The object to test for a reference. true if the specified object is referenced; otherwise, false. Adds a reference to the specified object. The serialization context. The reference. The object to reference. The default serialization binder used when resolving and loading classes from type names. When overridden in a derived class, controls the binding of a serialized object to a type. Specifies the name of the serialized object. Specifies the name of the serialized object. The type of the object the formatter creates a new instance of. When overridden in a derived class, controls the binding of a serialized object to a type. The type of the object the formatter creates a new instance of. Specifies the name of the serialized object. Specifies the name of the serialized object. Provides information surrounding an error. Gets or sets the error. The error. Gets the original object that caused the error. The original object that caused the error. Gets the member that caused the error. The member that caused the error. Gets the path of the JSON location where the error occurred. The path of the JSON location where the error occurred. Gets or sets a value indicating whether this is handled. true if handled; otherwise, false. Provides data for the Error event. Initializes a new instance of the class. The current object. The error context. Gets the current object the error event is being raised against. The current object the error event is being raised against. Gets the error context. The error context. Provides methods to get and set values. Sets the value. The target to set the value on. The value to set on the target. Gets the value. The target to get the value from. The value. Contract details for a used by the . Contract details for a used by the . Contract details for a used by the . Gets the underlying type for the contract. The underlying type for the contract. Gets or sets the type created during deserialization. The type created during deserialization. Gets or sets whether this type contract is serialized as a reference. Whether this type contract is serialized as a reference. Gets or sets the default for this contract. The converter. Gets or sets the method called immediately after deserialization of the object. The method called immediately after deserialization of the object. Gets or sets the method called during deserialization of the object. The method called during deserialization of the object. Gets or sets the method called after serialization of the object graph. The method called after serialization of the object graph. Gets or sets the method called before serialization of the object. The method called before serialization of the object. Gets or sets the default creator method used to create the object. The default creator method used to create the object. Gets or sets a value indicating whether the default creator is non public. true if the default object creator is non-public; otherwise, false. Gets or sets the method called when an error is thrown during the serialization of the object. The method called when an error is thrown during the serialization of the object. Initializes a new instance of the class. The underlying type for the contract. Gets or sets the default collection items . The converter. Gets or sets a value indicating whether the collection items preserve object references. true if collection items preserve object references; otherwise, false. Gets or sets the collection item reference loop handling. The reference loop handling. Gets or sets the collection item type name handling. The type name handling. Initializes a new instance of the class. The underlying type for the contract. Gets the of the collection items. The of the collection items. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets or sets the property name resolver. The property name resolver. Gets the of the dictionary keys. The of the dictionary keys. Gets the of the dictionary values. The of the dictionary values. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets or sets the object member serialization. The member object serialization. Gets or sets a value that indicates whether the object's properties are required. A value indicating whether the object's properties are required. Gets the object's properties. The object's properties. Gets the constructor parameters required for any non-default constructor Gets or sets the override constructor used to create the object. This is set when a constructor is marked up using the JsonConstructor attribute. The override constructor. Gets or sets the parametrized constructor used to create the object. The parametrized constructor. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Maps a JSON property to a .NET member or constructor parameter. Returns a that represents this instance. A that represents this instance. Gets or sets the name of the property. The name of the property. Gets or sets the type that declared this property. The type that declared this property. Gets or sets the order of serialization and deserialization of a member. The numeric order of serialization or deserialization. Gets or sets the name of the underlying member or parameter. The name of the underlying member or parameter. Gets the that will get and set the during serialization. The that will get and set the during serialization. Gets or sets the type of the property. The type of the property. Gets or sets the for the property. If set this converter takes presidence over the contract converter for the property type. The converter. Gets the member converter. The member converter. Gets a value indicating whether this is ignored. true if ignored; otherwise, false. Gets a value indicating whether this is readable. true if readable; otherwise, false. Gets a value indicating whether this is writable. true if writable; otherwise, false. Gets the default value. The default value. Gets a value indicating whether this is required. A value indicating whether this is required. Gets a value indicating whether this property preserves object references. true if this instance is reference; otherwise, false. Gets the property null value handling. The null value handling. Gets the property default value handling. The default value handling. Gets the property reference loop handling. The reference loop handling. Gets the property object creation handling. The object creation handling. Gets or sets the type name handling. The type name handling. Gets or sets a predicate used to determine whether the property should be serialize. A predicate used to determine whether the property should be serialize. Gets or sets a predicate used to determine whether the property should be serialized. A predicate used to determine whether the property should be serialized. Gets or sets an action used to set whether the property has been deserialized. An action used to set whether the property has been deserialized. Gets or sets the converter used when serializing the property's collection items. The collection's items converter. Gets or sets whether this property's collection items are serialized as a reference. Whether this property's collection items are serialized as a reference. Gets or sets the the type name handling used when serializing the property's collection items. The collection's items type name handling. Gets or sets the the reference loop handling used when serializing the property's collection items. The collection's items reference loop handling. A collection of objects. Initializes a new instance of the class. The type. When implemented in a derived class, extracts the key from the specified element. The element from which to extract the key. The key for the specified element. Adds a object. The property to add to the collection. Gets the closest matching object. First attempts to get an exact case match of propertyName and then a case insensitive match. Name of the property. A matching property if found. Gets a property by property name. The name of the property to get. Type property name string comparison. A matching property if found. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Represents a method that constructs an object. When applied to a method, specifies that the method is called when an error occurs serializing an object. Get and set values for a using reflection. Initializes a new instance of the class. The member info. Sets the value. The target to set the value on. The value to set on the target. Gets the value. The target to get the value from. The value. Specifies type name handling options for the . Do not include the .NET type name when serializing types. Include the .NET type name when serializing into a JSON object structure. Include the .NET type name when serializing into a JSON array structure. Always include the .NET type name when serializing. Include the .NET type name when the type of the object being serialized is not the same as its declared type. Determines whether the collection is null or empty. The collection. true if the collection is null or empty; otherwise, false. Adds the elements of the specified collection to the specified generic IList. The list to add to. The collection of elements to add. Returns the index of the first occurrence in a sequence by using a specified IEqualityComparer. The type of the elements of source. A sequence in which to locate a value. The object to locate in the sequence An equality comparer to compare values. The zero-based index of the first occurrence of value within the entire sequence, if found; otherwise, –1. Converts the value to the specified type. The value to convert. The culture to use when converting. The type to convert the value to. The converted type. Converts the value to the specified type. The value to convert. The culture to use when converting. The type to convert the value to. The converted value if the conversion was successful or the default value of T if it failed. true if initialValue was converted successfully; otherwise, false. Converts the value to the specified type. If the value is unable to be converted, the value is checked whether it assignable to the specified type. The value to convert. The culture to use when converting. The type to convert or cast the value to. The converted type. If conversion was unsuccessful, the initial value is returned if assignable to the target type. Gets a dictionary of the names and values of an Enum type. Gets a dictionary of the names and values of an Enum type. The enum type to get names and values for. Gets the type of the typed collection's items. The type. The type of the typed collection's items. Gets the member's underlying type. The member. The underlying type of the member. Determines whether the member is an indexed property. The member. true if the member is an indexed property; otherwise, false. Determines whether the property is an indexed property. The property. true if the property is an indexed property; otherwise, false. Gets the member's value on the object. The member. The target object. The member's value on the object. Sets the member's value on the target object. The member. The target. The value. Determines whether the specified MemberInfo can be read. The MemberInfo to determine whether can be read. /// if set to true then allow the member to be gotten non-publicly. true if the specified MemberInfo can be read; otherwise, false. Determines whether the specified MemberInfo can be set. The MemberInfo to determine whether can be set. if set to true then allow the member to be set non-publicly. if set to true then allow the member to be set if read-only. true if the specified MemberInfo can be set; otherwise, false. Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. Determines whether the string is all white space. Empty string will return false. The string to test whether it is all white space. true if the string is all white space; otherwise, false. Nulls an empty string. The string. Null if the string was null, otherwise the string unchanged. Contains the JSON schema extension methods. Determines whether the is valid. The source to test. The schema to test with. true if the specified is valid; otherwise, false. Determines whether the is valid. The source to test. The schema to test with. When this method returns, contains any error messages generated while validating. true if the specified is valid; otherwise, false. Validates the specified . The source to test. The schema to test with. Validates the specified . The source to test. The schema to test with. The validation event handler. Returns detailed information about the schema exception. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Gets the line number indicating where the error occurred. The line number indicating where the error occurred. Gets the line position indicating where the error occurred. The line position indicating where the error occurred. Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. Specifies undefined schema Id handling options for the . Do not infer a schema Id. Use the .NET type name as the schema Id. Use the assembly qualified .NET type name as the schema Id. Returns detailed information related to the . Gets the associated with the validation error. The JsonSchemaException associated with the validation error. Gets the path of the JSON location where the validation error occurred. The path of the JSON location where the validation error occurred. Gets the text description corresponding to the validation error. The text description. Represents the callback method that will handle JSON schema validation events and the . An in-memory representation of a JSON Schema. Initializes a new instance of the class. Reads a from the specified . The containing the JSON Schema to read. The object representing the JSON Schema. Reads a from the specified . The containing the JSON Schema to read. The to use when resolving schema references. The object representing the JSON Schema. Load a from a string that contains schema JSON. A that contains JSON. A populated from the string that contains JSON. Parses the specified json. The json. The resolver. A populated from the string that contains JSON. Writes this schema to a . A into which this method will write. Writes this schema to a using the specified . A into which this method will write. The resolver used. Returns a that represents the current . A that represents the current . Gets or sets the id. Gets or sets the title. Gets or sets whether the object is required. Gets or sets whether the object is read only. Gets or sets whether the object is visible to users. Gets or sets whether the object is transient. Gets or sets the description of the object. Gets or sets the types of values allowed by the object. The type. Gets or sets the pattern. The pattern. Gets or sets the minimum length. The minimum length. Gets or sets the maximum length. The maximum length. Gets or sets a number that the value should be divisble by. A number that the value should be divisble by. Gets or sets the minimum. The minimum. Gets or sets the maximum. The maximum. Gets or sets a flag indicating whether the value can not equal the number defined by the "minimum" attribute. A flag indicating whether the value can not equal the number defined by the "minimum" attribute. Gets or sets a flag indicating whether the value can not equal the number defined by the "maximum" attribute. A flag indicating whether the value can not equal the number defined by the "maximum" attribute. Gets or sets the minimum number of items. The minimum number of items. Gets or sets the maximum number of items. The maximum number of items. Gets or sets the of items. The of items. Gets or sets the of properties. The of properties. Gets or sets the of additional properties. The of additional properties. Gets or sets the pattern properties. The pattern properties. Gets or sets a value indicating whether additional properties are allowed. true if additional properties are allowed; otherwise, false. Gets or sets the required property if this property is present. The required property if this property is present. Gets or sets the identity. The identity. Gets or sets the a collection of valid enum values allowed. A collection of valid enum values allowed. Gets or sets a collection of options. A collection of options. Gets or sets disallowed types. The disallow types. Gets or sets the default value. The default value. Gets or sets the extend . The extended . Gets or sets the format. The format. Generates a from a specified . Generate a from the specified type. The type to generate a from. A generated from the specified type. Generate a from the specified type. The type to generate a from. The used to resolve schema references. A generated from the specified type. Generate a from the specified type. The type to generate a from. Specify whether the generated root will be nullable. A generated from the specified type. Generate a from the specified type. The type to generate a from. The used to resolve schema references. Specify whether the generated root will be nullable. A generated from the specified type. Gets or sets how undefined schemas are handled by the serializer. Gets or sets the contract resolver. The contract resolver. Resolves from an id. Initializes a new instance of the class. Gets a for the specified id. The id. A for the specified id. Gets or sets the loaded schemas. The loaded schemas. The value types allowed by the . No type specified. String type. Float type. Integer type. Boolean type. Object type. Array type. Null type. Any type. Specifies the state of the . An exception has been thrown, which has left the in an invalid state. You may call the method to put the in the Closed state. Any other method calls results in an being thrown. The method has been called. An object is being written. A array is being written. A constructor is being written. A property is being written. A write method has not been called. ================================================ FILE: packages/Newtonsoft.Json.4.5.6/lib/sl4/Newtonsoft.Json.xml ================================================ Newtonsoft.Json Represents a BSON Oid (object id). Initializes a new instance of the class. The Oid value. Gets or sets the value of the Oid. The value of the Oid. Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. Initializes a new instance of the class with the specified . Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Skips the children of the current token. Sets the current token. The new token. Sets the current token and value. The new token. The value. Sets the state based on current token type. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Changes the to Closed. Gets the current reader state. The current reader state. Gets or sets a value indicating whether the underlying stream or should be closed when the reader is closed. true to close the underlying stream or when the reader is closed; otherwise false. The default is true. Gets the quotation mark character used to enclose the value of a string. Get or set how time zones are handling when reading JSON. Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . Gets the type of the current JSON token. Gets the text value of the current JSON token. Gets The Common Language Runtime (CLR) type for the current JSON token. Gets the depth of the current token in the JSON document. The depth of the current token in the JSON document. Gets the path of the current JSON token. Gets or sets the culture used when reading JSON. Defaults to . Specifies the state of the reader. The Read method has not been called. The end of the file has been reached successfully. Reader is at a property. Reader is at the start of an object. Reader is in an object. Reader is at the start of an array. Reader is in an array. The Close method has been called. Reader has just read a value. Reader is at the start of a constructor. Reader in a constructor. An error occurred that prevents the read operation from continuing. The end of the file has been reached successfully. Initializes a new instance of the class. The stream. Initializes a new instance of the class. The reader. Initializes a new instance of the class. The stream. if set to true the root object will be read as a JSON array. The used when reading values from BSON. Initializes a new instance of the class. The reader. if set to true the root object will be read as a JSON array. The used when reading values from BSON. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Changes the to Closed. Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary. true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. Gets or sets a value indicating whether the root object will be read as a JSON array. true if the root object will be read as a JSON array; otherwise, false. Gets or sets the used when reading values from BSON. The used when reading values from BSON. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Creates an instance of the JsonWriter class. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Closes this stream and the underlying stream. Writes the beginning of a Json object. Writes the end of a Json object. Writes the beginning of a Json array. Writes the end of an array. Writes the start of a constructor with the given name. The name of the constructor. Writes the end constructor. Writes the property name of a name/value pair on a Json object. The name of the property. Writes the end of the current Json object or array. Writes the current token. The to read the token from. Writes the specified end token. The end token to write. Writes indent characters. Writes the JSON value delimiter. Writes an indent space. Writes a null value. Writes an undefined value. Writes raw JSON without changing the writer's state. The raw JSON to write. Writes raw JSON where a value is expected and updates the writer's state. The raw JSON to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. An error will raised if the value cannot be written as a single JSON token. The value to write. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes out the given white space. The string of white space characters. Gets or sets a value indicating whether the underlying stream or should be closed when the writer is closed. true to close the underlying stream or when the writer is closed; otherwise false. The default is true. Gets the top. The top. Gets the state of the writer. Gets the path of the writer. Indicates how JSON text output is formatted. Get or set how dates are written to JSON text. Get or set how time zones are handling when writing JSON. Initializes a new instance of the class. The stream. Initializes a new instance of the class. The writer. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Writes the end. The token. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes the start of a constructor with the given name. The name of the constructor. Writes raw JSON. The raw JSON to write. Writes raw JSON where a value is expected and updates the writer's state. The raw JSON to write. Writes the beginning of a Json array. Writes the beginning of a Json object. Writes the property name of a name/value pair on a Json object. The name of the property. Closes this stream and the underlying stream. Writes a null value. Writes an undefined value. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value that represents a BSON object id. Writes a BSON regex. The regex pattern. The regex options. Gets or sets the used when writing values to BSON. When set to no conversion will occur. The used when writing values to BSON. Specifies how constructors are used when initializing objects during deserialization by the . First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor. Json.NET will use a non-public default constructor before falling back to a paramatized constructor. Converts a to and from JSON and BSON. Converts an object to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets the of the JSON produced by the JsonConverter. The of the JSON produced by the JsonConverter. Gets a value indicating whether this can read JSON. true if this can read JSON; otherwise, false. Gets a value indicating whether this can write JSON. true if this can write JSON; otherwise, false. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Create a custom object Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Creates an object which will then be populated by the serializer. Type of the object. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets a value indicating whether this can write JSON. true if this can write JSON; otherwise, false. Provides a base class for converting a to and from JSON. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts an ExpandoObject to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets a value indicating whether this can write JSON. true if this can write JSON; otherwise, false. Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Gets or sets the date time styles used when converting a date to and from JSON. The date time styles used when converting a date to and from JSON. Gets or sets the date time format used when converting a date to and from JSON. The date time format used when converting a date to and from JSON. Gets or sets the culture used when converting a date to and from JSON. The culture used when converting a date to and from JSON. Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing property value of the JSON that is being converted. The calling serializer. The object value. Converts a to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts a to and from JSON and BSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts an to and from its name string value. Converts an to and from its name string value. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. A cached representation of the Enum string representation to respect per Enum field name. The type of the Enum. A map of enum field name to either the field name, or the configured enum member name (). Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets or sets a value indicating whether the written enum text should be camel case. true if the written enum text will be camel case; otherwise, false. Converts a to and from a string (e.g. "1.2.3.4"). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing property value of the JSON that is being converted. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Specifies how dates are formatted when writing JSON text. Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. Date formatted strings are not parsed to a date type and are read as strings. Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . Specifies how to treat the time value when converting between string and . Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. Treat as a UTC. If the object represents a local time, it is converted to a UTC. Treat as a local time if a is being converted to a string. If a string is being converted to , convert to a local time if a time zone is specified. Time zone information should be preserved when converting. Indicates the method that will be used during deserialization for locating and loading assemblies. In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method is used to load the assembly. In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the Assembly class is used to load the assembly. Specifies default value handling options for the . Include members where the member value is the same as the member's default value when serializing objects. Included members are written to JSON. Has no effect when deserializing. Ignore members where the member value is the same as the member's default value when serializing objects so that is is not written to JSON, and ignores setting members when the JSON value equals the member's default value. Members with a default value but no JSON will be set to their default value when deserializing. Ignore members where the member value is the same as the member's default value when serializing objects and sets members to their default value when deserializing. Specifies formatting options for the . No special formatting is applied. This is the default. Causes child objects to be indented according to the and settings. Provides an interface to enable a class to return line and position information. Gets a value indicating whether the class can return line information. true if LineNumber and LinePosition can be provided; otherwise, false. Gets the current line number. The current line number or 0 if no line information is available (for example, HasLineInfo returns false). Gets the current line position. The current line position or 0 if no line information is available (for example, HasLineInfo returns false). Instructs the how to serialize the collection. Instructs the how to serialize the object. Initializes a new instance of the class. Initializes a new instance of the class with the specified container Id. The container Id. Gets or sets the id. The id. Gets or sets the title. The title. Gets or sets the description. The description. Gets the collection's items converter. The collection's items converter. Gets or sets a value that indicates whether to preserve object references. true to keep object reference; otherwise, false. The default is false. Gets or sets a value that indicates whether to preserve collection's items references. true to keep collection's items object references; otherwise, false. The default is false. Gets or sets the reference loop handling used when serializing the collection's items. The reference loop handling. Gets or sets the type name handling used when serializing the collection's items. The type name handling. Initializes a new instance of the class. Initializes a new instance of the class with a flag indicating whether the array can contain null items A flag indicating whether the array can contain null items. Initializes a new instance of the class with the specified container Id. The container Id. Gets or sets a value indicating whether null items are allowed in the collection. true if null items are allowed in the collection; otherwise, false. Instructs the to use the specified constructor when deserializing that object. Provides methods for converting between common language runtime types and JSON types. Represents JavaScript's boolean value true as a string. This field is read-only. Represents JavaScript's boolean value false as a string. This field is read-only. Represents JavaScript's null as a string. This field is read-only. Represents JavaScript's undefined as a string. This field is read-only. Represents JavaScript's positive infinity as a string. This field is read-only. Represents JavaScript's negative infinity as a string. This field is read-only. Represents JavaScript's NaN as a string. This field is read-only. Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation using the specified. The value to convert. The format the date will be converted to. The time zone handling when the date is converted to a string. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation using the specified. The value to convert. The format the date will be converted to. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. The string delimiter character. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Serializes the specified object to a JSON string. The object to serialize. A JSON string representation of the object. Serializes the specified object to a JSON string. The object to serialize. Indicates how the output is formatted. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. A collection converters used while serializing. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. Indicates how the output is formatted. A collection converters used while serializing. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. The used to serialize the object. If this is null, default serialization settings will be is used. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. Indicates how the output is formatted. The used to serialize the object. If this is null, default serialization settings will be is used. A JSON string representation of the object. Deserializes the JSON to a .NET object. The JSON to deserialize. The deserialized object from the Json string. Deserializes the JSON to a .NET object. The JSON to deserialize. The used to deserialize the object. If this is null, default serialization settings will be is used. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The JSON to deserialize. The of object being deserialized. The deserialized object from the Json string. Deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The JSON to deserialize. The deserialized object from the Json string. Deserializes the JSON to the given anonymous type. The anonymous type to deserialize to. This can't be specified traditionally and must be infered from the anonymous type passed as a parameter. The JSON to deserialize. The anonymous type object. The deserialized anonymous type from the JSON string. Deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The JSON to deserialize. Converters to use while deserializing. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The object to deserialize. The used to deserialize the object. If this is null, default serialization settings will be is used. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The JSON to deserialize. The type of the object to deserialize. Converters to use while deserializing. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The JSON to deserialize. The type of the object to deserialize to. The used to deserialize the object. If this is null, default serialization settings will be is used. The deserialized object from the JSON string. Populates the object with values from the JSON string. The JSON to populate values from. The target object to populate values onto. Populates the object with values from the JSON string. The JSON to populate values from. The target object to populate values onto. The used to deserialize the object. If this is null, default serialization settings will be is used. Instructs the to use the specified when serializing the member or class. Initializes a new instance of the class. Type of the converter. Gets the type of the converter. The type of the converter. Represents a collection of . Instructs the how to serialize the collection. Initializes a new instance of the class. Initializes a new instance of the class with the specified container Id. The container Id. The exception thrown when an error occurs during Json serialization or deserialization. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Instructs the not to serialize the public field or public read/write property value. Instructs the how to serialize the object. Initializes a new instance of the class. Initializes a new instance of the class with the specified member serialization. The member serialization. Initializes a new instance of the class with the specified container Id. The container Id. Gets or sets the member serialization. The member serialization. Gets or sets a value that indicates whether the object's properties are required. A value indicating whether the object's properties are required. Instructs the to always serialize the member with the specified name. Initializes a new instance of the class. Initializes a new instance of the class with the specified name. Name of the property. Gets or sets the converter used when serializing the property's collection items. The collection's items converter. Gets or sets the null value handling used when serializing this property. The null value handling. Gets or sets the default value handling used when serializing this property. The default value handling. Gets or sets the reference loop handling used when serializing this property. The reference loop handling. Gets or sets the object creation handling used when deserializing this property. The object creation handling. Gets or sets the type name handling used when serializing this property. The type name handling. Gets or sets whether this property's value is serialized as a reference. Whether this property's value is serialized as a reference. Gets or sets the order of serialization and deserialization of a member. The numeric order of serialization or deserialization. Gets or sets a value indicating whether this property is required. A value indicating whether this property is required. Gets or sets the name of the property. The name of the property. Gets or sets the the reference loop handling used when serializing the property's collection items. The collection's items reference loop handling. Gets or sets the the type name handling used when serializing the property's collection items. The collection's items type name handling. Gets or sets whether this property's collection items are serialized as a reference. Whether this property's collection items are serialized as a reference. The exception thrown when an error occurs while reading Json text. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Gets the line number indicating where the error occurred. The line number indicating where the error occurred. Gets the line position indicating where the error occurred. The line position indicating where the error occurred. Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. The exception thrown when an error occurs during Json serialization or deserialization. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Serializes and deserializes objects into and from the JSON format. The enables you to control how objects are encoded into JSON. Initializes a new instance of the class. Creates a new instance using the specified . The settings to be applied to the . A new instance using the specified . Populates the JSON values onto the target object. The that contains the JSON structure to reader values from. The target object to populate values onto. Populates the JSON values onto the target object. The that contains the JSON structure to reader values from. The target object to populate values onto. Deserializes the Json structure contained by the specified . The that contains the JSON structure to deserialize. The being deserialized. Deserializes the Json structure contained by the specified into an instance of the specified type. The containing the object. The of object being deserialized. The instance of being deserialized. Deserializes the Json structure contained by the specified into an instance of the specified type. The containing the object. The type of the object to deserialize. The instance of being deserialized. Deserializes the Json structure contained by the specified into an instance of the specified type. The containing the object. The of object being deserialized. The instance of being deserialized. Serializes the specified and writes the Json structure to a Stream using the specified . The used to write the Json structure. The to serialize. Serializes the specified and writes the Json structure to a Stream using the specified . The used to write the Json structure. The to serialize. Occurs when the errors during serialization and deserialization. Gets or sets the used by the serializer when resolving references. Gets or sets the used by the serializer when resolving type names. Gets or sets how type name writing and reading is handled by the serializer. Gets or sets how a type name assembly is written and resolved by the serializer. The type name assembly format. Gets or sets how object references are preserved by the serializer. Get or set how reference loops (e.g. a class referencing itself) is handled. Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. Get or set how null values are handled during serialization and deserialization. Get or set how null default are handled during serialization and deserialization. Gets or sets how objects are created during deserialization. The object creation handling. Gets or sets how constructors are used during deserialization. The constructor handling. Gets a collection that will be used during serialization. Collection that will be used during serialization. Gets or sets the contract resolver used by the serializer when serializing .NET objects to JSON and vice versa. Gets or sets the used by the serializer when invoking serialization callback methods. The context. Indicates how JSON text output is formatted. Get or set how dates are written to JSON text. Get or set how time zones are handling during serialization and deserialization. Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. Gets or sets the culture used when reading JSON. Defaults to . Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. true if there will be a check for additional JSON content after deserializing an object; otherwise, false. Specifies the settings on a object. Initializes a new instance of the class. Gets or sets how reference loops (e.g. a class referencing itself) is handled. Reference loop handling. Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. Missing member handling. Gets or sets how objects are created during deserialization. The object creation handling. Gets or sets how null values are handled during serialization and deserialization. Null value handling. Gets or sets how null default are handled during serialization and deserialization. The default value handling. Gets or sets a collection that will be used during serialization. The converters. Gets or sets how object references are preserved by the serializer. The preserve references handling. Gets or sets how type name writing and reading is handled by the serializer. The type name handling. Gets or sets how a type name assembly is written and resolved by the serializer. The type name assembly format. Gets or sets how constructors are used during deserialization. The constructor handling. Gets or sets the contract resolver used by the serializer when serializing .NET objects to JSON and vice versa. The contract resolver. Gets or sets the used by the serializer when resolving references. The reference resolver. Gets or sets the used by the serializer when resolving type names. The binder. Gets or sets the error handler called during serialization and deserialization. The error handler called during serialization and deserialization. Gets or sets the used by the serializer when invoking serialization callback methods. The context. Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . Indicates how JSON text output is formatted. Get or set how dates are written to JSON text. Get or set how time zones are handling during serialization and deserialization. Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. Gets or sets the culture used when reading JSON. Defaults to . Gets a value indicating whether there will be a check for additional content after deserializing an object. true if there will be a check for additional content after deserializing an object; otherwise, false. Represents a reader that provides fast, non-cached, forward-only access to JSON text data. Initializes a new instance of the class with the specified . The TextReader containing the XML data to read. Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Changes the state to closed. Gets a value indicating whether the class can return line information. true if LineNumber and LinePosition can be provided; otherwise, false. Gets the current line number. The current line number or 0 if no line information is available (for example, HasLineInfo returns false). Gets the current line position. The current line position or 0 if no line information is available (for example, HasLineInfo returns false). Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Creates an instance of the JsonWriter class using the specified . The TextWriter to write to. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Closes this stream and the underlying stream. Writes the beginning of a Json object. Writes the beginning of a Json array. Writes the start of a constructor with the given name. The name of the constructor. Writes the specified end token. The end token to write. Writes the property name of a name/value pair on a Json object. The name of the property. Writes indent characters. Writes the JSON value delimiter. Writes an indent space. Writes a null value. Writes an undefined value. Writes raw JSON. The raw JSON to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes out the given white space. The string of white space characters. Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. Gets or sets which character to use to quote attribute values. Gets or sets which character to use for indenting when is set to Formatting.Indented. Gets or sets a value indicating whether object names will be surrounded with quotes. Specifies the type of Json token. This is returned by the if a method has not been called. An object start token. An array start token. A constructor start token. An object property name. A comment. Raw JSON. An integer. A float. A string. A boolean. A null token. An undefined token. An object end token. An array end token. A constructor end token. A Date. Byte data. Represents a reader that provides validation. Initializes a new instance of the class that validates the content returned from the given . The to read from while validating. Reads the next JSON token from the stream as a . A . Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. Reads the next JSON token from the stream as a . A . Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Sets an event handler for receiving schema validation errors. Gets the text value of the current Json token. Gets the depth of the current token in the JSON document. The depth of the current token in the JSON document. Gets the path of the current JSON token. Gets the quotation mark character used to enclose the value of a string. Gets the type of the current Json token. Gets the Common Language Runtime (CLR) type for the current Json token. Gets or sets the schema. The schema. Gets the used to construct this . The specified in the constructor. The exception thrown when an error occurs while reading Json text. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. Contains the LINQ to JSON extension methods. Returns a collection of tokens that contains the ancestors of every token in the source collection. The type of the objects in source, constrained to . An of that contains the source collection. An of that contains the ancestors of every node in the source collection. Returns a collection of tokens that contains the descendants of every token in the source collection. The type of the objects in source, constrained to . An of that contains the source collection. An of that contains the descendants of every node in the source collection. Returns a collection of child properties of every object in the source collection. An of that contains the source collection. An of that contains the properties of every object in the source collection. Returns a collection of child values of every object in the source collection with the given key. An of that contains the source collection. The token key. An of that contains the values of every node in the source collection with the given key. Returns a collection of child values of every object in the source collection. An of that contains the source collection. An of that contains the values of every node in the source collection. Returns a collection of converted child values of every object in the source collection with the given key. The type to convert the values to. An of that contains the source collection. The token key. An that contains the converted values of every node in the source collection with the given key. Returns a collection of converted child values of every object in the source collection. The type to convert the values to. An of that contains the source collection. An that contains the converted values of every node in the source collection. Converts the value. The type to convert the value to. A cast as a of . A converted value. Converts the value. The source collection type. The type to convert the value to. A cast as a of . A converted value. Returns a collection of child tokens of every array in the source collection. The source collection type. An of that contains the source collection. An of that contains the values of every node in the source collection. Returns a collection of converted child tokens of every array in the source collection. An of that contains the source collection. The type to convert the values to. The source collection type. An that contains the converted values of every node in the source collection. Returns the input typed as . An of that contains the source collection. The input typed as . Returns the input typed as . The source collection type. An of that contains the source collection. The input typed as . Represents a collection of objects. The type of token Gets the with the specified key. Represents a JSON array. Represents a token that can contain other tokens. Represents an abstract JSON token. Compares the values of two tokens, including the values of all descendant tokens. The first to compare. The second to compare. true if the tokens are equal; otherwise false. Adds the specified content immediately after this token. A content object that contains simple content or a collection of content objects to be added after this token. Adds the specified content immediately before this token. A content object that contains simple content or a collection of content objects to be added before this token. Returns a collection of the ancestor tokens of this token. A collection of the ancestor tokens of this token. Returns a collection of the sibling tokens after this token, in document order. A collection of the sibling tokens after this tokens, in document order. Returns a collection of the sibling tokens before this token, in document order. A collection of the sibling tokens before this token, in document order. Gets the with the specified key converted to the specified type. The type to convert the token to. The token key. The converted token value. Returns a collection of the child tokens of this token, in document order. An of containing the child tokens of this , in document order. Returns a collection of the child tokens of this token, in document order, filtered by the specified type. The type to filter the child tokens on. A containing the child tokens of this , in document order. Returns a collection of the child values of this token, in document order. The type to convert the values to. A containing the child values of this , in document order. Removes this token from its parent. Replaces this token with the specified token. The value. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Returns the indented JSON for this token. The indented JSON for this token. Returns the JSON for this token using the given formatting and converters. Indicates how the output is formatted. A collection of which will be used when writing the token. The JSON for this token using the given formatting and converters. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Creates an for this token. An that can be used to read this token and its descendants. Creates a from an object. The object that will be used to create . A with the value of the specified object Creates a from an object using the specified . The object that will be used to create . The that will be used when reading the object. A with the value of the specified object Creates the specified .NET type from the . The new object created from the JSON value. Creates the specified .NET type from the using the specified . The that will be used when creating the object. The new object created from the JSON value. Creates a from a . An positioned at the token to read into this . An that contains the token and its descendant tokens that were read from the reader. The runtime type of the token is determined by the token type of the first token encountered in the reader. Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Creates a from a . An positioned at the token to read into this . An that contains the token and its descendant tokens that were read from the reader. The runtime type of the token is determined by the token type of the first token encountered in the reader. Selects the token that matches the object path. The object path from the current to the to be returned. This must be a string of property names or array indexes separated by periods, such as Tables[0].DefaultView[0].Price in C# or Tables(0).DefaultView(0).Price in Visual Basic. The that matches the object path or a null reference if no matching token is found. Selects the token that matches the object path. The object path from the current to the to be returned. This must be a string of property names or array indexes separated by periods, such as Tables[0].DefaultView[0].Price in C# or Tables(0).DefaultView(0).Price in Visual Basic. A flag to indicate whether an error should be thrown if no token is found. The that matches the object path. Returns the responsible for binding operations performed on this object. The expression tree representation of the runtime value. The to bind this object. Returns the responsible for binding operations performed on this object. The expression tree representation of the runtime value. The to bind this object. Creates a new instance of the . All child tokens are recursively cloned. A new instance of the . Gets a comparer that can compare two tokens for value equality. A that can compare two nodes for value equality. Gets or sets the parent. The parent. Gets the root of this . The root of this . Gets the node type for this . The type. Gets a value indicating whether this token has childen tokens. true if this token has child values; otherwise, false. Gets the next sibling token of this node. The that contains the next sibling token. Gets the previous sibling token of this node. The that contains the previous sibling token. Gets the with the specified key. The with the specified key. Get the first child token of this token. A containing the first child token of the . Get the last child token of this token. A containing the last child token of the . Raises the event. The instance containing the event data. Returns a collection of the child tokens of this token, in document order. An of containing the child tokens of this , in document order. Returns a collection of the child values of this token, in document order. The type to convert the values to. A containing the child values of this , in document order. Returns a collection of the descendant tokens for this token in document order. An containing the descendant tokens of the . Adds the specified content as children of this . The content to be added. Adds the specified content as the first children of this . The content to be added. Creates an that can be used to add tokens to the . An that is ready to have content written to it. Replaces the children nodes of this token with the specified content. The content. Removes the child nodes from this token. Occurs when the items list of the collection has changed, or the collection is reset. Gets the container's children tokens. The container's children tokens. Gets a value indicating whether this token has childen tokens. true if this token has child values; otherwise, false. Get the first child token of this token. A containing the first child token of the . Get the last child token of this token. A containing the last child token of the . Gets the count of child JSON tokens. The count of child JSON tokens Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified content. The contents of the array. Initializes a new instance of the class with the specified content. The contents of the array. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Creates a from an object. The object that will be used to create . A with the values of the specified object Creates a from an object. The object that will be used to create . The that will be used to read the object. A with the values of the specified object Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Determines the index of a specific item in the . The object to locate in the . The index of if found in the list; otherwise, -1. Inserts an item to the at the specified index. The zero-based index at which should be inserted. The object to insert into the . is not a valid index in the . The is read-only. Removes the item at the specified index. The zero-based index of the item to remove. is not a valid index in the . The is read-only. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Gets the container's children tokens. The container's children tokens. Gets the node type for this . The type. Gets the with the specified key. The with the specified key. Gets or sets the at the specified index. Represents a JSON constructor. Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified name and content. The constructor name. The contents of the constructor. Initializes a new instance of the class with the specified name and content. The constructor name. The contents of the constructor. Initializes a new instance of the class with the specified name. The constructor name. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Gets the container's children tokens. The container's children tokens. Gets or sets the name of this constructor. The constructor name. Gets the node type for this . The type. Gets the with the specified key. The with the specified key. Represents a collection of objects. The type of token An empty collection of objects. Initializes a new instance of the struct. The enumerable. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the with the specified key. Represents a JSON object. Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified content. The contents of the object. Initializes a new instance of the class with the specified content. The contents of the object. Gets an of this object's properties. An of this object's properties. Gets a the specified name. The property name. A with the specified name or null. Gets an of this object's property values. An of this object's property values. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Creates a from an object. The object that will be used to create . A with the values of the specified object Creates a from an object. The object that will be used to create . The that will be used to read the object. A with the values of the specified object Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Adds the specified property name. Name of the property. The value. Removes the property with the specified name. Name of the property. true if item was successfully removed; otherwise, false. Tries the get value. Name of the property. The value. true if a value was successfully retrieved; otherwise, false. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Raises the event with the provided arguments. Name of the property. Returns the responsible for binding operations performed on this object. The expression tree representation of the runtime value. The to bind this object. Gets the container's children tokens. The container's children tokens. Occurs when a property value changes. Gets the node type for this . The type. Gets the with the specified key. The with the specified key. Gets or sets the with the specified property name. Represents a JSON property. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class. The property name. The property content. Initializes a new instance of the class. The property name. The property content. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Gets the container's children tokens. The container's children tokens. Gets the property name. The property name. Gets or sets the property value. The property value. Gets the node type for this . The type. Represents a raw JSON string. Represents a value in JSON (string, integer, date, etc). Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Creates a comment with the given value. The value. A comment with the given value. Creates a string with the given value. The value. A string with the given value. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Indicates whether the current object is equal to another object of the same type. true if the current object is equal to the parameter; otherwise, false. An object to compare with this object. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Returns the responsible for binding operations performed on this object. The expression tree representation of the runtime value. The to bind this object. Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. An object to compare with this instance. A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance is less than . Zero This instance is equal to . Greater than zero This instance is greater than . is not the same type as this instance. Gets a value indicating whether this token has childen tokens. true if this token has child values; otherwise, false. Gets the node type for this . The type. Gets or sets the underlying token value. The underlying token value. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class. The raw json. Creates an instance of with the content of the reader's current token. The reader. An instance of with the content of the reader's current token. Compares tokens to determine whether they are equal. Determines whether the specified objects are equal. The first object of type to compare. The second object of type to compare. true if the specified objects are equal; otherwise, false. Returns a hash code for the specified object. The for which a hash code is to be returned. A hash code for the specified object. The type of is a reference type and is null. Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. Initializes a new instance of the class. The token to read from. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Specifies the type of token. No token type has been set. A JSON object. A JSON array. A JSON constructor. A JSON object property. A comment. An integer value. A float value. A string value. A boolean value. A null value. An undefined value. A date value. A raw JSON value. A collection of bytes value. A Guid value. A Uri value. A TimeSpan value. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Initializes a new instance of the class writing to the given . The container being written to. Initializes a new instance of the class. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Closes this stream and the underlying stream. Writes the beginning of a Json object. Writes the beginning of a Json array. Writes the start of a constructor with the given name. The name of the constructor. Writes the end. The token. Writes the property name of a name/value pair on a Json object. The name of the property. Writes a null value. Writes an undefined value. Writes raw JSON. The raw JSON to write. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Gets the token being writen. The token being writen. Specifies the member serialization options for the . All public members are serialized by default. Members can be excluded using or . This is the default member serialization mode. Only members must be marked with or are serialized. This member serialization mode can also be set by marking the class with . All public and private fields are serialized. Members can be excluded using or . This member serialization mode can also be set by marking the class with and setting IgnoreSerializableAttribute on to false. Specifies missing member handling options for the . Ignore a missing member and do not attempt to deserialize it. Throw a when a missing member is encountered during deserialization. Specifies null value handling options for the . Include null values when serializing and deserializing objects. Ignore null values when serializing and deserializing objects. Specifies how object creation is handled by the . Reuse existing objects, create new objects when needed. Only reuse existing objects. Always create new objects. Specifies reference handling options for the . Do not preserve references when serializing types. Preserve references when serializing into a JSON object structure. Preserve references when serializing into a JSON array structure. Preserve references when serializing. Specifies reference loop handling options for the . Throw a when a loop is encountered. Ignore loop references and do not serialize. Serialize loop references. Indicating whether a property is required. The property is not required. The default state. The property must be defined in JSON but can be a null value. The property must be defined in JSON and cannot be a null value. Allows users to control class loading and mandate what class to load. When overridden in a derived class, controls the binding of a serialized object to a type. Specifies the name of the serialized object. Specifies the name of the serialized object The type of the object the formatter creates a new instance of. When overridden in a derived class, controls the binding of a serialized object to a type. The type of the object the formatter creates a new instance of. Specifies the name of the serialized object. Specifies the name of the serialized object. Resolves member mappings for a type, camel casing property names. Used by to resolves a for a given . Used by to resolves a for a given . Resolves the contract for a given type. The type to resolve a contract for. The contract for a given type. Initializes a new instance of the class. Initializes a new instance of the class. If set to true the will use a cached shared with other resolvers of the same type. Sharing the cache will significantly performance because expensive reflection will only happen once but could cause unexpected behavior if different instances of the resolver are suppose to produce different results. When set to false it is highly recommended to reuse instances with the . Resolves the contract for a given type. The type to resolve a contract for. The contract for a given type. Gets the serializable members for the type. The type to get serializable members for. The serializable members for the type. Creates a for the given type. Type of the object. A for the given type. Creates the constructor parameters. The constructor to create properties for. The type's member properties. Properties for the given . Creates a for the given . The matching member property. The constructor parameter. A created for the given . Resolves the default for the contract. Type of the object. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Determines which contract type is created for the given type. Type of the object. A for the given type. Creates properties for the given . The type to create properties for. /// The member serialization mode for the type. Properties for the given . Creates the used by the serializer to get and set values from a member. The member. The used by the serializer to get and set values from a member. Creates a for the given . The member's parent . The member to create a for. A created for the given . Resolves the name of the property. Name of the property. Name of the property. Gets the resolved name of the property. Name of the property. Name of the property. Gets a value indicating whether members are being get and set using dynamic code generation. This value is determined by the runtime permissions available. true if using dynamic code generation; otherwise, false. Gets or sets the default members search flags. The default members search flags. Gets or sets a value indicating whether compiler generated members should be serialized. true if serialized compiler generated members; otherwise, false. Initializes a new instance of the class. Resolves the name of the property. Name of the property. The property name camel cased. Used to resolve references when serializing and deserializing JSON by the . Resolves a reference to its object. The serialization context. The reference to resolve. The object that Gets the reference for the sepecified object. The serialization context. The object to get a reference for. The reference to the object. Determines whether the specified object is referenced. The serialization context. The object to test for a reference. true if the specified object is referenced; otherwise, false. Adds a reference to the specified object. The serialization context. The reference. The object to reference. The default serialization binder used when resolving and loading classes from type names. When overridden in a derived class, controls the binding of a serialized object to a type. Specifies the name of the serialized object. Specifies the name of the serialized object. The type of the object the formatter creates a new instance of. When overridden in a derived class, controls the binding of a serialized object to a type. The type of the object the formatter creates a new instance of. Specifies the name of the serialized object. Specifies the name of the serialized object. Provides information surrounding an error. Gets or sets the error. The error. Gets the original object that caused the error. The original object that caused the error. Gets the member that caused the error. The member that caused the error. Gets the path of the JSON location where the error occurred. The path of the JSON location where the error occurred. Gets or sets a value indicating whether this is handled. true if handled; otherwise, false. Provides data for the Error event. Initializes a new instance of the class. The current object. The error context. Gets the current object the error event is being raised against. The current object the error event is being raised against. Gets the error context. The error context. Provides methods to get and set values. Sets the value. The target to set the value on. The value to set on the target. Gets the value. The target to get the value from. The value. Contract details for a used by the . Contract details for a used by the . Contract details for a used by the . Gets the underlying type for the contract. The underlying type for the contract. Gets or sets the type created during deserialization. The type created during deserialization. Gets or sets whether this type contract is serialized as a reference. Whether this type contract is serialized as a reference. Gets or sets the default for this contract. The converter. Gets or sets the method called immediately after deserialization of the object. The method called immediately after deserialization of the object. Gets or sets the method called during deserialization of the object. The method called during deserialization of the object. Gets or sets the method called after serialization of the object graph. The method called after serialization of the object graph. Gets or sets the method called before serialization of the object. The method called before serialization of the object. Gets or sets the default creator method used to create the object. The default creator method used to create the object. Gets or sets a value indicating whether the default creator is non public. true if the default object creator is non-public; otherwise, false. Gets or sets the method called when an error is thrown during the serialization of the object. The method called when an error is thrown during the serialization of the object. Initializes a new instance of the class. The underlying type for the contract. Gets or sets the default collection items . The converter. Gets or sets a value indicating whether the collection items preserve object references. true if collection items preserve object references; otherwise, false. Gets or sets the collection item reference loop handling. The reference loop handling. Gets or sets the collection item type name handling. The type name handling. Initializes a new instance of the class. The underlying type for the contract. Gets the of the collection items. The of the collection items. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets or sets the property name resolver. The property name resolver. Gets the of the dictionary keys. The of the dictionary keys. Gets the of the dictionary values. The of the dictionary values. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets the object's properties. The object's properties. Gets or sets the property name resolver. The property name resolver. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets or sets the object member serialization. The member object serialization. Gets or sets a value that indicates whether the object's properties are required. A value indicating whether the object's properties are required. Gets the object's properties. The object's properties. Gets the constructor parameters required for any non-default constructor Gets or sets the override constructor used to create the object. This is set when a constructor is marked up using the JsonConstructor attribute. The override constructor. Gets or sets the parametrized constructor used to create the object. The parametrized constructor. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Maps a JSON property to a .NET member or constructor parameter. Returns a that represents this instance. A that represents this instance. Gets or sets the name of the property. The name of the property. Gets or sets the type that declared this property. The type that declared this property. Gets or sets the order of serialization and deserialization of a member. The numeric order of serialization or deserialization. Gets or sets the name of the underlying member or parameter. The name of the underlying member or parameter. Gets the that will get and set the during serialization. The that will get and set the during serialization. Gets or sets the type of the property. The type of the property. Gets or sets the for the property. If set this converter takes presidence over the contract converter for the property type. The converter. Gets the member converter. The member converter. Gets a value indicating whether this is ignored. true if ignored; otherwise, false. Gets a value indicating whether this is readable. true if readable; otherwise, false. Gets a value indicating whether this is writable. true if writable; otherwise, false. Gets the default value. The default value. Gets a value indicating whether this is required. A value indicating whether this is required. Gets a value indicating whether this property preserves object references. true if this instance is reference; otherwise, false. Gets the property null value handling. The null value handling. Gets the property default value handling. The default value handling. Gets the property reference loop handling. The reference loop handling. Gets the property object creation handling. The object creation handling. Gets or sets the type name handling. The type name handling. Gets or sets a predicate used to determine whether the property should be serialize. A predicate used to determine whether the property should be serialize. Gets or sets a predicate used to determine whether the property should be serialized. A predicate used to determine whether the property should be serialized. Gets or sets an action used to set whether the property has been deserialized. An action used to set whether the property has been deserialized. Gets or sets the converter used when serializing the property's collection items. The collection's items converter. Gets or sets whether this property's collection items are serialized as a reference. Whether this property's collection items are serialized as a reference. Gets or sets the the type name handling used when serializing the property's collection items. The collection's items type name handling. Gets or sets the the reference loop handling used when serializing the property's collection items. The collection's items reference loop handling. A collection of objects. Initializes a new instance of the class. The type. When implemented in a derived class, extracts the key from the specified element. The element from which to extract the key. The key for the specified element. Adds a object. The property to add to the collection. Gets the closest matching object. First attempts to get an exact case match of propertyName and then a case insensitive match. Name of the property. A matching property if found. Gets a property by property name. The name of the property to get. Type property name string comparison. A matching property if found. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Represents a method that constructs an object. When applied to a method, specifies that the method is called when an error occurs serializing an object. Get and set values for a using reflection. Initializes a new instance of the class. The member info. Sets the value. The target to set the value on. The value to set on the target. Gets the value. The target to get the value from. The value. Specifies type name handling options for the . Do not include the .NET type name when serializing types. Include the .NET type name when serializing into a JSON object structure. Include the .NET type name when serializing into a JSON array structure. Always include the .NET type name when serializing. Include the .NET type name when the type of the object being serialized is not the same as its declared type. Determines whether the collection is null or empty. The collection. true if the collection is null or empty; otherwise, false. Adds the elements of the specified collection to the specified generic IList. The list to add to. The collection of elements to add. Returns the index of the first occurrence in a sequence by using a specified IEqualityComparer. The type of the elements of source. A sequence in which to locate a value. The object to locate in the sequence An equality comparer to compare values. The zero-based index of the first occurrence of value within the entire sequence, if found; otherwise, –1. Converts the value to the specified type. The value to convert. The culture to use when converting. The type to convert the value to. The converted type. Converts the value to the specified type. The value to convert. The culture to use when converting. The type to convert the value to. The converted value if the conversion was successful or the default value of T if it failed. true if initialValue was converted successfully; otherwise, false. Converts the value to the specified type. If the value is unable to be converted, the value is checked whether it assignable to the specified type. The value to convert. The culture to use when converting. The type to convert or cast the value to. The converted type. If conversion was unsuccessful, the initial value is returned if assignable to the target type. Helper method for generating a MetaObject which calls a specific method on Dynamic that returns a result Helper method for generating a MetaObject which calls a specific method on Dynamic, but uses one of the arguments for the result. Helper method for generating a MetaObject which calls a specific method on Dynamic, but uses one of the arguments for the result. Returns a Restrictions object which includes our current restrictions merged with a restriction limiting our type Gets a dictionary of the names and values of an Enum type. Gets a dictionary of the names and values of an Enum type. The enum type to get names and values for. Gets the type of the typed collection's items. The type. The type of the typed collection's items. Gets the member's underlying type. The member. The underlying type of the member. Determines whether the member is an indexed property. The member. true if the member is an indexed property; otherwise, false. Determines whether the property is an indexed property. The property. true if the property is an indexed property; otherwise, false. Gets the member's value on the object. The member. The target object. The member's value on the object. Sets the member's value on the target object. The member. The target. The value. Determines whether the specified MemberInfo can be read. The MemberInfo to determine whether can be read. /// if set to true then allow the member to be gotten non-publicly. true if the specified MemberInfo can be read; otherwise, false. Determines whether the specified MemberInfo can be set. The MemberInfo to determine whether can be set. if set to true then allow the member to be set non-publicly. if set to true then allow the member to be set if read-only. true if the specified MemberInfo can be set; otherwise, false. Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. Determines whether the string is all white space. Empty string will return false. The string to test whether it is all white space. true if the string is all white space; otherwise, false. Nulls an empty string. The string. Null if the string was null, otherwise the string unchanged. Contains the JSON schema extension methods. Determines whether the is valid. The source to test. The schema to test with. true if the specified is valid; otherwise, false. Determines whether the is valid. The source to test. The schema to test with. When this method returns, contains any error messages generated while validating. true if the specified is valid; otherwise, false. Validates the specified . The source to test. The schema to test with. Validates the specified . The source to test. The schema to test with. The validation event handler. Returns detailed information about the schema exception. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Gets the line number indicating where the error occurred. The line number indicating where the error occurred. Gets the line position indicating where the error occurred. The line position indicating where the error occurred. Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. Specifies undefined schema Id handling options for the . Do not infer a schema Id. Use the .NET type name as the schema Id. Use the assembly qualified .NET type name as the schema Id. Returns detailed information related to the . Gets the associated with the validation error. The JsonSchemaException associated with the validation error. Gets the path of the JSON location where the validation error occurred. The path of the JSON location where the validation error occurred. Gets the text description corresponding to the validation error. The text description. Represents the callback method that will handle JSON schema validation events and the . An in-memory representation of a JSON Schema. Initializes a new instance of the class. Reads a from the specified . The containing the JSON Schema to read. The object representing the JSON Schema. Reads a from the specified . The containing the JSON Schema to read. The to use when resolving schema references. The object representing the JSON Schema. Load a from a string that contains schema JSON. A that contains JSON. A populated from the string that contains JSON. Parses the specified json. The json. The resolver. A populated from the string that contains JSON. Writes this schema to a . A into which this method will write. Writes this schema to a using the specified . A into which this method will write. The resolver used. Returns a that represents the current . A that represents the current . Gets or sets the id. Gets or sets the title. Gets or sets whether the object is required. Gets or sets whether the object is read only. Gets or sets whether the object is visible to users. Gets or sets whether the object is transient. Gets or sets the description of the object. Gets or sets the types of values allowed by the object. The type. Gets or sets the pattern. The pattern. Gets or sets the minimum length. The minimum length. Gets or sets the maximum length. The maximum length. Gets or sets a number that the value should be divisble by. A number that the value should be divisble by. Gets or sets the minimum. The minimum. Gets or sets the maximum. The maximum. Gets or sets a flag indicating whether the value can not equal the number defined by the "minimum" attribute. A flag indicating whether the value can not equal the number defined by the "minimum" attribute. Gets or sets a flag indicating whether the value can not equal the number defined by the "maximum" attribute. A flag indicating whether the value can not equal the number defined by the "maximum" attribute. Gets or sets the minimum number of items. The minimum number of items. Gets or sets the maximum number of items. The maximum number of items. Gets or sets the of items. The of items. Gets or sets the of properties. The of properties. Gets or sets the of additional properties. The of additional properties. Gets or sets the pattern properties. The pattern properties. Gets or sets a value indicating whether additional properties are allowed. true if additional properties are allowed; otherwise, false. Gets or sets the required property if this property is present. The required property if this property is present. Gets or sets the identity. The identity. Gets or sets the a collection of valid enum values allowed. A collection of valid enum values allowed. Gets or sets a collection of options. A collection of options. Gets or sets disallowed types. The disallow types. Gets or sets the default value. The default value. Gets or sets the extend . The extended . Gets or sets the format. The format. Generates a from a specified . Generate a from the specified type. The type to generate a from. A generated from the specified type. Generate a from the specified type. The type to generate a from. The used to resolve schema references. A generated from the specified type. Generate a from the specified type. The type to generate a from. Specify whether the generated root will be nullable. A generated from the specified type. Generate a from the specified type. The type to generate a from. The used to resolve schema references. Specify whether the generated root will be nullable. A generated from the specified type. Gets or sets how undefined schemas are handled by the serializer. Gets or sets the contract resolver. The contract resolver. Resolves from an id. Initializes a new instance of the class. Gets a for the specified id. The id. A for the specified id. Gets or sets the loaded schemas. The loaded schemas. The value types allowed by the . No type specified. String type. Float type. Integer type. Boolean type. Object type. Array type. Null type. Any type. Specifies the state of the . An exception has been thrown, which has left the in an invalid state. You may call the method to put the in the Closed state. Any other method calls results in an being thrown. The method has been called. An object is being written. A array is being written. A constructor is being written. A property is being written. A write method has not been called. ================================================ FILE: packages/Newtonsoft.Json.4.5.6/lib/sl4-windowsphone71/Newtonsoft.Json.xml ================================================ Newtonsoft.Json Represents a BSON Oid (object id). Initializes a new instance of the class. The Oid value. Gets or sets the value of the Oid. The value of the Oid. Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. Initializes a new instance of the class with the specified . Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Skips the children of the current token. Sets the current token. The new token. Sets the current token and value. The new token. The value. Sets the state based on current token type. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Changes the to Closed. Gets the current reader state. The current reader state. Gets or sets a value indicating whether the underlying stream or should be closed when the reader is closed. true to close the underlying stream or when the reader is closed; otherwise false. The default is true. Gets the quotation mark character used to enclose the value of a string. Get or set how time zones are handling when reading JSON. Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . Gets the type of the current JSON token. Gets the text value of the current JSON token. Gets The Common Language Runtime (CLR) type for the current JSON token. Gets the depth of the current token in the JSON document. The depth of the current token in the JSON document. Gets the path of the current JSON token. Gets or sets the culture used when reading JSON. Defaults to . Specifies the state of the reader. The Read method has not been called. The end of the file has been reached successfully. Reader is at a property. Reader is at the start of an object. Reader is in an object. Reader is at the start of an array. Reader is in an array. The Close method has been called. Reader has just read a value. Reader is at the start of a constructor. Reader in a constructor. An error occurred that prevents the read operation from continuing. The end of the file has been reached successfully. Initializes a new instance of the class. The stream. Initializes a new instance of the class. The reader. Initializes a new instance of the class. The stream. if set to true the root object will be read as a JSON array. The used when reading values from BSON. Initializes a new instance of the class. The reader. if set to true the root object will be read as a JSON array. The used when reading values from BSON. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Changes the to Closed. Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary. true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. Gets or sets a value indicating whether the root object will be read as a JSON array. true if the root object will be read as a JSON array; otherwise, false. Gets or sets the used when reading values from BSON. The used when reading values from BSON. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Creates an instance of the JsonWriter class. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Closes this stream and the underlying stream. Writes the beginning of a Json object. Writes the end of a Json object. Writes the beginning of a Json array. Writes the end of an array. Writes the start of a constructor with the given name. The name of the constructor. Writes the end constructor. Writes the property name of a name/value pair on a Json object. The name of the property. Writes the end of the current Json object or array. Writes the current token. The to read the token from. Writes the specified end token. The end token to write. Writes indent characters. Writes the JSON value delimiter. Writes an indent space. Writes a null value. Writes an undefined value. Writes raw JSON without changing the writer's state. The raw JSON to write. Writes raw JSON where a value is expected and updates the writer's state. The raw JSON to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. An error will raised if the value cannot be written as a single JSON token. The value to write. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes out the given white space. The string of white space characters. Gets or sets a value indicating whether the underlying stream or should be closed when the writer is closed. true to close the underlying stream or when the writer is closed; otherwise false. The default is true. Gets the top. The top. Gets the state of the writer. Gets the path of the writer. Indicates how JSON text output is formatted. Get or set how dates are written to JSON text. Get or set how time zones are handling when writing JSON. Initializes a new instance of the class. The stream. Initializes a new instance of the class. The writer. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Writes the end. The token. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes the start of a constructor with the given name. The name of the constructor. Writes raw JSON. The raw JSON to write. Writes raw JSON where a value is expected and updates the writer's state. The raw JSON to write. Writes the beginning of a Json array. Writes the beginning of a Json object. Writes the property name of a name/value pair on a Json object. The name of the property. Closes this stream and the underlying stream. Writes a null value. Writes an undefined value. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value that represents a BSON object id. Writes a BSON regex. The regex pattern. The regex options. Gets or sets the used when writing values to BSON. When set to no conversion will occur. The used when writing values to BSON. Specifies how constructors are used when initializing objects during deserialization by the . First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor. Json.NET will use a non-public default constructor before falling back to a paramatized constructor. Converts a to and from JSON and BSON. Converts an object to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets the of the JSON produced by the JsonConverter. The of the JSON produced by the JsonConverter. Gets a value indicating whether this can read JSON. true if this can read JSON; otherwise, false. Gets a value indicating whether this can write JSON. true if this can write JSON; otherwise, false. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Create a custom object Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Creates an object which will then be populated by the serializer. Type of the object. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets a value indicating whether this can write JSON. true if this can write JSON; otherwise, false. Provides a base class for converting a to and from JSON. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Gets or sets the date time styles used when converting a date to and from JSON. The date time styles used when converting a date to and from JSON. Gets or sets the date time format used when converting a date to and from JSON. The date time format used when converting a date to and from JSON. Gets or sets the culture used when converting a date to and from JSON. The culture used when converting a date to and from JSON. Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing property value of the JSON that is being converted. The calling serializer. The object value. Converts a to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts a to and from JSON and BSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts an to and from its name string value. Converts an to and from its name string value. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. A cached representation of the Enum string representation to respect per Enum field name. The type of the Enum. A map of enum field name to either the field name, or the configured enum member name (). Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets or sets a value indicating whether the written enum text should be camel case. true if the written enum text will be camel case; otherwise, false. Converts a to and from a string (e.g. "1.2.3.4"). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing property value of the JSON that is being converted. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts XML to and from JSON. Writes the JSON representation of the object. The to write to. The calling serializer. The value. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Checks if the attributeName is a namespace attribute. Attribute name to test. The attribute name prefix if it has one, otherwise an empty string. True if attribute name is for a namespace attribute, otherwise false. Determines whether this instance can convert the specified value type. Type of the value. true if this instance can convert the specified value type; otherwise, false. Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements. The name of the deserialize root element. Gets or sets a flag to indicate whether to write the Json.NET array attribute. This attribute helps preserve arrays when converting the written XML back to JSON. true if the array attibute is written to the XML; otherwise, false. Gets or sets a value indicating whether to write the root JSON object. true if the JSON root object is omitted; otherwise, false. Specifies how dates are formatted when writing JSON text. Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. Date formatted strings are not parsed to a date type and are read as strings. Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . Specifies how to treat the time value when converting between string and . Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. Treat as a UTC. If the object represents a local time, it is converted to a UTC. Treat as a local time if a is being converted to a string. If a string is being converted to , convert to a local time if a time zone is specified. Time zone information should be preserved when converting. Indicates the method that will be used during deserialization for locating and loading assemblies. In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method is used to load the assembly. In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the Assembly class is used to load the assembly. Specifies default value handling options for the . Include members where the member value is the same as the member's default value when serializing objects. Included members are written to JSON. Has no effect when deserializing. Ignore members where the member value is the same as the member's default value when serializing objects so that is is not written to JSON, and ignores setting members when the JSON value equals the member's default value. Members with a default value but no JSON will be set to their default value when deserializing. Ignore members where the member value is the same as the member's default value when serializing objects and sets members to their default value when deserializing. Specifies formatting options for the . No special formatting is applied. This is the default. Causes child objects to be indented according to the and settings. Provides an interface to enable a class to return line and position information. Gets a value indicating whether the class can return line information. true if LineNumber and LinePosition can be provided; otherwise, false. Gets the current line number. The current line number or 0 if no line information is available (for example, HasLineInfo returns false). Gets the current line position. The current line position or 0 if no line information is available (for example, HasLineInfo returns false). Instructs the how to serialize the collection. Instructs the how to serialize the object. Initializes a new instance of the class. Initializes a new instance of the class with the specified container Id. The container Id. Gets or sets the id. The id. Gets or sets the title. The title. Gets or sets the description. The description. Gets the collection's items converter. The collection's items converter. Gets or sets a value that indicates whether to preserve object references. true to keep object reference; otherwise, false. The default is false. Gets or sets a value that indicates whether to preserve collection's items references. true to keep collection's items object references; otherwise, false. The default is false. Gets or sets the reference loop handling used when serializing the collection's items. The reference loop handling. Gets or sets the type name handling used when serializing the collection's items. The type name handling. Initializes a new instance of the class. Initializes a new instance of the class with a flag indicating whether the array can contain null items A flag indicating whether the array can contain null items. Initializes a new instance of the class with the specified container Id. The container Id. Gets or sets a value indicating whether null items are allowed in the collection. true if null items are allowed in the collection; otherwise, false. Instructs the to use the specified constructor when deserializing that object. Provides methods for converting between common language runtime types and JSON types. Represents JavaScript's boolean value true as a string. This field is read-only. Represents JavaScript's boolean value false as a string. This field is read-only. Represents JavaScript's null as a string. This field is read-only. Represents JavaScript's undefined as a string. This field is read-only. Represents JavaScript's positive infinity as a string. This field is read-only. Represents JavaScript's negative infinity as a string. This field is read-only. Represents JavaScript's NaN as a string. This field is read-only. Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation using the specified. The value to convert. The format the date will be converted to. The time zone handling when the date is converted to a string. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation using the specified. The value to convert. The format the date will be converted to. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. The string delimiter character. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Serializes the specified object to a JSON string. The object to serialize. A JSON string representation of the object. Serializes the specified object to a JSON string. The object to serialize. Indicates how the output is formatted. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. A collection converters used while serializing. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. Indicates how the output is formatted. A collection converters used while serializing. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. The used to serialize the object. If this is null, default serialization settings will be is used. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. Indicates how the output is formatted. The used to serialize the object. If this is null, default serialization settings will be is used. A JSON string representation of the object. Deserializes the JSON to a .NET object. The JSON to deserialize. The deserialized object from the Json string. Deserializes the JSON to a .NET object. The JSON to deserialize. The used to deserialize the object. If this is null, default serialization settings will be is used. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The JSON to deserialize. The of object being deserialized. The deserialized object from the Json string. Deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The JSON to deserialize. The deserialized object from the Json string. Deserializes the JSON to the given anonymous type. The anonymous type to deserialize to. This can't be specified traditionally and must be infered from the anonymous type passed as a parameter. The JSON to deserialize. The anonymous type object. The deserialized anonymous type from the JSON string. Deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The JSON to deserialize. Converters to use while deserializing. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The object to deserialize. The used to deserialize the object. If this is null, default serialization settings will be is used. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The JSON to deserialize. The type of the object to deserialize. Converters to use while deserializing. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The JSON to deserialize. The type of the object to deserialize to. The used to deserialize the object. If this is null, default serialization settings will be is used. The deserialized object from the JSON string. Populates the object with values from the JSON string. The JSON to populate values from. The target object to populate values onto. Populates the object with values from the JSON string. The JSON to populate values from. The target object to populate values onto. The used to deserialize the object. If this is null, default serialization settings will be is used. Serializes the to a JSON string. The node to convert to JSON. A JSON string of the XNode. Serializes the to a JSON string. The node to convert to JSON. Indicates how the output is formatted. A JSON string of the XNode. Serializes the to a JSON string. The node to serialize. Indicates how the output is formatted. Omits writing the root object. A JSON string of the XNode. Deserializes the from a JSON string. The JSON string. The deserialized XNode Deserializes the from a JSON string nested in a root elment. The JSON string. The name of the root element to append when deserializing. The deserialized XNode Deserializes the from a JSON string nested in a root elment. The JSON string. The name of the root element to append when deserializing. A flag to indicate whether to write the Json.NET array attribute. This attribute helps preserve arrays when converting the written XML back to JSON. The deserialized XNode Instructs the to use the specified when serializing the member or class. Initializes a new instance of the class. Type of the converter. Gets the type of the converter. The type of the converter. Represents a collection of . Instructs the how to serialize the collection. Initializes a new instance of the class. Initializes a new instance of the class with the specified container Id. The container Id. The exception thrown when an error occurs during Json serialization or deserialization. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Instructs the not to serialize the public field or public read/write property value. Instructs the how to serialize the object. Initializes a new instance of the class. Initializes a new instance of the class with the specified member serialization. The member serialization. Initializes a new instance of the class with the specified container Id. The container Id. Gets or sets the member serialization. The member serialization. Gets or sets a value that indicates whether the object's properties are required. A value indicating whether the object's properties are required. Instructs the to always serialize the member with the specified name. Initializes a new instance of the class. Initializes a new instance of the class with the specified name. Name of the property. Gets or sets the converter used when serializing the property's collection items. The collection's items converter. Gets or sets the null value handling used when serializing this property. The null value handling. Gets or sets the default value handling used when serializing this property. The default value handling. Gets or sets the reference loop handling used when serializing this property. The reference loop handling. Gets or sets the object creation handling used when deserializing this property. The object creation handling. Gets or sets the type name handling used when serializing this property. The type name handling. Gets or sets whether this property's value is serialized as a reference. Whether this property's value is serialized as a reference. Gets or sets the order of serialization and deserialization of a member. The numeric order of serialization or deserialization. Gets or sets a value indicating whether this property is required. A value indicating whether this property is required. Gets or sets the name of the property. The name of the property. Gets or sets the the reference loop handling used when serializing the property's collection items. The collection's items reference loop handling. Gets or sets the the type name handling used when serializing the property's collection items. The collection's items type name handling. Gets or sets whether this property's collection items are serialized as a reference. Whether this property's collection items are serialized as a reference. The exception thrown when an error occurs while reading Json text. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Gets the line number indicating where the error occurred. The line number indicating where the error occurred. Gets the line position indicating where the error occurred. The line position indicating where the error occurred. Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. The exception thrown when an error occurs during Json serialization or deserialization. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Serializes and deserializes objects into and from the JSON format. The enables you to control how objects are encoded into JSON. Initializes a new instance of the class. Creates a new instance using the specified . The settings to be applied to the . A new instance using the specified . Populates the JSON values onto the target object. The that contains the JSON structure to reader values from. The target object to populate values onto. Populates the JSON values onto the target object. The that contains the JSON structure to reader values from. The target object to populate values onto. Deserializes the Json structure contained by the specified . The that contains the JSON structure to deserialize. The being deserialized. Deserializes the Json structure contained by the specified into an instance of the specified type. The containing the object. The of object being deserialized. The instance of being deserialized. Deserializes the Json structure contained by the specified into an instance of the specified type. The containing the object. The type of the object to deserialize. The instance of being deserialized. Deserializes the Json structure contained by the specified into an instance of the specified type. The containing the object. The of object being deserialized. The instance of being deserialized. Serializes the specified and writes the Json structure to a Stream using the specified . The used to write the Json structure. The to serialize. Serializes the specified and writes the Json structure to a Stream using the specified . The used to write the Json structure. The to serialize. Occurs when the errors during serialization and deserialization. Gets or sets the used by the serializer when resolving references. Gets or sets the used by the serializer when resolving type names. Gets or sets how type name writing and reading is handled by the serializer. Gets or sets how a type name assembly is written and resolved by the serializer. The type name assembly format. Gets or sets how object references are preserved by the serializer. Get or set how reference loops (e.g. a class referencing itself) is handled. Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. Get or set how null values are handled during serialization and deserialization. Get or set how null default are handled during serialization and deserialization. Gets or sets how objects are created during deserialization. The object creation handling. Gets or sets how constructors are used during deserialization. The constructor handling. Gets a collection that will be used during serialization. Collection that will be used during serialization. Gets or sets the contract resolver used by the serializer when serializing .NET objects to JSON and vice versa. Gets or sets the used by the serializer when invoking serialization callback methods. The context. Indicates how JSON text output is formatted. Get or set how dates are written to JSON text. Get or set how time zones are handling during serialization and deserialization. Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. Gets or sets the culture used when reading JSON. Defaults to . Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. true if there will be a check for additional JSON content after deserializing an object; otherwise, false. Specifies the settings on a object. Initializes a new instance of the class. Gets or sets how reference loops (e.g. a class referencing itself) is handled. Reference loop handling. Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. Missing member handling. Gets or sets how objects are created during deserialization. The object creation handling. Gets or sets how null values are handled during serialization and deserialization. Null value handling. Gets or sets how null default are handled during serialization and deserialization. The default value handling. Gets or sets a collection that will be used during serialization. The converters. Gets or sets how object references are preserved by the serializer. The preserve references handling. Gets or sets how type name writing and reading is handled by the serializer. The type name handling. Gets or sets how a type name assembly is written and resolved by the serializer. The type name assembly format. Gets or sets how constructors are used during deserialization. The constructor handling. Gets or sets the contract resolver used by the serializer when serializing .NET objects to JSON and vice versa. The contract resolver. Gets or sets the used by the serializer when resolving references. The reference resolver. Gets or sets the used by the serializer when resolving type names. The binder. Gets or sets the error handler called during serialization and deserialization. The error handler called during serialization and deserialization. Gets or sets the used by the serializer when invoking serialization callback methods. The context. Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . Indicates how JSON text output is formatted. Get or set how dates are written to JSON text. Get or set how time zones are handling during serialization and deserialization. Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. Gets or sets the culture used when reading JSON. Defaults to . Gets a value indicating whether there will be a check for additional content after deserializing an object. true if there will be a check for additional content after deserializing an object; otherwise, false. Represents a reader that provides fast, non-cached, forward-only access to JSON text data. Initializes a new instance of the class with the specified . The TextReader containing the XML data to read. Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Changes the state to closed. Gets a value indicating whether the class can return line information. true if LineNumber and LinePosition can be provided; otherwise, false. Gets the current line number. The current line number or 0 if no line information is available (for example, HasLineInfo returns false). Gets the current line position. The current line position or 0 if no line information is available (for example, HasLineInfo returns false). Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Creates an instance of the JsonWriter class using the specified . The TextWriter to write to. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Closes this stream and the underlying stream. Writes the beginning of a Json object. Writes the beginning of a Json array. Writes the start of a constructor with the given name. The name of the constructor. Writes the specified end token. The end token to write. Writes the property name of a name/value pair on a Json object. The name of the property. Writes indent characters. Writes the JSON value delimiter. Writes an indent space. Writes a null value. Writes an undefined value. Writes raw JSON. The raw JSON to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes out the given white space. The string of white space characters. Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. Gets or sets which character to use to quote attribute values. Gets or sets which character to use for indenting when is set to Formatting.Indented. Gets or sets a value indicating whether object names will be surrounded with quotes. Specifies the type of Json token. This is returned by the if a method has not been called. An object start token. An array start token. A constructor start token. An object property name. A comment. Raw JSON. An integer. A float. A string. A boolean. A null token. An undefined token. An object end token. An array end token. A constructor end token. A Date. Byte data. Represents a reader that provides validation. Initializes a new instance of the class that validates the content returned from the given . The to read from while validating. Reads the next JSON token from the stream as a . A . Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. Reads the next JSON token from the stream as a . A . Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Sets an event handler for receiving schema validation errors. Gets the text value of the current Json token. Gets the depth of the current token in the JSON document. The depth of the current token in the JSON document. Gets the path of the current JSON token. Gets the quotation mark character used to enclose the value of a string. Gets the type of the current Json token. Gets the Common Language Runtime (CLR) type for the current Json token. Gets or sets the schema. The schema. Gets the used to construct this . The specified in the constructor. The exception thrown when an error occurs while reading Json text. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. Contains the LINQ to JSON extension methods. Returns a collection of tokens that contains the ancestors of every token in the source collection. The type of the objects in source, constrained to . An of that contains the source collection. An of that contains the ancestors of every node in the source collection. Returns a collection of tokens that contains the descendants of every token in the source collection. The type of the objects in source, constrained to . An of that contains the source collection. An of that contains the descendants of every node in the source collection. Returns a collection of child properties of every object in the source collection. An of that contains the source collection. An of that contains the properties of every object in the source collection. Returns a collection of child values of every object in the source collection with the given key. An of that contains the source collection. The token key. An of that contains the values of every node in the source collection with the given key. Returns a collection of child values of every object in the source collection. An of that contains the source collection. An of that contains the values of every node in the source collection. Returns a collection of converted child values of every object in the source collection with the given key. The type to convert the values to. An of that contains the source collection. The token key. An that contains the converted values of every node in the source collection with the given key. Returns a collection of converted child values of every object in the source collection. The type to convert the values to. An of that contains the source collection. An that contains the converted values of every node in the source collection. Converts the value. The type to convert the value to. A cast as a of . A converted value. Converts the value. The source collection type. The type to convert the value to. A cast as a of . A converted value. Returns a collection of child tokens of every array in the source collection. The source collection type. An of that contains the source collection. An of that contains the values of every node in the source collection. Returns a collection of converted child tokens of every array in the source collection. An of that contains the source collection. The type to convert the values to. The source collection type. An that contains the converted values of every node in the source collection. Returns the input typed as . An of that contains the source collection. The input typed as . Returns the input typed as . The source collection type. An of that contains the source collection. The input typed as . Represents a collection of objects. The type of token Gets the with the specified key. Represents a JSON array. Represents a token that can contain other tokens. Represents an abstract JSON token. Compares the values of two tokens, including the values of all descendant tokens. The first to compare. The second to compare. true if the tokens are equal; otherwise false. Adds the specified content immediately after this token. A content object that contains simple content or a collection of content objects to be added after this token. Adds the specified content immediately before this token. A content object that contains simple content or a collection of content objects to be added before this token. Returns a collection of the ancestor tokens of this token. A collection of the ancestor tokens of this token. Returns a collection of the sibling tokens after this token, in document order. A collection of the sibling tokens after this tokens, in document order. Returns a collection of the sibling tokens before this token, in document order. A collection of the sibling tokens before this token, in document order. Gets the with the specified key converted to the specified type. The type to convert the token to. The token key. The converted token value. Returns a collection of the child tokens of this token, in document order. An of containing the child tokens of this , in document order. Returns a collection of the child tokens of this token, in document order, filtered by the specified type. The type to filter the child tokens on. A containing the child tokens of this , in document order. Returns a collection of the child values of this token, in document order. The type to convert the values to. A containing the child values of this , in document order. Removes this token from its parent. Replaces this token with the specified token. The value. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Returns the indented JSON for this token. The indented JSON for this token. Returns the JSON for this token using the given formatting and converters. Indicates how the output is formatted. A collection of which will be used when writing the token. The JSON for this token using the given formatting and converters. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Creates an for this token. An that can be used to read this token and its descendants. Creates a from an object. The object that will be used to create . A with the value of the specified object Creates a from an object using the specified . The object that will be used to create . The that will be used when reading the object. A with the value of the specified object Creates the specified .NET type from the . The new object created from the JSON value. Creates the specified .NET type from the using the specified . The that will be used when creating the object. The new object created from the JSON value. Creates a from a . An positioned at the token to read into this . An that contains the token and its descendant tokens that were read from the reader. The runtime type of the token is determined by the token type of the first token encountered in the reader. Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Creates a from a . An positioned at the token to read into this . An that contains the token and its descendant tokens that were read from the reader. The runtime type of the token is determined by the token type of the first token encountered in the reader. Selects the token that matches the object path. The object path from the current to the to be returned. This must be a string of property names or array indexes separated by periods, such as Tables[0].DefaultView[0].Price in C# or Tables(0).DefaultView(0).Price in Visual Basic. The that matches the object path or a null reference if no matching token is found. Selects the token that matches the object path. The object path from the current to the to be returned. This must be a string of property names or array indexes separated by periods, such as Tables[0].DefaultView[0].Price in C# or Tables(0).DefaultView(0).Price in Visual Basic. A flag to indicate whether an error should be thrown if no token is found. The that matches the object path. Creates a new instance of the . All child tokens are recursively cloned. A new instance of the . Gets a comparer that can compare two tokens for value equality. A that can compare two nodes for value equality. Gets or sets the parent. The parent. Gets the root of this . The root of this . Gets the node type for this . The type. Gets a value indicating whether this token has childen tokens. true if this token has child values; otherwise, false. Gets the next sibling token of this node. The that contains the next sibling token. Gets the previous sibling token of this node. The that contains the previous sibling token. Gets the with the specified key. The with the specified key. Get the first child token of this token. A containing the first child token of the . Get the last child token of this token. A containing the last child token of the . Raises the event. The instance containing the event data. Returns a collection of the child tokens of this token, in document order. An of containing the child tokens of this , in document order. Returns a collection of the child values of this token, in document order. The type to convert the values to. A containing the child values of this , in document order. Returns a collection of the descendant tokens for this token in document order. An containing the descendant tokens of the . Adds the specified content as children of this . The content to be added. Adds the specified content as the first children of this . The content to be added. Creates an that can be used to add tokens to the . An that is ready to have content written to it. Replaces the children nodes of this token with the specified content. The content. Removes the child nodes from this token. Occurs when the items list of the collection has changed, or the collection is reset. Gets the container's children tokens. The container's children tokens. Gets a value indicating whether this token has childen tokens. true if this token has child values; otherwise, false. Get the first child token of this token. A containing the first child token of the . Get the last child token of this token. A containing the last child token of the . Gets the count of child JSON tokens. The count of child JSON tokens Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified content. The contents of the array. Initializes a new instance of the class with the specified content. The contents of the array. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Creates a from an object. The object that will be used to create . A with the values of the specified object Creates a from an object. The object that will be used to create . The that will be used to read the object. A with the values of the specified object Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Determines the index of a specific item in the . The object to locate in the . The index of if found in the list; otherwise, -1. Inserts an item to the at the specified index. The zero-based index at which should be inserted. The object to insert into the . is not a valid index in the . The is read-only. Removes the item at the specified index. The zero-based index of the item to remove. is not a valid index in the . The is read-only. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Gets the container's children tokens. The container's children tokens. Gets the node type for this . The type. Gets the with the specified key. The with the specified key. Gets or sets the at the specified index. Represents a JSON constructor. Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified name and content. The constructor name. The contents of the constructor. Initializes a new instance of the class with the specified name and content. The constructor name. The contents of the constructor. Initializes a new instance of the class with the specified name. The constructor name. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Gets the container's children tokens. The container's children tokens. Gets or sets the name of this constructor. The constructor name. Gets the node type for this . The type. Gets the with the specified key. The with the specified key. Represents a collection of objects. The type of token An empty collection of objects. Initializes a new instance of the struct. The enumerable. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the with the specified key. Represents a JSON object. Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified content. The contents of the object. Initializes a new instance of the class with the specified content. The contents of the object. Gets an of this object's properties. An of this object's properties. Gets a the specified name. The property name. A with the specified name or null. Gets an of this object's property values. An of this object's property values. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Creates a from an object. The object that will be used to create . A with the values of the specified object Creates a from an object. The object that will be used to create . The that will be used to read the object. A with the values of the specified object Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Adds the specified property name. Name of the property. The value. Removes the property with the specified name. Name of the property. true if item was successfully removed; otherwise, false. Tries the get value. Name of the property. The value. true if a value was successfully retrieved; otherwise, false. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Raises the event with the provided arguments. Name of the property. Gets the container's children tokens. The container's children tokens. Occurs when a property value changes. Gets the node type for this . The type. Gets the with the specified key. The with the specified key. Gets or sets the with the specified property name. Represents a JSON property. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class. The property name. The property content. Initializes a new instance of the class. The property name. The property content. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Gets the container's children tokens. The container's children tokens. Gets the property name. The property name. Gets or sets the property value. The property value. Gets the node type for this . The type. Represents a raw JSON string. Represents a value in JSON (string, integer, date, etc). Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Creates a comment with the given value. The value. A comment with the given value. Creates a string with the given value. The value. A string with the given value. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Indicates whether the current object is equal to another object of the same type. true if the current object is equal to the parameter; otherwise, false. An object to compare with this object. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. An object to compare with this instance. A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance is less than . Zero This instance is equal to . Greater than zero This instance is greater than . is not the same type as this instance. Gets a value indicating whether this token has childen tokens. true if this token has child values; otherwise, false. Gets the node type for this . The type. Gets or sets the underlying token value. The underlying token value. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class. The raw json. Creates an instance of with the content of the reader's current token. The reader. An instance of with the content of the reader's current token. Compares tokens to determine whether they are equal. Determines whether the specified objects are equal. The first object of type to compare. The second object of type to compare. true if the specified objects are equal; otherwise, false. Returns a hash code for the specified object. The for which a hash code is to be returned. A hash code for the specified object. The type of is a reference type and is null. Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. Initializes a new instance of the class. The token to read from. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Specifies the type of token. No token type has been set. A JSON object. A JSON array. A JSON constructor. A JSON object property. A comment. An integer value. A float value. A string value. A boolean value. A null value. An undefined value. A date value. A raw JSON value. A collection of bytes value. A Guid value. A Uri value. A TimeSpan value. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Initializes a new instance of the class writing to the given . The container being written to. Initializes a new instance of the class. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Closes this stream and the underlying stream. Writes the beginning of a Json object. Writes the beginning of a Json array. Writes the start of a constructor with the given name. The name of the constructor. Writes the end. The token. Writes the property name of a name/value pair on a Json object. The name of the property. Writes a null value. Writes an undefined value. Writes raw JSON. The raw JSON to write. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Gets the token being writen. The token being writen. Specifies the member serialization options for the . All public members are serialized by default. Members can be excluded using or . This is the default member serialization mode. Only members must be marked with or are serialized. This member serialization mode can also be set by marking the class with . All public and private fields are serialized. Members can be excluded using or . This member serialization mode can also be set by marking the class with and setting IgnoreSerializableAttribute on to false. Specifies missing member handling options for the . Ignore a missing member and do not attempt to deserialize it. Throw a when a missing member is encountered during deserialization. Specifies null value handling options for the . Include null values when serializing and deserializing objects. Ignore null values when serializing and deserializing objects. Specifies how object creation is handled by the . Reuse existing objects, create new objects when needed. Only reuse existing objects. Always create new objects. Specifies reference handling options for the . Do not preserve references when serializing types. Preserve references when serializing into a JSON object structure. Preserve references when serializing into a JSON array structure. Preserve references when serializing. Specifies reference loop handling options for the . Throw a when a loop is encountered. Ignore loop references and do not serialize. Serialize loop references. Indicating whether a property is required. The property is not required. The default state. The property must be defined in JSON but can be a null value. The property must be defined in JSON and cannot be a null value. Allows users to control class loading and mandate what class to load. When overridden in a derived class, controls the binding of a serialized object to a type. Specifies the name of the serialized object. Specifies the name of the serialized object The type of the object the formatter creates a new instance of. When overridden in a derived class, controls the binding of a serialized object to a type. The type of the object the formatter creates a new instance of. Specifies the name of the serialized object. Specifies the name of the serialized object. Resolves member mappings for a type, camel casing property names. Used by to resolves a for a given . Used by to resolves a for a given . Resolves the contract for a given type. The type to resolve a contract for. The contract for a given type. Initializes a new instance of the class. Initializes a new instance of the class. If set to true the will use a cached shared with other resolvers of the same type. Sharing the cache will significantly performance because expensive reflection will only happen once but could cause unexpected behavior if different instances of the resolver are suppose to produce different results. When set to false it is highly recommended to reuse instances with the . Resolves the contract for a given type. The type to resolve a contract for. The contract for a given type. Gets the serializable members for the type. The type to get serializable members for. The serializable members for the type. Creates a for the given type. Type of the object. A for the given type. Creates the constructor parameters. The constructor to create properties for. The type's member properties. Properties for the given . Creates a for the given . The matching member property. The constructor parameter. A created for the given . Resolves the default for the contract. Type of the object. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Determines which contract type is created for the given type. Type of the object. A for the given type. Creates properties for the given . The type to create properties for. /// The member serialization mode for the type. Properties for the given . Creates the used by the serializer to get and set values from a member. The member. The used by the serializer to get and set values from a member. Creates a for the given . The member's parent . The member to create a for. A created for the given . Resolves the name of the property. Name of the property. Name of the property. Gets the resolved name of the property. Name of the property. Name of the property. Gets a value indicating whether members are being get and set using dynamic code generation. This value is determined by the runtime permissions available. true if using dynamic code generation; otherwise, false. Gets or sets the default members search flags. The default members search flags. Gets or sets a value indicating whether compiler generated members should be serialized. true if serialized compiler generated members; otherwise, false. Initializes a new instance of the class. Resolves the name of the property. Name of the property. The property name camel cased. Used to resolve references when serializing and deserializing JSON by the . Resolves a reference to its object. The serialization context. The reference to resolve. The object that Gets the reference for the sepecified object. The serialization context. The object to get a reference for. The reference to the object. Determines whether the specified object is referenced. The serialization context. The object to test for a reference. true if the specified object is referenced; otherwise, false. Adds a reference to the specified object. The serialization context. The reference. The object to reference. The default serialization binder used when resolving and loading classes from type names. When overridden in a derived class, controls the binding of a serialized object to a type. Specifies the name of the serialized object. Specifies the name of the serialized object. The type of the object the formatter creates a new instance of. When overridden in a derived class, controls the binding of a serialized object to a type. The type of the object the formatter creates a new instance of. Specifies the name of the serialized object. Specifies the name of the serialized object. Provides information surrounding an error. Gets or sets the error. The error. Gets the original object that caused the error. The original object that caused the error. Gets the member that caused the error. The member that caused the error. Gets the path of the JSON location where the error occurred. The path of the JSON location where the error occurred. Gets or sets a value indicating whether this is handled. true if handled; otherwise, false. Provides data for the Error event. Initializes a new instance of the class. The current object. The error context. Gets the current object the error event is being raised against. The current object the error event is being raised against. Gets the error context. The error context. Provides methods to get and set values. Sets the value. The target to set the value on. The value to set on the target. Gets the value. The target to get the value from. The value. Contract details for a used by the . Contract details for a used by the . Contract details for a used by the . Gets the underlying type for the contract. The underlying type for the contract. Gets or sets the type created during deserialization. The type created during deserialization. Gets or sets whether this type contract is serialized as a reference. Whether this type contract is serialized as a reference. Gets or sets the default for this contract. The converter. Gets or sets the method called immediately after deserialization of the object. The method called immediately after deserialization of the object. Gets or sets the method called during deserialization of the object. The method called during deserialization of the object. Gets or sets the method called after serialization of the object graph. The method called after serialization of the object graph. Gets or sets the method called before serialization of the object. The method called before serialization of the object. Gets or sets the default creator method used to create the object. The default creator method used to create the object. Gets or sets a value indicating whether the default creator is non public. true if the default object creator is non-public; otherwise, false. Gets or sets the method called when an error is thrown during the serialization of the object. The method called when an error is thrown during the serialization of the object. Initializes a new instance of the class. The underlying type for the contract. Gets or sets the default collection items . The converter. Gets or sets a value indicating whether the collection items preserve object references. true if collection items preserve object references; otherwise, false. Gets or sets the collection item reference loop handling. The reference loop handling. Gets or sets the collection item type name handling. The type name handling. Initializes a new instance of the class. The underlying type for the contract. Gets the of the collection items. The of the collection items. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets or sets the property name resolver. The property name resolver. Gets the of the dictionary keys. The of the dictionary keys. Gets the of the dictionary values. The of the dictionary values. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets or sets the object member serialization. The member object serialization. Gets or sets a value that indicates whether the object's properties are required. A value indicating whether the object's properties are required. Gets the object's properties. The object's properties. Gets the constructor parameters required for any non-default constructor Gets or sets the override constructor used to create the object. This is set when a constructor is marked up using the JsonConstructor attribute. The override constructor. Gets or sets the parametrized constructor used to create the object. The parametrized constructor. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Maps a JSON property to a .NET member or constructor parameter. Returns a that represents this instance. A that represents this instance. Gets or sets the name of the property. The name of the property. Gets or sets the type that declared this property. The type that declared this property. Gets or sets the order of serialization and deserialization of a member. The numeric order of serialization or deserialization. Gets or sets the name of the underlying member or parameter. The name of the underlying member or parameter. Gets the that will get and set the during serialization. The that will get and set the during serialization. Gets or sets the type of the property. The type of the property. Gets or sets the for the property. If set this converter takes presidence over the contract converter for the property type. The converter. Gets the member converter. The member converter. Gets a value indicating whether this is ignored. true if ignored; otherwise, false. Gets a value indicating whether this is readable. true if readable; otherwise, false. Gets a value indicating whether this is writable. true if writable; otherwise, false. Gets the default value. The default value. Gets a value indicating whether this is required. A value indicating whether this is required. Gets a value indicating whether this property preserves object references. true if this instance is reference; otherwise, false. Gets the property null value handling. The null value handling. Gets the property default value handling. The default value handling. Gets the property reference loop handling. The reference loop handling. Gets the property object creation handling. The object creation handling. Gets or sets the type name handling. The type name handling. Gets or sets a predicate used to determine whether the property should be serialize. A predicate used to determine whether the property should be serialize. Gets or sets a predicate used to determine whether the property should be serialized. A predicate used to determine whether the property should be serialized. Gets or sets an action used to set whether the property has been deserialized. An action used to set whether the property has been deserialized. Gets or sets the converter used when serializing the property's collection items. The collection's items converter. Gets or sets whether this property's collection items are serialized as a reference. Whether this property's collection items are serialized as a reference. Gets or sets the the type name handling used when serializing the property's collection items. The collection's items type name handling. Gets or sets the the reference loop handling used when serializing the property's collection items. The collection's items reference loop handling. A collection of objects. Initializes a new instance of the class. The type. When implemented in a derived class, extracts the key from the specified element. The element from which to extract the key. The key for the specified element. Adds a object. The property to add to the collection. Gets the closest matching object. First attempts to get an exact case match of propertyName and then a case insensitive match. Name of the property. A matching property if found. Gets a property by property name. The name of the property to get. Type property name string comparison. A matching property if found. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Represents a method that constructs an object. When applied to a method, specifies that the method is called when an error occurs serializing an object. Get and set values for a using reflection. Initializes a new instance of the class. The member info. Sets the value. The target to set the value on. The value to set on the target. Gets the value. The target to get the value from. The value. Specifies type name handling options for the . Do not include the .NET type name when serializing types. Include the .NET type name when serializing into a JSON object structure. Include the .NET type name when serializing into a JSON array structure. Always include the .NET type name when serializing. Include the .NET type name when the type of the object being serialized is not the same as its declared type. Determines whether the collection is null or empty. The collection. true if the collection is null or empty; otherwise, false. Adds the elements of the specified collection to the specified generic IList. The list to add to. The collection of elements to add. Returns the index of the first occurrence in a sequence by using a specified IEqualityComparer. The type of the elements of source. A sequence in which to locate a value. The object to locate in the sequence An equality comparer to compare values. The zero-based index of the first occurrence of value within the entire sequence, if found; otherwise, –1. Converts the value to the specified type. The value to convert. The culture to use when converting. The type to convert the value to. The converted type. Converts the value to the specified type. The value to convert. The culture to use when converting. The type to convert the value to. The converted value if the conversion was successful or the default value of T if it failed. true if initialValue was converted successfully; otherwise, false. Converts the value to the specified type. If the value is unable to be converted, the value is checked whether it assignable to the specified type. The value to convert. The culture to use when converting. The type to convert or cast the value to. The converted type. If conversion was unsuccessful, the initial value is returned if assignable to the target type. Gets a dictionary of the names and values of an Enum type. Gets a dictionary of the names and values of an Enum type. The enum type to get names and values for. Gets the type of the typed collection's items. The type. The type of the typed collection's items. Gets the member's underlying type. The member. The underlying type of the member. Determines whether the member is an indexed property. The member. true if the member is an indexed property; otherwise, false. Determines whether the property is an indexed property. The property. true if the property is an indexed property; otherwise, false. Gets the member's value on the object. The member. The target object. The member's value on the object. Sets the member's value on the target object. The member. The target. The value. Determines whether the specified MemberInfo can be read. The MemberInfo to determine whether can be read. /// if set to true then allow the member to be gotten non-publicly. true if the specified MemberInfo can be read; otherwise, false. Determines whether the specified MemberInfo can be set. The MemberInfo to determine whether can be set. if set to true then allow the member to be set non-publicly. if set to true then allow the member to be set if read-only. true if the specified MemberInfo can be set; otherwise, false. Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. Determines whether the string is all white space. Empty string will return false. The string to test whether it is all white space. true if the string is all white space; otherwise, false. Nulls an empty string. The string. Null if the string was null, otherwise the string unchanged. Contains the JSON schema extension methods. Determines whether the is valid. The source to test. The schema to test with. true if the specified is valid; otherwise, false. Determines whether the is valid. The source to test. The schema to test with. When this method returns, contains any error messages generated while validating. true if the specified is valid; otherwise, false. Validates the specified . The source to test. The schema to test with. Validates the specified . The source to test. The schema to test with. The validation event handler. Returns detailed information about the schema exception. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Gets the line number indicating where the error occurred. The line number indicating where the error occurred. Gets the line position indicating where the error occurred. The line position indicating where the error occurred. Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. Specifies undefined schema Id handling options for the . Do not infer a schema Id. Use the .NET type name as the schema Id. Use the assembly qualified .NET type name as the schema Id. Returns detailed information related to the . Gets the associated with the validation error. The JsonSchemaException associated with the validation error. Gets the path of the JSON location where the validation error occurred. The path of the JSON location where the validation error occurred. Gets the text description corresponding to the validation error. The text description. Represents the callback method that will handle JSON schema validation events and the . An in-memory representation of a JSON Schema. Initializes a new instance of the class. Reads a from the specified . The containing the JSON Schema to read. The object representing the JSON Schema. Reads a from the specified . The containing the JSON Schema to read. The to use when resolving schema references. The object representing the JSON Schema. Load a from a string that contains schema JSON. A that contains JSON. A populated from the string that contains JSON. Parses the specified json. The json. The resolver. A populated from the string that contains JSON. Writes this schema to a . A into which this method will write. Writes this schema to a using the specified . A into which this method will write. The resolver used. Returns a that represents the current . A that represents the current . Gets or sets the id. Gets or sets the title. Gets or sets whether the object is required. Gets or sets whether the object is read only. Gets or sets whether the object is visible to users. Gets or sets whether the object is transient. Gets or sets the description of the object. Gets or sets the types of values allowed by the object. The type. Gets or sets the pattern. The pattern. Gets or sets the minimum length. The minimum length. Gets or sets the maximum length. The maximum length. Gets or sets a number that the value should be divisble by. A number that the value should be divisble by. Gets or sets the minimum. The minimum. Gets or sets the maximum. The maximum. Gets or sets a flag indicating whether the value can not equal the number defined by the "minimum" attribute. A flag indicating whether the value can not equal the number defined by the "minimum" attribute. Gets or sets a flag indicating whether the value can not equal the number defined by the "maximum" attribute. A flag indicating whether the value can not equal the number defined by the "maximum" attribute. Gets or sets the minimum number of items. The minimum number of items. Gets or sets the maximum number of items. The maximum number of items. Gets or sets the of items. The of items. Gets or sets the of properties. The of properties. Gets or sets the of additional properties. The of additional properties. Gets or sets the pattern properties. The pattern properties. Gets or sets a value indicating whether additional properties are allowed. true if additional properties are allowed; otherwise, false. Gets or sets the required property if this property is present. The required property if this property is present. Gets or sets the identity. The identity. Gets or sets the a collection of valid enum values allowed. A collection of valid enum values allowed. Gets or sets a collection of options. A collection of options. Gets or sets disallowed types. The disallow types. Gets or sets the default value. The default value. Gets or sets the extend . The extended . Gets or sets the format. The format. Generates a from a specified . Generate a from the specified type. The type to generate a from. A generated from the specified type. Generate a from the specified type. The type to generate a from. The used to resolve schema references. A generated from the specified type. Generate a from the specified type. The type to generate a from. Specify whether the generated root will be nullable. A generated from the specified type. Generate a from the specified type. The type to generate a from. The used to resolve schema references. Specify whether the generated root will be nullable. A generated from the specified type. Gets or sets how undefined schemas are handled by the serializer. Gets or sets the contract resolver. The contract resolver. Resolves from an id. Initializes a new instance of the class. Gets a for the specified id. The id. A for the specified id. Gets or sets the loaded schemas. The loaded schemas. The value types allowed by the . No type specified. String type. Float type. Integer type. Boolean type. Object type. Array type. Null type. Any type. Specifies the state of the . An exception has been thrown, which has left the in an invalid state. You may call the method to put the in the Closed state. Any other method calls results in an being thrown. The method has been called. An object is being written. A array is being written. A constructor is being written. A property is being written. A write method has not been called. ================================================ FILE: packages/Newtonsoft.Json.4.5.6/lib/winrt45/Newtonsoft.Json.xml ================================================ Newtonsoft.Json Represents a BSON Oid (object id). Initializes a new instance of the class. The Oid value. Gets or sets the value of the Oid. The value of the Oid. Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. Initializes a new instance of the class with the specified . Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Skips the children of the current token. Sets the current token. The new token. Sets the current token and value. The new token. The value. Sets the state based on current token type. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Releases unmanaged and - optionally - managed resources true to release both managed and unmanaged resources; false to release only unmanaged resources. Changes the to Closed. Gets the current reader state. The current reader state. Gets or sets a value indicating whether the underlying stream or should be closed when the reader is closed. true to close the underlying stream or when the reader is closed; otherwise false. The default is true. Gets the quotation mark character used to enclose the value of a string. Get or set how time zones are handling when reading JSON. Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . Gets the type of the current JSON token. Gets the text value of the current JSON token. Gets The Common Language Runtime (CLR) type for the current JSON token. Gets the depth of the current token in the JSON document. The depth of the current token in the JSON document. Gets the path of the current JSON token. Gets or sets the culture used when reading JSON. Defaults to . Specifies the state of the reader. The Read method has not been called. The end of the file has been reached successfully. Reader is at a property. Reader is at the start of an object. Reader is in an object. Reader is at the start of an array. Reader is in an array. The Close method has been called. Reader has just read a value. Reader is at the start of a constructor. Reader in a constructor. An error occurred that prevents the read operation from continuing. The end of the file has been reached successfully. Initializes a new instance of the class. The stream. Initializes a new instance of the class. The reader. Initializes a new instance of the class. The stream. if set to true the root object will be read as a JSON array. The used when reading values from BSON. Initializes a new instance of the class. The reader. if set to true the root object will be read as a JSON array. The used when reading values from BSON. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Changes the to Closed. Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary. true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. Gets or sets a value indicating whether the root object will be read as a JSON array. true if the root object will be read as a JSON array; otherwise, false. Gets or sets the used when reading values from BSON. The used when reading values from BSON. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Creates an instance of the JsonWriter class. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Closes this stream and the underlying stream. Writes the beginning of a Json object. Writes the end of a Json object. Writes the beginning of a Json array. Writes the end of an array. Writes the start of a constructor with the given name. The name of the constructor. Writes the end constructor. Writes the property name of a name/value pair on a Json object. The name of the property. Writes the end of the current Json object or array. Writes the current token. The to read the token from. Writes the specified end token. The end token to write. Writes indent characters. Writes the JSON value delimiter. Writes an indent space. Writes a null value. Writes an undefined value. Writes raw JSON without changing the writer's state. The raw JSON to write. Writes raw JSON where a value is expected and updates the writer's state. The raw JSON to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. An error will raised if the value cannot be written as a single JSON token. The value to write. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes out the given white space. The string of white space characters. Gets or sets a value indicating whether the underlying stream or should be closed when the writer is closed. true to close the underlying stream or when the writer is closed; otherwise false. The default is true. Gets the top. The top. Gets the state of the writer. Gets the path of the writer. Indicates how JSON text output is formatted. Get or set how dates are written to JSON text. Get or set how time zones are handling when writing JSON. Initializes a new instance of the class. The stream. Initializes a new instance of the class. The writer. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Writes the end. The token. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes the start of a constructor with the given name. The name of the constructor. Writes raw JSON. The raw JSON to write. Writes raw JSON where a value is expected and updates the writer's state. The raw JSON to write. Writes the beginning of a Json array. Writes the beginning of a Json object. Writes the property name of a name/value pair on a Json object. The name of the property. Closes this stream and the underlying stream. Writes a null value. Writes an undefined value. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value that represents a BSON object id. Writes a BSON regex. The regex pattern. The regex options. Gets or sets the used when writing values to BSON. When set to no conversion will occur. The used when writing values to BSON. Specifies how constructors are used when initializing objects during deserialization by the . First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor. Json.NET will use a non-public default constructor before falling back to a paramatized constructor. Converts a to and from JSON and BSON. Converts an object to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets the of the JSON produced by the JsonConverter. The of the JSON produced by the JsonConverter. Gets a value indicating whether this can read JSON. true if this can read JSON; otherwise, false. Gets a value indicating whether this can write JSON. true if this can write JSON; otherwise, false. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Create a custom object Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Creates an object which will then be populated by the serializer. Type of the object. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets a value indicating whether this can write JSON. true if this can write JSON; otherwise, false. Provides a base class for converting a to and from JSON. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts an ExpandoObject to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets a value indicating whether this can write JSON. true if this can write JSON; otherwise, false. Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Gets or sets the date time styles used when converting a date to and from JSON. The date time styles used when converting a date to and from JSON. Gets or sets the date time format used when converting a date to and from JSON. The date time format used when converting a date to and from JSON. Gets or sets the culture used when converting a date to and from JSON. The culture used when converting a date to and from JSON. Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing property value of the JSON that is being converted. The calling serializer. The object value. Converts a to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts a to and from JSON and BSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts an to and from its name string value. Converts an to and from its name string value. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. A cached representation of the Enum string representation to respect per Enum field name. The type of the Enum. A map of enum field name to either the field name, or the configured enum member name (). Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets or sets a value indicating whether the written enum text should be camel case. true if the written enum text will be camel case; otherwise, false. Converts a to and from a string (e.g. "1.2.3.4"). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing property value of the JSON that is being converted. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts XML to and from JSON. Writes the JSON representation of the object. The to write to. The calling serializer. The value. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Checks if the attributeName is a namespace attribute. Attribute name to test. The attribute name prefix if it has one, otherwise an empty string. True if attribute name is for a namespace attribute, otherwise false. Determines whether this instance can convert the specified value type. Type of the value. true if this instance can convert the specified value type; otherwise, false. Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements. The name of the deserialize root element. Gets or sets a flag to indicate whether to write the Json.NET array attribute. This attribute helps preserve arrays when converting the written XML back to JSON. true if the array attibute is written to the XML; otherwise, false. Gets or sets a value indicating whether to write the root JSON object. true if the JSON root object is omitted; otherwise, false. Specifies how dates are formatted when writing JSON text. Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. Date formatted strings are not parsed to a date type and are read as strings. Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . Specifies how to treat the time value when converting between string and . Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. Treat as a UTC. If the object represents a local time, it is converted to a UTC. Treat as a local time if a is being converted to a string. If a string is being converted to , convert to a local time if a time zone is specified. Time zone information should be preserved when converting. Specifies default value handling options for the . Include members where the member value is the same as the member's default value when serializing objects. Included members are written to JSON. Has no effect when deserializing. Ignore members where the member value is the same as the member's default value when serializing objects so that is is not written to JSON, and ignores setting members when the JSON value equals the member's default value. Members with a default value but no JSON will be set to their default value when deserializing. Ignore members where the member value is the same as the member's default value when serializing objects and sets members to their default value when deserializing. Indicates the method that will be used during deserialization for locating and loading assemblies. In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method is used to load the assembly. In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the Assembly class is used to load the assembly. Specifies formatting options for the . No special formatting is applied. This is the default. Causes child objects to be indented according to the and settings. Provides an interface to enable a class to return line and position information. Gets a value indicating whether the class can return line information. true if LineNumber and LinePosition can be provided; otherwise, false. Gets the current line number. The current line number or 0 if no line information is available (for example, HasLineInfo returns false). Gets the current line position. The current line position or 0 if no line information is available (for example, HasLineInfo returns false). Instructs the how to serialize the collection. Instructs the how to serialize the object. Initializes a new instance of the class. Initializes a new instance of the class with the specified container Id. The container Id. Gets or sets the id. The id. Gets or sets the title. The title. Gets or sets the description. The description. Gets the collection's items converter. The collection's items converter. Gets or sets a value that indicates whether to preserve object references. true to keep object reference; otherwise, false. The default is false. Gets or sets a value that indicates whether to preserve collection's items references. true to keep collection's items object references; otherwise, false. The default is false. Gets or sets the reference loop handling used when serializing the collection's items. The reference loop handling. Gets or sets the type name handling used when serializing the collection's items. The type name handling. Initializes a new instance of the class. Initializes a new instance of the class with a flag indicating whether the array can contain null items A flag indicating whether the array can contain null items. Initializes a new instance of the class with the specified container Id. The container Id. Gets or sets a value indicating whether null items are allowed in the collection. true if null items are allowed in the collection; otherwise, false. Instructs the to use the specified constructor when deserializing that object. Provides methods for converting between common language runtime types and JSON types. Represents JavaScript's boolean value true as a string. This field is read-only. Represents JavaScript's boolean value false as a string. This field is read-only. Represents JavaScript's null as a string. This field is read-only. Represents JavaScript's undefined as a string. This field is read-only. Represents JavaScript's positive infinity as a string. This field is read-only. Represents JavaScript's negative infinity as a string. This field is read-only. Represents JavaScript's NaN as a string. This field is read-only. Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation using the specified. The value to convert. The format the date will be converted to. The time zone handling when the date is converted to a string. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation using the specified. The value to convert. The format the date will be converted to. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. The string delimiter character. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Serializes the specified object to a JSON string. The object to serialize. A JSON string representation of the object. Serializes the specified object to a JSON string. The object to serialize. Indicates how the output is formatted. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. A collection converters used while serializing. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. Indicates how the output is formatted. A collection converters used while serializing. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. The used to serialize the object. If this is null, default serialization settings will be is used. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. Indicates how the output is formatted. The used to serialize the object. If this is null, default serialization settings will be is used. A JSON string representation of the object. Asynchronously serializes the specified object to a JSON string using a collection of . The object to serialize. A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. Asynchronously serializes the specified object to a JSON string using a collection of . The object to serialize. Indicates how the output is formatted. A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. Asynchronously serializes the specified object to a JSON string using a collection of . The object to serialize. Indicates how the output is formatted. The used to serialize the object. If this is null, default serialization settings will be is used. A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. Deserializes the JSON to a .NET object. The JSON to deserialize. The deserialized object from the Json string. Deserializes the JSON to a .NET object. The JSON to deserialize. The used to deserialize the object. If this is null, default serialization settings will be is used. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The JSON to deserialize. The of object being deserialized. The deserialized object from the Json string. Deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The JSON to deserialize. The deserialized object from the Json string. Deserializes the JSON to the given anonymous type. The anonymous type to deserialize to. This can't be specified traditionally and must be infered from the anonymous type passed as a parameter. The JSON to deserialize. The anonymous type object. The deserialized anonymous type from the JSON string. Deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The JSON to deserialize. Converters to use while deserializing. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The object to deserialize. The used to deserialize the object. If this is null, default serialization settings will be is used. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The JSON to deserialize. The type of the object to deserialize. Converters to use while deserializing. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The JSON to deserialize. The type of the object to deserialize to. The used to deserialize the object. If this is null, default serialization settings will be is used. The deserialized object from the JSON string. Asynchronously deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The JSON to deserialize. A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. Asynchronously deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The JSON to deserialize. The used to deserialize the object. If this is null, default serialization settings will be is used. A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. Asynchronously deserializes the JSON to the specified .NET type. The JSON to deserialize. A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. Asynchronously deserializes the JSON to the specified .NET type. The JSON to deserialize. The type of the object to deserialize to. The used to deserialize the object. If this is null, default serialization settings will be is used. A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. Populates the object with values from the JSON string. The JSON to populate values from. The target object to populate values onto. Populates the object with values from the JSON string. The JSON to populate values from. The target object to populate values onto. The used to deserialize the object. If this is null, default serialization settings will be is used. Asynchronously populates the object with values from the JSON string. The JSON to populate values from. The target object to populate values onto. The used to deserialize the object. If this is null, default serialization settings will be is used. A task that represents the asynchronous populate operation. Serializes the to a JSON string. The node to convert to JSON. A JSON string of the XNode. Serializes the to a JSON string. The node to convert to JSON. Indicates how the output is formatted. A JSON string of the XNode. Serializes the to a JSON string. The node to serialize. Indicates how the output is formatted. Omits writing the root object. A JSON string of the XNode. Deserializes the from a JSON string. The JSON string. The deserialized XNode Deserializes the from a JSON string nested in a root elment. The JSON string. The name of the root element to append when deserializing. The deserialized XNode Deserializes the from a JSON string nested in a root elment. The JSON string. The name of the root element to append when deserializing. A flag to indicate whether to write the Json.NET array attribute. This attribute helps preserve arrays when converting the written XML back to JSON. The deserialized XNode Instructs the to use the specified when serializing the member or class. Initializes a new instance of the class. Type of the converter. Gets the type of the converter. The type of the converter. Represents a collection of . Instructs the how to serialize the collection. Initializes a new instance of the class. Initializes a new instance of the class with the specified container Id. The container Id. The exception thrown when an error occurs during Json serialization or deserialization. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Instructs the not to serialize the public field or public read/write property value. Instructs the how to serialize the object. Initializes a new instance of the class. Initializes a new instance of the class with the specified member serialization. The member serialization. Initializes a new instance of the class with the specified container Id. The container Id. Gets or sets the member serialization. The member serialization. Gets or sets a value that indicates whether the object's properties are required. A value indicating whether the object's properties are required. Instructs the to always serialize the member with the specified name. Initializes a new instance of the class. Initializes a new instance of the class with the specified name. Name of the property. Gets or sets the converter used when serializing the property's collection items. The collection's items converter. Gets or sets the null value handling used when serializing this property. The null value handling. Gets or sets the default value handling used when serializing this property. The default value handling. Gets or sets the reference loop handling used when serializing this property. The reference loop handling. Gets or sets the object creation handling used when deserializing this property. The object creation handling. Gets or sets the type name handling used when serializing this property. The type name handling. Gets or sets whether this property's value is serialized as a reference. Whether this property's value is serialized as a reference. Gets or sets the order of serialization and deserialization of a member. The numeric order of serialization or deserialization. Gets or sets a value indicating whether this property is required. A value indicating whether this property is required. Gets or sets the name of the property. The name of the property. Gets or sets the the reference loop handling used when serializing the property's collection items. The collection's items reference loop handling. Gets or sets the the type name handling used when serializing the property's collection items. The collection's items type name handling. Gets or sets whether this property's collection items are serialized as a reference. Whether this property's collection items are serialized as a reference. The exception thrown when an error occurs while reading Json text. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Gets the line number indicating where the error occurred. The line number indicating where the error occurred. Gets the line position indicating where the error occurred. The line position indicating where the error occurred. Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. The exception thrown when an error occurs during Json serialization or deserialization. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Serializes and deserializes objects into and from the JSON format. The enables you to control how objects are encoded into JSON. Initializes a new instance of the class. Creates a new instance using the specified . The settings to be applied to the . A new instance using the specified . Populates the JSON values onto the target object. The that contains the JSON structure to reader values from. The target object to populate values onto. Populates the JSON values onto the target object. The that contains the JSON structure to reader values from. The target object to populate values onto. Deserializes the Json structure contained by the specified . The that contains the JSON structure to deserialize. The being deserialized. Deserializes the Json structure contained by the specified into an instance of the specified type. The containing the object. The of object being deserialized. The instance of being deserialized. Deserializes the Json structure contained by the specified into an instance of the specified type. The containing the object. The type of the object to deserialize. The instance of being deserialized. Deserializes the Json structure contained by the specified into an instance of the specified type. The containing the object. The of object being deserialized. The instance of being deserialized. Serializes the specified and writes the Json structure to a Stream using the specified . The used to write the Json structure. The to serialize. Serializes the specified and writes the Json structure to a Stream using the specified . The used to write the Json structure. The to serialize. Occurs when the errors during serialization and deserialization. Gets or sets the used by the serializer when resolving references. Gets or sets the used by the serializer when resolving type names. Gets or sets how type name writing and reading is handled by the serializer. Gets or sets how a type name assembly is written and resolved by the serializer. The type name assembly format. Gets or sets how object references are preserved by the serializer. Get or set how reference loops (e.g. a class referencing itself) is handled. Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. Get or set how null values are handled during serialization and deserialization. Get or set how null default are handled during serialization and deserialization. Gets or sets how objects are created during deserialization. The object creation handling. Gets or sets how constructors are used during deserialization. The constructor handling. Gets a collection that will be used during serialization. Collection that will be used during serialization. Gets or sets the contract resolver used by the serializer when serializing .NET objects to JSON and vice versa. Gets or sets the used by the serializer when invoking serialization callback methods. The context. Indicates how JSON text output is formatted. Get or set how dates are written to JSON text. Get or set how time zones are handling during serialization and deserialization. Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. Gets or sets the culture used when reading JSON. Defaults to . Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. true if there will be a check for additional JSON content after deserializing an object; otherwise, false. Specifies the settings on a object. Initializes a new instance of the class. Gets or sets how reference loops (e.g. a class referencing itself) is handled. Reference loop handling. Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. Missing member handling. Gets or sets how objects are created during deserialization. The object creation handling. Gets or sets how null values are handled during serialization and deserialization. Null value handling. Gets or sets how null default are handled during serialization and deserialization. The default value handling. Gets or sets a collection that will be used during serialization. The converters. Gets or sets how object references are preserved by the serializer. The preserve references handling. Gets or sets how type name writing and reading is handled by the serializer. The type name handling. Gets or sets how a type name assembly is written and resolved by the serializer. The type name assembly format. Gets or sets how constructors are used during deserialization. The constructor handling. Gets or sets the contract resolver used by the serializer when serializing .NET objects to JSON and vice versa. The contract resolver. Gets or sets the used by the serializer when resolving references. The reference resolver. Gets or sets the used by the serializer when resolving type names. The binder. Gets or sets the error handler called during serialization and deserialization. The error handler called during serialization and deserialization. Gets or sets the used by the serializer when invoking serialization callback methods. The context. Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . Indicates how JSON text output is formatted. Get or set how dates are written to JSON text. Get or set how time zones are handling during serialization and deserialization. Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. Gets or sets the culture used when reading JSON. Defaults to . Gets a value indicating whether there will be a check for additional content after deserializing an object. true if there will be a check for additional content after deserializing an object; otherwise, false. Represents a reader that provides fast, non-cached, forward-only access to JSON text data. Initializes a new instance of the class with the specified . The TextReader containing the XML data to read. Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Changes the state to closed. Gets a value indicating whether the class can return line information. true if LineNumber and LinePosition can be provided; otherwise, false. Gets the current line number. The current line number or 0 if no line information is available (for example, HasLineInfo returns false). Gets the current line position. The current line position or 0 if no line information is available (for example, HasLineInfo returns false). Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Creates an instance of the JsonWriter class using the specified . The TextWriter to write to. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Closes this stream and the underlying stream. Writes the beginning of a Json object. Writes the beginning of a Json array. Writes the start of a constructor with the given name. The name of the constructor. Writes the specified end token. The end token to write. Writes the property name of a name/value pair on a Json object. The name of the property. Writes indent characters. Writes the JSON value delimiter. Writes an indent space. Writes a null value. Writes an undefined value. Writes raw JSON. The raw JSON to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes out the given white space. The string of white space characters. Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. Gets or sets which character to use to quote attribute values. Gets or sets which character to use for indenting when is set to Formatting.Indented. Gets or sets a value indicating whether object names will be surrounded with quotes. Specifies the type of Json token. This is returned by the if a method has not been called. An object start token. An array start token. A constructor start token. An object property name. A comment. Raw JSON. An integer. A float. A string. A boolean. A null token. An undefined token. An object end token. An array end token. A constructor end token. A Date. Byte data. Represents a reader that provides validation. Initializes a new instance of the class that validates the content returned from the given . The to read from while validating. Reads the next JSON token from the stream as a . A . Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. Reads the next JSON token from the stream as a . A . Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Sets an event handler for receiving schema validation errors. Gets the text value of the current Json token. Gets the depth of the current token in the JSON document. The depth of the current token in the JSON document. Gets the path of the current JSON token. Gets the quotation mark character used to enclose the value of a string. Gets the type of the current Json token. Gets the Common Language Runtime (CLR) type for the current Json token. Gets or sets the schema. The schema. Gets the used to construct this . The specified in the constructor. The exception thrown when an error occurs while reading Json text. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. Contains the LINQ to JSON extension methods. Returns a collection of tokens that contains the ancestors of every token in the source collection. The type of the objects in source, constrained to . An of that contains the source collection. An of that contains the ancestors of every node in the source collection. Returns a collection of tokens that contains the descendants of every token in the source collection. The type of the objects in source, constrained to . An of that contains the source collection. An of that contains the descendants of every node in the source collection. Returns a collection of child properties of every object in the source collection. An of that contains the source collection. An of that contains the properties of every object in the source collection. Returns a collection of child values of every object in the source collection with the given key. An of that contains the source collection. The token key. An of that contains the values of every node in the source collection with the given key. Returns a collection of child values of every object in the source collection. An of that contains the source collection. An of that contains the values of every node in the source collection. Returns a collection of converted child values of every object in the source collection with the given key. The type to convert the values to. An of that contains the source collection. The token key. An that contains the converted values of every node in the source collection with the given key. Returns a collection of converted child values of every object in the source collection. The type to convert the values to. An of that contains the source collection. An that contains the converted values of every node in the source collection. Converts the value. The type to convert the value to. A cast as a of . A converted value. Converts the value. The source collection type. The type to convert the value to. A cast as a of . A converted value. Returns a collection of child tokens of every array in the source collection. The source collection type. An of that contains the source collection. An of that contains the values of every node in the source collection. Returns a collection of converted child tokens of every array in the source collection. An of that contains the source collection. The type to convert the values to. The source collection type. An that contains the converted values of every node in the source collection. Returns the input typed as . An of that contains the source collection. The input typed as . Returns the input typed as . The source collection type. An of that contains the source collection. The input typed as . Represents a collection of objects. The type of token Gets the with the specified key. Represents a JSON array. Represents a token that can contain other tokens. Represents an abstract JSON token. Compares the values of two tokens, including the values of all descendant tokens. The first to compare. The second to compare. true if the tokens are equal; otherwise false. Adds the specified content immediately after this token. A content object that contains simple content or a collection of content objects to be added after this token. Adds the specified content immediately before this token. A content object that contains simple content or a collection of content objects to be added before this token. Returns a collection of the ancestor tokens of this token. A collection of the ancestor tokens of this token. Returns a collection of the sibling tokens after this token, in document order. A collection of the sibling tokens after this tokens, in document order. Returns a collection of the sibling tokens before this token, in document order. A collection of the sibling tokens before this token, in document order. Gets the with the specified key converted to the specified type. The type to convert the token to. The token key. The converted token value. Returns a collection of the child tokens of this token, in document order. An of containing the child tokens of this , in document order. Returns a collection of the child tokens of this token, in document order, filtered by the specified type. The type to filter the child tokens on. A containing the child tokens of this , in document order. Returns a collection of the child values of this token, in document order. The type to convert the values to. A containing the child values of this , in document order. Removes this token from its parent. Replaces this token with the specified token. The value. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Returns the indented JSON for this token. The indented JSON for this token. Returns the JSON for this token using the given formatting and converters. Indicates how the output is formatted. A collection of which will be used when writing the token. The JSON for this token using the given formatting and converters. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Creates an for this token. An that can be used to read this token and its descendants. Creates a from an object. The object that will be used to create . A with the value of the specified object Creates a from an object using the specified . The object that will be used to create . The that will be used when reading the object. A with the value of the specified object Creates the specified .NET type from the . The new object created from the JSON value. Creates the specified .NET type from the using the specified . The that will be used when creating the object. The new object created from the JSON value. Creates a from a . An positioned at the token to read into this . An that contains the token and its descendant tokens that were read from the reader. The runtime type of the token is determined by the token type of the first token encountered in the reader. Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Creates a from a . An positioned at the token to read into this . An that contains the token and its descendant tokens that were read from the reader. The runtime type of the token is determined by the token type of the first token encountered in the reader. Selects the token that matches the object path. The object path from the current to the to be returned. This must be a string of property names or array indexes separated by periods, such as Tables[0].DefaultView[0].Price in C# or Tables(0).DefaultView(0).Price in Visual Basic. The that matches the object path or a null reference if no matching token is found. Selects the token that matches the object path. The object path from the current to the to be returned. This must be a string of property names or array indexes separated by periods, such as Tables[0].DefaultView[0].Price in C# or Tables(0).DefaultView(0).Price in Visual Basic. A flag to indicate whether an error should be thrown if no token is found. The that matches the object path. Returns the responsible for binding operations performed on this object. The expression tree representation of the runtime value. The to bind this object. Returns the responsible for binding operations performed on this object. The expression tree representation of the runtime value. The to bind this object. Creates a new instance of the . All child tokens are recursively cloned. A new instance of the . Gets a comparer that can compare two tokens for value equality. A that can compare two nodes for value equality. Gets or sets the parent. The parent. Gets the root of this . The root of this . Gets the node type for this . The type. Gets a value indicating whether this token has childen tokens. true if this token has child values; otherwise, false. Gets the next sibling token of this node. The that contains the next sibling token. Gets the previous sibling token of this node. The that contains the previous sibling token. Gets the with the specified key. The with the specified key. Get the first child token of this token. A containing the first child token of the . Get the last child token of this token. A containing the last child token of the . Raises the event. The instance containing the event data. Returns a collection of the child tokens of this token, in document order. An of containing the child tokens of this , in document order. Returns a collection of the child values of this token, in document order. The type to convert the values to. A containing the child values of this , in document order. Returns a collection of the descendant tokens for this token in document order. An containing the descendant tokens of the . Adds the specified content as children of this . The content to be added. Adds the specified content as the first children of this . The content to be added. Creates an that can be used to add tokens to the . An that is ready to have content written to it. Replaces the children nodes of this token with the specified content. The content. Removes the child nodes from this token. Occurs when the items list of the collection has changed, or the collection is reset. Gets the container's children tokens. The container's children tokens. Gets a value indicating whether this token has childen tokens. true if this token has child values; otherwise, false. Get the first child token of this token. A containing the first child token of the . Get the last child token of this token. A containing the last child token of the . Gets the count of child JSON tokens. The count of child JSON tokens Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified content. The contents of the array. Initializes a new instance of the class with the specified content. The contents of the array. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Creates a from an object. The object that will be used to create . A with the values of the specified object Creates a from an object. The object that will be used to create . The that will be used to read the object. A with the values of the specified object Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Determines the index of a specific item in the . The object to locate in the . The index of if found in the list; otherwise, -1. Inserts an item to the at the specified index. The zero-based index at which should be inserted. The object to insert into the . is not a valid index in the . The is read-only. Removes the item at the specified index. The zero-based index of the item to remove. is not a valid index in the . The is read-only. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Gets the container's children tokens. The container's children tokens. Gets the node type for this . The type. Gets the with the specified key. The with the specified key. Gets or sets the at the specified index. Represents a JSON constructor. Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified name and content. The constructor name. The contents of the constructor. Initializes a new instance of the class with the specified name and content. The constructor name. The contents of the constructor. Initializes a new instance of the class with the specified name. The constructor name. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Gets the container's children tokens. The container's children tokens. Gets or sets the name of this constructor. The constructor name. Gets the node type for this . The type. Gets the with the specified key. The with the specified key. Represents a collection of objects. The type of token An empty collection of objects. Initializes a new instance of the struct. The enumerable. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the with the specified key. Represents a JSON object. Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified content. The contents of the object. Initializes a new instance of the class with the specified content. The contents of the object. Gets an of this object's properties. An of this object's properties. Gets a the specified name. The property name. A with the specified name or null. Gets an of this object's property values. An of this object's property values. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Creates a from an object. The object that will be used to create . A with the values of the specified object Creates a from an object. The object that will be used to create . The that will be used to read the object. A with the values of the specified object Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Adds the specified property name. Name of the property. The value. Removes the property with the specified name. Name of the property. true if item was successfully removed; otherwise, false. Tries the get value. Name of the property. The value. true if a value was successfully retrieved; otherwise, false. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Raises the event with the provided arguments. Name of the property. Returns the responsible for binding operations performed on this object. The expression tree representation of the runtime value. The to bind this object. Gets the container's children tokens. The container's children tokens. Occurs when a property value changes. Gets the node type for this . The type. Gets the with the specified key. The with the specified key. Gets or sets the with the specified property name. Represents a JSON property. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class. The property name. The property content. Initializes a new instance of the class. The property name. The property content. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Gets the container's children tokens. The container's children tokens. Gets the property name. The property name. Gets or sets the property value. The property value. Gets the node type for this . The type. Represents a raw JSON string. Represents a value in JSON (string, integer, date, etc). Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Creates a comment with the given value. The value. A comment with the given value. Creates a string with the given value. The value. A string with the given value. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Indicates whether the current object is equal to another object of the same type. true if the current object is equal to the parameter; otherwise, false. An object to compare with this object. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Returns the responsible for binding operations performed on this object. The expression tree representation of the runtime value. The to bind this object. Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. An object to compare with this instance. A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance is less than . Zero This instance is equal to . Greater than zero This instance is greater than . is not the same type as this instance. Gets a value indicating whether this token has childen tokens. true if this token has child values; otherwise, false. Gets the node type for this . The type. Gets or sets the underlying token value. The underlying token value. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class. The raw json. Creates an instance of with the content of the reader's current token. The reader. An instance of with the content of the reader's current token. Compares tokens to determine whether they are equal. Determines whether the specified objects are equal. The first object of type to compare. The second object of type to compare. true if the specified objects are equal; otherwise, false. Returns a hash code for the specified object. The for which a hash code is to be returned. A hash code for the specified object. The type of is a reference type and is null. Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. Initializes a new instance of the class. The token to read from. Reads the next JSON token from the stream as a . A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . A . This method will return null at the end of an array. Reads the next JSON token from the stream. true if the next token was read successfully; false if there are no more tokens to read. Specifies the type of token. No token type has been set. A JSON object. A JSON array. A JSON constructor. A JSON object property. A comment. An integer value. A float value. A string value. A boolean value. A null value. An undefined value. A date value. A raw JSON value. A collection of bytes value. A Guid value. A Uri value. A TimeSpan value. Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. Initializes a new instance of the class writing to the given . The container being written to. Initializes a new instance of the class. Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. Closes this stream and the underlying stream. Writes the beginning of a Json object. Writes the beginning of a Json array. Writes the start of a constructor with the given name. The name of the constructor. Writes the end. The token. Writes the property name of a name/value pair on a Json object. The name of the property. Writes a null value. Writes an undefined value. Writes raw JSON. The raw JSON to write. Writes out a comment /*...*/ containing the specified text. Text to place inside the comment. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Gets the token being writen. The token being writen. Specifies the member serialization options for the . All public members are serialized by default. Members can be excluded using or . This is the default member serialization mode. Only members must be marked with or are serialized. This member serialization mode can also be set by marking the class with . All public and private fields are serialized. Members can be excluded using or . This member serialization mode can also be set by marking the class with and setting IgnoreSerializableAttribute on to false. Specifies missing member handling options for the . Ignore a missing member and do not attempt to deserialize it. Throw a when a missing member is encountered during deserialization. Specifies null value handling options for the . Include null values when serializing and deserializing objects. Ignore null values when serializing and deserializing objects. Specifies how object creation is handled by the . Reuse existing objects, create new objects when needed. Only reuse existing objects. Always create new objects. Specifies reference handling options for the . Do not preserve references when serializing types. Preserve references when serializing into a JSON object structure. Preserve references when serializing into a JSON array structure. Preserve references when serializing. Specifies reference loop handling options for the . Throw a when a loop is encountered. Ignore loop references and do not serialize. Serialize loop references. Indicating whether a property is required. The property is not required. The default state. The property must be defined in JSON but can be a null value. The property must be defined in JSON and cannot be a null value. Contains the JSON schema extension methods. Determines whether the is valid. The source to test. The schema to test with. true if the specified is valid; otherwise, false. Determines whether the is valid. The source to test. The schema to test with. When this method returns, contains any error messages generated while validating. true if the specified is valid; otherwise, false. Validates the specified . The source to test. The schema to test with. Validates the specified . The source to test. The schema to test with. The validation event handler. An in-memory representation of a JSON Schema. Initializes a new instance of the class. Reads a from the specified . The containing the JSON Schema to read. The object representing the JSON Schema. Reads a from the specified . The containing the JSON Schema to read. The to use when resolving schema references. The object representing the JSON Schema. Load a from a string that contains schema JSON. A that contains JSON. A populated from the string that contains JSON. Parses the specified json. The json. The resolver. A populated from the string that contains JSON. Writes this schema to a . A into which this method will write. Writes this schema to a using the specified . A into which this method will write. The resolver used. Returns a that represents the current . A that represents the current . Gets or sets the id. Gets or sets the title. Gets or sets whether the object is required. Gets or sets whether the object is read only. Gets or sets whether the object is visible to users. Gets or sets whether the object is transient. Gets or sets the description of the object. Gets or sets the types of values allowed by the object. The type. Gets or sets the pattern. The pattern. Gets or sets the minimum length. The minimum length. Gets or sets the maximum length. The maximum length. Gets or sets a number that the value should be divisble by. A number that the value should be divisble by. Gets or sets the minimum. The minimum. Gets or sets the maximum. The maximum. Gets or sets a flag indicating whether the value can not equal the number defined by the "minimum" attribute. A flag indicating whether the value can not equal the number defined by the "minimum" attribute. Gets or sets a flag indicating whether the value can not equal the number defined by the "maximum" attribute. A flag indicating whether the value can not equal the number defined by the "maximum" attribute. Gets or sets the minimum number of items. The minimum number of items. Gets or sets the maximum number of items. The maximum number of items. Gets or sets the of items. The of items. Gets or sets the of properties. The of properties. Gets or sets the of additional properties. The of additional properties. Gets or sets the pattern properties. The pattern properties. Gets or sets a value indicating whether additional properties are allowed. true if additional properties are allowed; otherwise, false. Gets or sets the required property if this property is present. The required property if this property is present. Gets or sets the identity. The identity. Gets or sets the a collection of valid enum values allowed. A collection of valid enum values allowed. Gets or sets a collection of options. A collection of options. Gets or sets disallowed types. The disallow types. Gets or sets the default value. The default value. Gets or sets the extend . The extended . Gets or sets the format. The format. Returns detailed information about the schema exception. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The error message that explains the reason for the exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. Gets the line number indicating where the error occurred. The line number indicating where the error occurred. Gets the line position indicating where the error occurred. The line position indicating where the error occurred. Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. Generates a from a specified . Generate a from the specified type. The type to generate a from. A generated from the specified type. Generate a from the specified type. The type to generate a from. The used to resolve schema references. A generated from the specified type. Generate a from the specified type. The type to generate a from. Specify whether the generated root will be nullable. A generated from the specified type. Generate a from the specified type. The type to generate a from. The used to resolve schema references. Specify whether the generated root will be nullable. A generated from the specified type. Gets or sets how undefined schemas are handled by the serializer. Gets or sets the contract resolver. The contract resolver. Resolves from an id. Initializes a new instance of the class. Gets a for the specified id. The id. A for the specified id. Gets or sets the loaded schemas. The loaded schemas. The value types allowed by the . No type specified. String type. Float type. Integer type. Boolean type. Object type. Array type. Null type. Any type. Specifies undefined schema Id handling options for the . Do not infer a schema Id. Use the .NET type name as the schema Id. Use the assembly qualified .NET type name as the schema Id. Returns detailed information related to the . Gets the associated with the validation error. The JsonSchemaException associated with the validation error. Gets the path of the JSON location where the validation error occurred. The path of the JSON location where the validation error occurred. Gets the text description corresponding to the validation error. The text description. Represents the callback method that will handle JSON schema validation events and the . Allows users to control class loading and mandate what class to load. When overridden in a derived class, controls the binding of a serialized object to a type. Specifies the name of the serialized object. Specifies the name of the serialized object The type of the object the formatter creates a new instance of. When overridden in a derived class, controls the binding of a serialized object to a type. The type of the object the formatter creates a new instance of. Specifies the name of the serialized object. Specifies the name of the serialized object. Resolves member mappings for a type, camel casing property names. Used by to resolves a for a given . Used by to resolves a for a given . Resolves the contract for a given type. The type to resolve a contract for. The contract for a given type. Initializes a new instance of the class. Initializes a new instance of the class. If set to true the will use a cached shared with other resolvers of the same type. Sharing the cache will significantly performance because expensive reflection will only happen once but could cause unexpected behavior if different instances of the resolver are suppose to produce different results. When set to false it is highly recommended to reuse instances with the . Resolves the contract for a given type. The type to resolve a contract for. The contract for a given type. Gets the serializable members for the type. The type to get serializable members for. The serializable members for the type. Creates a for the given type. Type of the object. A for the given type. Creates the constructor parameters. The constructor to create properties for. The type's member properties. Properties for the given . Creates a for the given . The matching member property. The constructor parameter. A created for the given . Resolves the default for the contract. Type of the object. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Determines which contract type is created for the given type. Type of the object. A for the given type. Creates properties for the given . The type to create properties for. /// The member serialization mode for the type. Properties for the given . Creates the used by the serializer to get and set values from a member. The member. The used by the serializer to get and set values from a member. Creates a for the given . The member's parent . The member to create a for. A created for the given . Resolves the name of the property. Name of the property. Name of the property. Gets the resolved name of the property. Name of the property. Name of the property. Gets a value indicating whether members are being get and set using dynamic code generation. This value is determined by the runtime permissions available. true if using dynamic code generation; otherwise, false. Gets or sets a value indicating whether compiler generated members should be serialized. true if serialized compiler generated members; otherwise, false. Initializes a new instance of the class. Resolves the name of the property. Name of the property. The property name camel cased. Used to resolve references when serializing and deserializing JSON by the . Resolves a reference to its object. The serialization context. The reference to resolve. The object that Gets the reference for the sepecified object. The serialization context. The object to get a reference for. The reference to the object. Determines whether the specified object is referenced. The serialization context. The object to test for a reference. true if the specified object is referenced; otherwise, false. Adds a reference to the specified object. The serialization context. The reference. The object to reference. The default serialization binder used when resolving and loading classes from type names. When overridden in a derived class, controls the binding of a serialized object to a type. Specifies the name of the serialized object. Specifies the name of the serialized object. The type of the object the formatter creates a new instance of. When overridden in a derived class, controls the binding of a serialized object to a type. The type of the object the formatter creates a new instance of. Specifies the name of the serialized object. Specifies the name of the serialized object. Provides information surrounding an error. Gets or sets the error. The error. Gets the original object that caused the error. The original object that caused the error. Gets the member that caused the error. The member that caused the error. Gets the path of the JSON location where the error occurred. The path of the JSON location where the error occurred. Gets or sets a value indicating whether this is handled. true if handled; otherwise, false. Provides data for the Error event. Initializes a new instance of the class. The current object. The error context. Gets the current object the error event is being raised against. The current object the error event is being raised against. Gets the error context. The error context. Provides methods to get and set values. Sets the value. The target to set the value on. The value to set on the target. Gets the value. The target to get the value from. The value. Contract details for a used by the . Contract details for a used by the . Contract details for a used by the . Gets the underlying type for the contract. The underlying type for the contract. Gets or sets the type created during deserialization. The type created during deserialization. Gets or sets whether this type contract is serialized as a reference. Whether this type contract is serialized as a reference. Gets or sets the default for this contract. The converter. Gets or sets the method called immediately after deserialization of the object. The method called immediately after deserialization of the object. Gets or sets the method called during deserialization of the object. The method called during deserialization of the object. Gets or sets the method called after serialization of the object graph. The method called after serialization of the object graph. Gets or sets the method called before serialization of the object. The method called before serialization of the object. Gets or sets the default creator method used to create the object. The default creator method used to create the object. Gets or sets a value indicating whether the default creator is non public. true if the default object creator is non-public; otherwise, false. Gets or sets the method called when an error is thrown during the serialization of the object. The method called when an error is thrown during the serialization of the object. Initializes a new instance of the class. The underlying type for the contract. Gets or sets the default collection items . The converter. Gets or sets a value indicating whether the collection items preserve object references. true if collection items preserve object references; otherwise, false. Gets or sets the collection item reference loop handling. The reference loop handling. Gets or sets the collection item type name handling. The type name handling. Initializes a new instance of the class. The underlying type for the contract. Gets the of the collection items. The of the collection items. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets or sets the property name resolver. The property name resolver. Gets the of the dictionary keys. The of the dictionary keys. Gets the of the dictionary values. The of the dictionary values. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets the object's properties. The object's properties. Gets or sets the property name resolver. The property name resolver. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Gets or sets the object member serialization. The member object serialization. Gets or sets a value that indicates whether the object's properties are required. A value indicating whether the object's properties are required. Gets the object's properties. The object's properties. Gets the constructor parameters required for any non-default constructor Gets or sets the override constructor used to create the object. This is set when a constructor is marked up using the JsonConstructor attribute. The override constructor. Gets or sets the parametrized constructor used to create the object. The parametrized constructor. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Maps a JSON property to a .NET member or constructor parameter. Returns a that represents this instance. A that represents this instance. Gets or sets the name of the property. The name of the property. Gets or sets the type that declared this property. The type that declared this property. Gets or sets the order of serialization and deserialization of a member. The numeric order of serialization or deserialization. Gets or sets the name of the underlying member or parameter. The name of the underlying member or parameter. Gets the that will get and set the during serialization. The that will get and set the during serialization. Gets or sets the type of the property. The type of the property. Gets or sets the for the property. If set this converter takes presidence over the contract converter for the property type. The converter. Gets the member converter. The member converter. Gets a value indicating whether this is ignored. true if ignored; otherwise, false. Gets a value indicating whether this is readable. true if readable; otherwise, false. Gets a value indicating whether this is writable. true if writable; otherwise, false. Gets the default value. The default value. Gets a value indicating whether this is required. A value indicating whether this is required. Gets a value indicating whether this property preserves object references. true if this instance is reference; otherwise, false. Gets the property null value handling. The null value handling. Gets the property default value handling. The default value handling. Gets the property reference loop handling. The reference loop handling. Gets the property object creation handling. The object creation handling. Gets or sets the type name handling. The type name handling. Gets or sets a predicate used to determine whether the property should be serialize. A predicate used to determine whether the property should be serialize. Gets or sets a predicate used to determine whether the property should be serialized. A predicate used to determine whether the property should be serialized. Gets or sets an action used to set whether the property has been deserialized. An action used to set whether the property has been deserialized. Gets or sets the converter used when serializing the property's collection items. The collection's items converter. Gets or sets whether this property's collection items are serialized as a reference. Whether this property's collection items are serialized as a reference. Gets or sets the the type name handling used when serializing the property's collection items. The collection's items type name handling. Gets or sets the the reference loop handling used when serializing the property's collection items. The collection's items reference loop handling. A collection of objects. Initializes a new instance of the class. The type. When implemented in a derived class, extracts the key from the specified element. The element from which to extract the key. The key for the specified element. Adds a object. The property to add to the collection. Gets the closest matching object. First attempts to get an exact case match of propertyName and then a case insensitive match. Name of the property. A matching property if found. Gets a property by property name. The name of the property to get. Type property name string comparison. A matching property if found. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Represents a method that constructs an object. When applied to a method, specifies that the method is called when an error occurs serializing an object. Get and set values for a using reflection. Initializes a new instance of the class. The member info. Sets the value. The target to set the value on. The value to set on the target. Gets the value. The target to get the value from. The value. Specifies type name handling options for the . Do not include the .NET type name when serializing types. Include the .NET type name when serializing into a JSON object structure. Include the .NET type name when serializing into a JSON array structure. Always include the .NET type name when serializing. Include the .NET type name when the type of the object being serialized is not the same as its declared type. Determines whether the collection is null or empty. The collection. true if the collection is null or empty; otherwise, false. Adds the elements of the specified collection to the specified generic IList. The list to add to. The collection of elements to add. Returns the index of the first occurrence in a sequence by using a specified IEqualityComparer. The type of the elements of source. A sequence in which to locate a value. The object to locate in the sequence An equality comparer to compare values. The zero-based index of the first occurrence of value within the entire sequence, if found; otherwise, –1. Converts the value to the specified type. The value to convert. The culture to use when converting. The type to convert the value to. The converted type. Converts the value to the specified type. The value to convert. The culture to use when converting. The type to convert the value to. The converted value if the conversion was successful or the default value of T if it failed. true if initialValue was converted successfully; otherwise, false. Converts the value to the specified type. If the value is unable to be converted, the value is checked whether it assignable to the specified type. The value to convert. The culture to use when converting. The type to convert or cast the value to. The converted type. If conversion was unsuccessful, the initial value is returned if assignable to the target type. Helper method for generating a MetaObject which calls a specific method on Dynamic that returns a result Helper method for generating a MetaObject which calls a specific method on Dynamic, but uses one of the arguments for the result. Helper method for generating a MetaObject which calls a specific method on Dynamic, but uses one of the arguments for the result. Returns a Restrictions object which includes our current restrictions merged with a restriction limiting our type Gets a dictionary of the names and values of an Enum type. Gets a dictionary of the names and values of an Enum type. The enum type to get names and values for. Gets the type of the typed collection's items. The type. The type of the typed collection's items. Gets the member's underlying type. The member. The underlying type of the member. Determines whether the member is an indexed property. The member. true if the member is an indexed property; otherwise, false. Determines whether the property is an indexed property. The property. true if the property is an indexed property; otherwise, false. Gets the member's value on the object. The member. The target object. The member's value on the object. Sets the member's value on the target object. The member. The target. The value. Determines whether the specified MemberInfo can be read. The MemberInfo to determine whether can be read. /// if set to true then allow the member to be gotten non-publicly. true if the specified MemberInfo can be read; otherwise, false. Determines whether the specified MemberInfo can be set. The MemberInfo to determine whether can be set. if set to true then allow the member to be set non-publicly. if set to true then allow the member to be set if read-only. true if the specified MemberInfo can be set; otherwise, false. Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. Determines whether the string is all white space. Empty string will return false. The string to test whether it is all white space. true if the string is all white space; otherwise, false. Nulls an empty string. The string. Null if the string was null, otherwise the string unchanged. Specifies the state of the . An exception has been thrown, which has left the in an invalid state. You may call the method to put the in the Closed state. Any other method calls results in an being thrown. The method has been called. An object is being written. A array is being written. A constructor is being written. A property is being written. A write method has not been called. ================================================ FILE: packages/Unity.3.5.1404.0/UnityConfiguration30.xsd ================================================  ================================================ FILE: packages/Unity.3.5.1404.0/lib/net45/Microsoft.Practices.Unity.Configuration.XML ================================================ Microsoft.Practices.Unity.Configuration A configuration element storing information about a single type alias. Base class for configuration elements with a default implementation of public deserialization. Load this element from the given . Contains the XML to initialize from. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Construct a new, uninitialized . Construct a new that is initialized to alias to the target . Alias to use. Type that is aliased. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. The alias used for this type. The fully qualified name this alias refers to. A collection of s. Specialization of that provides a canned implementation of . Type of configuration element in the collection. A base helper class for implementing configuration collections. Type of configuration element contained in the collection. Plug point to get objects out of the collection. Index in the collection to retrieve the item from. Item at that index or null if not present. Plug point to get objects out of the collection. Key to look up the object by. Item with that key or null if not present. Load this element from the given . Contains the XML to initialize from. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. 1 Add a new element to the collection. Element to add. Remove an element from the collection at the given index. The index of the item to remove. Remove all the items in the collection. Write out the contents of this collection to the given without a containing element corresponding directly to this container element. Each child element will have a tag name given by . to output XML to. Name of tag to generate. Indexer to retrieve items in the collection by index. Index of the item to get or set. The item at the given index. When overridden in a derived class, creates a new . A new . Causes the configuration system to throw an exception. true if the unrecognized element was deserialized successfully; otherwise, false. The default is false. The name of the unrecognized element. An input stream that reads XML from the configuration file. The element specified in is the <clear> element. starts with the reserved prefix "config" or "lock". Gets the element key for a specified configuration element when overridden in a derived class. An that acts as the key for the specified . The to return the key for. Indexer that allows you to get or set an alias by the alias name. Alias of element to get or set. The type name at that alias. A configuration element used to configure injection of a specific set of values into an array. Base class for configuration elements that describe a value that will be injected. Initialize a new instance of . Generate an object that will be used to configure the container for a type registration. Container that is being configured. Supplied in order to let custom implementations retrieve services; do not configure the container directly in this method. Type of the Validate that an expected attribute is present in the given dictionary and that it has a non-empty value. Dictionary of name/value pairs to check. attribute name to check. Return a unique string that can be used to identify this object. Used by the configuration collection support. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Generate an object that will be used to configure the container for a type registration. Container that is being configured. Supplied in order to let custom implementations retrieve services; do not configure the container directly in this method. Type of the Type of array to inject. This is actually the type of the array elements, not the array type. Optional, if not specified we take the type from our containing element. Values used to calculate the contents of the array. A configuration element representing the namespace tags in the config file. An element with a single "name" property, used for the namespaces and assemblies. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Name attribute for this element. A collection of s in configuration. Gets the element key for a specified configuration element when overridden in a derived class. An that acts as the key for the specified . The to return the key for. Helpful extension methods when implementing configuration sections that deserialize "unwrapped" elements - elements that should be deserialized into a container but can be present outside that container in the actual config file. Deserialize an element of the given type, store it in the collection object, and Type of element to create and deserialize. Parent element containing element to deserialize. Xml reader containing state to deserialize from. Collection to store the created element into. The created element. Deserialize an element, basing the element type on the one supplied at runtime, and then store the element into the given . This method is useful when reading elements into a polymorphic collection. Base type of element to store. Element that contains the collection being stored into. Xml Reader containing state to deserialize from. Runtime type of element to create. Collection to store the created element into. The created element. Class that tracks the current input state of the parser. A simple implementing of the rules for a Parsing Expression Grammar parsing algorithm. This supplies basic methods to do the primitives of the PEG, and combinators to create larger rules. The PEG "dot" operator that matches and consumes one character. Input to the parser. The parse result. Parse function generator that returns a method to match a single, specific character. Character to match. The generated parsing function. Parse function generator that checks if the current character matches the predicate supplied. Predicate used to determine if the character is in the given range. The generated parsing function. The "*" operator - match zero or more of the inner parse expressions. Parse method to repeat matching. The generated parsing function. Parsing combinator that matches all of the given expressions in order, or matches none of them. Expressions that form the sequence to match. The combined sequence. Parsing combinator that implements the PEG prioritized choice operator. Basically, try each of the expressions in order, and match if any of them match, stopping on the first match. Expressions that form the set of alternatives. The combined parsing method. Parsing combinator implementing the "not" predicate. This wraps the given parsing method with a check to see if it matched. If it matched, then the Not fails, and vice versa. The result consumes no input. The parse method to wrap. The generated parsing function. Parsing expression that matches End of input. Parser input. Parse result Combinator that executes an action if the given expression matched. Parsing expression to match. Action to execute if matched. Input is the matched text from . The result of . Combinator that executes an action if the given expression matched. parsing expression to match. Method to execute if a match happens. This method returns the that will be returned from the combined expression. The result of if expression matched, else whatever returned. Object containing the result of attempting to match a PEG rule. This object is the return type for all parsing methods. Did the rule match? The characters that were matched (if any) Any extra information provided by the parsing expression (only set if the parse matched). The nature of the data varies depending on the parsing expression. Helper methods to make it easier to pull the data out of the result of a sequence expression. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. 2 Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. 1 Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. true if is found in the ; otherwise, false. The object to locate in the . Copies the elements of the sequence to an , starting at a particular index. The one-dimensional that is the destination of the elements copied from this sequence. The must have zero-based indexing. The zero-based index in at which copying begins. is null. is less than 0. is multidimensional. -or- is equal to or greater than the length of . -or- The number of elements in the source is greater than the available space from to the end of the destination . Removes the first occurrence of a specific object from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The object to remove from the . The is read-only. Determines the index of a specific item in the . The index of if found in the list; otherwise, -1. The object to locate in the . Inserts an item to the at the specified index. The zero-based index at which should be inserted. The object to insert into the . is not a valid index in the . The is read-only. Removes the item at the specified index. The zero-based index of the item to remove. is not a valid index in the . The is read-only. Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Gets or sets the element at the specified index. The element at the specified index. The zero-based index of the element to get or set. is not a valid index in the . The property is set and the is read-only. Class containing information about a type name. The base name of the class Namespace if any Assembly name, if any Helper methods on . A helper method to make it more foolproof to write elements. This takes care of writing the start and end element tags, and takes a nested closure with the code to write the content of the tag. That way the caller doesn't need to worry about the details of getting the start and end tags correct. We don't support XML Namespaces here because .NET configuration doesn't use them so we don't need it for this current implementation. XmlWriter to write to. Name of element. Nested lambda which, when executed, will create the content for the element. (for method chaining if desired). A helper method to make it easier to output attributes. If the is null or an empty string, output nothing, else output the given XML attribute. Writer to output to. Attribute name to write. Value for the attribute. (for method chaining if desired). A base class for those elements that can be used to configure a unity container. Create a new instance of . Apply this element's configuration to the given . Container to configure. Return a unique key that can be used to manage this element in a collection. A couple of useful extension methods on IDictionary Get the value from a dictionary, or null if there is no value. Key type of dictionary. Value type of dictionary. Dictionary to search. Key to look up. The value at the key or null if not in the dictionary. A helper class used to map element tag names to a handler method used to interpret that element. Add method to enable dictionary initializer syntax Process an unknown element according to the map entries. Parent element that hit this unknown element. Name of the unknown element. XmlReader positioned at start of element. true if processed, false if not. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. 2 Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. 1 A helper class used to map element tag names to a handler method used to interpret that element. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. 2 Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. 1 A helper class that assists in deserializing parameter and property elements. These elements both have a single "value" child element that specify the value to inject for the property or parameter. Create a new that wraps reading values and storing them in the given . Element that contains the value elements. Gets a , or if none is present, returns a default . The . The given , unless is null, in which case returns a . Helper method used during deserialization to handle attributes for the dependency and value tags. attribute name. attribute value. true Helper method used during deserialization to handle the default value element tags. The element name. XML data to read. True if deserialization succeeded, false if it failed. Call this method at the end of deserialization of your element to set your value element. Serialize a object out to XML. This method is aware of and implements the shorthand attributes for dependency and value elements. Writer to output XML to. The to serialize. If true, always output an element. If false, then dependency and value elements will be serialized as attributes in the parent tag. Configuration element representing a constructor configuration. Base class for configuration elements that generate object to configure a container. Return the set of s that are needed to configure the container according to this configuration element. Container that is being configured. Type that is being registered. Type that is being mapped to. Name this registration is under. One or more objects that should be applied to the container registration. Get the standard tag name for an taking into account currently loaded section extensions. Element to get the name for. The element name. If the member element is not currently registered with the section. Each element must have a unique key, which is generated by the subclasses. Element name to use to serialize this into XML. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Return the set of s that are needed to configure the container according to this configuration element. Container that is being configured. Type that is being registered. Type that is being mapped to. Name this registration is under. One or more objects that should be applied to the container registration. The parameters of the constructor to call. Each element must have a unique key, which is generated by the subclasses. Element name to use to serialize this into XML. A collection of s as loaded from configuration. When overridden in a derived class, creates a new . A new . Gets the element key for a specified configuration element when overridden in a derived class. An that acts as the key for the specified . The to return the key for. A configuration element class defining the set of registrations to be put into a container. Original configuration API kept for backwards compatibility. Container to configure Apply the configuration information in this element to the given . Container to configure. Gets a value indicating whether an unknown element is encountered during deserialization. true when an unknown element is encountered while deserializing; otherwise, false. The name of the unknown subelement. The being used for deserialization. The element identified by is locked. - or - One or more of the element's attributes is locked. - or - is unrecognized, or the element has an unrecognized attribute. - or - The element has a Boolean attribute with an invalid value. - or - An attempt was made to deserialize a property more than once. - or - An attempt was made to deserialize a property that is not a valid member of the element. - or - The element cannot contain a CDATA or text element. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Name for this container configuration as given in the config file. The type registrations in this container. Any instances to register in the container. Any extensions to add to the container. Set of any extra configuration elements that were added by a section extension. This is not marked as a configuration property because we don't want the actual property to show up as a nested element in the configuration. Configuration element representing an extension to add to a container. Add the extension specified in this element to the container. Container to configure. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Type of the extension to add. A collection of s. Gets the element key for a specified configuration element when overridden in a derived class. An that acts as the key for the specified . The to return the key for. A derived class that describes a parameter that should be resolved through the container. Create a new instance of . Create a new instance of with properties initialized from the contents of . Dictionary of name/value pairs to initialize this object with. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Write the contents of this element to the given . This method always outputs an explicit <dependency> tag, instead of providing attributes to the parent method. Writer to send XML content to. Generate an object that will be used to configure the container for a type registration. Container that is being configured. Supplied in order to let custom implementations retrieve services; do not configure the container directly in this method. Type of the Name to use to when resolving. If empty, resolves the default. Name of type this dependency should resolve to. This is optional; without it the container will resolve the type of whatever property or parameter this element is contained in. Base class used to derive new elements that can occur directly within a container element. Initialize a new instance of . When overridden in a derived class, this method will make configuration calls into the given according to its contents. The container to configure. Unique key generated for use in the collection class. A collection of s. When overridden in a derived class, creates a new . A new . Gets the element key for a specified configuration element when overridden in a derived class. An that acts as the key for the specified . The to return the key for. This class manages the set of extension elements added by section elements. Clear the current set of extension elements. Register a new ContainerExtensionConfigurationElement with he section so it can be read. prefix if any. tag name. Type of element to register. Register a new with the section so it can be read. prefix if any. Tag name. Type of element to register. Register a new with the section so it can be read. prefix if any. Tag name. Type of element to register. Retrieve the registered for the given tag. Tag to look up. Type of element, or null if not registered. Retrieve the ContainerExtensionConfigurationElement registered for the given tag. Tag to look up. Type of element, or null if not registered. Retrieve the ContainerExtensionConfigurationElement registered for the given tag. Tag to look up. Type of element, or null if not registered. Retrieve the correct tag to use when serializing the given to XML. Element to be serialized. The tag for that element type. if the element is of a type that is not registered with the section already. A polymorphic collection of s. Causes the configuration system to throw an exception. true if the unrecognized element was deserialized successfully; otherwise, false. The default is false. The name of the unrecognized element. An input stream that reads XML from the configuration file. The element specified in is the <clear> element. starts with the reserved prefix "config" or "lock". When overridden in a derived class, creates a new . A new . Gets the element key for a specified configuration element when overridden in a derived class. An that acts as the key for the specified . The to return the key for. Indexer that lets you access elements by their key. Key to retrieve element with. The element. A configuration element that describes an instance to add to the container. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Add the instance defined by this element to the given container. Container to configure. Name to register instance under Value for this instance Type of the instance. If not given, defaults to string Type name for the type converter to use to create the instance. If not given, defaults to the default type converter for this instance type. Key used to keep these instances unique in the config collection. A collection of s. Gets the element key for a specified configuration element when overridden in a derived class. An that acts as the key for the specified . The to return the key for. An element that has a child Value property. String that will be deserialized to provide the value. A string describing where the value this element contains is being used. For example, if setting a property Prop1, this should return "property Prop1" (in english). A configuration element that represents lifetime managers. Create the described by this element. A instance. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Type of the lifetime manager. Extra initialization information used by the type converter for this lifetime manager. Type of to use to create the lifetime manager. A configuration element representing a method to call. Construct a new instance of . Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Return the set of s that are needed to configure the container according to this configuration element. Container that is being configured. Type that is being registered. Type that is being mapped to. Name this registration is under. One or more objects that should be applied to the container registration. Name of the method to call. Parameters to the method call. Each element must have a unique key, which is generated by the subclasses. Element name to use to serialize this into XML. A configuration element representing the namespace tags in the config file. A collection of s in configuration. Gets the element key for a specified configuration element when overridden in a derived class. An that acts as the key for the specified . The to return the key for A configuration element that specifies that a value is optional. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Generate an object that will be used to configure the container for a type registration. Container that is being configured. Supplied in order to let custom implementations retrieve services; do not configure the container directly in this method. Type of the Name used to resolve the dependency, leave out or blank to resolve default. Type of dependency to resolve. If left out, resolved the type of the containing parameter or property. Configuration element representing a parameter passed to a constructor or a method. Construct a new instance of . Returns the required needed to configure the container so that the correct value is injected. Container being configured. Type of the parameter. The value to use to configure the container. Does the information in this match up with the given ? Information about the parameter. True if this is a match, false if not. Reads XML from the configuration file. The that reads from the configuration file. true to serialize only the collection key properties; otherwise, false. The element to read is locked. - or - An attribute of the current node is not recognized. - or - The lock status of the current node cannot be determined. Gets a value indicating whether an unknown attribute is encountered during deserialization. true when an unknown attribute is encountered while deserializing; otherwise, false. The name of the unrecognized attribute. The value of the unrecognized attribute. Gets a value indicating whether an unknown element is encountered during deserialization. true when an unknown element is encountered while deserializing; otherwise, false. The name of the unknown subelement. The being used for deserialization. The element identified by is locked. - or - One or more of the element's attributes is locked. - or - is unrecognized, or the element has an unrecognized attribute. - or - The element has a Boolean attribute with an invalid value. - or - An attempt was made to deserialize a property more than once. - or - An attempt was made to deserialize a property that is not a valid member of the element. - or - The element cannot contain a CDATA or text element. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Name of this parameter. Type of this parameter. This is only needed in order to disambiguate method overloads. Normally the parameter name is sufficient. Element that describes the value for this property. This is NOT marked as a ConfigurationProperty because this child element is polymorphic, and the element tag determines the type. Standard configuration properties only let you do this if it's a collection, but we only want one value. Thus the separate property. The element is deserialized in . A string describing where the value this element contains is being used. For example, if setting a property Prop1, this should return "property Prop1" (in english). A collection of objects. Gets the element key for a specified configuration element when overridden in a derived class. An that acts as the key for the specified . The to return the key for. A collection of objects. Causes the configuration system to throw an exception. true if the unrecognized element was deserialized successfully; otherwise, false. The default is false. The name of the unrecognized element. An input stream that reads XML from the configuration file. The element specified in is the <clear> element. starts with the reserved prefix "config" or "lock". When overridden in a derived class, creates a new . A new . Gets the element key for a specified configuration element when overridden in a derived class. An that acts as the key for the specified . The to return the key for. String that will be deserialized to provide the value. A string describing where the value this element contains is being used. For example, if setting a property Prop1, this should return "property Prop1" (in english). A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to An abstract ContainerConfiguringElement cannot be created. Please specify a concrete type.. Looks up a localized string similar to An abstract ExtensionConfigurationElement object cannot be created. Please specify a concrete type.. Looks up a localized string similar to An abstract InjectionMemberElement object cannot be created. Please specify a concrete type.. Looks up a localized string similar to An abstract ParameterValueElement object cannot be created. Please specify a concrete type.. Looks up a localized string similar to The type name or alias {0} could not be resolved. Please check your configuration file and verify this type name.. Looks up a localized string similar to The dependency element for generic parameter {0} must not have an explicit type name but has '{1}'.. Looks up a localized string similar to The optional dependency element for generic parameter {0} must not have an explicit type name but has '{1}'.. Looks up a localized string similar to {0} {1}. Looks up a localized string similar to The injection configuration for {0} has multiple values.. Looks up a localized string similar to The configuration element type {0} has not been registered with the section.. Looks up a localized string similar to The injection configuration for {0} is specified through both attributes and child value elements.. Looks up a localized string similar to Could not load section extension type {0}.. Looks up a localized string similar to The extension type {0} does not derive from SectionExtension.. Looks up a localized string similar to The extension element type {0} that is being added does not derive from ContainerConfiguringElement, InjectionMemberElement, or ParameterValueElement. An extension element must derive from one of these types.. Looks up a localized string similar to No valid attributes were found to construct the value for the {0}. Please check the configuration file.. Looks up a localized string similar to Configuration is incorrect, the type {0} does not have a constructor that takes parameters named {1}.. Looks up a localized string similar to Configuration is incorrect, the type {0} does not have a method named {1} that takes parameters named {2}.. Looks up a localized string similar to The container named "{0}" is not defined in this configuration section.. Looks up a localized string similar to The type {0} does not have a property named {1}.. Looks up a localized string similar to The configuration is set to inject an array, but the type {0} is not an array type.. Looks up a localized string similar to parameter. Looks up a localized string similar to property. Looks up a localized string similar to The attribute {0} must be present and non-empty.. Looks up a localized string similar to The value element for {1} was specified for the generic array type {0}. Value elements are not allowed for generic array types.. Looks up a localized string similar to The value element for {1} was specified for the generic parameter type {0}. Value elements are not allowed for generic parameter types.. Looks up a localized string similar to The value element for {1} was specified for the generic type {0}. Value elements are not allowed for generic types.. A class representing a property configuration element. Construct a new instance of Reads XML from the configuration file. The that reads from the configuration file. true to serialize only the collection key properties; otherwise, false. The element to read is locked. - or - An attribute of the current node is not recognized. - or - The lock status of the current node cannot be determined. Gets a value indicating whether an unknown attribute is encountered during deserialization. true when an unknown attribute is encountered while deserializing; otherwise, false. The name of the unrecognized attribute. The value of the unrecognized attribute. Gets a value indicating whether an unknown element is encountered during deserialization. true when an unknown element is encountered while deserializing; otherwise, false. The name of the unknown subelement. The being used for deserialization. The element identified by is locked. - or - One or more of the element's attributes is locked. - or - is unrecognized, or the element has an unrecognized attribute. - or - The element has a Boolean attribute with an invalid value. - or - An attempt was made to deserialize a property more than once. - or - An attempt was made to deserialize a property that is not a valid member of the element. - or - The element cannot contain a CDATA or text element. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Return the set of s that are needed to configure the container according to this configuration element. Container that is being configured. Type that is being registered. Type that is being mapped to. Name this registration is under. One or more objects that should be applied to the container registration. Name of the property that will be set. Each element must have a unique key, which is generated by the subclasses. String that will be deserialized to provide the value. A string describing where the value this element contains is being used. For example, if setting a property Prop1, this should return "property Prop1" (in english). Element name to use to serialize this into XML. A configuration element representing a single container type registration. Apply the registrations from this element to the given container. Container to configure. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. The type that is registered. Name registered under. Type that is mapped to. Lifetime manager to register for this registration. Any injection members (constructor, properties, etc.) that are specified for this registration. A collection of s. Causes the configuration system to throw an exception. true if the unrecognized element was deserialized successfully; otherwise, false. The default is false. The name of the unrecognized element. An input stream that reads XML from the configuration file. The element specified in is the <clear> element. starts with the reserved prefix "config" or "lock". Gets the element key for a specified configuration element when overridden in a derived class. An that acts as the key for the specified . The to return the key for. Base class for Unity configuration section extensions. Derived classes are used to add custom elements and aliases into the configuration section being loaded. Add the extensions to the section via the context. Context object that can be used to add elements and aliases. An object that gives the ability to add elements and aliases to a configuration section. Add a new alias to the configuration section. This is useful for those extensions that add commonly used types to configuration so users don't have to alias them repeatedly. The alias to use. Type the alias maps to. Add a new alias to the configuration section. This is useful for those extensions that add commonly used types to configuration so users don't have to alias them repeatedly. Type the alias maps to. The alias to use Add a new element to the configuration section schema. Tag name in the XML. Type the tag maps to. Add a new element to the configuration section schema. Type the tag maps to. Tag name in the XML. A configuration element used to specify which extensions to add to the configuration schema. Reads XML from the configuration file. The that reads from the configuration file. true to serialize only the collection key properties; otherwise, false. The element to read is locked. - or - An attribute of the current node is not recognized. - or - The lock status of the current node cannot be determined. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Type of the section extender object that will provide new elements to the schema. Optional prefix that will be added to the element names added by this section extender. If left out, no prefix will be added. The extension object represented by this element. A collection of s. Gets the element key for a specified configuration element when overridden in a derived class. An that acts as the key for the specified . The to return the key for. Type that manage access to a set of type aliases and implements the logic for converting aliases to their actual types. Set the set of aliases to use for resolution. Configuration section containing the various type aliases, namespaces and assemblies. Resolves a type alias or type FullName to a concrete type. Type alias or type FullName Type object or null if resolve fails. Thrown if alias lookup fails. Resolves a type alias or type FullName to a concrete type. Alias or name to resolve. if true and the alias does not resolve, throw an , otherwise return null on failure. The type object or null if resolve fails and is false. Resolve a type alias or type full name to a concrete type. If is null or empty, return the given instead. Type alias or full name to resolve. Value to return if typeName is null or empty. The concrete . Thrown if alias lookup fails. Resolve a type alias or type full name to a concrete type. If is null or empty, return the given instead. Type alias or full name to resolve. Value to return if typeName is null or empty. if true and the alias does not resolve, throw an , otherwise return null on failure. The concrete . Thrown if alias lookup fails and is true. A helper class that implements the actual logic for resolving a shorthand type name (alias or raw type name) into an actual type object. Construct a new that uses the given sequence of alias, type name pairs to resolve types. Type aliases from the configuration file. Assembly names to search. Namespaces to search. Resolves a type alias or type FullName to a concrete type. Alias or name to resolve. if true and the alias does not resolve, throw an , otherwise return null on failure. The type object or null if resolve fails and is false. Resolve a type alias or type full name to a concrete type. If is null or empty, return the given instead. Type alias or full name to resolve. Value to return if typeName is null or empty. if true and the alias does not resolve, throw an , otherwise return null on failure. If is null or an empty string, then return . Otherwise, return the resolved type object. If the resolution fails and is false, then return null. A configuration section describing configuration for an . The name of the section where unity configuration is expected to be found. XML Namespace string used for IntelliSense in this section. Apply the configuration in the default container element to the given container. Container to configure. The passed in . Apply the configuration in the default container element to the given container. Container to configure. Name of the container element to use to configure the container. The passed in . Reads XML from the configuration file. The object, which reads from the configuration file. found no elements in the configuration file. Gets a value indicating whether an unknown element is encountered during deserialization. true when an unknown element is encountered while deserializing; otherwise, false. The name of the unknown subelement. The being used for deserialization. The element identified by is locked. - or - One or more of the element's attributes is locked. - or - is unrecognized, or the element has an unrecognized attribute. - or - The element has a Boolean attribute with an invalid value. - or - An attempt was made to deserialize a property more than once. - or - An attempt was made to deserialize a property that is not a valid member of the element. - or - The element cannot contain a CDATA or text element. Creates an XML string containing an unmerged view of the object as a single section to write to a file. An XML string containing an unmerged view of the object. The instance to use as the parent when performing the un-merge. The name of the section to create. The instance to use when writing to a string. The current that is being deserialized or being configured from. Storage for XML namespace. The namespace isn't used or validated by config, but it is useful for Visual Studio XML IntelliSense to kick in. The set of containers defined in this configuration section. The set of type aliases defined in this configuration file. Any schema extensions that are added. Any namespaces added to the type search list. Any assemblies added to the type search list. Add a new alias to the configuration section. This is useful for those extensions that add commonly used types to configuration so users don't have to alias them repeatedly. The alias to use. Type the alias maps to. Add a new element to the configuration section schema. Tag name in the XML. Type the tag maps to. Collection element for s. Plug point to get objects out of the collection. Index in the collection to retrieve the item from. Item at that index or null if not present. Plug point to get objects out of the collection. Key to look up the object by. Item with that key or null if not present. Gets the element key for a specified configuration element when overridden in a derived class. An that acts as the key for the specified . The to return the key for. Retrieve a stored by name. Name to look up. The stored container or null if not in the collection. Return the default container in the collection. The default is the one without a name. Extensions to to simplify loading configuration into a container. Apply configuration from the given section and named container into the given container. Unity container to configure. Configuration section with config information. Named container. . Apply configuration from the default section (named "unity" pulled out of ConfigurationManager) and the named container. Unity container to configure. Named container element in configuration. . Apply configuration from the default section and unnamed container element. Container to configure. . Apply configuration from the default container in the given section. Unity container to configure. Configuration section. . Element that describes a constant value that will be injected into the container. Construct a new object. Construct a new object, initializing properties from the contents of . Name/value pairs which contain the values to initialize properties to. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Write the contents of this element to the given . This method always outputs an explicit <dependency> tag, instead of providing attributes to the parent method. Writer to send XML content to. Generate an object that will be used to configure the container for a type registration. Container that is being configured. Supplied in order to let custom implementations retrieve services; do not configure the container directly in this method. Type of the parameter to get the value for. The required object. Value for this element ================================================ FILE: packages/Unity.3.5.1404.0/lib/net45/Microsoft.Practices.Unity.RegistrationByConvention.XML ================================================ Microsoft.Practices.Unity.RegistrationByConvention Provides helper methods to retrieve classes from assemblies. Returns all visible, non-abstract classes from . The assemblies. All visible, non-abstract classes found in the assemblies. is . contains elements. All exceptions thrown while getting types from the assemblies are ignored, and the types that can be retrieved are returned. Returns all visible, non-abstract classes from , and optionally skips errors. to skip errors; otherwise, . The assemblies. All visible, non-abstract classes. is . contains elements. If is , all exceptions thrown while getting types from the assemblies are ignored, and the types that can be retrieved are returned; otherwise, the original exception is thrown. Returns all visible, non-abstract classes from . to skip errors; otherwise, . The assemblies. All visible, non-abstract classes. is . contains elements. If is , all exceptions thrown while getting types from the assemblies are ignored, and the types that can be retrieved are returned; otherwise, the original exception is thrown. Returns all visible, non-abstract classes from all assemblies that are loaded in the current application domain. to include system assemblies; otherwise, . Defaults to . to include the Unity assemblies; otherwise, . Defaults to . to include dynamic assemblies; otherwise, . Defaults to . to skip errors; otherwise, . All visible, non-abstract classes in the loaded assemblies. If is , all exceptions thrown while getting types from the assemblies are ignored, and the types that can be retrieved are returned; otherwise, the original exception is thrown. Returns all visible, non-abstract classes from all assemblies that are located in the base folder of the current application domain. to include system assemblies; otherwise, . Defaults to . to include the Unity assemblies; otherwise, . Defaults to . to skip errors; otherwise, . All visible, non-abstract classes. If is , all exceptions thrown while loading assemblies or getting types from the assemblies are ignored, and the types that can be retrieved are returned; otherwise, the original exception is thrown. The exception that is thrown when registering multiple types would result in an type mapping being overwritten. Initializes a new instance of the class. The name for the mapping. The source type for the mapping. The type currently mapped. The new type to map. Gets the name for the mapping. Gets the source type for the mapping. Gets the type currently mapped. Gets the new type to map. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to An attempt to override an existing mapping was detected for type {1} with name "{0}", currently mapped to type {2}, to type {3}.. Looks up a localized string similar to The set of assemblies contains a null element.. Represents a set of types to register and their registration settings. Gets types to register. Gets a function to get the types that will be requested for each type to configure. Gets a function to get the name to use for the registration of each type. Gets a function to get the for the registration of each type. Defaults to no lifetime management. Gets a function to get the additional objects for the registration of each type. Defaults to no injection members. Provides a set of convenience overloads to the interface to support registration of multiple types. Registers the supplied types by using the specified rules for name, lifetime manager, injection members, and registration types. The container to configure. The types to register. The methods in the class can be used to scan assemblies to get types, and further filtering can be performed using LINQ queries. A function that gets the types that will be requested for each type to configure. It can be a method from the class or a custom function. Defaults to no registration types, and registers only the supplied types. A function that gets the name to use for the registration of each type. It can be a method from the or a custom function. Defaults to no name. A function that gets the for the registration of each type. It can be a method from the class or a custom function. Defaults to no lifetime management. A function that gets the additional objects for the registration of each type. Defaults to no injection members. to overwrite existing mappings; otherwise, . Defaults to . The container that this method was called on. A new registration would overwrite an existing mapping and is . Registers the types according to the . The container to configure. The convention to determine which types will be registered and how. to overwrite existing mappings; otherwise, . Defaults to . The container that this method was called on. Provides helper methods to specify the lifetime for a type with registration by convention. Returns a . The type. A lifetime manager Returns a . The type. A container controlled lifetime manager. Returns a . The type. An externally controlled lifetime manager. Returns a . The type. A hierarchical lifetime manager. Returns a . The type. A per resolve lifetime manager. Returns a . The type. A transient lifetime manager. Returns a . The custom type. The type. A lifetime manager. Returns a . The type. A per thread lifetime manager. Provides helper methods to map types to the types interfaces to which register them. Returns no types. The type to register. An empty enumeration. Returns an enumeration with the interface that matches the name of . The type to register. An enumeration with the first interface matching the name of (for example, if type is MyType, a matching interface is IMyType), or an empty enumeration if no such interface is found. Returns an enumeration with all the interfaces implemented by . The type to register. An enumeration with all the interfaces implemented by the implementation type except . Returns an enumeration with all the interfaces implemented by that belong to the same assembly as implementationType. The type to register. An enumeration with all the interfaces implemented by the implementation type that belong to the same assembly. Provides helper methods to get type names. Returns the type name. The type. The type name. Returns null for the registration name. The type. ================================================ FILE: packages/Unity.3.5.1404.0/lib/net45/Microsoft.Practices.Unity.xml ================================================ Microsoft.Practices.Unity Provides access to the names registered for a container. Represents a builder policy interface. Since there are no fixed requirements for policies, it acts as a marker interface from which to derive all other policy interfaces. Gets the names registered for a type. The type. The names registered for . An implementation that constructs a build plan for creating objects. A that can create and return an for the given build key. Create a build plan using the given context and build key. Current build context. Current build key. The build plan. Creates a build plan using the given context and build key. Current build context. Current build key. The build plan. Provides extension methods to the class due to the introduction of class in the .NET for Windows Store apps. Returns the constructor in that matches the specified constructor parameter types. The type to inspect The constructor parameter types. The constructor that matches the specified parameter types. Returns the non-static declared methods of a type or its base types. The type to inspect An enumerable of the objects. Returns the non-static method of a type or its based type. The type to inspect The name of the method to seek. The (closed) parameter type signature of the method. The discovered Returns the declared properties of a type or its base types. The type to inspect An enumerable of the objects. Determines if the types in a parameter set ordinally matches the set of supplied types. Base class for attributes that can be placed on parameters or properties to specify how to resolve the value for that parameter or property. Create an instance of that will be used to get the value for the member this attribute is applied to. Type of parameter or property that this attribute is decoration. The resolver object. This attribute is used to indicate which constructor to choose when the container attempts to build a type. This attribute is used to mark methods that should be called when the container is building an object. This attribute is used to mark properties and parameters as targets for injection. For properties, this attribute is necessary for injection to happen. For parameters, it's not needed unless you want to specify additional information to control how the parameter is resolved. Create an instance of with no name. Create an instance of with the given name. Name to use when resolving this dependency. Create an instance of that will be used to get the value for the member this attribute is applied to. Type of parameter or property that this attribute is decoration. The resolver object. The name specified in the constructor. An used to mark a dependency as optional - the container will try to resolve it, and return null if the resolution fails rather than throw. Construct a new object. Construct a new object that specifies a named dependency. Name of the dependency. Create an instance of that will be used to get the value for the member this attribute is applied to. Type of parameter or property that this attribute is decoration. The resolver object. Name of the dependency. A that composites other ResolverOverride objects. The GetResolver operation then returns the resolver from the first child override that matches the current context and request. Base class for all override objects passed in the method. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. Wrap this resolver in one that verifies the type of the object being built. This allows you to narrow any override down to a specific type easily. Type to constrain the override to. The new override. Wrap this resolver in one that verifies the type of the object being built. This allows you to narrow any override down to a specific type easily. Type to constrain the override to. The new override. Add a new to the collection that is checked. item to add. Add a set of s to the collection. items to add. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. 2 Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. 1 Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. Class that returns information about the types registered in a container. The type that was passed to the method as the "from" type, or the only type if type mapping wasn't done. The type that this registration is mapped to. If no type mapping was done, the property and this one will have the same value. Name the type was registered under. Null for default registration. The registered lifetime manager instance. The lifetime manager for this registration. This property will be null if this registration is for an open generic. A class that overrides the value injected whenever there is a dependency of the given type, regardless of where it appears in the object graph. Create an instance of to override the given type with the given value. Type of the dependency. Value to use. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. A convenience version of that lets you specify the dependency type using generic syntax. Type of the dependency to override. Construct a new object that will override the given dependency, and pass the given value. A convenience form of that lets you specify multiple parameter overrides in one shot rather than having to construct multiple objects. This class isn't really a collection, it just implements IEnumerable so that we get use of the nice C# collection initializer syntax. Base helper class for creating collections of objects for use in passing a bunch of them to the resolve call. This base class provides the mechanics needed to allow you to use the C# collection initializer syntax. Concrete type of the this class collects. Key used to create the underlying override object. Value that the override returns. Add a new override to the collection with the given key and value. Key - for example, a parameter or property name. Value - the value to be returned by the override. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. 2 Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. 1 When implemented in derived classes, this method is called from the method to create the actual objects. Key value to create the resolver. Value to store in the resolver. The created . When implemented in derived classes, this method is called from the method to create the actual objects. Key value to create the resolver. Value to store in the resolver. The created . Event argument class for the event. Construct a new object with the given child container object. An for the newly created child container. The newly created child container. An extension context for the created child container. Base class for subclasses that let you specify that an instance of a generic type parameter should be resolved. Base type for objects that are used to configure parameters for constructor or method injection, or for getting the value to be injected into a property. Test to see if this parameter value has a matching type for the given type. Type to check. True if this parameter value is compatible with type , false if not. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . Convert the given set of arbitrary values to a sequence of InjectionParameterValue objects. The rules are: If it's already an InjectionParameterValue, return it. If it's a Type, return a ResolvedParameter object for that type. Otherwise return an InjectionParameter object for that value. The values to build the sequence from. The resulting converted sequence. Convert an arbitrary value to an InjectionParameterValue object. The rules are: If it's already an InjectionParameterValue, return it. If it's a Type, return a ResolvedParameter object for that type. Otherwise return an InjectionParameter object for that value. The value to convert. The resulting . Name for the type represented by this . This may be an actual type name or a generic argument name. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. name to use when looking up in the container. Test to see if this parameter value has a matching type for the given type. Type to check. True if this parameter value is compatible with type , false if not. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . Return a instance that will return this types value for the parameter. The actual type to resolve. The resolution key. The . Name for the type represented by this . This may be an actual type name or a generic argument name. A that lets you specify that an instance of a generic type parameter should be resolved, providing the value if resolving fails. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. name to use when looking up in the container. Return a instance that will return this types value for the parameter. The actual type to resolve. The resolution key. The . A class that lets you specify a factory method the container will use to create the object. This is a significantly easier way to do the same thing the old static factory extension was used for. Base class for objects that can be used to configure what class members get injected by the container. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Type to register. Policy list to add policies to. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Type of interface being registered. If no interface, this will be null. Type of concrete type being registered. Name used to resolve the type object. Policy list to add policies to. Create a new instance of with the given factory function. Factory function. Create a new instance of with the given factory function. Factory function. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Type of interface being registered. If no interface, this will be null. This parameter is ignored in this implementation. Type of concrete type being registered. Name used to resolve the type object. Policy list to add policies to. A that can be passed to to configure a parameter or property as an optional dependency. A base class for implementing classes that deal in explicit types. Create a new that exposes information about the given . Type of the parameter. Test to see if this parameter value has a matching type for the given type. Type to check. True if this parameter value is compatible with type , false if not. The type of parameter this object represents. Name for the type represented by this . This may be an actual type name or a generic argument name. Construct a new object that specifies the given . Type of the dependency. Construct a new object that specifies the given and . Type of the dependency. Name for the dependency. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . A generic version of that lets you specify the type of the dependency using generics syntax. Type of the dependency. Construct a new . Construct a new with the given . Name of the dependency. A special lifetime manager which works like , except that in the presence of child containers, each child gets it's own instance of the object, instead of sharing one in the common parent. A that holds onto the instance given to it. When the is disposed, the instance is disposed with it. Base class for Lifetime managers which need to synchronize calls to . The purpose of this class is to provide a basic implementation of the lifetime manager synchronization pattern. Calls to the method of a instance acquire a lock, and if the instance has not been initialized with a value yet the lock will only be released when such an initialization takes place by calling the method or if the build request which resulted in the call to the GetValue method fails. Base class for Lifetime managers - classes that control how and when instances are created by the Unity container. A that controls how instances are persisted and recovered from an external store. Used to implement things like singletons and per-http-request lifetime. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. The object to store. Remove the value this lifetime policy is managing from backing store. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. The object being stored. Remove the given object from backing store. This interface provides a hook for the builder context to implement error recovery when a builder strategy throws an exception. Since we can't get try/finally blocks onto the call stack for later stages in the chain, we instead add these objects to the context. If there's an exception, all the current IRequiresRecovery instances will have their Recover methods called. A method that does whatever is needed to clean up as part of cleaning up after an exception. Don't do anything that could throw in this method, it will cause later recover operations to get skipped and play real havoc with the stack trace. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Calls to this method acquire a lock which is released only if a non-null value has been set for the lifetime manager. Performs the actual retrieval of a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. This method is invoked by after it has acquired its lock. Stores the given value into backing store for retrieval later. The object being stored. Setting a value will attempt to release the lock acquired by . Performs the actual storage of the given value into backing store for retrieval later. The object being stored. This method is invoked by before releasing its lock. Remove the given object from backing store. A method that does whatever is needed to clean up as part of cleaning up after an exception. Don't do anything that could throw in this method, it will cause later recover operations to get skipped and play real havoc with the stack trace. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. The object being stored. Remove the given object from backing store. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Standard Dispose pattern implementation. Not needed, but it keeps FxCop happy. Always true, since we don't have a finalizer. This is a custom lifetime manager that acts like , but also provides a signal to the default build plan, marking the type so that instances are reused across the build up object graph. Construct a new object that does not itself manage an instance. Construct a new object that stores the give value. This value will be returned by but is not stored in the lifetime manager, nor is the value disposed. This Lifetime manager is intended only for internal use, which is why the normal method is not used here. Value to store. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. In this class, this is a noop, since it has special hooks down in the guts. The object being stored. Remove the given object from backing store. Noop in this class. A strategy that handles Hierarchical lifetimes across a set of parent/child containers. Represents a strategy in the chain of responsibility. Strategies are required to support both BuildUp and TearDown. Represents a strategy in the chain of responsibility. Strategies are required to support both BuildUp and TearDown. Although you can implement this interface directly, you may also choose to use as the base class for your strategies, as this class provides useful helper methods and makes support BuildUp and TearDown optional. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. Called during the chain of responsibility for a build operation. The PostBuildUp method is called when the chain has finished the PreBuildUp phase and executes in reverse order from the PreBuildUp calls. Context of the build operation. Called during the chain of responsibility for a teardown operation. The PreTearDown method is called when the chain is being executed in the forward direction. Context of the teardown operation. Called during the chain of responsibility for a teardown operation. The PostTearDown method is called when the chain has finished the PreTearDown phase and executes in reverse order from the PreTearDown calls. Context of the teardown operation. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. Called during the chain of responsibility for a build operation. The PostBuildUp method is called when the chain has finished the PreBuildUp phase and executes in reverse order from the PreBuildUp calls. Context of the build operation. Called during the chain of responsibility for a teardown operation. The PreTearDown method is called when the chain is being executed in the forward direction. Context of the teardown operation. Called during the chain of responsibility for a teardown operation. The PostTearDown method is called when the chain has finished the PreTearDown phase and executes in reverse order from the PreTearDown calls. Context of the teardown operation. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. A that will attempt to resolve a value, and return null if it cannot rather than throwing. A strategy that is used at build plan execution time to resolve a dependent value. Get the value for a dependency. Current build context. The value for the dependency. Construct a new object that will attempt to resolve the given name and type from the container. Type to resolve. Must be a reference type. Name to resolve with. Construct a new object that will attempt to resolve the given type from the container. Type to resolve. Must be a reference type. Get the value for a dependency. Current build context. The value for the dependency. Type this resolver will resolve. Name this resolver will resolve. Extension methods on to provide convenience overloads (generic versions, mostly). Removes an individual policy type for a build key. The type the policy was registered as. to remove the policy from. The key the policy applies. Removes a default policy. The type the policy was registered as. to remove the policy from. Gets an individual policy. The interface the policy is registered under. to search. The key the policy applies. The policy in the list, if present; returns null otherwise. Gets an individual policy. The interface the policy is registered under. to search. The key the policy applies. The policy list that actually contains the returned policy. The policy in the list, if present; returns null otherwise. Gets an individual policy. to search. The interface the policy is registered under. The key the policy applies. The policy in the list, if present; returns null otherwise. Gets an individual policy. to search. The interface the policy is registered under. The key the policy applies. The policy list that actually contains the returned policy. The policy in the list, if present; returns null otherwise. Gets an individual policy. The interface the policy is registered under. to search. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy in the list, if present; returns null otherwise. Gets an individual policy. The interface the policy is registered under. to search. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy list that actually contains the returned policy. The policy in the list, if present; returns null otherwise. Gets an individual policy. to search. The interface the policy is registered under. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy in the list, if present; returns null otherwise. Get the non default policy. The interface the policy is registered under. to search. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy in the list, if present; returns null otherwise. Get the non default policy. The interface the policy is registered under. to search. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy list that actually contains the returned policy. The policy in the list, if present; returns null otherwise. Get the non default policy. to search. The interface the policy is registered under. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy in the list, if present; returns null otherwise. Sets an individual policy. The interface the policy is registered under. to add the policy to. The policy to be registered. The key the policy applies. Sets a default policy. When checking for a policy, if no specific individual policy is available, the default will be used. The interface to register the policy under. to add the policy to. The default policy to be registered. Base class for the current operation stored in the build context. Create a new . Type currently being built. The type that's currently being built. Build plan for that will return a Func that will resolve the requested type through this container later. A build plan is an object that, when invoked, will create a new object or fill in a given existing one. It encapsulates all the information gathered by the strategies to construct a particular object. Creates an instance of this build plan's type, or fills in the existing type if passed in. Context used to build up the object. Creates an instance of this build plan's type, or fills in the existing type if passed in. Context used to build up the object. The almost inevitable collection of extra helper methods on to augment the rich set of what LINQ already gives us. Execute the provided on every item in . Type of the items stored in Sequence of items to process. Code to run over each item. Create a single string from a sequence of items, separated by the provided , and with the conversion to string done by the given . This method does basically the same thing as , but will work on any sequence of items, not just arrays. Type of items in the sequence. Sequence of items to convert. Separator to place between the items in the string. The conversion function to change TItem -> string. The resulting string. Create a single string from a sequence of items, separated by the provided , and with the conversion to string done by the item's method. This method does basically the same thing as , but will work on any sequence of items, not just arrays. Type of items in the sequence. Sequence of items to convert. Separator to place between the items in the string. The resulting string. A class that lets you override a named parameter passed to a constructor. Construct a new object that will override the given named constructor parameter, and pass the given value. Name of the constructor parameter. Value to pass for the constructor. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. A convenience form of that lets you specify multiple parameter overrides in one shot rather than having to construct multiple objects. When implemented in derived classes, this method is called from the method to create the actual objects. Key value to create the resolver. Value to store in the resolver. The created . A that lets you override the value for a specified property. Create an instance of . The property name. Value to use for the property. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. A convenience form of that lets you specify multiple property overrides in one shot rather than having to construct multiple objects. When implemented in derived classes, this method is called from the method to create the actual objects. Key value to create the resolver. Value to store in the resolver. The created . Interface defining the configuration interface exposed by the Static Factory extension. Base interface for all extension configuration interfaces. Retrieve the container instance that we are currently configuring. Register the given factory delegate to be called when the container is asked to resolve . Type that will be requested from the container. Delegate to invoke to create the instance. The container extension object this method was invoked on. Register the given factory delegate to be called when the container is asked to resolve and . Type that will be requested from the container. The name that will be used when requesting to resolve this type. Delegate to invoke to create the instance. The container extension object this method was invoked on. Represents the context in which a build-up or tear-down operation runs. Represents the context in which a build-up or tear-down operation runs. Add a new set of resolver override objects to the current build operation. objects to add. Get a object for the given or null if that dependency hasn't been overridden. Type of the dependency. Resolver to use, or null if no override matches for the current operation. A convenience method to do a new buildup operation on an existing context. Key to use to build up. Created object. A convenience method to do a new buildup operation on an existing context. This overload allows you to specify extra policies which will be in effect for the duration of the build. Key defining what to build up. A delegate that takes a . This is invoked with the new child context before the build up process starts. This gives callers the opportunity to customize the context for the build process. Created object. Gets the head of the strategy chain. The strategy that's first in the chain; returns null if there are no strategies in the chain. Gets the associated with the build. The associated with the build. Gets the original build key for the build operation. The original build key for the build operation. Get the current build key for the current build operation. The set of policies that were passed into this context. This returns the policies passed into the context. Policies added here will remain after buildup completes. The persistent policies for the current context. Gets the policies for the current context. Any policies added to this object are transient and will be erased at the end of the buildup. The policies for the current context. Gets the collection of objects that need to execute in event of an exception. The current object being built up or torn down. The current object being manipulated by the build operation. May be null if the object hasn't been created yet. Flag indicating if the build operation should continue. true means that building should not call any more strategies, false means continue to the next strategy. An object representing what is currently being done in the build chain. Used to report back errors if there's a failure. The build context used to resolve a dependency during the build operation represented by this context. Initialize a new instance of the class. Initialize a new instance of the class with a , , and the build key used to start this build operation. The to use for this context. The to use for this context. The to use for this context. Build key to start building. The existing object to build up. Create a new using the explicitly provided values. The to use for this context. The to use for this context. The set of persistent policies to use for this context. The set of transient policies to use for this context. It is the caller's responsibility to ensure that the transient and persistent policies are properly combined. Build key for this context. Existing object to build up. Create a new using the explicitly provided values. The to use for this context. The to use for this context. The set of persistent policies to use for this context. The set of transient policies to use for this context. It is the caller's responsibility to ensure that the transient and persistent policies are properly combined. Build key for this context. The resolver overrides. Add a new set of resolver override objects to the current build operation. objects to add. Get a object for the given or null if that dependency hasn't been overridden. Type of the dependency. Resolver to use, or null if no override matches for the current operation. A convenience method to do a new buildup operation on an existing context. Key to use to build up. Created object. A convenience method to do a new buildup operation on an existing context. This overload allows you to specify extra policies which will be in effect for the duration of the build. Key defining what to build up. A delegate that takes a . This is invoked with the new child context before the build up process starts. This gives callers the opportunity to customize the context for the build process. Created object. Gets the head of the strategy chain. The strategy that's first in the chain; returns null if there are no strategies in the chain. Get the current build key for the current build operation. The current object being built up or torn down. The current object being manipulated by the build operation. May be null if the object hasn't been created yet. Gets the associated with the build. The associated with the build. Gets the original build key for the build operation. The original build key for the build operation. The set of policies that were passed into this context. This returns the policies passed into the context. Policies added here will remain after buildup completes. The persistent policies for the current context. Gets the policies for the current context. Any modifications will be transient (meaning, they will be forgotten when the outer BuildUp for this context is finished executing). The policies for the current context. Gets the collection of objects that need to execute in event of an exception. Flag indicating if the build operation should continue. true means that building should not call any more strategies, false means continue to the next strategy. An object representing what is currently being done in the build chain. Used to report back errors if there's a failure. The build context used to resolve a dependency during the build operation represented by this context. Represents that a dependency could not be resolved. Initializes a new instance of the class with no extra information. Initializes a new instance of the class with the given message. Some random message. Initialize a new instance of the class with the given message and inner exception. Some random message Inner exception. Initializes a new instance of the class with the build key of the object begin built. The build key of the object begin built. The exception thrown when injection is attempted on a method that is an open generic or has out or ref params. Construct a new with no message. Construct a with the given message Message to return. Construct a with the given message and inner exception. Message to return. Inner exception Extension methods to provide convenience overloads over the interface. Start a recursive build up operation to retrieve the default value for the given type. Type of object to build. Parent context. Resulting object. Start a recursive build up operation to retrieve the named implementation for the given type. Type to resolve. Parent context. Name to resolve with. The resulting object. Add a set of s to the context, specified as a variable argument list. Context to add overrides to. The overrides. Data structure that stores the set of objects and executes them when requested. Add a new object to this list. Object to add. Execute the method of everything in the recovery list. Recoveries will execute in the opposite order of add - it's a stack. Return the number of recovery objects currently in the stack. Represents a lifetime container. A lifetime container tracks the lifetime of an object, and implements IDisposable. When the container is disposed, any objects in the container which implement IDisposable are also disposed. Adds an object to the lifetime container. The item to be added to the lifetime container. Determine if a given object is in the lifetime container. The item to locate in the lifetime container. Returns true if the object is contained in the lifetime container; returns false otherwise. Removes an item from the lifetime container. The item is not disposed. The item to be removed. Gets the number of references in the lifetime container The number of references in the lifetime container Represents a lifetime container. A lifetime container tracks the lifetime of an object, and implements IDisposable. When the container is disposed, any objects in the container which implement IDisposable are also disposed. Adds an object to the lifetime container. The item to be added to the lifetime container. Determine if a given object is in the lifetime container. The item to locate in the lifetime container. Returns true if the object is contained in the lifetime container; returns false otherwise. Releases the resources used by the . Releases the resources used by the . true to release managed and unmanaged resources; false to release only unmanaged resources. Returns an enumerator that iterates through the lifetime container. An object that can be used to iterate through the life time container. Returns an enumerator that iterates through the lifetime container. An object that can be used to iterate through the life time container. Removes an item from the lifetime container. The item is not disposed. The item to be removed. Gets the number of references in the lifetime container The number of references in the lifetime container A custom collection over objects. Removes an individual policy type for a build key. The type of policy to remove. The key the policy applies. Removes all policies from the list. Removes a default policy. The type the policy was registered as. Gets an individual policy. The interface the policy is registered under. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy list in the chain that the searched for policy was found in, null if the policy was not found. The policy in the list, if present; returns null otherwise. Get the non default policy. The interface the policy is registered under. The key the policy applies to. True if the search should be in the local policy list only; otherwise false to search up the parent chain. The policy list in the chain that the searched for policy was found in, null if the policy was not found. The policy in the list if present; returns null otherwise. Sets an individual policy. The of the policy. The policy to be registered. The key the policy applies. Sets a default policy. When checking for a policy, if no specific individual policy is available, the default will be used. The interface to register the policy under. The default policy to be registered. A custom collection wrapper over objects. Initialize a new instance of a class. Initialize a new instance of a class with another policy list. An inner policy list to search. Removes an individual policy type for a build key. The type of policy to remove. The key the policy applies. Removes all policies from the list. Removes a default policy. The type the policy was registered as. Gets an individual policy. The interface the policy is registered under. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy list in the chain that the searched for policy was found in, null if the policy was not found. The policy in the list, if present; returns null otherwise. Get the non default policy. The interface the policy is registered under. The key the policy applies to. True if the search should be in the local policy list only; otherwise false to search up the parent chain. The policy list in the chain that the searched for policy was found in, null if the policy was not found. The policy in the list if present; returns null otherwise. Sets an individual policy. The of the policy. The policy to be registered. The key the policy applies. Sets a default policy. When checking for a policy, if no specific individual policy is available, the default will be used. The interface to register the policy under. The default policy to be registered. Gets the number of items in the locator. The number of items in the locator. An implementation of . Add a new object to this list. Object to add. Execute the method of everything in the recovery list. Recoveries will execute in the opposite order of add - it's a stack. Return the number of recovery objects currently in the stack. Implementation of which will notify an object about the completion of a BuildUp operation, or start of a TearDown operation. This strategy checks the object that is passing through the builder chain to see if it implements IBuilderAware and if it does, it will call and . This strategy is meant to be used from the stage. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. Called during the chain of responsibility for a teardown operation. The PreTearDown method is called when the chain is being executed in the forward direction. Context of the teardown operation. Implemented on a class when it wants to receive notifications about the build process. Called by the when the object is being built up. The key of the object that was just built up. Called by the when the object is being torn down. Enumeration to represent the object builder stages. The order of the values in the enumeration is the order in which the stages are run. Strategies in this stage run before creation. Typical work done in this stage might include strategies that use reflection to set policies into the context that other strategies would later use. Strategies in this stage create objects. Typically you will only have a single policy-driven creation strategy in this stage. Strategies in this stage work on created objects. Typical work done in this stage might include setter injection and method calls. Strategies in this stage work on objects that are already initialized. Typical work done in this stage might include looking to see if the object implements some notification interface to discover when its initialization stage has been completed. Represents a builder policy for mapping build keys. Represents a builder policy for mapping build keys. Maps the build key. The build key to map. Current build context. Used for contextual information if writing a more sophisticated mapping. This parameter can be null (called when getting container registrations). The new build key. Initialize a new instance of the with the new build key. The new build key. Maps the build key. The build key to map. Current build context. Used for contextual information if writing a more sophisticated mapping, unused in this implementation. The new build key. Represents a strategy for mapping build keys in the build up operation. Called during the chain of responsibility for a build operation. Looks for the and if found maps the build key for the current operation. The context for the operation. An implementation of that can map generic types. Create a new instance that will map generic types. Build key to map to. This must be or contain an open generic type. Maps the build key. The build key to map. Current build context. Used for contextual information if writing a more sophisticated mapping. The new build key. A that will look for a build plan in the current context. If it exists, it invokes it, otherwise it creates one and stores it for later, and invokes it. Called during the chain of responsibility for a build operation. The context for the operation. An implementation of that chooses constructors based on these criteria: first, pick a constructor marked with the attribute. If there isn't one, then choose the constructor with the longest parameter list. If that is ambiguous, then throw. Thrown when the constructor to choose is ambiguous. Attribute used to mark the constructor to call. Base class that provides an implementation of which lets you override how the parameter resolvers are created. A that, when implemented, will determine which constructor to call from the build plan. Choose the constructor to call for the given type. Current build context The to add any generated resolver objects into. The chosen constructor. Choose the constructor to call for the given type. Current build context The to add any generated resolver objects into. The chosen constructor. Create a instance for the given . Parameter to create the resolver for. The resolver object. Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. The second object to compare. The first object to compare. Value Condition Less than zero is less than y. Zero equals y. Greater than zero is greater than y. Create a instance for the given . Parameter to create the resolver for. The resolver object. Objects of this type are the return value from . It encapsulates the desired with the string keys needed to look up the for each parameter. Base class for return values from selector policies that return a MemberInfo of some sort plus a list of parameter keys to look up the parameter resolvers. Base class for return of selector policies that need to keep track of a set of parameter resolvers. Adds the parameter resolver. Resolvers are assumed to be in the order of the parameters to the member. The new resolver. Gets the parameter resolvers. An array with the parameter resolvers. Construct a new , storing the given member info. Member info to store. The member info stored. Create a new instance which contains the given constructor. The constructor to wrap. The constructor this object wraps. This class records the information about which constructor argument is currently being resolved, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. The type that is being constructed. A string representing the constructor being called. Parameter being resolved. Generate the string describing what parameter was being resolved. The description string. String describing the constructor being set up. Parameter that's being resolved. A that emits IL to call constructors as part of creating a build plan. Called during the chain of responsibility for a build operation. Existing object is an instance of . The context for the operation. A helper method used by the generated IL to set up a PerResolveLifetimeManager lifetime manager if the current object is such. Current build context. Build up the string that will represent the constructor signature in any exception message. A helper method used by the generated IL to store the current operation in the build context. A helper method used by the generated IL to store the current operation in the build context. A helper method used by the generated IL to throw an exception if no existing object is present, but the user is attempting to build an interface (usually due to the lack of a type mapping). The currently being used for the build of this object. A helper method used by the generated IL to throw an exception if no existing object is present, but the user is attempting to build an abstract class (usually due to the lack of a type mapping). The currently being used for the build of this object. A helper method used by the generated IL to throw an exception if no existing object is present, but the user is attempting to build an delegate other than Func{T} or Func{IEnumerable{T}}. The currently being used for the build of this object. A helper method used by the generated IL to throw an exception if a dependency cannot be resolved. The currently being used for the build of this object. A helper method used by the generated IL to throw an exception if a dependency cannot be resolved because of an invalid constructor. The currently being used for the build of this object. The signature of the invalid constructor. A class that records that a constructor is about to be call, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. Generate the description string. The string. Constructor we're trying to call. Helper method used by generated IL to look up a dependency resolver based on the given key. Current build context. Type of the dependency being resolved. Key the resolver was stored under. The found dependency resolver. Helper method used by generated IL to look up a dependency resolver based on the given key. Current build context. Type of the dependency being resolved. The configured resolver. The found dependency resolver. The type that is to be built with the dynamic build plan. The context parameter representing the used when the build plan is executed. An implementation that constructs a build plan via dynamic IL emission. Construct a that uses the given strategy chain to construct the build plan. The strategy chain. Construct a build plan. The current build context. The current build key. The created build plan. A class that records that a constructor is about to be call, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. Generate the description string. The string. Method we're trying to call. This class records the information about which constructor argument is currently being resolved, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. The type that is being constructed. A string representing the method being called. Parameter being resolved. Generate the string describing what parameter was being resolved. The description string. String describing the method being set up. Parameter that's being resolved. A that generates IL to call chosen methods (as specified by the current ) as part of object build up. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. A helper method used by the generated IL to store the current operation in the build context. A helper method used by the generated IL to store the current operation in the build context. A base class that holds the information shared by all operations performed by the container while setting properties. Initializes a new instance of the class. Generate the description of this operation. The string. Get a format string used to create the description. Called by the base method. The format string. The property value currently being resolved. This class records the information about which property value is currently being resolved, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. Get a format string used to create the description. Called by the base method. The format string. A that generates IL to resolve properties on an object being built. Called during the chain of responsibility for a build operation. The context for the operation. A helper method used by the generated IL to store the current operation in the build context. A helper method used by the generated IL to store the current operation in the build context. This class records the information about which property value is currently being set, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. Type property is on. Name of property being set. Get a format string used to create the description. Called by the base method. The format string. Creates an instance of this build plan's type, or fills in the existing type if passed in. Context used to build up the object. An that will examine the given types and return a sequence of objects that should be called as part of building the object. Return the sequence of methods to call while building the target object. Current build context. The to add any generated resolver objects into. Sequence of methods to call. An implementation of that selects methods by looking for the given attribute on those methods. Type of attribute used to mark methods to inject. Base class that provides an implementation of which lets you override how the parameter resolvers are created. Attribute that marks methods that should be called. Return the sequence of methods to call while building the target object. Current build context. The to add any generated resolver objects into. Sequence of methods to call. Create a instance for the given . Parameter to create the resolver for. The resolver object. Create a instance for the given . Parameter to create the resolver for. The resolver object. Objects of this type are the return value from . It encapsulates the desired with the string keys needed to look up the for each parameter. Create a new instance which contains the given method. The method The constructor this object wraps. An that returns a sequence of properties that should be injected for the given type. Returns sequence of properties on the given type that should be set as part of building that object. Current build context. The to add any generated resolver objects into. Sequence of objects that contain the properties to set. Base class that provides an implementation of which lets you override how the parameter resolvers are created. Returns sequence of properties on the given type that should be set as part of building that object. Current build context. The to add any generated resolver objects into. Sequence of objects that contain the properties to set. Create a for the given property. Property to create resolver for. The resolver object. An implementation of that looks for properties marked with the attribute that are also settable and not indexers. Create a for the given property. Property to create resolver for. The resolver object. Objects of this type are returned from . This class combines the about the property with the string key used to look up the resolver for this property's value. Create an instance of with the given and key. The property. PropertyInfo for this property. IDependencyResolverPolicy for this property Implementation of . A builder policy that lets you keep track of the current resolvers and will remove them from the given policy set. Add a new resolver to track by key. Key that was used to add the resolver to the policy set. Remove the currently tracked resolvers from the given policy list. Policy list to remove the resolvers from. Add a new resolver to track by key. Key that was used to add the resolver to the policy set. Remove the currently tracked resolvers from the given policy list. Policy list to remove the resolvers from. Get an instance that implements , either the current one in the policy set or creating a new one if it doesn't exist. Policy list to look up from. Build key to track. The resolver tracker. Add a key to be tracked to the current tracker. Policy list containing the resolvers and trackers. Build key for the resolvers being tracked. Key for the resolver. Remove the resolvers for the given build key. Policy list containing the build key. Build key. An implementation of that calls back into the build chain to build up the dependency, passing a type given at compile time as its build key. Create a new instance storing the given type. Type to resolve. Get the value for a dependency. Current build context. The value for the dependency. This interface defines a standard method to convert any regardless of the stage enum into a regular, flat strategy chain. Convert this into a flat . The flattened . Represents a chain of responsibility for builder strategies. Reverse the order of the strategy chain. The reversed strategy chain. Execute this strategy chain against the given context, calling the Buildup methods on the strategies. Context for the build process. The build up object Execute this strategy chain against the given context, calling the TearDown methods on the strategies. Context for the teardown process. A builder policy used to create lifetime policy instances. Used by the LifetimeStrategy when instantiating open generic types. Create a new instance of . The new instance. The type of Lifetime manager that will be created by this factory. An implementation that uses a to figure out if an object has already been created and to update or remove that object from some backing store. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. Called during the chain of responsibility for a build operation. The PostBuildUp method is called when the chain has finished the PreBuildUp phase and executes in reverse order from the PreBuildUp calls. Context of the build operation. Represents a chain of responsibility for builder strategies partitioned by stages. The stage enumeration to partition the strategies. Initialize a new instance of the class. Initialize a new instance of the class with an inner strategy chain to use when building. The inner strategy chain to use first when finding strategies in the build operation. Adds a strategy to the chain at a particular stage. The strategy to add to the chain. The stage to add the strategy. Add a new strategy for the . The of The stage to add the strategy. Clear the current strategy chain list. This will not clear the inner strategy chain if this instance was created with one. Makes a strategy chain based on this instance. A new . Represents a chain of responsibility for builder strategies. Initialize a new instance of the class. Initialize a new instance of the class with a collection of strategies. A collection of strategies to initialize the chain. Adds a strategy to the chain. The strategy to add to the chain. Adds strategies to the chain. The strategies to add to the chain. Reverse the order of the strategy chain. The reversed strategy chain. Execute this strategy chain against the given context to build up. Context for the build processes. The build up object Execute this strategy chain against the given context, calling the TearDown methods on the strategies. Context for the teardown process. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Build key used to combine a type object with a string name. Used by ObjectBuilder to indicate exactly what is being built. Create a new instance with the given type and name. to build. Key to use to look up type mappings and singletons. Create a new instance for the default buildup of the given type. to build. This helper method creates a new instance. It is initialized for the default key for the given type. Type to build. A new instance. This helper method creates a new instance for the given type and key. Type to build Key to use to look up type mappings and singletons. A new instance initialized with the given type and name. Compare two instances. Two instances compare equal if they contain the same name and the same type. Also, comparing against a different type will also return false. Object to compare to. True if the two keys are equal, false if not. Calculate a hash code for this instance. A hash code. Compare two instances for equality. Two instances compare equal if they contain the same name and the same type. First of the two keys to compare. Second of the two keys to compare. True if the values of the keys are the same, else false. Compare two instances for inequality. Two instances compare equal if they contain the same name and the same type. If either field differs the keys are not equal. First of the two keys to compare. Second of the two keys to compare. false if the values of the keys are the same, else true. Formats the build key as a string (primarily for debugging). A readable string representation of the build key. Return the stored in this build key. The type to build. Returns the name stored in this build key. The name to use when building. A generic version of so that you can new up a key using generic syntax. Type for the key. Construct a new that specifies the given type. Construct a new that specifies the given type and name. Name for the key. A series of helper methods to deal with sequences - objects that implement . A function that turns an arbitrary parameter list into an . Type of arguments. The items to put into the collection. An array that contains the values of the . Given two sequences, return a new sequence containing the corresponding values from each one. Type of first sequence. Type of second sequence. First sequence of items. Second sequence of items. New sequence of pairs. This sequence ends when the shorter of sequence1 and sequence2 does. A that lets you register a delegate with the container to create an object, rather than calling the object's constructor. Base class for all extension objects. The container calls this method when the extension is added. A instance that gives the extension access to the internals of the container. Initial the container with this extension's functionality. When overridden in a derived class, this method will modify the given by adding strategies, policies, etc. to install it's functions into the container. Removes the extension's functions from the container. This method is called when extensions are being removed from the container. It can be used to do things like disconnect event handlers or clean up member state. You do not need to remove strategies or policies here; the container will do that automatically. The default implementation of this method does nothing. The container this extension has been added to. The that this extension has been added to. The object used to manipulate the inner state of the container. Initialize this extension. This particular extension requires no initialization work. Register the given factory delegate to be called when the container is asked to resolve and . Type that will be requested from the container. The name that will be used when requesting to resolve this type. Delegate to invoke to create the instance. The container extension object this method was invoked on. Register the given factory delegate to be called when the container is asked to resolve . Type that will be requested from the container. Delegate to invoke to create the instance. The container extension object this method was invoked on. An implementation of that acts as a decorator over another . This checks to see if the current type being built is the right one before checking the inner . Create an instance of Type to check for. Inner override to check after type matches. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. A convenience version of that lets you specify the type to construct via generics syntax. Type to check for. Create an instance of . Inner override to check after type matches. Extension class that adds a set of convenience overloads to the interface. Register a type with specific members to be injected. Type this registration is for. Container to configure. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container. This method is used to tell the container that when asked for type , actually return an instance of type . This is very useful for getting instances of interfaces. This overload registers a default mapping and transient lifetime. that will be requested. that will actually be returned. Container to configure. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container, where the created instances will use the given . that will be requested. that will actually be returned. Container to configure. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container. This method is used to tell the container that when asked for type , actually return an instance of type . This is very useful for getting instances of interfaces. that will be requested. that will actually be returned. Container to configure. Name of this mapping. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container, where the created instances will use the given . that will be requested. that will actually be returned. Container to configure. Name to use for registration, null if a default registration. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type with the container. No type mapping is performed for this type. The type to apply the to. Container to configure. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type with the container. No type mapping is performed for this type. The type to configure injection on. Container to configure. Name that will be used to request the type. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type and name with the container. No type mapping is performed for this type. The type to apply the to. Container to configure. Name that will be used to request the type. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type with specific members to be injected. Container to configure. Type this registration is for. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container. This method is used to tell the container that when asked for type , actually return an instance of type . This is very useful for getting instances of interfaces. This overload registers a default mapping. Container to configure. that will be requested. that will actually be returned. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container. This method is used to tell the container that when asked for type , actually return an instance of type . This is very useful for getting instances of interfaces. Container to configure. that will be requested. that will actually be returned. Name to use for registration, null if a default registration. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container, where the created instances will use the given . Container to configure. that will be requested. that will actually be returned. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type and name with the container. No type mapping is performed for this type. Container to configure. The to apply the to. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type and name with the container. No type mapping is performed for this type. Container to configure. The to configure in the container. Name to use for registration, null if a default registration. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type and name with the container. No type mapping is performed for this type. Container to configure. The to apply the to. Name to use for registration, null if a default registration. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload does a default registration and has the container take over the lifetime of the instance. Type of instance to register (may be an implemented interface instead of the full type). Container to configure. Object to returned. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload does a default registration (name = null). Type of instance to register (may be an implemented interface instead of the full type). Container to configure. Object to returned. object that controls how this instance will be managed by the container. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload automatically has the container take ownership of the . Type of instance to register (may be an implemented interface instead of the full type). Object to returned. Container to configure. Name for registration. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. Container to configure. Name for registration. object that controls how this instance will be managed by the container. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload does a default registration and has the container take over the lifetime of the instance. Container to configure. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload does a default registration (name = null). Container to configure. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. object that controls how this instance will be managed by the container. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload automatically has the container take ownership of the . Container to configure. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. Name for registration. The object that this method was called on (this in C#, Me in Visual Basic). Resolve an instance of the default requested type from the container. of object to get from the container. Container to resolve from. Any overrides for the resolve call. The retrieved object. Resolve an instance of the requested type with the given name from the container. of object to get from the container. Container to resolve from. Name of the object to retrieve. Any overrides for the resolve call. The retrieved object. Resolve an instance of the default requested type from the container. Container to resolve from. of object to get from the container. Any overrides for the resolve call. The retrieved object. Return instances of all registered types requested. This method is useful if you've registered multiple types with the same but different names. Be aware that this method does NOT return an instance for the default (unnamed) registration. The type requested. Container to resolve from. Any overrides for the resolve calls. Set of objects of type . Run an existing object through the container and perform injection on it. This method is useful when you don't control the construction of an instance (ASP.NET pages or objects created via XAML, for instance) but you still want properties and other injection performed. This overload uses the default registrations. of object to perform injection on. Container to resolve through. Instance to build up. Any overrides for the buildup. The resulting object. By default, this will be , but container extensions may add things like automatic proxy creation which would cause this to return a different object (but still type compatible with ). Run an existing object through the container and perform injection on it. This method is useful when you don't control the construction of an instance (ASP.NET pages or objects created via XAML, for instance) but you still want properties and other injection performed. of object to perform injection on. Container to resolve through. Instance to build up. name to use when looking up the typemappings and other configurations. Any overrides for the Buildup. The resulting object. By default, this will be , but container extensions may add things like automatic proxy creation which would cause this to return a different object (but still type compatible with ). Run an existing object through the container and perform injection on it. This method is useful when you don't control the construction of an instance (ASP.NET pages or objects created via XAML, for instance) but you still want properties and other injection performed. This overload uses the default registrations. Container to resolve through. of object to perform injection on. Instance to build up. Any overrides for the Buildup. The resulting object. By default, this will be , but container extensions may add things like automatic proxy creation which would cause this to return a different object (but still type compatible with ). Creates a new extension object and adds it to the container. Type of to add. The extension type will be resolved from within the supplied . Container to add the extension to. The object that this method was called on (this in C#, Me in Visual Basic). Resolve access to a configuration interface exposed by an extension. Extensions can expose configuration interfaces as well as adding strategies and policies to the container. This method walks the list of added extensions and returns the first one that implements the requested type. The configuration interface required. Container to configure. The requested extension's configuration interface, or null if not found. Check if a particular type has been registered with the container with the default name. Container to inspect. Type to check registration for. True if this type has been registered, false if not. Check if a particular type/name pair has been registered with the container. Container to inspect. Type to check registration for. Name to check registration for. True if this type/name pair has been registered, false if not. Check if a particular type has been registered with the container with the default name. Type to check registration for. Container to inspect. True if this type has been registered, false if not. Check if a particular type/name pair has been registered with the container. Type to check registration for. Container to inspect. Name to check registration for. True if this type/name pair has been registered, false if not. The class provides the means for extension objects to manipulate the internal state of the . Store a type/name pair for later resolution. When users register type mappings (or other things) with a named key, this method allows you to register that name with the container so that when the method is called, that name is included in the list that is returned. to register. Name associated with that type. The container that this context is associated with. The object. The strategies this container uses. The that the container uses to build objects. The strategies this container uses to construct build plans. The that this container uses when creating build plans. The policies this container uses. The the that container uses to build objects. The that this container uses. The is used to manage objects that the container is managing. This event is raised when the method, or one of its overloads, is called. This event is raised when the method, or one of its overloads, is called. This event is raised when the method is called, providing the newly created child container to extensions to act on as they see fit. An EventArgs class that holds a string Name. Create a new with a null name. Create a new with the given name. Name to store. The name. Name used for this EventArg object. Event argument class for the event. Create a new instance of . Type to map from. Type to map to. Name for the registration. to manage instances. Type to map from. Type to map to. to manage instances. Event argument class for the event. Create a default instance. Create a instance initialized with the given arguments. Type of instance being registered. The instance object itself. Name to register under, null if default registration. object that handles how the instance will be owned. Type of instance being registered. Type of instance being registered. Instance object being registered. Instance object being registered that controls ownership of this instance. A that lets you specify that an instance of a generic type parameter should be resolved. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. name to use when looking up in the container. Return a instance that will return this types value for the parameter. The actual type to resolve. The resolution key. The . A that lets you specify that an array containing the registered instances of a generic type parameter should be resolved. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. The values for the elements, that will be converted to objects. Test to see if this parameter value has a matching type for the given type. Type to check. True if this parameter value is compatible with type , false if not. A type is considered compatible if it is an array type of rank one and its element type is a generic type parameter with a name matching this generic parameter name configured for the receiver. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . Name for the type represented by this . This may be an actual type name or a generic argument name. A Unity container extension that allows you to configure which constructors, properties, and methods get injected via an API rather than through attributes. Initial the container with this extension's functionality. When overridden in a derived class, this method will modify the given by adding strategies, policies, etc. to install it's functions into the container. API to configure the injection settings for a particular type. Type the injection is being configured for. Objects containing the details on which members to inject and how. This extension object. API to configure the injection settings for a particular type/name pair. Type the injection is being configured for. Name of registration Objects containing the details on which members to inject and how. This extension object. API to configure the injection settings for a particular type. Type to configure. Objects containing the details on which members to inject and how. This extension object. API to configure the injection settings for a particular type/name pair. Type to configure. Name of registration. Objects containing the details on which members to inject and how. This extension object. API to configure the injection settings for a particular type/name pair. Type of interface/base class being registered (may be null). Type of actual implementation class being registered. Name of registration. Objects containing the details on which members to inject and how. This extension object. A class that holds the collection of information for a constructor, so that the container can be configured to call this constructor. Create a new instance of that looks for a constructor with the given set of parameters. The values for the parameters, that will be converted to objects. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Interface registered, ignored in this implementation. Type to register. Name used to resolve the type object. Policy list to add policies to. An that configures the container to call a method as part of buildup. Create a new instance which will configure the container to call the given methods with the given parameters. Name of the method to call. Parameter values for the method. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Type of interface registered, ignored in this implementation. Type to register. Name used to resolve the type object. Policy list to add policies to. A small function to handle name matching. You can override this to do things like case insensitive comparisons. MethodInfo for the method you're checking. Name of the method you're looking for. True if a match, false if not. A class that holds on to the given value and provides the required when the container is configured. Create an instance of that stores the given value, using the runtime type of that value as the type of the parameter. Value to be injected for this parameter. Create an instance of that stores the given value, associated with the given type. Type of the parameter. Value of the parameter Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . A generic version of that makes it a little easier to specify the type of the parameter. Type of parameter. Create a new . Value for the parameter. This class stores information about which properties to inject, and will configure the container accordingly. Configure the container to inject the given property name, resolving the value via the container. Name of the property to inject. Configure the container to inject the given property name, using the value supplied. This value is converted to an object using the rules defined by the method. Name of property to inject. Value for property. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Interface being registered, ignored in this implementation. Type to register. Name used to resolve the type object. Policy list to add policies to. A class that stores a type, and generates a resolver object that resolves all the named instances or the type registered in a container. Construct a new that resolves to the given element type and collection of element values. The type of elements to resolve. The values for the elements, that will be converted to objects. Construct a new that resolves to the given array and element types and collection of element values. The type for the array of elements to resolve. The type of elements to resolve. The values for the elements, that will be converted to objects. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . A generic version of for convenience when creating them by hand. Type of the elements for the array of the parameter. Construct a new that resolves to the given element generic type with the given element values. The values for the elements, that will be converted to objects. Interface defining the behavior of the Unity dependency injection container. Register a type mapping with the container, where the created instances will use the given . that will be requested. that will actually be returned. Name to use for registration, null if a default registration. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. Name for registration. object that controls how this instance will be managed by the container. The object that this method was called on (this in C#, Me in Visual Basic). Resolve an instance of the requested type with the given name from the container. of object to get from the container. Name of the object to retrieve. Any overrides for the resolve call. The retrieved object. Return instances of all registered types requested. This method is useful if you've registered multiple types with the same but different names. Be aware that this method does NOT return an instance for the default (unnamed) registration. The type requested. Any overrides for the resolve calls. Set of objects of type . Run an existing object through the container and perform injection on it. This method is useful when you don't control the construction of an instance (ASP.NET pages or objects created via XAML, for instance) but you still want properties and other injection performed. of object to perform injection on. Instance to build up. name to use when looking up the TypeMappings and other configurations. Any overrides for the resolve calls. The resulting object. By default, this will be , but container extensions may add things like automatic proxy creation which would cause this to return a different object (but still type compatible with ). Run an existing object through the container, and clean it up. The object to tear down. Add an extension object to the container. to add. The object that this method was called on (this in C#, Me in Visual Basic). Resolve access to a configuration interface exposed by an extension. Extensions can expose configuration interfaces as well as adding strategies and policies to the container. This method walks the list of added extensions and returns the first one that implements the requested type. of configuration interface required. The requested extension's configuration interface, or null if not found. Remove all installed extensions from this container. This method removes all extensions from the container, including the default ones that implement the out-of-the-box behavior. After this method, if you want to use the container again you will need to either read the default extensions or replace them with your own. The registered instances and singletons that have already been set up in this container do not get removed. The object that this method was called on (this in C#, Me in Visual Basic). Create a child container. A child container shares the parent's configuration, but can be configured with different settings or lifetime. The new child container. The parent of this container. The parent container, or null if this container doesn't have one. Get a sequence of that describe the current state of the container. A that holds a weak reference to it's managed instance. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. The object being stored. Remove the given object from backing store. An implementation of that creates instances of the type of the given Lifetime Manager by resolving them through the container. Create a new that will return instances of the given type, creating them by resolving through the container. Container to resolve with. Type of LifetimeManager to create. Create a new instance of . The new instance. The type of Lifetime manager that will be created by this factory. A that holds the instances given to it, keeping one instance per thread. This LifetimeManager does not dispose the instances it holds. Initializes a new instance of the class. Retrieve a value from the backing store associated with this Lifetime policy for the current thread. the object desired, or if no such object is currently stored for the current thread. Stores the given value into backing store for retrieval later when requested in the current thread. The object being stored. Remove the given object from backing store. Not implemented for this lifetime manager. An implementation that does nothing, thus ensuring that instances are created new every time. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. The object being stored. Remove the given object from backing store. This strategy implements the logic that will call container.ResolveAll when an array parameter is detected. Do the PreBuildUp stage of construction. This is where the actual work is performed. Current build context. An implementation of that is aware of the build keys used by the Unity container. Create a instance for the given . This implementation looks for the Unity on the parameter and uses it to create an instance of for this parameter. Parameter to create the resolver for. The resolver object. An implementation of that is aware of the build keys used by the Unity container. Create a instance for the given . Parameter to create the resolver for. The resolver object. An implementation of that is aware of the build keys used by the unity container. Create a for the given property. Property to create resolver for. The resolver object. A implementation that returns the value set in the constructor. Create a new instance of which will return the given value when resolved. The value to return. Get the value for a dependency. Current build context. The value for the dependency. An implementation of that stores a type and name, and at resolution time puts them together into a . Create an instance of with the given type and name. The type. The name (may be null). Resolve the value for a dependency. Current build context. The value for the dependency. The type that this resolver resolves. The name that this resolver resolves. An implementation of that resolves to to an array populated with the values that result from resolving other instances of . Create an instance of with the given type and a collection of instances to use when populating the result. The type. The resolver policies to use when populating an array. Resolve the value for a dependency. Current build context. An array populated with the results of resolving the resolver policies. An implementation of that selects the given constructor and creates the appropriate resolvers to call it with the specified parameters. Create an instance of that will return the given constructor, being passed the given injection values as parameters. The constructor to call. Set of objects that describes how to obtain the values for the constructor parameters. Choose the constructor to call for the given type. Current build context The to add any generated resolver objects into. The chosen constructor. Helper class for implementing selector policies that need to set up dependency resolver policies. Add dependency resolvers to the parameter set. Type that's currently being built (used to resolve open generics). PolicyList to add the resolvers to. Objects supplying the dependency resolvers. Result object to store the keys in. A implementation that calls the specific methods with the given parameters. Add the given method and parameter collection to the list of methods that will be returned when the selector's method is called. Method to call. sequence of objects that describe how to create the method parameter values. Return the sequence of methods to call while building the target object. Current build context. The to add any generated resolver objects into. Sequence of methods to call. An implementation of which returns the set of specific properties that the selector was configured with. Add a property that will be par of the set returned when the is called. The property to set. object describing how to create the value to inject. Returns sequence of properties on the given type that should be set as part of building that object. Current build context. The to add any generated resolver objects into. Sequence of objects that contain the properties to set. The exception thrown by the Unity container when an attempt to resolve a dependency fails. Create a new that records the exception for the given type and name. Type requested from the container. Name requested from the container. The actual exception that caused the failure of the build. The build context representing the failed operation. The type that was being requested from the container at the time of failure. The name that was being requested from the container at the time of failure. A class that stores a name and type, and generates a resolver object that resolves the parameter via the container. Construct a new that resolves to the given type. Type of this parameter. Construct a new that resolves the given type and name. Type of this parameter. Name to use when resolving parameter. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . A generic version of for convenience when creating them by hand. Type of the parameter Create a new for the given generic type and the default name. Create a new for the given generic type and name. Name to use to resolve this parameter. An implementation of that wraps a Unity container. Initializes a new instance of the class for a container. The to wrap with the interface implementation. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. 2 When implemented by inheriting classes, this method will do the actual work of resolving the requested service instance. Type of instance requested.Name of registered service you want. May be null. The requested service instance. When implemented by inheriting classes, this method will do the actual work of resolving all the requested service instances. Type of service requested. Sequence of service instance objects. A static helper class that includes various parameter checking routines. Throws if the given argument is null. if tested value if null. Argument value to test. Name of the argument being tested. Throws an exception if the tested string argument is null or the empty string. Thrown if string value is null. Thrown if the string is empty Argument value to check. Name of argument being checked. Verifies that an argument type is assignable from the provided type (meaning interfaces are implemented, or classes exist in the base class hierarchy). The argument type that will be assigned to. The type of the value being assigned. Argument name. Verifies that an argument instance is assignable from the provided type (meaning interfaces are implemented, or classes exist in the base class hierarchy, or instance can be assigned through a runtime wrapper, as is the case for COM Objects). The argument type that will be assigned to. The instance that will be assigned. Argument name. A helper class to manage the names that get registered in the container The build stages we use in the Unity container strategy pipeline. First stage. By default, nothing happens here. Second stage. Type mapping occurs here. Third stage. lifetime managers are checked here, and if they're available the rest of the pipeline is skipped. Fourth stage. Reflection over constructors, properties, etc. is performed here. Fifth stage. Instance creation happens here. Sixth stage. Property sets and method injection happens here. Seventh and final stage. By default, nothing happens here. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to The type {0} has multiple constructors of length {1}. Unable to disambiguate.. Looks up a localized string similar to The provided string argument must not be empty.. Looks up a localized string similar to The current build operation (build key {2}) failed: {3} (Strategy type {0}, index {1}). Looks up a localized string similar to The current type, {0}, is an abstract class and cannot be constructed. Are you missing a type mapping?. Looks up a localized string similar to The current type, {0}, is delegate and cannot be constructed. Unity only supports resolving Func<T> and Func<IEnumerable<T>> by default.. Looks up a localized string similar to The current type, {0}, is an interface and cannot be constructed. Are you missing a type mapping?. Looks up a localized string similar to Cannot extract type from build key {0}.. Looks up a localized string similar to The method {0}.{1}({2}) is an open generic method. Open generic methods cannot be injected.. Looks up a localized string similar to The property {0} on type {1} is an indexer. Indexed properties cannot be injected.. Looks up a localized string similar to The method {1} on type {0} has an out parameter. Injection cannot be performed.. Looks up a localized string similar to The method {0}.{1}({2}) has at least one out parameter. Methods with out parameters cannot be injected.. Looks up a localized string similar to The method {0}.{1}({2}) has at least one ref parameter.Methods with ref parameters cannot be injected.. Looks up a localized string similar to The method {1} on type {0} is marked for injection, but it is an open generic method. Injection cannot be performed.. Looks up a localized string similar to The method {0}.{1}({2}) is static. Static methods cannot be injected.. Looks up a localized string similar to The type {0} is an open generic type. An open generic type cannot be resolved.. Looks up a localized string similar to Resolving parameter "{0}" of constructor {1}. Looks up a localized string similar to The parameter {0} could not be resolved when attempting to call constructor {1}.. Looks up a localized string similar to Parameter type inference does not work for null values. Indicate the parameter type explicitly using a properly configured instance of the InjectionParameter or InjectionParameter<T> classes.. Looks up a localized string similar to Calling constructor {0}. Looks up a localized string similar to Calling method {0}.{1}. Looks up a localized string similar to An item with the given key is already present in the dictionary.. Looks up a localized string similar to The lifetime manager is already registered. Lifetime managers cannot be reused, please create a new one.. Looks up a localized string similar to The override marker build plan policy has been invoked. This should never happen, looks like a bug in the container.. Looks up a localized string similar to Resolving parameter "{0}" of method {1}.{2}. Looks up a localized string similar to The value for parameter "{1}" of method {0} could not be resolved. . Looks up a localized string similar to Could not resolve dependency for build key {0}.. Looks up a localized string similar to The type {0} has multiple constructors marked with the InjectionConstructor attribute. Unable to disambiguate.. Looks up a localized string similar to The supplied type {0} must be an open generic type.. Looks up a localized string similar to The supplied type {0} does not have the same number of generic arguments as the target type {1}.. Looks up a localized string similar to The type {0} does not have an accessible constructor.. Looks up a localized string similar to The type {0} does not have a generic argument named "{1}". Looks up a localized string similar to while resolving. Looks up a localized string similar to The type {0} does not have a constructor that takes the parameters ({1}).. Looks up a localized string similar to The type {0} does not have a public method named {1} that takes the parameters ({2}).. Looks up a localized string similar to The type {0} does not contain an instance property named {1}.. Looks up a localized string similar to The type {0} is not a generic type, and you are attempting to inject a generic parameter named "{1}".. Looks up a localized string similar to The type {0} is not an array type with rank 1, and you are attempting to use a [DependencyArray] attribute on a parameter or property with this type.. Looks up a localized string similar to Optional dependencies must be reference types. The type {0} is a value type.. Looks up a localized string similar to The property {0} on type {1} is not settable.. Looks up a localized string similar to The property {0} on type {1} is of type {2}, and cannot be injected with a value of type {3}.. Looks up a localized string similar to The value for the property "{0}" could not be resolved.. Looks up a localized string similar to The provided string argument must not be empty.. Looks up a localized string similar to Resolution of the dependency failed, type = "{0}", name = "{1}". Exception occurred while: {2}. Exception is: {3} - {4} ----------------------------------------------- At the time of the exception, the container was: . Looks up a localized string similar to Resolving {0},{1}. Looks up a localized string similar to Resolving {0},{1} (mapped from {2}, {3}). Looks up a localized string similar to Resolving value for property {0}.{1}. Looks up a localized string similar to The constructor {1} selected for type {0} has ref or out parameters. Such parameters are not supported for constructor injection.. Looks up a localized string similar to Setting value for property {0}.{1}. Looks up a localized string similar to The type {0} cannot be constructed. You must configure the container to supply this value.. Looks up a localized string similar to The type {1} cannot be assigned to variables of type {0}.. Looks up a localized string similar to <unknown>. A simple, extensible dependency injection container. Create a default . Create a with the given parent container. The parent . The current object will apply its own settings first, and then check the parent for additional ones. RegisterType a type mapping with the container, where the created instances will use the given . that will be requested. that will actually be returned. Name to use for registration, null if a default registration. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). RegisterType an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. Name for registration. If true, the container will take over the lifetime of the instance, calling Dispose on it (if it's ) when the container is Disposed. If false, container will not maintain a strong reference to . User is responsible for disposing instance, and for keeping the instance from being garbage collected. The object that this method was called on (this in C#, Me in Visual Basic). Get an instance of the requested type with the given name from the container. of object to get from the container. Name of the object to retrieve. Any overrides for the resolve call. The retrieved object. Return instances of all registered types requested. This method is useful if you've registered multiple types with the same but different names. Be aware that this method does NOT return an instance for the default (unnamed) registration. The type requested. Any overrides for the resolve calls. Set of objects of type . Run an existing object through the container and perform injection on it. This method is useful when you don't control the construction of an instance (ASP.NET pages or objects created via XAML, for instance) but you still want properties and other injection performed. of object to perform injection on. Instance to build up. name to use when looking up the typemappings and other configurations. Any overrides for the buildup. The resulting object. By default, this will be , but container extensions may add things like automatic proxy creation which would cause this to return a different object (but still type compatible with ). Run an existing object through the container, and clean it up. The object to tear down. Add an extension object to the container. to add. The object that this method was called on (this in C#, Me in Visual Basic). Get access to a configuration interface exposed by an extension. Extensions can expose configuration interfaces as well as adding strategies and policies to the container. This method walks the list of added extensions and returns the first one that implements the requested type. of configuration interface required. The requested extension's configuration interface, or null if not found. Remove all installed extensions from this container. This method removes all extensions from the container, including the default ones that implement the out-of-the-box behavior. After this method, if you want to use the container again you will need to either read the default extensions or replace them with your own. The registered instances and singletons that have already been set up in this container do not get removed. The object that this method was called on (this in C#, Me in Visual Basic). Create a child container. A child container shares the parent's configuration, but can be configured with different settings or lifetime. The new child container. Dispose this container instance. Disposing the container also disposes any child containers, and disposes any instances whose lifetimes are managed by the container. Dispose this container instance. This class doesn't have a finalizer, so will always be true. True if being called from the IDisposable.Dispose method, false if being called from a finalizer. Remove policies associated with building this type. This removes the compiled build plan so that it can be rebuilt with the new settings the next time this type is resolved. Type of object to clear the plan for. Name the object is being registered with. The parent of this container. The parent container, or null if this container doesn't have one. Get a sequence of that describe the current state of the container. Implementation of the ExtensionContext that is actually used by the UnityContainer implementation. This is a nested class so that it can access state in the container that would otherwise be inaccessible. This event is raised when the method, or one of its overloads, is called. This extension supplies the default behavior of the UnityContainer API by handling the context events and setting policies. Install the default container behavior into the container. Remove the default behavior from the container. This extension installs the default strategies and policies into the container to implement the standard behavior of the Unity container. Add the default ObjectBuilder strategies & policies to the container. Helper class to wrap common reflection stuff dealing with methods. Create a new instance that lets us do more reflection stuff on that method. The method to reflect on. Given our set of generic type arguments, The generic type arguments. An array with closed parameter types. Returns true if any of the parameters of this method are open generics. Return the of each parameter for this method. Sequence of objects, one for each parameter in order. A helper class that encapsulates two different data items together into a a single item. Create a new containing the two values give. First value Second value The first value of the pair. The second value of the pair. Container for a Pair helper method. A helper factory method that lets users take advantage of type inference. Type of first value. Type of second value. First value. Second value. A new instance. A utility class that handles the logic of matching parameter lists, so we can find the right constructor and method overloads. Create a new that will attempt to match the given parameter types. Target parameters to match against. Tests to see if the given set of types matches the ones we're looking for. parameter list to look for. true if they match, false if they don't. Tests to see if the given set of types matches the ones we're looking for. Candidate method signature to look for. True if they match, false if they don't. Another reflection helper class that has extra methods for dealing with ParameterInfo. A small helper class to encapsulate details of the reflection API, particularly around generics. Create a new instance that lets you look at information about the given type. Type to do reflection on. Test the given object, looking at the parameters. Determine if any of the parameters are open generic types that need type attributes filled in. The method to check. True if any of the parameters are open generics. False if not. If this type is an open generic, use the given array to determine what the required closed type is and return that. If the parameter is not an open type, just return this parameter's type. Type arguments to substitute in for the open type parameters. Corresponding closed type of this parameter. Given a generic argument name, return the corresponding type for this closed type. For example, if the current type is SomeType<User>, and the corresponding definition was SomeType<TSomething>, calling this method and passing "TSomething" will return typeof(User). Name of the generic parameter. Type of the corresponding generic parameter, or null if there is no matching name. The object we're reflecting over. Is this type generic? Is this type an open generic (no type parameter specified) Is this type an array type? Is this type an array of generic elements? The type of the elements in this type (if it's an array). Returns all the public constructors defined for the current reflected . An enumeration of ConstructorInfo objects representing all the public instance constructors defined for the current reflected , but not including the type initializer (static constructor). Create a new instance of that lets you query information about the given ParameterInfo object. Parameter to query. A set of helper methods to pick through lambdas and pull out from them. Pull out a object from an expression of the form () => SomeClass.SomeMethod() Expression describing the method to call. Corresponding . Pull out a object from an expression of the form x => x.SomeMethod() The type where the method is defined. Expression describing the method to call. Corresponding . Pull out a object for the get method from an expression of the form x => x.SomeProperty The type where the method is defined. The type for the property. Expression describing the property for which the get method is to be extracted. Corresponding . Pull out a object for the set method from an expression of the form x => x.SomeProperty The type where the method is defined. The type for the property. Expression describing the property for which the set method is to be extracted. Corresponding . Pull out a object from an expression of the form () => new SomeType() The type where the constructor is defined. Expression invoking the desired constructor. Corresponding . ================================================ FILE: packages/Unity.3.5.1404.0/lib/portable-net45+wp80+win8+MonoAndroid10+MonoTouch10/Microsoft.Practices.Unity.xml ================================================ Microsoft.Practices.Unity Provides access to the names registered for a container. Represents a builder policy interface. Since there are no fixed requirements for policies, it acts as a marker interface from which to derive all other policy interfaces. Gets the names registered for a type. The type. The names registered for . An implementation that constructs a build plan for creating objects. A that can create and return an for the given build key. Create a build plan using the given context and build key. Current build context. Current build key. The build plan. Creates a build plan using the given context and build key. Current build context. Current build key. The build plan. Provides extension methods to the class due to the introduction of class in the .NET for Windows Store apps. Returns the constructor in that matches the specified constructor parameter types. The type to inspect The constructor parameter types. The constructor that matches the specified parameter types. Returns the non-static declared methods of a type or its base types. The type to inspect An enumerable of the objects. Returns the non-static method of a type or its based type. The type to inspect The name of the method to seek. The (closed) parameter type signature of the method. The discovered Returns the declared properties of a type or its base types. The type to inspect An enumerable of the objects. Determines if the types in a parameter set ordinally matches the set of supplied types. Base class for attributes that can be placed on parameters or properties to specify how to resolve the value for that parameter or property. Create an instance of that will be used to get the value for the member this attribute is applied to. Type of parameter or property that this attribute is decoration. The resolver object. This attribute is used to indicate which constructor to choose when the container attempts to build a type. This attribute is used to mark methods that should be called when the container is building an object. This attribute is used to mark properties and parameters as targets for injection. For properties, this attribute is necessary for injection to happen. For parameters, it's not needed unless you want to specify additional information to control how the parameter is resolved. Create an instance of with no name. Create an instance of with the given name. Name to use when resolving this dependency. Create an instance of that will be used to get the value for the member this attribute is applied to. Type of parameter or property that this attribute is decoration. The resolver object. The name specified in the constructor. An used to mark a dependency as optional - the container will try to resolve it, and return null if the resolution fails rather than throw. Construct a new object. Construct a new object that specifies a named dependency. Name of the dependency. Create an instance of that will be used to get the value for the member this attribute is applied to. Type of parameter or property that this attribute is decoration. The resolver object. Name of the dependency. A that composites other ResolverOverride objects. The GetResolver operation then returns the resolver from the first child override that matches the current context and request. Base class for all override objects passed in the method. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. Wrap this resolver in one that verifies the type of the object being built. This allows you to narrow any override down to a specific type easily. Type to constrain the override to. The new override. Wrap this resolver in one that verifies the type of the object being built. This allows you to narrow any override down to a specific type easily. Type to constrain the override to. The new override. Add a new to the collection that is checked. item to add. Add a set of s to the collection. items to add. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. 2 Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. 1 Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. Class that returns information about the types registered in a container. The type that was passed to the method as the "from" type, or the only type if type mapping wasn't done. The type that this registration is mapped to. If no type mapping was done, the property and this one will have the same value. Name the type was registered under. Null for default registration. The registered lifetime manager instance. The lifetime manager for this registration. This property will be null if this registration is for an open generic. A class that overrides the value injected whenever there is a dependency of the given type, regardless of where it appears in the object graph. Create an instance of to override the given type with the given value. Type of the dependency. Value to use. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. A convenience version of that lets you specify the dependency type using generic syntax. Type of the dependency to override. Construct a new object that will override the given dependency, and pass the given value. A convenience form of that lets you specify multiple parameter overrides in one shot rather than having to construct multiple objects. This class isn't really a collection, it just implements IEnumerable so that we get use of the nice C# collection initializer syntax. Base helper class for creating collections of objects for use in passing a bunch of them to the resolve call. This base class provides the mechanics needed to allow you to use the C# collection initializer syntax. Concrete type of the this class collects. Key used to create the underlying override object. Value that the override returns. Add a new override to the collection with the given key and value. Key - for example, a parameter or property name. Value - the value to be returned by the override. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. 2 Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. 1 When implemented in derived classes, this method is called from the method to create the actual objects. Key value to create the resolver. Value to store in the resolver. The created . When implemented in derived classes, this method is called from the method to create the actual objects. Key value to create the resolver. Value to store in the resolver. The created . Event argument class for the event. Construct a new object with the given child container object. An for the newly created child container. The newly created child container. An extension context for the created child container. Base class for subclasses that let you specify that an instance of a generic type parameter should be resolved. Base type for objects that are used to configure parameters for constructor or method injection, or for getting the value to be injected into a property. Test to see if this parameter value has a matching type for the given type. Type to check. True if this parameter value is compatible with type , false if not. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . Convert the given set of arbitrary values to a sequence of InjectionParameterValue objects. The rules are: If it's already an InjectionParameterValue, return it. If it's a Type, return a ResolvedParameter object for that type. Otherwise return an InjectionParameter object for that value. The values to build the sequence from. The resulting converted sequence. Convert an arbitrary value to an InjectionParameterValue object. The rules are: If it's already an InjectionParameterValue, return it. If it's a Type, return a ResolvedParameter object for that type. Otherwise return an InjectionParameter object for that value. The value to convert. The resulting . Name for the type represented by this . This may be an actual type name or a generic argument name. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. name to use when looking up in the container. Test to see if this parameter value has a matching type for the given type. Type to check. True if this parameter value is compatible with type , false if not. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . Return a instance that will return this types value for the parameter. The actual type to resolve. The resolution key. The . Name for the type represented by this . This may be an actual type name or a generic argument name. A that lets you specify that an instance of a generic type parameter should be resolved, providing the value if resolving fails. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. name to use when looking up in the container. Return a instance that will return this types value for the parameter. The actual type to resolve. The resolution key. The . A class that lets you specify a factory method the container will use to create the object. This is a significantly easier way to do the same thing the old static factory extension was used for. Base class for objects that can be used to configure what class members get injected by the container. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Type to register. Policy list to add policies to. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Type of interface being registered. If no interface, this will be null. Type of concrete type being registered. Name used to resolve the type object. Policy list to add policies to. Create a new instance of with the given factory function. Factory function. Create a new instance of with the given factory function. Factory function. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Type of interface being registered. If no interface, this will be null. This parameter is ignored in this implementation. Type of concrete type being registered. Name used to resolve the type object. Policy list to add policies to. A that can be passed to to configure a parameter or property as an optional dependency. A base class for implementing classes that deal in explicit types. Create a new that exposes information about the given . Type of the parameter. Test to see if this parameter value has a matching type for the given type. Type to check. True if this parameter value is compatible with type , false if not. The type of parameter this object represents. Name for the type represented by this . This may be an actual type name or a generic argument name. Construct a new object that specifies the given . Type of the dependency. Construct a new object that specifies the given and . Type of the dependency. Name for the dependency. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . A generic version of that lets you specify the type of the dependency using generics syntax. Type of the dependency. Construct a new . Construct a new with the given . Name of the dependency. A special lifetime manager which works like , except that in the presence of child containers, each child gets it's own instance of the object, instead of sharing one in the common parent. A that holds onto the instance given to it. When the is disposed, the instance is disposed with it. Base class for Lifetime managers which need to synchronize calls to . The purpose of this class is to provide a basic implementation of the lifetime manager synchronization pattern. Calls to the method of a instance acquire a lock, and if the instance has not been initialized with a value yet the lock will only be released when such an initialization takes place by calling the method or if the build request which resulted in the call to the GetValue method fails. Base class for Lifetime managers - classes that control how and when instances are created by the Unity container. A that controls how instances are persisted and recovered from an external store. Used to implement things like singletons and per-http-request lifetime. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. The object to store. Remove the value this lifetime policy is managing from backing store. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. The object being stored. Remove the given object from backing store. This interface provides a hook for the builder context to implement error recovery when a builder strategy throws an exception. Since we can't get try/finally blocks onto the call stack for later stages in the chain, we instead add these objects to the context. If there's an exception, all the current IRequiresRecovery instances will have their Recover methods called. A method that does whatever is needed to clean up as part of cleaning up after an exception. Don't do anything that could throw in this method, it will cause later recover operations to get skipped and play real havoc with the stack trace. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Calls to this method acquire a lock which is released only if a non-null value has been set for the lifetime manager. Performs the actual retrieval of a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. This method is invoked by after it has acquired its lock. Stores the given value into backing store for retrieval later. The object being stored. Setting a value will attempt to release the lock acquired by . Performs the actual storage of the given value into backing store for retrieval later. The object being stored. This method is invoked by before releasing its lock. Remove the given object from backing store. A method that does whatever is needed to clean up as part of cleaning up after an exception. Don't do anything that could throw in this method, it will cause later recover operations to get skipped and play real havoc with the stack trace. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. The object being stored. Remove the given object from backing store. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Standard Dispose pattern implementation. Not needed, but it keeps FxCop happy. Always true, since we don't have a finalizer. This is a custom lifetime manager that acts like , but also provides a signal to the default build plan, marking the type so that instances are reused across the build up object graph. Construct a new object that does not itself manage an instance. Construct a new object that stores the give value. This value will be returned by but is not stored in the lifetime manager, nor is the value disposed. This Lifetime manager is intended only for internal use, which is why the normal method is not used here. Value to store. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. In this class, this is a noop, since it has special hooks down in the guts. The object being stored. Remove the given object from backing store. Noop in this class. A strategy that handles Hierarchical lifetimes across a set of parent/child containers. Represents a strategy in the chain of responsibility. Strategies are required to support both BuildUp and TearDown. Represents a strategy in the chain of responsibility. Strategies are required to support both BuildUp and TearDown. Although you can implement this interface directly, you may also choose to use as the base class for your strategies, as this class provides useful helper methods and makes support BuildUp and TearDown optional. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. Called during the chain of responsibility for a build operation. The PostBuildUp method is called when the chain has finished the PreBuildUp phase and executes in reverse order from the PreBuildUp calls. Context of the build operation. Called during the chain of responsibility for a teardown operation. The PreTearDown method is called when the chain is being executed in the forward direction. Context of the teardown operation. Called during the chain of responsibility for a teardown operation. The PostTearDown method is called when the chain has finished the PreTearDown phase and executes in reverse order from the PreTearDown calls. Context of the teardown operation. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. Called during the chain of responsibility for a build operation. The PostBuildUp method is called when the chain has finished the PreBuildUp phase and executes in reverse order from the PreBuildUp calls. Context of the build operation. Called during the chain of responsibility for a teardown operation. The PreTearDown method is called when the chain is being executed in the forward direction. Context of the teardown operation. Called during the chain of responsibility for a teardown operation. The PostTearDown method is called when the chain has finished the PreTearDown phase and executes in reverse order from the PreTearDown calls. Context of the teardown operation. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. A that will attempt to resolve a value, and return null if it cannot rather than throwing. A strategy that is used at build plan execution time to resolve a dependent value. Get the value for a dependency. Current build context. The value for the dependency. Construct a new object that will attempt to resolve the given name and type from the container. Type to resolve. Must be a reference type. Name to resolve with. Construct a new object that will attempt to resolve the given type from the container. Type to resolve. Must be a reference type. Get the value for a dependency. Current build context. The value for the dependency. Type this resolver will resolve. Name this resolver will resolve. Extension methods on to provide convenience overloads (generic versions, mostly). Removes an individual policy type for a build key. The type the policy was registered as. to remove the policy from. The key the policy applies. Removes a default policy. The type the policy was registered as. to remove the policy from. Gets an individual policy. The interface the policy is registered under. to search. The key the policy applies. The policy in the list, if present; returns null otherwise. Gets an individual policy. The interface the policy is registered under. to search. The key the policy applies. The policy list that actually contains the returned policy. The policy in the list, if present; returns null otherwise. Gets an individual policy. to search. The interface the policy is registered under. The key the policy applies. The policy in the list, if present; returns null otherwise. Gets an individual policy. to search. The interface the policy is registered under. The key the policy applies. The policy list that actually contains the returned policy. The policy in the list, if present; returns null otherwise. Gets an individual policy. The interface the policy is registered under. to search. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy in the list, if present; returns null otherwise. Gets an individual policy. The interface the policy is registered under. to search. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy list that actually contains the returned policy. The policy in the list, if present; returns null otherwise. Gets an individual policy. to search. The interface the policy is registered under. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy in the list, if present; returns null otherwise. Get the non default policy. The interface the policy is registered under. to search. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy in the list, if present; returns null otherwise. Get the non default policy. The interface the policy is registered under. to search. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy list that actually contains the returned policy. The policy in the list, if present; returns null otherwise. Get the non default policy. to search. The interface the policy is registered under. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy in the list, if present; returns null otherwise. Sets an individual policy. The interface the policy is registered under. to add the policy to. The policy to be registered. The key the policy applies. Sets a default policy. When checking for a policy, if no specific individual policy is available, the default will be used. The interface to register the policy under. to add the policy to. The default policy to be registered. Base class for the current operation stored in the build context. Create a new . Type currently being built. The type that's currently being built. Build plan for that will return a Func that will resolve the requested type through this container later. A build plan is an object that, when invoked, will create a new object or fill in a given existing one. It encapsulates all the information gathered by the strategies to construct a particular object. Creates an instance of this build plan's type, or fills in the existing type if passed in. Context used to build up the object. Creates an instance of this build plan's type, or fills in the existing type if passed in. Context used to build up the object. The almost inevitable collection of extra helper methods on to augment the rich set of what LINQ already gives us. Execute the provided on every item in . Type of the items stored in Sequence of items to process. Code to run over each item. Create a single string from a sequence of items, separated by the provided , and with the conversion to string done by the given . This method does basically the same thing as , but will work on any sequence of items, not just arrays. Type of items in the sequence. Sequence of items to convert. Separator to place between the items in the string. The conversion function to change TItem -> string. The resulting string. Create a single string from a sequence of items, separated by the provided , and with the conversion to string done by the item's method. This method does basically the same thing as , but will work on any sequence of items, not just arrays. Type of items in the sequence. Sequence of items to convert. Separator to place between the items in the string. The resulting string. A class that lets you override a named parameter passed to a constructor. Construct a new object that will override the given named constructor parameter, and pass the given value. Name of the constructor parameter. Value to pass for the constructor. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. A convenience form of that lets you specify multiple parameter overrides in one shot rather than having to construct multiple objects. When implemented in derived classes, this method is called from the method to create the actual objects. Key value to create the resolver. Value to store in the resolver. The created . A that lets you override the value for a specified property. Create an instance of . The property name. Value to use for the property. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. A convenience form of that lets you specify multiple property overrides in one shot rather than having to construct multiple objects. When implemented in derived classes, this method is called from the method to create the actual objects. Key value to create the resolver. Value to store in the resolver. The created . Interface defining the configuration interface exposed by the Static Factory extension. Base interface for all extension configuration interfaces. Retrieve the container instance that we are currently configuring. Register the given factory delegate to be called when the container is asked to resolve . Type that will be requested from the container. Delegate to invoke to create the instance. The container extension object this method was invoked on. Register the given factory delegate to be called when the container is asked to resolve and . Type that will be requested from the container. The name that will be used when requesting to resolve this type. Delegate to invoke to create the instance. The container extension object this method was invoked on. Represents the context in which a build-up or tear-down operation runs. Represents the context in which a build-up or tear-down operation runs. Add a new set of resolver override objects to the current build operation. objects to add. Get a object for the given or null if that dependency hasn't been overridden. Type of the dependency. Resolver to use, or null if no override matches for the current operation. A convenience method to do a new buildup operation on an existing context. Key to use to build up. Created object. A convenience method to do a new buildup operation on an existing context. This overload allows you to specify extra policies which will be in effect for the duration of the build. Key defining what to build up. A delegate that takes a . This is invoked with the new child context before the build up process starts. This gives callers the opportunity to customize the context for the build process. Created object. Gets the head of the strategy chain. The strategy that's first in the chain; returns null if there are no strategies in the chain. Gets the associated with the build. The associated with the build. Gets the original build key for the build operation. The original build key for the build operation. Get the current build key for the current build operation. The set of policies that were passed into this context. This returns the policies passed into the context. Policies added here will remain after buildup completes. The persistent policies for the current context. Gets the policies for the current context. Any policies added to this object are transient and will be erased at the end of the buildup. The policies for the current context. Gets the collection of objects that need to execute in event of an exception. The current object being built up or torn down. The current object being manipulated by the build operation. May be null if the object hasn't been created yet. Flag indicating if the build operation should continue. true means that building should not call any more strategies, false means continue to the next strategy. An object representing what is currently being done in the build chain. Used to report back errors if there's a failure. The build context used to resolve a dependency during the build operation represented by this context. Initialize a new instance of the class. Initialize a new instance of the class with a , , and the build key used to start this build operation. The to use for this context. The to use for this context. The to use for this context. Build key to start building. The existing object to build up. Create a new using the explicitly provided values. The to use for this context. The to use for this context. The set of persistent policies to use for this context. The set of transient policies to use for this context. It is the caller's responsibility to ensure that the transient and persistent policies are properly combined. Build key for this context. Existing object to build up. Create a new using the explicitly provided values. The to use for this context. The to use for this context. The set of persistent policies to use for this context. The set of transient policies to use for this context. It is the caller's responsibility to ensure that the transient and persistent policies are properly combined. Build key for this context. The resolver overrides. Add a new set of resolver override objects to the current build operation. objects to add. Get a object for the given or null if that dependency hasn't been overridden. Type of the dependency. Resolver to use, or null if no override matches for the current operation. A convenience method to do a new buildup operation on an existing context. Key to use to build up. Created object. A convenience method to do a new buildup operation on an existing context. This overload allows you to specify extra policies which will be in effect for the duration of the build. Key defining what to build up. A delegate that takes a . This is invoked with the new child context before the build up process starts. This gives callers the opportunity to customize the context for the build process. Created object. Gets the head of the strategy chain. The strategy that's first in the chain; returns null if there are no strategies in the chain. Get the current build key for the current build operation. The current object being built up or torn down. The current object being manipulated by the build operation. May be null if the object hasn't been created yet. Gets the associated with the build. The associated with the build. Gets the original build key for the build operation. The original build key for the build operation. The set of policies that were passed into this context. This returns the policies passed into the context. Policies added here will remain after buildup completes. The persistent policies for the current context. Gets the policies for the current context. Any modifications will be transient (meaning, they will be forgotten when the outer BuildUp for this context is finished executing). The policies for the current context. Gets the collection of objects that need to execute in event of an exception. Flag indicating if the build operation should continue. true means that building should not call any more strategies, false means continue to the next strategy. An object representing what is currently being done in the build chain. Used to report back errors if there's a failure. The build context used to resolve a dependency during the build operation represented by this context. Represents that a dependency could not be resolved. Initializes a new instance of the class with no extra information. Initializes a new instance of the class with the given message. Some random message. Initialize a new instance of the class with the given message and inner exception. Some random message Inner exception. Initializes a new instance of the class with the build key of the object begin built. The build key of the object begin built. The exception thrown when injection is attempted on a method that is an open generic or has out or ref params. Construct a new with no message. Construct a with the given message Message to return. Construct a with the given message and inner exception. Message to return. Inner exception Extension methods to provide convenience overloads over the interface. Start a recursive build up operation to retrieve the default value for the given type. Type of object to build. Parent context. Resulting object. Start a recursive build up operation to retrieve the named implementation for the given type. Type to resolve. Parent context. Name to resolve with. The resulting object. Add a set of s to the context, specified as a variable argument list. Context to add overrides to. The overrides. Data structure that stores the set of objects and executes them when requested. Add a new object to this list. Object to add. Execute the method of everything in the recovery list. Recoveries will execute in the opposite order of add - it's a stack. Return the number of recovery objects currently in the stack. Represents a lifetime container. A lifetime container tracks the lifetime of an object, and implements IDisposable. When the container is disposed, any objects in the container which implement IDisposable are also disposed. Adds an object to the lifetime container. The item to be added to the lifetime container. Determine if a given object is in the lifetime container. The item to locate in the lifetime container. Returns true if the object is contained in the lifetime container; returns false otherwise. Removes an item from the lifetime container. The item is not disposed. The item to be removed. Gets the number of references in the lifetime container The number of references in the lifetime container Represents a lifetime container. A lifetime container tracks the lifetime of an object, and implements IDisposable. When the container is disposed, any objects in the container which implement IDisposable are also disposed. Adds an object to the lifetime container. The item to be added to the lifetime container. Determine if a given object is in the lifetime container. The item to locate in the lifetime container. Returns true if the object is contained in the lifetime container; returns false otherwise. Releases the resources used by the . Releases the resources used by the . true to release managed and unmanaged resources; false to release only unmanaged resources. Returns an enumerator that iterates through the lifetime container. An object that can be used to iterate through the life time container. Returns an enumerator that iterates through the lifetime container. An object that can be used to iterate through the life time container. Removes an item from the lifetime container. The item is not disposed. The item to be removed. Gets the number of references in the lifetime container The number of references in the lifetime container A custom collection over objects. Removes an individual policy type for a build key. The type of policy to remove. The key the policy applies. Removes all policies from the list. Removes a default policy. The type the policy was registered as. Gets an individual policy. The interface the policy is registered under. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy list in the chain that the searched for policy was found in, null if the policy was not found. The policy in the list, if present; returns null otherwise. Get the non default policy. The interface the policy is registered under. The key the policy applies to. True if the search should be in the local policy list only; otherwise false to search up the parent chain. The policy list in the chain that the searched for policy was found in, null if the policy was not found. The policy in the list if present; returns null otherwise. Sets an individual policy. The of the policy. The policy to be registered. The key the policy applies. Sets a default policy. When checking for a policy, if no specific individual policy is available, the default will be used. The interface to register the policy under. The default policy to be registered. A custom collection wrapper over objects. Initialize a new instance of a class. Initialize a new instance of a class with another policy list. An inner policy list to search. Removes an individual policy type for a build key. The type of policy to remove. The key the policy applies. Removes all policies from the list. Removes a default policy. The type the policy was registered as. Gets an individual policy. The interface the policy is registered under. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy list in the chain that the searched for policy was found in, null if the policy was not found. The policy in the list, if present; returns null otherwise. Get the non default policy. The interface the policy is registered under. The key the policy applies to. True if the search should be in the local policy list only; otherwise false to search up the parent chain. The policy list in the chain that the searched for policy was found in, null if the policy was not found. The policy in the list if present; returns null otherwise. Sets an individual policy. The of the policy. The policy to be registered. The key the policy applies. Sets a default policy. When checking for a policy, if no specific individual policy is available, the default will be used. The interface to register the policy under. The default policy to be registered. Gets the number of items in the locator. The number of items in the locator. An implementation of . Add a new object to this list. Object to add. Execute the method of everything in the recovery list. Recoveries will execute in the opposite order of add - it's a stack. Return the number of recovery objects currently in the stack. Implementation of which will notify an object about the completion of a BuildUp operation, or start of a TearDown operation. This strategy checks the object that is passing through the builder chain to see if it implements IBuilderAware and if it does, it will call and . This strategy is meant to be used from the stage. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. Called during the chain of responsibility for a teardown operation. The PreTearDown method is called when the chain is being executed in the forward direction. Context of the teardown operation. Implemented on a class when it wants to receive notifications about the build process. Called by the when the object is being built up. The key of the object that was just built up. Called by the when the object is being torn down. Enumeration to represent the object builder stages. The order of the values in the enumeration is the order in which the stages are run. Strategies in this stage run before creation. Typical work done in this stage might include strategies that use reflection to set policies into the context that other strategies would later use. Strategies in this stage create objects. Typically you will only have a single policy-driven creation strategy in this stage. Strategies in this stage work on created objects. Typical work done in this stage might include setter injection and method calls. Strategies in this stage work on objects that are already initialized. Typical work done in this stage might include looking to see if the object implements some notification interface to discover when its initialization stage has been completed. Represents a builder policy for mapping build keys. Represents a builder policy for mapping build keys. Maps the build key. The build key to map. Current build context. Used for contextual information if writing a more sophisticated mapping. This parameter can be null (called when getting container registrations). The new build key. Initialize a new instance of the with the new build key. The new build key. Maps the build key. The build key to map. Current build context. Used for contextual information if writing a more sophisticated mapping, unused in this implementation. The new build key. Represents a strategy for mapping build keys in the build up operation. Called during the chain of responsibility for a build operation. Looks for the and if found maps the build key for the current operation. The context for the operation. An implementation of that can map generic types. Create a new instance that will map generic types. Build key to map to. This must be or contain an open generic type. Maps the build key. The build key to map. Current build context. Used for contextual information if writing a more sophisticated mapping. The new build key. A that will look for a build plan in the current context. If it exists, it invokes it, otherwise it creates one and stores it for later, and invokes it. Called during the chain of responsibility for a build operation. The context for the operation. An implementation of that chooses constructors based on these criteria: first, pick a constructor marked with the attribute. If there isn't one, then choose the constructor with the longest parameter list. If that is ambiguous, then throw. Thrown when the constructor to choose is ambiguous. Attribute used to mark the constructor to call. Base class that provides an implementation of which lets you override how the parameter resolvers are created. A that, when implemented, will determine which constructor to call from the build plan. Choose the constructor to call for the given type. Current build context The to add any generated resolver objects into. The chosen constructor. Choose the constructor to call for the given type. Current build context The to add any generated resolver objects into. The chosen constructor. Create a instance for the given . Parameter to create the resolver for. The resolver object. Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. The second object to compare. The first object to compare. Value Condition Less than zero is less than y. Zero equals y. Greater than zero is greater than y. Create a instance for the given . Parameter to create the resolver for. The resolver object. Objects of this type are the return value from . It encapsulates the desired with the string keys needed to look up the for each parameter. Base class for return values from selector policies that return a MemberInfo of some sort plus a list of parameter keys to look up the parameter resolvers. Base class for return of selector policies that need to keep track of a set of parameter resolvers. Adds the parameter resolver. Resolvers are assumed to be in the order of the parameters to the member. The new resolver. Gets the parameter resolvers. An array with the parameter resolvers. Construct a new , storing the given member info. Member info to store. The member info stored. Create a new instance which contains the given constructor. The constructor to wrap. The constructor this object wraps. This class records the information about which constructor argument is currently being resolved, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. The type that is being constructed. A string representing the constructor being called. Parameter being resolved. Generate the string describing what parameter was being resolved. The description string. String describing the constructor being set up. Parameter that's being resolved. A that emits IL to call constructors as part of creating a build plan. Called during the chain of responsibility for a build operation. Existing object is an instance of . The context for the operation. A helper method used by the generated IL to set up a PerResolveLifetimeManager lifetime manager if the current object is such. Current build context. Build up the string that will represent the constructor signature in any exception message. A helper method used by the generated IL to store the current operation in the build context. A helper method used by the generated IL to store the current operation in the build context. A helper method used by the generated IL to throw an exception if no existing object is present, but the user is attempting to build an interface (usually due to the lack of a type mapping). The currently being used for the build of this object. A helper method used by the generated IL to throw an exception if no existing object is present, but the user is attempting to build an abstract class (usually due to the lack of a type mapping). The currently being used for the build of this object. A helper method used by the generated IL to throw an exception if no existing object is present, but the user is attempting to build an delegate other than Func{T} or Func{IEnumerable{T}}. The currently being used for the build of this object. A helper method used by the generated IL to throw an exception if a dependency cannot be resolved. The currently being used for the build of this object. A helper method used by the generated IL to throw an exception if a dependency cannot be resolved because of an invalid constructor. The currently being used for the build of this object. The signature of the invalid constructor. A class that records that a constructor is about to be call, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. Generate the description string. The string. Constructor we're trying to call. Helper method used by generated IL to look up a dependency resolver based on the given key. Current build context. Type of the dependency being resolved. Key the resolver was stored under. The found dependency resolver. Helper method used by generated IL to look up a dependency resolver based on the given key. Current build context. Type of the dependency being resolved. The configured resolver. The found dependency resolver. The type that is to be built with the dynamic build plan. The context parameter representing the used when the build plan is executed. An implementation that constructs a build plan via dynamic IL emission. Construct a that uses the given strategy chain to construct the build plan. The strategy chain. Construct a build plan. The current build context. The current build key. The created build plan. A class that records that a constructor is about to be call, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. Generate the description string. The string. Method we're trying to call. This class records the information about which constructor argument is currently being resolved, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. The type that is being constructed. A string representing the method being called. Parameter being resolved. Generate the string describing what parameter was being resolved. The description string. String describing the method being set up. Parameter that's being resolved. A that generates IL to call chosen methods (as specified by the current ) as part of object build up. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. A helper method used by the generated IL to store the current operation in the build context. A helper method used by the generated IL to store the current operation in the build context. A base class that holds the information shared by all operations performed by the container while setting properties. Initializes a new instance of the class. Generate the description of this operation. The string. Get a format string used to create the description. Called by the base method. The format string. The property value currently being resolved. This class records the information about which property value is currently being resolved, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. Get a format string used to create the description. Called by the base method. The format string. A that generates IL to resolve properties on an object being built. Called during the chain of responsibility for a build operation. The context for the operation. A helper method used by the generated IL to store the current operation in the build context. A helper method used by the generated IL to store the current operation in the build context. This class records the information about which property value is currently being set, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. Type property is on. Name of property being set. Get a format string used to create the description. Called by the base method. The format string. Creates an instance of this build plan's type, or fills in the existing type if passed in. Context used to build up the object. An that will examine the given types and return a sequence of objects that should be called as part of building the object. Return the sequence of methods to call while building the target object. Current build context. The to add any generated resolver objects into. Sequence of methods to call. An implementation of that selects methods by looking for the given attribute on those methods. Type of attribute used to mark methods to inject. Base class that provides an implementation of which lets you override how the parameter resolvers are created. Attribute that marks methods that should be called. Return the sequence of methods to call while building the target object. Current build context. The to add any generated resolver objects into. Sequence of methods to call. Create a instance for the given . Parameter to create the resolver for. The resolver object. Create a instance for the given . Parameter to create the resolver for. The resolver object. Objects of this type are the return value from . It encapsulates the desired with the string keys needed to look up the for each parameter. Create a new instance which contains the given method. The method The constructor this object wraps. An that returns a sequence of properties that should be injected for the given type. Returns sequence of properties on the given type that should be set as part of building that object. Current build context. The to add any generated resolver objects into. Sequence of objects that contain the properties to set. Base class that provides an implementation of which lets you override how the parameter resolvers are created. Returns sequence of properties on the given type that should be set as part of building that object. Current build context. The to add any generated resolver objects into. Sequence of objects that contain the properties to set. Create a for the given property. Property to create resolver for. The resolver object. An implementation of that looks for properties marked with the attribute that are also settable and not indexers. Create a for the given property. Property to create resolver for. The resolver object. Objects of this type are returned from . This class combines the about the property with the string key used to look up the resolver for this property's value. Create an instance of with the given and key. The property. PropertyInfo for this property. IDependencyResolverPolicy for this property Implementation of . A builder policy that lets you keep track of the current resolvers and will remove them from the given policy set. Add a new resolver to track by key. Key that was used to add the resolver to the policy set. Remove the currently tracked resolvers from the given policy list. Policy list to remove the resolvers from. Add a new resolver to track by key. Key that was used to add the resolver to the policy set. Remove the currently tracked resolvers from the given policy list. Policy list to remove the resolvers from. Get an instance that implements , either the current one in the policy set or creating a new one if it doesn't exist. Policy list to look up from. Build key to track. The resolver tracker. Add a key to be tracked to the current tracker. Policy list containing the resolvers and trackers. Build key for the resolvers being tracked. Key for the resolver. Remove the resolvers for the given build key. Policy list containing the build key. Build key. An implementation of that calls back into the build chain to build up the dependency, passing a type given at compile time as its build key. Create a new instance storing the given type. Type to resolve. Get the value for a dependency. Current build context. The value for the dependency. This interface defines a standard method to convert any regardless of the stage enum into a regular, flat strategy chain. Convert this into a flat . The flattened . Represents a chain of responsibility for builder strategies. Reverse the order of the strategy chain. The reversed strategy chain. Execute this strategy chain against the given context, calling the Buildup methods on the strategies. Context for the build process. The build up object Execute this strategy chain against the given context, calling the TearDown methods on the strategies. Context for the teardown process. A builder policy used to create lifetime policy instances. Used by the LifetimeStrategy when instantiating open generic types. Create a new instance of . The new instance. The type of Lifetime manager that will be created by this factory. An implementation that uses a to figure out if an object has already been created and to update or remove that object from some backing store. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. Called during the chain of responsibility for a build operation. The PostBuildUp method is called when the chain has finished the PreBuildUp phase and executes in reverse order from the PreBuildUp calls. Context of the build operation. Represents a chain of responsibility for builder strategies partitioned by stages. The stage enumeration to partition the strategies. Initialize a new instance of the class. Initialize a new instance of the class with an inner strategy chain to use when building. The inner strategy chain to use first when finding strategies in the build operation. Adds a strategy to the chain at a particular stage. The strategy to add to the chain. The stage to add the strategy. Add a new strategy for the . The of The stage to add the strategy. Clear the current strategy chain list. This will not clear the inner strategy chain if this instance was created with one. Makes a strategy chain based on this instance. A new . Represents a chain of responsibility for builder strategies. Initialize a new instance of the class. Initialize a new instance of the class with a collection of strategies. A collection of strategies to initialize the chain. Adds a strategy to the chain. The strategy to add to the chain. Adds strategies to the chain. The strategies to add to the chain. Reverse the order of the strategy chain. The reversed strategy chain. Execute this strategy chain against the given context to build up. Context for the build processes. The build up object Execute this strategy chain against the given context, calling the TearDown methods on the strategies. Context for the teardown process. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Build key used to combine a type object with a string name. Used by ObjectBuilder to indicate exactly what is being built. Create a new instance with the given type and name. to build. Key to use to look up type mappings and singletons. Create a new instance for the default buildup of the given type. to build. This helper method creates a new instance. It is initialized for the default key for the given type. Type to build. A new instance. This helper method creates a new instance for the given type and key. Type to build Key to use to look up type mappings and singletons. A new instance initialized with the given type and name. Compare two instances. Two instances compare equal if they contain the same name and the same type. Also, comparing against a different type will also return false. Object to compare to. True if the two keys are equal, false if not. Calculate a hash code for this instance. A hash code. Compare two instances for equality. Two instances compare equal if they contain the same name and the same type. First of the two keys to compare. Second of the two keys to compare. True if the values of the keys are the same, else false. Compare two instances for inequality. Two instances compare equal if they contain the same name and the same type. If either field differs the keys are not equal. First of the two keys to compare. Second of the two keys to compare. false if the values of the keys are the same, else true. Formats the build key as a string (primarily for debugging). A readable string representation of the build key. Return the stored in this build key. The type to build. Returns the name stored in this build key. The name to use when building. A generic version of so that you can new up a key using generic syntax. Type for the key. Construct a new that specifies the given type. Construct a new that specifies the given type and name. Name for the key. A series of helper methods to deal with sequences - objects that implement . A function that turns an arbitrary parameter list into an . Type of arguments. The items to put into the collection. An array that contains the values of the . Given two sequences, return a new sequence containing the corresponding values from each one. Type of first sequence. Type of second sequence. First sequence of items. Second sequence of items. New sequence of pairs. This sequence ends when the shorter of sequence1 and sequence2 does. A that lets you register a delegate with the container to create an object, rather than calling the object's constructor. Base class for all extension objects. The container calls this method when the extension is added. A instance that gives the extension access to the internals of the container. Initial the container with this extension's functionality. When overridden in a derived class, this method will modify the given by adding strategies, policies, etc. to install it's functions into the container. Removes the extension's functions from the container. This method is called when extensions are being removed from the container. It can be used to do things like disconnect event handlers or clean up member state. You do not need to remove strategies or policies here; the container will do that automatically. The default implementation of this method does nothing. The container this extension has been added to. The that this extension has been added to. The object used to manipulate the inner state of the container. Initialize this extension. This particular extension requires no initialization work. Register the given factory delegate to be called when the container is asked to resolve and . Type that will be requested from the container. The name that will be used when requesting to resolve this type. Delegate to invoke to create the instance. The container extension object this method was invoked on. Register the given factory delegate to be called when the container is asked to resolve . Type that will be requested from the container. Delegate to invoke to create the instance. The container extension object this method was invoked on. An implementation of that acts as a decorator over another . This checks to see if the current type being built is the right one before checking the inner . Create an instance of Type to check for. Inner override to check after type matches. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. A convenience version of that lets you specify the type to construct via generics syntax. Type to check for. Create an instance of . Inner override to check after type matches. Extension class that adds a set of convenience overloads to the interface. Register a type with specific members to be injected. Type this registration is for. Container to configure. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container. This method is used to tell the container that when asked for type , actually return an instance of type . This is very useful for getting instances of interfaces. This overload registers a default mapping and transient lifetime. that will be requested. that will actually be returned. Container to configure. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container, where the created instances will use the given . that will be requested. that will actually be returned. Container to configure. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container. This method is used to tell the container that when asked for type , actually return an instance of type . This is very useful for getting instances of interfaces. that will be requested. that will actually be returned. Container to configure. Name of this mapping. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container, where the created instances will use the given . that will be requested. that will actually be returned. Container to configure. Name to use for registration, null if a default registration. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type with the container. No type mapping is performed for this type. The type to apply the to. Container to configure. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type with the container. No type mapping is performed for this type. The type to configure injection on. Container to configure. Name that will be used to request the type. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type and name with the container. No type mapping is performed for this type. The type to apply the to. Container to configure. Name that will be used to request the type. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type with specific members to be injected. Container to configure. Type this registration is for. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container. This method is used to tell the container that when asked for type , actually return an instance of type . This is very useful for getting instances of interfaces. This overload registers a default mapping. Container to configure. that will be requested. that will actually be returned. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container. This method is used to tell the container that when asked for type , actually return an instance of type . This is very useful for getting instances of interfaces. Container to configure. that will be requested. that will actually be returned. Name to use for registration, null if a default registration. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container, where the created instances will use the given . Container to configure. that will be requested. that will actually be returned. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type and name with the container. No type mapping is performed for this type. Container to configure. The to apply the to. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type and name with the container. No type mapping is performed for this type. Container to configure. The to configure in the container. Name to use for registration, null if a default registration. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type and name with the container. No type mapping is performed for this type. Container to configure. The to apply the to. Name to use for registration, null if a default registration. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload does a default registration and has the container take over the lifetime of the instance. Type of instance to register (may be an implemented interface instead of the full type). Container to configure. Object to returned. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload does a default registration (name = null). Type of instance to register (may be an implemented interface instead of the full type). Container to configure. Object to returned. object that controls how this instance will be managed by the container. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload automatically has the container take ownership of the . Type of instance to register (may be an implemented interface instead of the full type). Object to returned. Container to configure. Name for registration. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. Container to configure. Name for registration. object that controls how this instance will be managed by the container. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload does a default registration and has the container take over the lifetime of the instance. Container to configure. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload does a default registration (name = null). Container to configure. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. object that controls how this instance will be managed by the container. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload automatically has the container take ownership of the . Container to configure. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. Name for registration. The object that this method was called on (this in C#, Me in Visual Basic). Resolve an instance of the default requested type from the container. of object to get from the container. Container to resolve from. Any overrides for the resolve call. The retrieved object. Resolve an instance of the requested type with the given name from the container. of object to get from the container. Container to resolve from. Name of the object to retrieve. Any overrides for the resolve call. The retrieved object. Resolve an instance of the default requested type from the container. Container to resolve from. of object to get from the container. Any overrides for the resolve call. The retrieved object. Return instances of all registered types requested. This method is useful if you've registered multiple types with the same but different names. Be aware that this method does NOT return an instance for the default (unnamed) registration. The type requested. Container to resolve from. Any overrides for the resolve calls. Set of objects of type . Run an existing object through the container and perform injection on it. This method is useful when you don't control the construction of an instance (ASP.NET pages or objects created via XAML, for instance) but you still want properties and other injection performed. This overload uses the default registrations. of object to perform injection on. Container to resolve through. Instance to build up. Any overrides for the buildup. The resulting object. By default, this will be , but container extensions may add things like automatic proxy creation which would cause this to return a different object (but still type compatible with ). Run an existing object through the container and perform injection on it. This method is useful when you don't control the construction of an instance (ASP.NET pages or objects created via XAML, for instance) but you still want properties and other injection performed. of object to perform injection on. Container to resolve through. Instance to build up. name to use when looking up the typemappings and other configurations. Any overrides for the Buildup. The resulting object. By default, this will be , but container extensions may add things like automatic proxy creation which would cause this to return a different object (but still type compatible with ). Run an existing object through the container and perform injection on it. This method is useful when you don't control the construction of an instance (ASP.NET pages or objects created via XAML, for instance) but you still want properties and other injection performed. This overload uses the default registrations. Container to resolve through. of object to perform injection on. Instance to build up. Any overrides for the Buildup. The resulting object. By default, this will be , but container extensions may add things like automatic proxy creation which would cause this to return a different object (but still type compatible with ). Creates a new extension object and adds it to the container. Type of to add. The extension type will be resolved from within the supplied . Container to add the extension to. The object that this method was called on (this in C#, Me in Visual Basic). Resolve access to a configuration interface exposed by an extension. Extensions can expose configuration interfaces as well as adding strategies and policies to the container. This method walks the list of added extensions and returns the first one that implements the requested type. The configuration interface required. Container to configure. The requested extension's configuration interface, or null if not found. Check if a particular type has been registered with the container with the default name. Container to inspect. Type to check registration for. True if this type has been registered, false if not. Check if a particular type/name pair has been registered with the container. Container to inspect. Type to check registration for. Name to check registration for. True if this type/name pair has been registered, false if not. Check if a particular type has been registered with the container with the default name. Type to check registration for. Container to inspect. True if this type has been registered, false if not. Check if a particular type/name pair has been registered with the container. Type to check registration for. Container to inspect. Name to check registration for. True if this type/name pair has been registered, false if not. The class provides the means for extension objects to manipulate the internal state of the . Store a type/name pair for later resolution. When users register type mappings (or other things) with a named key, this method allows you to register that name with the container so that when the method is called, that name is included in the list that is returned. to register. Name associated with that type. The container that this context is associated with. The object. The strategies this container uses. The that the container uses to build objects. The strategies this container uses to construct build plans. The that this container uses when creating build plans. The policies this container uses. The the that container uses to build objects. The that this container uses. The is used to manage objects that the container is managing. This event is raised when the method, or one of its overloads, is called. This event is raised when the method, or one of its overloads, is called. This event is raised when the method is called, providing the newly created child container to extensions to act on as they see fit. An EventArgs class that holds a string Name. Create a new with a null name. Create a new with the given name. Name to store. The name. Name used for this EventArg object. Event argument class for the event. Create a new instance of . Type to map from. Type to map to. Name for the registration. to manage instances. Type to map from. Type to map to. to manage instances. Event argument class for the event. Create a default instance. Create a instance initialized with the given arguments. Type of instance being registered. The instance object itself. Name to register under, null if default registration. object that handles how the instance will be owned. Type of instance being registered. Type of instance being registered. Instance object being registered. Instance object being registered that controls ownership of this instance. A that lets you specify that an instance of a generic type parameter should be resolved. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. name to use when looking up in the container. Return a instance that will return this types value for the parameter. The actual type to resolve. The resolution key. The . A that lets you specify that an array containing the registered instances of a generic type parameter should be resolved. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. The values for the elements, that will be converted to objects. Test to see if this parameter value has a matching type for the given type. Type to check. True if this parameter value is compatible with type , false if not. A type is considered compatible if it is an array type of rank one and its element type is a generic type parameter with a name matching this generic parameter name configured for the receiver. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . Name for the type represented by this . This may be an actual type name or a generic argument name. A Unity container extension that allows you to configure which constructors, properties, and methods get injected via an API rather than through attributes. Initial the container with this extension's functionality. When overridden in a derived class, this method will modify the given by adding strategies, policies, etc. to install it's functions into the container. API to configure the injection settings for a particular type. Type the injection is being configured for. Objects containing the details on which members to inject and how. This extension object. API to configure the injection settings for a particular type/name pair. Type the injection is being configured for. Name of registration Objects containing the details on which members to inject and how. This extension object. API to configure the injection settings for a particular type. Type to configure. Objects containing the details on which members to inject and how. This extension object. API to configure the injection settings for a particular type/name pair. Type to configure. Name of registration. Objects containing the details on which members to inject and how. This extension object. API to configure the injection settings for a particular type/name pair. Type of interface/base class being registered (may be null). Type of actual implementation class being registered. Name of registration. Objects containing the details on which members to inject and how. This extension object. A class that holds the collection of information for a constructor, so that the container can be configured to call this constructor. Create a new instance of that looks for a constructor with the given set of parameters. The values for the parameters, that will be converted to objects. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Interface registered, ignored in this implementation. Type to register. Name used to resolve the type object. Policy list to add policies to. An that configures the container to call a method as part of buildup. Create a new instance which will configure the container to call the given methods with the given parameters. Name of the method to call. Parameter values for the method. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Type of interface registered, ignored in this implementation. Type to register. Name used to resolve the type object. Policy list to add policies to. A small function to handle name matching. You can override this to do things like case insensitive comparisons. MethodInfo for the method you're checking. Name of the method you're looking for. True if a match, false if not. A class that holds on to the given value and provides the required when the container is configured. Create an instance of that stores the given value, using the runtime type of that value as the type of the parameter. Value to be injected for this parameter. Create an instance of that stores the given value, associated with the given type. Type of the parameter. Value of the parameter Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . A generic version of that makes it a little easier to specify the type of the parameter. Type of parameter. Create a new . Value for the parameter. This class stores information about which properties to inject, and will configure the container accordingly. Configure the container to inject the given property name, resolving the value via the container. Name of the property to inject. Configure the container to inject the given property name, using the value supplied. This value is converted to an object using the rules defined by the method. Name of property to inject. Value for property. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Interface being registered, ignored in this implementation. Type to register. Name used to resolve the type object. Policy list to add policies to. A class that stores a type, and generates a resolver object that resolves all the named instances or the type registered in a container. Construct a new that resolves to the given element type and collection of element values. The type of elements to resolve. The values for the elements, that will be converted to objects. Construct a new that resolves to the given array and element types and collection of element values. The type for the array of elements to resolve. The type of elements to resolve. The values for the elements, that will be converted to objects. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . A generic version of for convenience when creating them by hand. Type of the elements for the array of the parameter. Construct a new that resolves to the given element generic type with the given element values. The values for the elements, that will be converted to objects. Interface defining the behavior of the Unity dependency injection container. Register a type mapping with the container, where the created instances will use the given . that will be requested. that will actually be returned. Name to use for registration, null if a default registration. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. Name for registration. object that controls how this instance will be managed by the container. The object that this method was called on (this in C#, Me in Visual Basic). Resolve an instance of the requested type with the given name from the container. of object to get from the container. Name of the object to retrieve. Any overrides for the resolve call. The retrieved object. Return instances of all registered types requested. This method is useful if you've registered multiple types with the same but different names. Be aware that this method does NOT return an instance for the default (unnamed) registration. The type requested. Any overrides for the resolve calls. Set of objects of type . Run an existing object through the container and perform injection on it. This method is useful when you don't control the construction of an instance (ASP.NET pages or objects created via XAML, for instance) but you still want properties and other injection performed. of object to perform injection on. Instance to build up. name to use when looking up the TypeMappings and other configurations. Any overrides for the resolve calls. The resulting object. By default, this will be , but container extensions may add things like automatic proxy creation which would cause this to return a different object (but still type compatible with ). Run an existing object through the container, and clean it up. The object to tear down. Add an extension object to the container. to add. The object that this method was called on (this in C#, Me in Visual Basic). Resolve access to a configuration interface exposed by an extension. Extensions can expose configuration interfaces as well as adding strategies and policies to the container. This method walks the list of added extensions and returns the first one that implements the requested type. of configuration interface required. The requested extension's configuration interface, or null if not found. Remove all installed extensions from this container. This method removes all extensions from the container, including the default ones that implement the out-of-the-box behavior. After this method, if you want to use the container again you will need to either read the default extensions or replace them with your own. The registered instances and singletons that have already been set up in this container do not get removed. The object that this method was called on (this in C#, Me in Visual Basic). Create a child container. A child container shares the parent's configuration, but can be configured with different settings or lifetime. The new child container. The parent of this container. The parent container, or null if this container doesn't have one. Get a sequence of that describe the current state of the container. A that holds a weak reference to it's managed instance. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. The object being stored. Remove the given object from backing store. An implementation of that creates instances of the type of the given Lifetime Manager by resolving them through the container. Create a new that will return instances of the given type, creating them by resolving through the container. Container to resolve with. Type of LifetimeManager to create. Create a new instance of . The new instance. The type of Lifetime manager that will be created by this factory. A that holds the instances given to it, keeping one instance per thread. This LifetimeManager does not dispose the instances it holds. Initializes a new instance of the class. Retrieve a value from the backing store associated with this Lifetime policy for the current thread. the object desired, or if no such object is currently stored for the current thread. Stores the given value into backing store for retrieval later when requested in the current thread. The object being stored. Remove the given object from backing store. Not implemented for this lifetime manager. An implementation that does nothing, thus ensuring that instances are created new every time. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. The object being stored. Remove the given object from backing store. This strategy implements the logic that will call container.ResolveAll when an array parameter is detected. Do the PreBuildUp stage of construction. This is where the actual work is performed. Current build context. An implementation of that is aware of the build keys used by the Unity container. Create a instance for the given . This implementation looks for the Unity on the parameter and uses it to create an instance of for this parameter. Parameter to create the resolver for. The resolver object. An implementation of that is aware of the build keys used by the Unity container. Create a instance for the given . Parameter to create the resolver for. The resolver object. An implementation of that is aware of the build keys used by the unity container. Create a for the given property. Property to create resolver for. The resolver object. A implementation that returns the value set in the constructor. Create a new instance of which will return the given value when resolved. The value to return. Get the value for a dependency. Current build context. The value for the dependency. An implementation of that stores a type and name, and at resolution time puts them together into a . Create an instance of with the given type and name. The type. The name (may be null). Resolve the value for a dependency. Current build context. The value for the dependency. The type that this resolver resolves. The name that this resolver resolves. An implementation of that resolves to to an array populated with the values that result from resolving other instances of . Create an instance of with the given type and a collection of instances to use when populating the result. The type. The resolver policies to use when populating an array. Resolve the value for a dependency. Current build context. An array populated with the results of resolving the resolver policies. An implementation of that selects the given constructor and creates the appropriate resolvers to call it with the specified parameters. Create an instance of that will return the given constructor, being passed the given injection values as parameters. The constructor to call. Set of objects that describes how to obtain the values for the constructor parameters. Choose the constructor to call for the given type. Current build context The to add any generated resolver objects into. The chosen constructor. Helper class for implementing selector policies that need to set up dependency resolver policies. Add dependency resolvers to the parameter set. Type that's currently being built (used to resolve open generics). PolicyList to add the resolvers to. Objects supplying the dependency resolvers. Result object to store the keys in. A implementation that calls the specific methods with the given parameters. Add the given method and parameter collection to the list of methods that will be returned when the selector's method is called. Method to call. sequence of objects that describe how to create the method parameter values. Return the sequence of methods to call while building the target object. Current build context. The to add any generated resolver objects into. Sequence of methods to call. An implementation of which returns the set of specific properties that the selector was configured with. Add a property that will be par of the set returned when the is called. The property to set. object describing how to create the value to inject. Returns sequence of properties on the given type that should be set as part of building that object. Current build context. The to add any generated resolver objects into. Sequence of objects that contain the properties to set. The exception thrown by the Unity container when an attempt to resolve a dependency fails. Create a new that records the exception for the given type and name. Type requested from the container. Name requested from the container. The actual exception that caused the failure of the build. The build context representing the failed operation. The type that was being requested from the container at the time of failure. The name that was being requested from the container at the time of failure. A class that stores a name and type, and generates a resolver object that resolves the parameter via the container. Construct a new that resolves to the given type. Type of this parameter. Construct a new that resolves the given type and name. Type of this parameter. Name to use when resolving parameter. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . A generic version of for convenience when creating them by hand. Type of the parameter Create a new for the given generic type and the default name. Create a new for the given generic type and name. Name to use to resolve this parameter. An implementation of that wraps a Unity container. Initializes a new instance of the class for a container. The to wrap with the interface implementation. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. 2 When implemented by inheriting classes, this method will do the actual work of resolving the requested service instance. Type of instance requested.Name of registered service you want. May be null. The requested service instance. When implemented by inheriting classes, this method will do the actual work of resolving all the requested service instances. Type of service requested. Sequence of service instance objects. A static helper class that includes various parameter checking routines. Throws if the given argument is null. if tested value if null. Argument value to test. Name of the argument being tested. Throws an exception if the tested string argument is null or the empty string. Thrown if string value is null. Thrown if the string is empty Argument value to check. Name of argument being checked. Verifies that an argument type is assignable from the provided type (meaning interfaces are implemented, or classes exist in the base class hierarchy). The argument type that will be assigned to. The type of the value being assigned. Argument name. Verifies that an argument instance is assignable from the provided type (meaning interfaces are implemented, or classes exist in the base class hierarchy, or instance can be assigned through a runtime wrapper, as is the case for COM Objects). The argument type that will be assigned to. The instance that will be assigned. Argument name. A helper class to manage the names that get registered in the container The build stages we use in the Unity container strategy pipeline. First stage. By default, nothing happens here. Second stage. Type mapping occurs here. Third stage. lifetime managers are checked here, and if they're available the rest of the pipeline is skipped. Fourth stage. Reflection over constructors, properties, etc. is performed here. Fifth stage. Instance creation happens here. Sixth stage. Property sets and method injection happens here. Seventh and final stage. By default, nothing happens here. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to The type {0} has multiple constructors of length {1}. Unable to disambiguate.. Looks up a localized string similar to The provided string argument must not be empty.. Looks up a localized string similar to The current build operation (build key {2}) failed: {3} (Strategy type {0}, index {1}). Looks up a localized string similar to The current type, {0}, is an abstract class and cannot be constructed. Are you missing a type mapping?. Looks up a localized string similar to The current type, {0}, is delegate and cannot be constructed. Unity only supports resolving Func<T> and Func<IEnumerable<T>> by default.. Looks up a localized string similar to The current type, {0}, is an interface and cannot be constructed. Are you missing a type mapping?. Looks up a localized string similar to Cannot extract type from build key {0}.. Looks up a localized string similar to The method {0}.{1}({2}) is an open generic method. Open generic methods cannot be injected.. Looks up a localized string similar to The property {0} on type {1} is an indexer. Indexed properties cannot be injected.. Looks up a localized string similar to The method {1} on type {0} has an out parameter. Injection cannot be performed.. Looks up a localized string similar to The method {0}.{1}({2}) has at least one out parameter. Methods with out parameters cannot be injected.. Looks up a localized string similar to The method {0}.{1}({2}) has at least one ref parameter.Methods with ref parameters cannot be injected.. Looks up a localized string similar to The method {1} on type {0} is marked for injection, but it is an open generic method. Injection cannot be performed.. Looks up a localized string similar to The method {0}.{1}({2}) is static. Static methods cannot be injected.. Looks up a localized string similar to The type {0} is an open generic type. An open generic type cannot be resolved.. Looks up a localized string similar to Resolving parameter "{0}" of constructor {1}. Looks up a localized string similar to The parameter {0} could not be resolved when attempting to call constructor {1}.. Looks up a localized string similar to Parameter type inference does not work for null values. Indicate the parameter type explicitly using a properly configured instance of the InjectionParameter or InjectionParameter<T> classes.. Looks up a localized string similar to Calling constructor {0}. Looks up a localized string similar to Calling method {0}.{1}. Looks up a localized string similar to An item with the given key is already present in the dictionary.. Looks up a localized string similar to The lifetime manager is already registered. Lifetime managers cannot be reused, please create a new one.. Looks up a localized string similar to The override marker build plan policy has been invoked. This should never happen, looks like a bug in the container.. Looks up a localized string similar to Resolving parameter "{0}" of method {1}.{2}. Looks up a localized string similar to The value for parameter "{1}" of method {0} could not be resolved. . Looks up a localized string similar to Could not resolve dependency for build key {0}.. Looks up a localized string similar to The type {0} has multiple constructors marked with the InjectionConstructor attribute. Unable to disambiguate.. Looks up a localized string similar to The supplied type {0} must be an open generic type.. Looks up a localized string similar to The supplied type {0} does not have the same number of generic arguments as the target type {1}.. Looks up a localized string similar to The type {0} does not have an accessible constructor.. Looks up a localized string similar to The type {0} does not have a generic argument named "{1}". Looks up a localized string similar to while resolving. Looks up a localized string similar to The type {0} does not have a constructor that takes the parameters ({1}).. Looks up a localized string similar to The type {0} does not have a public method named {1} that takes the parameters ({2}).. Looks up a localized string similar to The type {0} does not contain an instance property named {1}.. Looks up a localized string similar to The type {0} is not a generic type, and you are attempting to inject a generic parameter named "{1}".. Looks up a localized string similar to The type {0} is not an array type with rank 1, and you are attempting to use a [DependencyArray] attribute on a parameter or property with this type.. Looks up a localized string similar to Optional dependencies must be reference types. The type {0} is a value type.. Looks up a localized string similar to The property {0} on type {1} is not settable.. Looks up a localized string similar to The property {0} on type {1} is of type {2}, and cannot be injected with a value of type {3}.. Looks up a localized string similar to The value for the property "{0}" could not be resolved.. Looks up a localized string similar to The provided string argument must not be empty.. Looks up a localized string similar to Resolution of the dependency failed, type = "{0}", name = "{1}". Exception occurred while: {2}. Exception is: {3} - {4} ----------------------------------------------- At the time of the exception, the container was: . Looks up a localized string similar to Resolving {0},{1}. Looks up a localized string similar to Resolving {0},{1} (mapped from {2}, {3}). Looks up a localized string similar to Resolving value for property {0}.{1}. Looks up a localized string similar to The constructor {1} selected for type {0} has ref or out parameters. Such parameters are not supported for constructor injection.. Looks up a localized string similar to Setting value for property {0}.{1}. Looks up a localized string similar to The type {0} cannot be constructed. You must configure the container to supply this value.. Looks up a localized string similar to The type {1} cannot be assigned to variables of type {0}.. Looks up a localized string similar to <unknown>. A simple, extensible dependency injection container. Create a default . Create a with the given parent container. The parent . The current object will apply its own settings first, and then check the parent for additional ones. RegisterType a type mapping with the container, where the created instances will use the given . that will be requested. that will actually be returned. Name to use for registration, null if a default registration. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). RegisterType an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. Name for registration. If true, the container will take over the lifetime of the instance, calling Dispose on it (if it's ) when the container is Disposed. If false, container will not maintain a strong reference to . User is responsible for disposing instance, and for keeping the instance from being garbage collected. The object that this method was called on (this in C#, Me in Visual Basic). Get an instance of the requested type with the given name from the container. of object to get from the container. Name of the object to retrieve. Any overrides for the resolve call. The retrieved object. Return instances of all registered types requested. This method is useful if you've registered multiple types with the same but different names. Be aware that this method does NOT return an instance for the default (unnamed) registration. The type requested. Any overrides for the resolve calls. Set of objects of type . Run an existing object through the container and perform injection on it. This method is useful when you don't control the construction of an instance (ASP.NET pages or objects created via XAML, for instance) but you still want properties and other injection performed. of object to perform injection on. Instance to build up. name to use when looking up the typemappings and other configurations. Any overrides for the buildup. The resulting object. By default, this will be , but container extensions may add things like automatic proxy creation which would cause this to return a different object (but still type compatible with ). Run an existing object through the container, and clean it up. The object to tear down. Add an extension object to the container. to add. The object that this method was called on (this in C#, Me in Visual Basic). Get access to a configuration interface exposed by an extension. Extensions can expose configuration interfaces as well as adding strategies and policies to the container. This method walks the list of added extensions and returns the first one that implements the requested type. of configuration interface required. The requested extension's configuration interface, or null if not found. Remove all installed extensions from this container. This method removes all extensions from the container, including the default ones that implement the out-of-the-box behavior. After this method, if you want to use the container again you will need to either read the default extensions or replace them with your own. The registered instances and singletons that have already been set up in this container do not get removed. The object that this method was called on (this in C#, Me in Visual Basic). Create a child container. A child container shares the parent's configuration, but can be configured with different settings or lifetime. The new child container. Dispose this container instance. Disposing the container also disposes any child containers, and disposes any instances whose lifetimes are managed by the container. Dispose this container instance. This class doesn't have a finalizer, so will always be true. True if being called from the IDisposable.Dispose method, false if being called from a finalizer. Remove policies associated with building this type. This removes the compiled build plan so that it can be rebuilt with the new settings the next time this type is resolved. Type of object to clear the plan for. Name the object is being registered with. The parent of this container. The parent container, or null if this container doesn't have one. Get a sequence of that describe the current state of the container. Implementation of the ExtensionContext that is actually used by the UnityContainer implementation. This is a nested class so that it can access state in the container that would otherwise be inaccessible. This event is raised when the method, or one of its overloads, is called. This extension supplies the default behavior of the UnityContainer API by handling the context events and setting policies. Install the default container behavior into the container. Remove the default behavior from the container. This extension installs the default strategies and policies into the container to implement the standard behavior of the Unity container. Add the default ObjectBuilder strategies & policies to the container. Helper class to wrap common reflection stuff dealing with methods. Create a new instance that lets us do more reflection stuff on that method. The method to reflect on. Given our set of generic type arguments, The generic type arguments. An array with closed parameter types. Returns true if any of the parameters of this method are open generics. Return the of each parameter for this method. Sequence of objects, one for each parameter in order. A helper class that encapsulates two different data items together into a a single item. Create a new containing the two values give. First value Second value The first value of the pair. The second value of the pair. Container for a Pair helper method. A helper factory method that lets users take advantage of type inference. Type of first value. Type of second value. First value. Second value. A new instance. A utility class that handles the logic of matching parameter lists, so we can find the right constructor and method overloads. Create a new that will attempt to match the given parameter types. Target parameters to match against. Tests to see if the given set of types matches the ones we're looking for. parameter list to look for. true if they match, false if they don't. Tests to see if the given set of types matches the ones we're looking for. Candidate method signature to look for. True if they match, false if they don't. Another reflection helper class that has extra methods for dealing with ParameterInfo. A small helper class to encapsulate details of the reflection API, particularly around generics. Create a new instance that lets you look at information about the given type. Type to do reflection on. Test the given object, looking at the parameters. Determine if any of the parameters are open generic types that need type attributes filled in. The method to check. True if any of the parameters are open generics. False if not. If this type is an open generic, use the given array to determine what the required closed type is and return that. If the parameter is not an open type, just return this parameter's type. Type arguments to substitute in for the open type parameters. Corresponding closed type of this parameter. Given a generic argument name, return the corresponding type for this closed type. For example, if the current type is SomeType<User>, and the corresponding definition was SomeType<TSomething>, calling this method and passing "TSomething" will return typeof(User). Name of the generic parameter. Type of the corresponding generic parameter, or null if there is no matching name. The object we're reflecting over. Is this type generic? Is this type an open generic (no type parameter specified) Is this type an array type? Is this type an array of generic elements? The type of the elements in this type (if it's an array). Returns all the public constructors defined for the current reflected . An enumeration of ConstructorInfo objects representing all the public instance constructors defined for the current reflected , but not including the type initializer (static constructor). Create a new instance of that lets you query information about the given ParameterInfo object. Parameter to query. A set of helper methods to pick through lambdas and pull out from them. Pull out a object from an expression of the form () => SomeClass.SomeMethod() Expression describing the method to call. Corresponding . Pull out a object from an expression of the form x => x.SomeMethod() The type where the method is defined. Expression describing the method to call. Corresponding . Pull out a object for the get method from an expression of the form x => x.SomeProperty The type where the method is defined. The type for the property. Expression describing the property for which the get method is to be extracted. Corresponding . Pull out a object for the set method from an expression of the form x => x.SomeProperty The type where the method is defined. The type for the property. Expression describing the property for which the set method is to be extracted. Corresponding . Pull out a object from an expression of the form () => new SomeType() The type where the constructor is defined. Expression invoking the desired constructor. Corresponding . ================================================ FILE: packages/Unity.3.5.1404.0/lib/win8/Microsoft.Practices.Unity.RegistrationByConvention.XML ================================================ Microsoft.Practices.Unity.RegistrationByConvention Provides helper methods to retrieve classes from assemblies. Returns all visible, non-abstract classes from . The assemblies. All visible, non-abstract classes found in the assemblies. is . contains elements. All exceptions thrown while getting types from the assemblies are ignored, and the types that can be retrieved are returned. Returns all visible, non-abstract classes from , and optionally skips errors. to skip errors; otherwise, . The assemblies. All visible, non-abstract classes. is . contains elements. If is , all exceptions thrown while getting types from the assemblies are ignored, and the types that can be retrieved are returned; otherwise, the original exception is thrown. Returns all visible, non-abstract classes from . to skip errors; otherwise, . The assemblies. All visible, non-abstract classes. is . contains elements. If is , all exceptions thrown while getting types from the assemblies are ignored, and the types that can be retrieved are returned; otherwise, the original exception is thrown. Returns all visible, non-abstract classes from all assemblies located where the application is installed. to include the Unity assemblies; otherwise, . Defaults to . to skip errors; otherwise, . All visible, non-abstract classes. If is , all exceptions thrown while loading assemblies or getting types from the assemblies are ignored, and the types that can be retrieved are returned; otherwise, the original exception is thrown. These exceptions might be wrapped in a . The exception that is thrown when registering multiple types would result in an type mapping being overwritten. Initializes a new instance of the class. The name for the mapping. The source type for the mapping. The type currently mapped. The new type to map. Gets the name for the mapping. Gets the source type for the mapping. Gets the type currently mapped. Gets the new type to map. Represents a set of types to register and their registration settings. Gets types to register. Gets a function to get the types that will be requested for each type to configure. Gets a function to get the name to use for the registration of each type. Gets a function to get the for the registration of each type. Defaults to no lifetime management. Gets a function to get the additional objects for the registration of each type. Defaults to no injection members. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. An attempt to override an existing mapping was detected for type {1} wit... The set of assemblies contains a null element. Provides a set of convenience overloads to the interface to support registration of multiple types. Registers the supplied types by using the specified rules for name, lifetime manager, injection members, and registration types. The container to configure. The types to register. The methods in the class can be used to scan assemblies to get types, and further filtering can be performed using LINQ queries. A function that gets the types that will be requested for each type to configure. It can be a method from the class or a custom function. Defaults to no registration types, and registers only the supplied types. A function that gets the name to use for the registration of each type. It can be a method from the or a custom function. Defaults to no name. A function that gets the for the registration of each type. It can be a method from the class or a custom function. Defaults to no lifetime management. A function that gets the additional objects for the registration of each type. Defaults to no injection members. to overwrite existing mappings; otherwise, . Defaults to . The container that this method was called on. A new registration would overwrite an existing mapping and is . Registers the types according to the . The container to configure. The convention to determine which types will be registered and how. to overwrite existing mappings; otherwise, . Defaults to . The container that this method was called on. Provides helper methods to specify the lifetime for a type with registration by convention. Returns a . The type. A lifetime manager Returns a . The type. A container controlled lifetime manager. Returns a . The type. An externally controlled lifetime manager. Returns a . The type. A hierarchical lifetime manager. Returns a . The type. A per resolve lifetime manager. Returns a . The type. A transient lifetime manager. Returns a . The custom type. The type. A lifetime manager. Returns a . The type. A per thread lifetime manager. Provides helper methods to map types to the types interfaces to which register them. Returns no types. The type to register. An empty enumeration. Returns an enumeration with the interface that matches the name of . The type to register. An enumeration with the first interface matching the name of (for example, if type is MyType, a matching interface is IMyType), or an empty enumeration if no such interface is found. Returns an enumeration with all the interfaces implemented by . The type to register. An enumeration with all the interfaces implemented by the implementation type except . Returns an enumeration with all the interfaces implemented by that belong to the same assembly as implementationType. The type to register. An enumeration with all the interfaces implemented by the implementation type that belong to the same assembly. Provides helper methods to get type names. Returns the type name. The type. The type name. Returns null for the registration name. The type. ================================================ FILE: packages/Unity.3.5.1404.0/lib/win8/Microsoft.Practices.Unity.xml ================================================ Microsoft.Practices.Unity Provides access to the names registered for a container. Represents a builder policy interface. Since there are no fixed requirements for policies, it acts as a marker interface from which to derive all other policy interfaces. Gets the names registered for a type. The type. The names registered for . An implementation that constructs a build plan for creating objects. A that can create and return an for the given build key. Create a build plan using the given context and build key. Current build context. Current build key. The build plan. Creates a build plan using the given context and build key. Current build context. Current build key. The build plan. Provides extension methods to the class due to the introduction of class in the .NET for Windows Store apps. Returns the constructor in that matches the specified constructor parameter types. The type to inspect The constructor parameter types. The constructor that matches the specified parameter types. Returns the non-static declared methods of a type or its base types. The type to inspect An enumerable of the objects. Returns the non-static method of a type or its based type. The type to inspect The name of the method to seek. The (closed) parameter type signature of the method. The discovered Returns the declared properties of a type or its base types. The type to inspect An enumerable of the objects. Determines if the types in a parameter set ordinally matches the set of supplied types. Base class for attributes that can be placed on parameters or properties to specify how to resolve the value for that parameter or property. Create an instance of that will be used to get the value for the member this attribute is applied to. Type of parameter or property that this attribute is decoration. The resolver object. This attribute is used to indicate which constructor to choose when the container attempts to build a type. This attribute is used to mark methods that should be called when the container is building an object. This attribute is used to mark properties and parameters as targets for injection. For properties, this attribute is necessary for injection to happen. For parameters, it's not needed unless you want to specify additional information to control how the parameter is resolved. Create an instance of with no name. Create an instance of with the given name. Name to use when resolving this dependency. Create an instance of that will be used to get the value for the member this attribute is applied to. Type of parameter or property that this attribute is decoration. The resolver object. The name specified in the constructor. An used to mark a dependency as optional - the container will try to resolve it, and return null if the resolution fails rather than throw. Construct a new object. Construct a new object that specifies a named dependency. Name of the dependency. Create an instance of that will be used to get the value for the member this attribute is applied to. Type of parameter or property that this attribute is decoration. The resolver object. Name of the dependency. A that composites other ResolverOverride objects. The GetResolver operation then returns the resolver from the first child override that matches the current context and request. Base class for all override objects passed in the method. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. Wrap this resolver in one that verifies the type of the object being built. This allows you to narrow any override down to a specific type easily. Type to constrain the override to. The new override. Wrap this resolver in one that verifies the type of the object being built. This allows you to narrow any override down to a specific type easily. Type to constrain the override to. The new override. Add a new to the collection that is checked. item to add. Add a set of s to the collection. items to add. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. 2 Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. 1 Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. Class that returns information about the types registered in a container. The type that was passed to the method as the "from" type, or the only type if type mapping wasn't done. The type that this registration is mapped to. If no type mapping was done, the property and this one will have the same value. Name the type was registered under. Null for default registration. The registered lifetime manager instance. The lifetime manager for this registration. This property will be null if this registration is for an open generic. A class that overrides the value injected whenever there is a dependency of the given type, regardless of where it appears in the object graph. Create an instance of to override the given type with the given value. Type of the dependency. Value to use. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. A convenience version of that lets you specify the dependency type using generic syntax. Type of the dependency to override. Construct a new object that will override the given dependency, and pass the given value. A convenience form of that lets you specify multiple parameter overrides in one shot rather than having to construct multiple objects. This class isn't really a collection, it just implements IEnumerable so that we get use of the nice C# collection initializer syntax. Base helper class for creating collections of objects for use in passing a bunch of them to the resolve call. This base class provides the mechanics needed to allow you to use the C# collection initializer syntax. Concrete type of the this class collects. Key used to create the underlying override object. Value that the override returns. Add a new override to the collection with the given key and value. Key - for example, a parameter or property name. Value - the value to be returned by the override. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. 2 Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. 1 When implemented in derived classes, this method is called from the method to create the actual objects. Key value to create the resolver. Value to store in the resolver. The created . When implemented in derived classes, this method is called from the method to create the actual objects. Key value to create the resolver. Value to store in the resolver. The created . Event argument class for the event. Construct a new object with the given child container object. An for the newly created child container. The newly created child container. An extension context for the created child container. Base class for subclasses that let you specify that an instance of a generic type parameter should be resolved. Base type for objects that are used to configure parameters for constructor or method injection, or for getting the value to be injected into a property. Test to see if this parameter value has a matching type for the given type. Type to check. True if this parameter value is compatible with type , false if not. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . Convert the given set of arbitrary values to a sequence of InjectionParameterValue objects. The rules are: If it's already an InjectionParameterValue, return it. If it's a Type, return a ResolvedParameter object for that type. Otherwise return an InjectionParameter object for that value. The values to build the sequence from. The resulting converted sequence. Convert an arbitrary value to an InjectionParameterValue object. The rules are: If it's already an InjectionParameterValue, return it. If it's a Type, return a ResolvedParameter object for that type. Otherwise return an InjectionParameter object for that value. The value to convert. The resulting . Name for the type represented by this . This may be an actual type name or a generic argument name. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. name to use when looking up in the container. Test to see if this parameter value has a matching type for the given type. Type to check. True if this parameter value is compatible with type , false if not. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . Return a instance that will return this types value for the parameter. The actual type to resolve. The resolution key. The . Name for the type represented by this . This may be an actual type name or a generic argument name. A that lets you specify that an instance of a generic type parameter should be resolved, providing the value if resolving fails. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. name to use when looking up in the container. Return a instance that will return this types value for the parameter. The actual type to resolve. The resolution key. The . A class that lets you specify a factory method the container will use to create the object. This is a significantly easier way to do the same thing the old static factory extension was used for. Base class for objects that can be used to configure what class members get injected by the container. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Type to register. Policy list to add policies to. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Type of interface being registered. If no interface, this will be null. Type of concrete type being registered. Name used to resolve the type object. Policy list to add policies to. Create a new instance of with the given factory function. Factory function. Create a new instance of with the given factory function. Factory function. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Type of interface being registered. If no interface, this will be null. This parameter is ignored in this implementation. Type of concrete type being registered. Name used to resolve the type object. Policy list to add policies to. A that can be passed to to configure a parameter or property as an optional dependency. A base class for implementing classes that deal in explicit types. Create a new that exposes information about the given . Type of the parameter. Test to see if this parameter value has a matching type for the given type. Type to check. True if this parameter value is compatible with type , false if not. The type of parameter this object represents. Name for the type represented by this . This may be an actual type name or a generic argument name. Construct a new object that specifies the given . Type of the dependency. Construct a new object that specifies the given and . Type of the dependency. Name for the dependency. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . A generic version of that lets you specify the type of the dependency using generics syntax. Type of the dependency. Construct a new . Construct a new with the given . Name of the dependency. A special lifetime manager which works like , except that in the presence of child containers, each child gets it's own instance of the object, instead of sharing one in the common parent. A that holds onto the instance given to it. When the is disposed, the instance is disposed with it. Base class for Lifetime managers which need to synchronize calls to . The purpose of this class is to provide a basic implementation of the lifetime manager synchronization pattern. Calls to the method of a instance acquire a lock, and if the instance has not been initialized with a value yet the lock will only be released when such an initialization takes place by calling the method or if the build request which resulted in the call to the GetValue method fails. Base class for Lifetime managers - classes that control how and when instances are created by the Unity container. A that controls how instances are persisted and recovered from an external store. Used to implement things like singletons and per-http-request lifetime. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. The object to store. Remove the value this lifetime policy is managing from backing store. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. The object being stored. Remove the given object from backing store. This interface provides a hook for the builder context to implement error recovery when a builder strategy throws an exception. Since we can't get try/finally blocks onto the call stack for later stages in the chain, we instead add these objects to the context. If there's an exception, all the current IRequiresRecovery instances will have their Recover methods called. A method that does whatever is needed to clean up as part of cleaning up after an exception. Don't do anything that could throw in this method, it will cause later recover operations to get skipped and play real havoc with the stack trace. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Calls to this method acquire a lock which is released only if a non-null value has been set for the lifetime manager. Performs the actual retrieval of a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. This method is invoked by after it has acquired its lock. Stores the given value into backing store for retrieval later. The object being stored. Setting a value will attempt to release the lock acquired by . Performs the actual storage of the given value into backing store for retrieval later. The object being stored. This method is invoked by before releasing its lock. Remove the given object from backing store. A method that does whatever is needed to clean up as part of cleaning up after an exception. Don't do anything that could throw in this method, it will cause later recover operations to get skipped and play real havoc with the stack trace. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. The object being stored. Remove the given object from backing store. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Standard Dispose pattern implementation. Not needed, but it keeps FxCop happy. Always true, since we don't have a finalizer. This is a custom lifetime manager that acts like , but also provides a signal to the default build plan, marking the type so that instances are reused across the build up object graph. Construct a new object that does not itself manage an instance. Construct a new object that stores the give value. This value will be returned by but is not stored in the lifetime manager, nor is the value disposed. This Lifetime manager is intended only for internal use, which is why the normal method is not used here. Value to store. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. In this class, this is a noop, since it has special hooks down in the guts. The object being stored. Remove the given object from backing store. Noop in this class. A strategy that handles Hierarchical lifetimes across a set of parent/child containers. Represents a strategy in the chain of responsibility. Strategies are required to support both BuildUp and TearDown. Represents a strategy in the chain of responsibility. Strategies are required to support both BuildUp and TearDown. Although you can implement this interface directly, you may also choose to use as the base class for your strategies, as this class provides useful helper methods and makes support BuildUp and TearDown optional. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. Called during the chain of responsibility for a build operation. The PostBuildUp method is called when the chain has finished the PreBuildUp phase and executes in reverse order from the PreBuildUp calls. Context of the build operation. Called during the chain of responsibility for a teardown operation. The PreTearDown method is called when the chain is being executed in the forward direction. Context of the teardown operation. Called during the chain of responsibility for a teardown operation. The PostTearDown method is called when the chain has finished the PreTearDown phase and executes in reverse order from the PreTearDown calls. Context of the teardown operation. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. Called during the chain of responsibility for a build operation. The PostBuildUp method is called when the chain has finished the PreBuildUp phase and executes in reverse order from the PreBuildUp calls. Context of the build operation. Called during the chain of responsibility for a teardown operation. The PreTearDown method is called when the chain is being executed in the forward direction. Context of the teardown operation. Called during the chain of responsibility for a teardown operation. The PostTearDown method is called when the chain has finished the PreTearDown phase and executes in reverse order from the PreTearDown calls. Context of the teardown operation. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. A that will attempt to resolve a value, and return null if it cannot rather than throwing. A strategy that is used at build plan execution time to resolve a dependent value. Get the value for a dependency. Current build context. The value for the dependency. Construct a new object that will attempt to resolve the given name and type from the container. Type to resolve. Must be a reference type. Name to resolve with. Construct a new object that will attempt to resolve the given type from the container. Type to resolve. Must be a reference type. Get the value for a dependency. Current build context. The value for the dependency. Type this resolver will resolve. Name this resolver will resolve. Extension methods on to provide convenience overloads (generic versions, mostly). Removes an individual policy type for a build key. The type the policy was registered as. to remove the policy from. The key the policy applies. Removes a default policy. The type the policy was registered as. to remove the policy from. Gets an individual policy. The interface the policy is registered under. to search. The key the policy applies. The policy in the list, if present; returns null otherwise. Gets an individual policy. The interface the policy is registered under. to search. The key the policy applies. The policy list that actually contains the returned policy. The policy in the list, if present; returns null otherwise. Gets an individual policy. to search. The interface the policy is registered under. The key the policy applies. The policy in the list, if present; returns null otherwise. Gets an individual policy. to search. The interface the policy is registered under. The key the policy applies. The policy list that actually contains the returned policy. The policy in the list, if present; returns null otherwise. Gets an individual policy. The interface the policy is registered under. to search. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy in the list, if present; returns null otherwise. Gets an individual policy. The interface the policy is registered under. to search. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy list that actually contains the returned policy. The policy in the list, if present; returns null otherwise. Gets an individual policy. to search. The interface the policy is registered under. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy in the list, if present; returns null otherwise. Get the non default policy. The interface the policy is registered under. to search. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy in the list, if present; returns null otherwise. Get the non default policy. The interface the policy is registered under. to search. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy list that actually contains the returned policy. The policy in the list, if present; returns null otherwise. Get the non default policy. to search. The interface the policy is registered under. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy in the list, if present; returns null otherwise. Sets an individual policy. The interface the policy is registered under. to add the policy to. The policy to be registered. The key the policy applies. Sets a default policy. When checking for a policy, if no specific individual policy is available, the default will be used. The interface to register the policy under. to add the policy to. The default policy to be registered. Base class for the current operation stored in the build context. Create a new . Type currently being built. The type that's currently being built. Build plan for that will return a Func that will resolve the requested type through this container later. A build plan is an object that, when invoked, will create a new object or fill in a given existing one. It encapsulates all the information gathered by the strategies to construct a particular object. Creates an instance of this build plan's type, or fills in the existing type if passed in. Context used to build up the object. Creates an instance of this build plan's type, or fills in the existing type if passed in. Context used to build up the object. The almost inevitable collection of extra helper methods on to augment the rich set of what LINQ already gives us. Execute the provided on every item in . Type of the items stored in Sequence of items to process. Code to run over each item. Create a single string from a sequence of items, separated by the provided , and with the conversion to string done by the given . This method does basically the same thing as , but will work on any sequence of items, not just arrays. Type of items in the sequence. Sequence of items to convert. Separator to place between the items in the string. The conversion function to change TItem -> string. The resulting string. Create a single string from a sequence of items, separated by the provided , and with the conversion to string done by the item's method. This method does basically the same thing as , but will work on any sequence of items, not just arrays. Type of items in the sequence. Sequence of items to convert. Separator to place between the items in the string. The resulting string. A class that lets you override a named parameter passed to a constructor. Construct a new object that will override the given named constructor parameter, and pass the given value. Name of the constructor parameter. Value to pass for the constructor. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. A convenience form of that lets you specify multiple parameter overrides in one shot rather than having to construct multiple objects. When implemented in derived classes, this method is called from the method to create the actual objects. Key value to create the resolver. Value to store in the resolver. The created . A that lets you override the value for a specified property. Create an instance of . The property name. Value to use for the property. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. A convenience form of that lets you specify multiple property overrides in one shot rather than having to construct multiple objects. When implemented in derived classes, this method is called from the method to create the actual objects. Key value to create the resolver. Value to store in the resolver. The created . Interface defining the configuration interface exposed by the Static Factory extension. Base interface for all extension configuration interfaces. Retrieve the container instance that we are currently configuring. Register the given factory delegate to be called when the container is asked to resolve . Type that will be requested from the container. Delegate to invoke to create the instance. The container extension object this method was invoked on. Register the given factory delegate to be called when the container is asked to resolve and . Type that will be requested from the container. The name that will be used when requesting to resolve this type. Delegate to invoke to create the instance. The container extension object this method was invoked on. Represents the context in which a build-up or tear-down operation runs. Represents the context in which a build-up or tear-down operation runs. Add a new set of resolver override objects to the current build operation. objects to add. Get a object for the given or null if that dependency hasn't been overridden. Type of the dependency. Resolver to use, or null if no override matches for the current operation. A convenience method to do a new buildup operation on an existing context. Key to use to build up. Created object. A convenience method to do a new buildup operation on an existing context. This overload allows you to specify extra policies which will be in effect for the duration of the build. Key defining what to build up. A delegate that takes a . This is invoked with the new child context before the build up process starts. This gives callers the opportunity to customize the context for the build process. Created object. Gets the head of the strategy chain. The strategy that's first in the chain; returns null if there are no strategies in the chain. Gets the associated with the build. The associated with the build. Gets the original build key for the build operation. The original build key for the build operation. Get the current build key for the current build operation. The set of policies that were passed into this context. This returns the policies passed into the context. Policies added here will remain after buildup completes. The persistent policies for the current context. Gets the policies for the current context. Any policies added to this object are transient and will be erased at the end of the buildup. The policies for the current context. Gets the collection of objects that need to execute in event of an exception. The current object being built up or torn down. The current object being manipulated by the build operation. May be null if the object hasn't been created yet. Flag indicating if the build operation should continue. true means that building should not call any more strategies, false means continue to the next strategy. An object representing what is currently being done in the build chain. Used to report back errors if there's a failure. The build context used to resolve a dependency during the build operation represented by this context. Initialize a new instance of the class. Initialize a new instance of the class with a , , and the build key used to start this build operation. The to use for this context. The to use for this context. The to use for this context. Build key to start building. The existing object to build up. Create a new using the explicitly provided values. The to use for this context. The to use for this context. The set of persistent policies to use for this context. The set of transient policies to use for this context. It is the caller's responsibility to ensure that the transient and persistent policies are properly combined. Build key for this context. Existing object to build up. Create a new using the explicitly provided values. The to use for this context. The to use for this context. The set of persistent policies to use for this context. The set of transient policies to use for this context. It is the caller's responsibility to ensure that the transient and persistent policies are properly combined. Build key for this context. The resolver overrides. Add a new set of resolver override objects to the current build operation. objects to add. Get a object for the given or null if that dependency hasn't been overridden. Type of the dependency. Resolver to use, or null if no override matches for the current operation. A convenience method to do a new buildup operation on an existing context. Key to use to build up. Created object. A convenience method to do a new buildup operation on an existing context. This overload allows you to specify extra policies which will be in effect for the duration of the build. Key defining what to build up. A delegate that takes a . This is invoked with the new child context before the build up process starts. This gives callers the opportunity to customize the context for the build process. Created object. Gets the head of the strategy chain. The strategy that's first in the chain; returns null if there are no strategies in the chain. Get the current build key for the current build operation. The current object being built up or torn down. The current object being manipulated by the build operation. May be null if the object hasn't been created yet. Gets the associated with the build. The associated with the build. Gets the original build key for the build operation. The original build key for the build operation. The set of policies that were passed into this context. This returns the policies passed into the context. Policies added here will remain after buildup completes. The persistent policies for the current context. Gets the policies for the current context. Any modifications will be transient (meaning, they will be forgotten when the outer BuildUp for this context is finished executing). The policies for the current context. Gets the collection of objects that need to execute in event of an exception. Flag indicating if the build operation should continue. true means that building should not call any more strategies, false means continue to the next strategy. An object representing what is currently being done in the build chain. Used to report back errors if there's a failure. The build context used to resolve a dependency during the build operation represented by this context. Represents that a dependency could not be resolved. Initializes a new instance of the class with no extra information. Initializes a new instance of the class with the given message. Some random message. Initialize a new instance of the class with the given message and inner exception. Some random message Inner exception. Initializes a new instance of the class with the build key of the object begin built. The build key of the object begin built. The exception thrown when injection is attempted on a method that is an open generic or has out or ref params. Construct a new with no message. Construct a with the given message Message to return. Construct a with the given message and inner exception. Message to return. Inner exception Extension methods to provide convenience overloads over the interface. Start a recursive build up operation to retrieve the default value for the given type. Type of object to build. Parent context. Resulting object. Start a recursive build up operation to retrieve the named implementation for the given type. Type to resolve. Parent context. Name to resolve with. The resulting object. Add a set of s to the context, specified as a variable argument list. Context to add overrides to. The overrides. Data structure that stores the set of objects and executes them when requested. Add a new object to this list. Object to add. Execute the method of everything in the recovery list. Recoveries will execute in the opposite order of add - it's a stack. Return the number of recovery objects currently in the stack. Represents a lifetime container. A lifetime container tracks the lifetime of an object, and implements IDisposable. When the container is disposed, any objects in the container which implement IDisposable are also disposed. Adds an object to the lifetime container. The item to be added to the lifetime container. Determine if a given object is in the lifetime container. The item to locate in the lifetime container. Returns true if the object is contained in the lifetime container; returns false otherwise. Removes an item from the lifetime container. The item is not disposed. The item to be removed. Gets the number of references in the lifetime container The number of references in the lifetime container Represents a lifetime container. A lifetime container tracks the lifetime of an object, and implements IDisposable. When the container is disposed, any objects in the container which implement IDisposable are also disposed. Adds an object to the lifetime container. The item to be added to the lifetime container. Determine if a given object is in the lifetime container. The item to locate in the lifetime container. Returns true if the object is contained in the lifetime container; returns false otherwise. Releases the resources used by the . Releases the resources used by the . true to release managed and unmanaged resources; false to release only unmanaged resources. Returns an enumerator that iterates through the lifetime container. An object that can be used to iterate through the life time container. Returns an enumerator that iterates through the lifetime container. An object that can be used to iterate through the life time container. Removes an item from the lifetime container. The item is not disposed. The item to be removed. Gets the number of references in the lifetime container The number of references in the lifetime container A custom collection over objects. Removes an individual policy type for a build key. The type of policy to remove. The key the policy applies. Removes all policies from the list. Removes a default policy. The type the policy was registered as. Gets an individual policy. The interface the policy is registered under. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy list in the chain that the searched for policy was found in, null if the policy was not found. The policy in the list, if present; returns null otherwise. Get the non default policy. The interface the policy is registered under. The key the policy applies to. True if the search should be in the local policy list only; otherwise false to search up the parent chain. The policy list in the chain that the searched for policy was found in, null if the policy was not found. The policy in the list if present; returns null otherwise. Sets an individual policy. The of the policy. The policy to be registered. The key the policy applies. Sets a default policy. When checking for a policy, if no specific individual policy is available, the default will be used. The interface to register the policy under. The default policy to be registered. A custom collection wrapper over objects. Initialize a new instance of a class. Initialize a new instance of a class with another policy list. An inner policy list to search. Removes an individual policy type for a build key. The type of policy to remove. The key the policy applies. Removes all policies from the list. Removes a default policy. The type the policy was registered as. Gets an individual policy. The interface the policy is registered under. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy list in the chain that the searched for policy was found in, null if the policy was not found. The policy in the list, if present; returns null otherwise. Get the non default policy. The interface the policy is registered under. The key the policy applies to. True if the search should be in the local policy list only; otherwise false to search up the parent chain. The policy list in the chain that the searched for policy was found in, null if the policy was not found. The policy in the list if present; returns null otherwise. Sets an individual policy. The of the policy. The policy to be registered. The key the policy applies. Sets a default policy. When checking for a policy, if no specific individual policy is available, the default will be used. The interface to register the policy under. The default policy to be registered. Gets the number of items in the locator. The number of items in the locator. An implementation of . Add a new object to this list. Object to add. Execute the method of everything in the recovery list. Recoveries will execute in the opposite order of add - it's a stack. Return the number of recovery objects currently in the stack. Implementation of which will notify an object about the completion of a BuildUp operation, or start of a TearDown operation. This strategy checks the object that is passing through the builder chain to see if it implements IBuilderAware and if it does, it will call and . This strategy is meant to be used from the stage. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. Called during the chain of responsibility for a teardown operation. The PreTearDown method is called when the chain is being executed in the forward direction. Context of the teardown operation. Implemented on a class when it wants to receive notifications about the build process. Called by the when the object is being built up. The key of the object that was just built up. Called by the when the object is being torn down. Enumeration to represent the object builder stages. The order of the values in the enumeration is the order in which the stages are run. Strategies in this stage run before creation. Typical work done in this stage might include strategies that use reflection to set policies into the context that other strategies would later use. Strategies in this stage create objects. Typically you will only have a single policy-driven creation strategy in this stage. Strategies in this stage work on created objects. Typical work done in this stage might include setter injection and method calls. Strategies in this stage work on objects that are already initialized. Typical work done in this stage might include looking to see if the object implements some notification interface to discover when its initialization stage has been completed. Represents a builder policy for mapping build keys. Represents a builder policy for mapping build keys. Maps the build key. The build key to map. Current build context. Used for contextual information if writing a more sophisticated mapping. This parameter can be null (called when getting container registrations). The new build key. Initialize a new instance of the with the new build key. The new build key. Maps the build key. The build key to map. Current build context. Used for contextual information if writing a more sophisticated mapping, unused in this implementation. The new build key. Represents a strategy for mapping build keys in the build up operation. Called during the chain of responsibility for a build operation. Looks for the and if found maps the build key for the current operation. The context for the operation. An implementation of that can map generic types. Create a new instance that will map generic types. Build key to map to. This must be or contain an open generic type. Maps the build key. The build key to map. Current build context. Used for contextual information if writing a more sophisticated mapping. The new build key. A that will look for a build plan in the current context. If it exists, it invokes it, otherwise it creates one and stores it for later, and invokes it. Called during the chain of responsibility for a build operation. The context for the operation. An implementation of that chooses constructors based on these criteria: first, pick a constructor marked with the attribute. If there isn't one, then choose the constructor with the longest parameter list. If that is ambiguous, then throw. Thrown when the constructor to choose is ambiguous. Attribute used to mark the constructor to call. Base class that provides an implementation of which lets you override how the parameter resolvers are created. A that, when implemented, will determine which constructor to call from the build plan. Choose the constructor to call for the given type. Current build context The to add any generated resolver objects into. The chosen constructor. Choose the constructor to call for the given type. Current build context The to add any generated resolver objects into. The chosen constructor. Create a instance for the given . Parameter to create the resolver for. The resolver object. Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. The second object to compare. The first object to compare. Value Condition Less than zero is less than y. Zero equals y. Greater than zero is greater than y. Create a instance for the given . Parameter to create the resolver for. The resolver object. Objects of this type are the return value from . It encapsulates the desired with the string keys needed to look up the for each parameter. Base class for return values from selector policies that return a MemberInfo of some sort plus a list of parameter keys to look up the parameter resolvers. Base class for return of selector policies that need to keep track of a set of parameter resolvers. Adds the parameter resolver. Resolvers are assumed to be in the order of the parameters to the member. The new resolver. Gets the parameter resolvers. An array with the parameter resolvers. Construct a new , storing the given member info. Member info to store. The member info stored. Create a new instance which contains the given constructor. The constructor to wrap. The constructor this object wraps. This class records the information about which constructor argument is currently being resolved, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. The type that is being constructed. A string representing the constructor being called. Parameter being resolved. Generate the string describing what parameter was being resolved. The description string. String describing the constructor being set up. Parameter that's being resolved. A that emits IL to call constructors as part of creating a build plan. Called during the chain of responsibility for a build operation. Existing object is an instance of . The context for the operation. A helper method used by the generated IL to set up a PerResolveLifetimeManager lifetime manager if the current object is such. Current build context. Build up the string that will represent the constructor signature in any exception message. A helper method used by the generated IL to store the current operation in the build context. A helper method used by the generated IL to store the current operation in the build context. A helper method used by the generated IL to throw an exception if no existing object is present, but the user is attempting to build an interface (usually due to the lack of a type mapping). The currently being used for the build of this object. A helper method used by the generated IL to throw an exception if no existing object is present, but the user is attempting to build an abstract class (usually due to the lack of a type mapping). The currently being used for the build of this object. A helper method used by the generated IL to throw an exception if no existing object is present, but the user is attempting to build an delegate other than Func{T} or Func{IEnumerable{T}}. The currently being used for the build of this object. A helper method used by the generated IL to throw an exception if a dependency cannot be resolved. The currently being used for the build of this object. A helper method used by the generated IL to throw an exception if a dependency cannot be resolved because of an invalid constructor. The currently being used for the build of this object. The signature of the invalid constructor. A class that records that a constructor is about to be call, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. Generate the description string. The string. Constructor we're trying to call. Helper method used by generated IL to look up a dependency resolver based on the given key. Current build context. Type of the dependency being resolved. Key the resolver was stored under. The found dependency resolver. Helper method used by generated IL to look up a dependency resolver based on the given key. Current build context. Type of the dependency being resolved. The configured resolver. The found dependency resolver. The type that is to be built with the dynamic build plan. The context parameter representing the used when the build plan is executed. An implementation that constructs a build plan via dynamic IL emission. Construct a that uses the given strategy chain to construct the build plan. The strategy chain. Construct a build plan. The current build context. The current build key. The created build plan. A class that records that a constructor is about to be call, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. Generate the description string. The string. Method we're trying to call. This class records the information about which constructor argument is currently being resolved, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. The type that is being constructed. A string representing the method being called. Parameter being resolved. Generate the string describing what parameter was being resolved. The description string. String describing the method being set up. Parameter that's being resolved. A that generates IL to call chosen methods (as specified by the current ) as part of object build up. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. A helper method used by the generated IL to store the current operation in the build context. A helper method used by the generated IL to store the current operation in the build context. A base class that holds the information shared by all operations performed by the container while setting properties. Initializes a new instance of the class. Generate the description of this operation. The string. Get a format string used to create the description. Called by the base method. The format string. The property value currently being resolved. This class records the information about which property value is currently being resolved, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. Get a format string used to create the description. Called by the base method. The format string. A that generates IL to resolve properties on an object being built. Called during the chain of responsibility for a build operation. The context for the operation. A helper method used by the generated IL to store the current operation in the build context. A helper method used by the generated IL to store the current operation in the build context. This class records the information about which property value is currently being set, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. Type property is on. Name of property being set. Get a format string used to create the description. Called by the base method. The format string. Creates an instance of this build plan's type, or fills in the existing type if passed in. Context used to build up the object. An that will examine the given types and return a sequence of objects that should be called as part of building the object. Return the sequence of methods to call while building the target object. Current build context. The to add any generated resolver objects into. Sequence of methods to call. An implementation of that selects methods by looking for the given attribute on those methods. Type of attribute used to mark methods to inject. Base class that provides an implementation of which lets you override how the parameter resolvers are created. Attribute that marks methods that should be called. Return the sequence of methods to call while building the target object. Current build context. The to add any generated resolver objects into. Sequence of methods to call. Create a instance for the given . Parameter to create the resolver for. The resolver object. Create a instance for the given . Parameter to create the resolver for. The resolver object. Objects of this type are the return value from . It encapsulates the desired with the string keys needed to look up the for each parameter. Create a new instance which contains the given method. The method The constructor this object wraps. An that returns a sequence of properties that should be injected for the given type. Returns sequence of properties on the given type that should be set as part of building that object. Current build context. The to add any generated resolver objects into. Sequence of objects that contain the properties to set. Base class that provides an implementation of which lets you override how the parameter resolvers are created. Returns sequence of properties on the given type that should be set as part of building that object. Current build context. The to add any generated resolver objects into. Sequence of objects that contain the properties to set. Create a for the given property. Property to create resolver for. The resolver object. An implementation of that looks for properties marked with the attribute that are also settable and not indexers. Create a for the given property. Property to create resolver for. The resolver object. Objects of this type are returned from . This class combines the about the property with the string key used to look up the resolver for this property's value. Create an instance of with the given and key. The property. PropertyInfo for this property. IDependencyResolverPolicy for this property Implementation of . A builder policy that lets you keep track of the current resolvers and will remove them from the given policy set. Add a new resolver to track by key. Key that was used to add the resolver to the policy set. Remove the currently tracked resolvers from the given policy list. Policy list to remove the resolvers from. Add a new resolver to track by key. Key that was used to add the resolver to the policy set. Remove the currently tracked resolvers from the given policy list. Policy list to remove the resolvers from. Get an instance that implements , either the current one in the policy set or creating a new one if it doesn't exist. Policy list to look up from. Build key to track. The resolver tracker. Add a key to be tracked to the current tracker. Policy list containing the resolvers and trackers. Build key for the resolvers being tracked. Key for the resolver. Remove the resolvers for the given build key. Policy list containing the build key. Build key. An implementation of that calls back into the build chain to build up the dependency, passing a type given at compile time as its build key. Create a new instance storing the given type. Type to resolve. Get the value for a dependency. Current build context. The value for the dependency. This interface defines a standard method to convert any regardless of the stage enum into a regular, flat strategy chain. Convert this into a flat . The flattened . Represents a chain of responsibility for builder strategies. Reverse the order of the strategy chain. The reversed strategy chain. Execute this strategy chain against the given context, calling the Buildup methods on the strategies. Context for the build process. The build up object Execute this strategy chain against the given context, calling the TearDown methods on the strategies. Context for the teardown process. A builder policy used to create lifetime policy instances. Used by the LifetimeStrategy when instantiating open generic types. Create a new instance of . The new instance. The type of Lifetime manager that will be created by this factory. An implementation that uses a to figure out if an object has already been created and to update or remove that object from some backing store. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. Called during the chain of responsibility for a build operation. The PostBuildUp method is called when the chain has finished the PreBuildUp phase and executes in reverse order from the PreBuildUp calls. Context of the build operation. Represents a chain of responsibility for builder strategies partitioned by stages. The stage enumeration to partition the strategies. Initialize a new instance of the class. Initialize a new instance of the class with an inner strategy chain to use when building. The inner strategy chain to use first when finding strategies in the build operation. Adds a strategy to the chain at a particular stage. The strategy to add to the chain. The stage to add the strategy. Add a new strategy for the . The of The stage to add the strategy. Clear the current strategy chain list. This will not clear the inner strategy chain if this instance was created with one. Makes a strategy chain based on this instance. A new . Represents a chain of responsibility for builder strategies. Initialize a new instance of the class. Initialize a new instance of the class with a collection of strategies. A collection of strategies to initialize the chain. Adds a strategy to the chain. The strategy to add to the chain. Adds strategies to the chain. The strategies to add to the chain. Reverse the order of the strategy chain. The reversed strategy chain. Execute this strategy chain against the given context to build up. Context for the build processes. The build up object Execute this strategy chain against the given context, calling the TearDown methods on the strategies. Context for the teardown process. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Build key used to combine a type object with a string name. Used by ObjectBuilder to indicate exactly what is being built. Create a new instance with the given type and name. to build. Key to use to look up type mappings and singletons. Create a new instance for the default buildup of the given type. to build. This helper method creates a new instance. It is initialized for the default key for the given type. Type to build. A new instance. This helper method creates a new instance for the given type and key. Type to build Key to use to look up type mappings and singletons. A new instance initialized with the given type and name. Compare two instances. Two instances compare equal if they contain the same name and the same type. Also, comparing against a different type will also return false. Object to compare to. True if the two keys are equal, false if not. Calculate a hash code for this instance. A hash code. Compare two instances for equality. Two instances compare equal if they contain the same name and the same type. First of the two keys to compare. Second of the two keys to compare. True if the values of the keys are the same, else false. Compare two instances for inequality. Two instances compare equal if they contain the same name and the same type. If either field differs the keys are not equal. First of the two keys to compare. Second of the two keys to compare. false if the values of the keys are the same, else true. Formats the build key as a string (primarily for debugging). A readable string representation of the build key. Return the stored in this build key. The type to build. Returns the name stored in this build key. The name to use when building. A generic version of so that you can new up a key using generic syntax. Type for the key. Construct a new that specifies the given type. Construct a new that specifies the given type and name. Name for the key. A series of helper methods to deal with sequences - objects that implement . A function that turns an arbitrary parameter list into an . Type of arguments. The items to put into the collection. An array that contains the values of the . Given two sequences, return a new sequence containing the corresponding values from each one. Type of first sequence. Type of second sequence. First sequence of items. Second sequence of items. New sequence of pairs. This sequence ends when the shorter of sequence1 and sequence2 does. A that lets you register a delegate with the container to create an object, rather than calling the object's constructor. Base class for all extension objects. The container calls this method when the extension is added. A instance that gives the extension access to the internals of the container. Initial the container with this extension's functionality. When overridden in a derived class, this method will modify the given by adding strategies, policies, etc. to install it's functions into the container. Removes the extension's functions from the container. This method is called when extensions are being removed from the container. It can be used to do things like disconnect event handlers or clean up member state. You do not need to remove strategies or policies here; the container will do that automatically. The default implementation of this method does nothing. The container this extension has been added to. The that this extension has been added to. The object used to manipulate the inner state of the container. Initialize this extension. This particular extension requires no initialization work. Register the given factory delegate to be called when the container is asked to resolve and . Type that will be requested from the container. The name that will be used when requesting to resolve this type. Delegate to invoke to create the instance. The container extension object this method was invoked on. Register the given factory delegate to be called when the container is asked to resolve . Type that will be requested from the container. Delegate to invoke to create the instance. The container extension object this method was invoked on. An implementation of that acts as a decorator over another . This checks to see if the current type being built is the right one before checking the inner . Create an instance of Type to check for. Inner override to check after type matches. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. A convenience version of that lets you specify the type to construct via generics syntax. Type to check for. Create an instance of . Inner override to check after type matches. Extension class that adds a set of convenience overloads to the interface. Register a type with specific members to be injected. Type this registration is for. Container to configure. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container. This method is used to tell the container that when asked for type , actually return an instance of type . This is very useful for getting instances of interfaces. This overload registers a default mapping and transient lifetime. that will be requested. that will actually be returned. Container to configure. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container, where the created instances will use the given . that will be requested. that will actually be returned. Container to configure. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container. This method is used to tell the container that when asked for type , actually return an instance of type . This is very useful for getting instances of interfaces. that will be requested. that will actually be returned. Container to configure. Name of this mapping. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container, where the created instances will use the given . that will be requested. that will actually be returned. Container to configure. Name to use for registration, null if a default registration. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type with the container. No type mapping is performed for this type. The type to apply the to. Container to configure. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type with the container. No type mapping is performed for this type. The type to configure injection on. Container to configure. Name that will be used to request the type. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type and name with the container. No type mapping is performed for this type. The type to apply the to. Container to configure. Name that will be used to request the type. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type with specific members to be injected. Container to configure. Type this registration is for. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container. This method is used to tell the container that when asked for type , actually return an instance of type . This is very useful for getting instances of interfaces. This overload registers a default mapping. Container to configure. that will be requested. that will actually be returned. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container. This method is used to tell the container that when asked for type , actually return an instance of type . This is very useful for getting instances of interfaces. Container to configure. that will be requested. that will actually be returned. Name to use for registration, null if a default registration. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container, where the created instances will use the given . Container to configure. that will be requested. that will actually be returned. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type and name with the container. No type mapping is performed for this type. Container to configure. The to apply the to. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type and name with the container. No type mapping is performed for this type. Container to configure. The to configure in the container. Name to use for registration, null if a default registration. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type and name with the container. No type mapping is performed for this type. Container to configure. The to apply the to. Name to use for registration, null if a default registration. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload does a default registration and has the container take over the lifetime of the instance. Type of instance to register (may be an implemented interface instead of the full type). Container to configure. Object to returned. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload does a default registration (name = null). Type of instance to register (may be an implemented interface instead of the full type). Container to configure. Object to returned. object that controls how this instance will be managed by the container. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload automatically has the container take ownership of the . Type of instance to register (may be an implemented interface instead of the full type). Object to returned. Container to configure. Name for registration. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. Container to configure. Name for registration. object that controls how this instance will be managed by the container. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload does a default registration and has the container take over the lifetime of the instance. Container to configure. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload does a default registration (name = null). Container to configure. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. object that controls how this instance will be managed by the container. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload automatically has the container take ownership of the . Container to configure. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. Name for registration. The object that this method was called on (this in C#, Me in Visual Basic). Resolve an instance of the default requested type from the container. of object to get from the container. Container to resolve from. Any overrides for the resolve call. The retrieved object. Resolve an instance of the requested type with the given name from the container. of object to get from the container. Container to resolve from. Name of the object to retrieve. Any overrides for the resolve call. The retrieved object. Resolve an instance of the default requested type from the container. Container to resolve from. of object to get from the container. Any overrides for the resolve call. The retrieved object. Return instances of all registered types requested. This method is useful if you've registered multiple types with the same but different names. Be aware that this method does NOT return an instance for the default (unnamed) registration. The type requested. Container to resolve from. Any overrides for the resolve calls. Set of objects of type . Run an existing object through the container and perform injection on it. This method is useful when you don't control the construction of an instance (ASP.NET pages or objects created via XAML, for instance) but you still want properties and other injection performed. This overload uses the default registrations. of object to perform injection on. Container to resolve through. Instance to build up. Any overrides for the buildup. The resulting object. By default, this will be , but container extensions may add things like automatic proxy creation which would cause this to return a different object (but still type compatible with ). Run an existing object through the container and perform injection on it. This method is useful when you don't control the construction of an instance (ASP.NET pages or objects created via XAML, for instance) but you still want properties and other injection performed. of object to perform injection on. Container to resolve through. Instance to build up. name to use when looking up the typemappings and other configurations. Any overrides for the Buildup. The resulting object. By default, this will be , but container extensions may add things like automatic proxy creation which would cause this to return a different object (but still type compatible with ). Run an existing object through the container and perform injection on it. This method is useful when you don't control the construction of an instance (ASP.NET pages or objects created via XAML, for instance) but you still want properties and other injection performed. This overload uses the default registrations. Container to resolve through. of object to perform injection on. Instance to build up. Any overrides for the Buildup. The resulting object. By default, this will be , but container extensions may add things like automatic proxy creation which would cause this to return a different object (but still type compatible with ). Creates a new extension object and adds it to the container. Type of to add. The extension type will be resolved from within the supplied . Container to add the extension to. The object that this method was called on (this in C#, Me in Visual Basic). Resolve access to a configuration interface exposed by an extension. Extensions can expose configuration interfaces as well as adding strategies and policies to the container. This method walks the list of added extensions and returns the first one that implements the requested type. The configuration interface required. Container to configure. The requested extension's configuration interface, or null if not found. Check if a particular type has been registered with the container with the default name. Container to inspect. Type to check registration for. True if this type has been registered, false if not. Check if a particular type/name pair has been registered with the container. Container to inspect. Type to check registration for. Name to check registration for. True if this type/name pair has been registered, false if not. Check if a particular type has been registered with the container with the default name. Type to check registration for. Container to inspect. True if this type has been registered, false if not. Check if a particular type/name pair has been registered with the container. Type to check registration for. Container to inspect. Name to check registration for. True if this type/name pair has been registered, false if not. The class provides the means for extension objects to manipulate the internal state of the . Store a type/name pair for later resolution. When users register type mappings (or other things) with a named key, this method allows you to register that name with the container so that when the method is called, that name is included in the list that is returned. to register. Name associated with that type. The container that this context is associated with. The object. The strategies this container uses. The that the container uses to build objects. The strategies this container uses to construct build plans. The that this container uses when creating build plans. The policies this container uses. The the that container uses to build objects. The that this container uses. The is used to manage objects that the container is managing. This event is raised when the method, or one of its overloads, is called. This event is raised when the method, or one of its overloads, is called. This event is raised when the method is called, providing the newly created child container to extensions to act on as they see fit. An EventArgs class that holds a string Name. Create a new with a null name. Create a new with the given name. Name to store. The name. Name used for this EventArg object. Event argument class for the event. Create a new instance of . Type to map from. Type to map to. Name for the registration. to manage instances. Type to map from. Type to map to. to manage instances. Event argument class for the event. Create a default instance. Create a instance initialized with the given arguments. Type of instance being registered. The instance object itself. Name to register under, null if default registration. object that handles how the instance will be owned. Type of instance being registered. Type of instance being registered. Instance object being registered. Instance object being registered that controls ownership of this instance. A that lets you specify that an instance of a generic type parameter should be resolved. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. name to use when looking up in the container. Return a instance that will return this types value for the parameter. The actual type to resolve. The resolution key. The . A that lets you specify that an array containing the registered instances of a generic type parameter should be resolved. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. The values for the elements, that will be converted to objects. Test to see if this parameter value has a matching type for the given type. Type to check. True if this parameter value is compatible with type , false if not. A type is considered compatible if it is an array type of rank one and its element type is a generic type parameter with a name matching this generic parameter name configured for the receiver. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . Name for the type represented by this . This may be an actual type name or a generic argument name. A Unity container extension that allows you to configure which constructors, properties, and methods get injected via an API rather than through attributes. Initial the container with this extension's functionality. When overridden in a derived class, this method will modify the given by adding strategies, policies, etc. to install it's functions into the container. API to configure the injection settings for a particular type. Type the injection is being configured for. Objects containing the details on which members to inject and how. This extension object. API to configure the injection settings for a particular type/name pair. Type the injection is being configured for. Name of registration Objects containing the details on which members to inject and how. This extension object. API to configure the injection settings for a particular type. Type to configure. Objects containing the details on which members to inject and how. This extension object. API to configure the injection settings for a particular type/name pair. Type to configure. Name of registration. Objects containing the details on which members to inject and how. This extension object. API to configure the injection settings for a particular type/name pair. Type of interface/base class being registered (may be null). Type of actual implementation class being registered. Name of registration. Objects containing the details on which members to inject and how. This extension object. A class that holds the collection of information for a constructor, so that the container can be configured to call this constructor. Create a new instance of that looks for a constructor with the given set of parameters. The values for the parameters, that will be converted to objects. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Interface registered, ignored in this implementation. Type to register. Name used to resolve the type object. Policy list to add policies to. An that configures the container to call a method as part of buildup. Create a new instance which will configure the container to call the given methods with the given parameters. Name of the method to call. Parameter values for the method. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Type of interface registered, ignored in this implementation. Type to register. Name used to resolve the type object. Policy list to add policies to. A small function to handle name matching. You can override this to do things like case insensitive comparisons. MethodInfo for the method you're checking. Name of the method you're looking for. True if a match, false if not. A class that holds on to the given value and provides the required when the container is configured. Create an instance of that stores the given value, using the runtime type of that value as the type of the parameter. Value to be injected for this parameter. Create an instance of that stores the given value, associated with the given type. Type of the parameter. Value of the parameter Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . A generic version of that makes it a little easier to specify the type of the parameter. Type of parameter. Create a new . Value for the parameter. This class stores information about which properties to inject, and will configure the container accordingly. Configure the container to inject the given property name, resolving the value via the container. Name of the property to inject. Configure the container to inject the given property name, using the value supplied. This value is converted to an object using the rules defined by the method. Name of property to inject. Value for property. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Interface being registered, ignored in this implementation. Type to register. Name used to resolve the type object. Policy list to add policies to. A class that stores a type, and generates a resolver object that resolves all the named instances or the type registered in a container. Construct a new that resolves to the given element type and collection of element values. The type of elements to resolve. The values for the elements, that will be converted to objects. Construct a new that resolves to the given array and element types and collection of element values. The type for the array of elements to resolve. The type of elements to resolve. The values for the elements, that will be converted to objects. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . A generic version of for convenience when creating them by hand. Type of the elements for the array of the parameter. Construct a new that resolves to the given element generic type with the given element values. The values for the elements, that will be converted to objects. Interface defining the behavior of the Unity dependency injection container. Register a type mapping with the container, where the created instances will use the given . that will be requested. that will actually be returned. Name to use for registration, null if a default registration. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. Name for registration. object that controls how this instance will be managed by the container. The object that this method was called on (this in C#, Me in Visual Basic). Resolve an instance of the requested type with the given name from the container. of object to get from the container. Name of the object to retrieve. Any overrides for the resolve call. The retrieved object. Return instances of all registered types requested. This method is useful if you've registered multiple types with the same but different names. Be aware that this method does NOT return an instance for the default (unnamed) registration. The type requested. Any overrides for the resolve calls. Set of objects of type . Run an existing object through the container and perform injection on it. This method is useful when you don't control the construction of an instance (ASP.NET pages or objects created via XAML, for instance) but you still want properties and other injection performed. of object to perform injection on. Instance to build up. name to use when looking up the TypeMappings and other configurations. Any overrides for the resolve calls. The resulting object. By default, this will be , but container extensions may add things like automatic proxy creation which would cause this to return a different object (but still type compatible with ). Run an existing object through the container, and clean it up. The object to tear down. Add an extension object to the container. to add. The object that this method was called on (this in C#, Me in Visual Basic). Resolve access to a configuration interface exposed by an extension. Extensions can expose configuration interfaces as well as adding strategies and policies to the container. This method walks the list of added extensions and returns the first one that implements the requested type. of configuration interface required. The requested extension's configuration interface, or null if not found. Remove all installed extensions from this container. This method removes all extensions from the container, including the default ones that implement the out-of-the-box behavior. After this method, if you want to use the container again you will need to either read the default extensions or replace them with your own. The registered instances and singletons that have already been set up in this container do not get removed. The object that this method was called on (this in C#, Me in Visual Basic). Create a child container. A child container shares the parent's configuration, but can be configured with different settings or lifetime. The new child container. The parent of this container. The parent container, or null if this container doesn't have one. Get a sequence of that describe the current state of the container. A that holds a weak reference to it's managed instance. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. The object being stored. Remove the given object from backing store. An implementation of that creates instances of the type of the given Lifetime Manager by resolving them through the container. Create a new that will return instances of the given type, creating them by resolving through the container. Container to resolve with. Type of LifetimeManager to create. Create a new instance of . The new instance. The type of Lifetime manager that will be created by this factory. A that holds the instances given to it, keeping one instance per thread. This LifetimeManager does not dispose the instances it holds. Initializes a new instance of the class. Retrieve a value from the backing store associated with this Lifetime policy for the current thread. the object desired, or if no such object is currently stored for the current thread. Stores the given value into backing store for retrieval later when requested in the current thread. The object being stored. Remove the given object from backing store. Not implemented for this lifetime manager. An implementation that does nothing, thus ensuring that instances are created new every time. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. The object being stored. Remove the given object from backing store. This strategy implements the logic that will call container.ResolveAll when an array parameter is detected. Do the PreBuildUp stage of construction. This is where the actual work is performed. Current build context. An implementation of that is aware of the build keys used by the Unity container. Create a instance for the given . This implementation looks for the Unity on the parameter and uses it to create an instance of for this parameter. Parameter to create the resolver for. The resolver object. An implementation of that is aware of the build keys used by the Unity container. Create a instance for the given . Parameter to create the resolver for. The resolver object. An implementation of that is aware of the build keys used by the unity container. Create a for the given property. Property to create resolver for. The resolver object. A implementation that returns the value set in the constructor. Create a new instance of which will return the given value when resolved. The value to return. Get the value for a dependency. Current build context. The value for the dependency. An implementation of that stores a type and name, and at resolution time puts them together into a . Create an instance of with the given type and name. The type. The name (may be null). Resolve the value for a dependency. Current build context. The value for the dependency. The type that this resolver resolves. The name that this resolver resolves. An implementation of that resolves to to an array populated with the values that result from resolving other instances of . Create an instance of with the given type and a collection of instances to use when populating the result. The type. The resolver policies to use when populating an array. Resolve the value for a dependency. Current build context. An array populated with the results of resolving the resolver policies. An implementation of that selects the given constructor and creates the appropriate resolvers to call it with the specified parameters. Create an instance of that will return the given constructor, being passed the given injection values as parameters. The constructor to call. Set of objects that describes how to obtain the values for the constructor parameters. Choose the constructor to call for the given type. Current build context The to add any generated resolver objects into. The chosen constructor. Helper class for implementing selector policies that need to set up dependency resolver policies. Add dependency resolvers to the parameter set. Type that's currently being built (used to resolve open generics). PolicyList to add the resolvers to. Objects supplying the dependency resolvers. Result object to store the keys in. A implementation that calls the specific methods with the given parameters. Add the given method and parameter collection to the list of methods that will be returned when the selector's method is called. Method to call. sequence of objects that describe how to create the method parameter values. Return the sequence of methods to call while building the target object. Current build context. The to add any generated resolver objects into. Sequence of methods to call. An implementation of which returns the set of specific properties that the selector was configured with. Add a property that will be par of the set returned when the is called. The property to set. object describing how to create the value to inject. Returns sequence of properties on the given type that should be set as part of building that object. Current build context. The to add any generated resolver objects into. Sequence of objects that contain the properties to set. The exception thrown by the Unity container when an attempt to resolve a dependency fails. Create a new that records the exception for the given type and name. Type requested from the container. Name requested from the container. The actual exception that caused the failure of the build. The build context representing the failed operation. The type that was being requested from the container at the time of failure. The name that was being requested from the container at the time of failure. A class that stores a name and type, and generates a resolver object that resolves the parameter via the container. Construct a new that resolves to the given type. Type of this parameter. Construct a new that resolves the given type and name. Type of this parameter. Name to use when resolving parameter. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . A generic version of for convenience when creating them by hand. Type of the parameter Create a new for the given generic type and the default name. Create a new for the given generic type and name. Name to use to resolve this parameter. An implementation of that wraps a Unity container. Initializes a new instance of the class for a container. The to wrap with the interface implementation. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. 2 When implemented by inheriting classes, this method will do the actual work of resolving the requested service instance. Type of instance requested.Name of registered service you want. May be null. The requested service instance. When implemented by inheriting classes, this method will do the actual work of resolving all the requested service instances. Type of service requested. Sequence of service instance objects. A static helper class that includes various parameter checking routines. Throws if the given argument is null. if tested value if null. Argument value to test. Name of the argument being tested. Throws an exception if the tested string argument is null or the empty string. Thrown if string value is null. Thrown if the string is empty Argument value to check. Name of argument being checked. Verifies that an argument type is assignable from the provided type (meaning interfaces are implemented, or classes exist in the base class hierarchy). The argument type that will be assigned to. The type of the value being assigned. Argument name. Verifies that an argument instance is assignable from the provided type (meaning interfaces are implemented, or classes exist in the base class hierarchy, or instance can be assigned through a runtime wrapper, as is the case for COM Objects). The argument type that will be assigned to. The instance that will be assigned. Argument name. A helper class to manage the names that get registered in the container The build stages we use in the Unity container strategy pipeline. First stage. By default, nothing happens here. Second stage. Type mapping occurs here. Third stage. lifetime managers are checked here, and if they're available the rest of the pipeline is skipped. Fourth stage. Reflection over constructors, properties, etc. is performed here. Fifth stage. Instance creation happens here. Sixth stage. Property sets and method injection happens here. Seventh and final stage. By default, nothing happens here. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to The type {0} has multiple constructors of length {1}. Unable to disambiguate.. Looks up a localized string similar to The provided string argument must not be empty.. Looks up a localized string similar to The current build operation (build key {2}) failed: {3} (Strategy type {0}, index {1}). Looks up a localized string similar to The current type, {0}, is an abstract class and cannot be constructed. Are you missing a type mapping?. Looks up a localized string similar to The current type, {0}, is delegate and cannot be constructed. Unity only supports resolving Func<T> and Func<IEnumerable<T>> by default.. Looks up a localized string similar to The current type, {0}, is an interface and cannot be constructed. Are you missing a type mapping?. Looks up a localized string similar to Cannot extract type from build key {0}.. Looks up a localized string similar to The method {0}.{1}({2}) is an open generic method. Open generic methods cannot be injected.. Looks up a localized string similar to The property {0} on type {1} is an indexer. Indexed properties cannot be injected.. Looks up a localized string similar to The method {1} on type {0} has an out parameter. Injection cannot be performed.. Looks up a localized string similar to The method {0}.{1}({2}) has at least one out parameter. Methods with out parameters cannot be injected.. Looks up a localized string similar to The method {0}.{1}({2}) has at least one ref parameter.Methods with ref parameters cannot be injected.. Looks up a localized string similar to The method {1} on type {0} is marked for injection, but it is an open generic method. Injection cannot be performed.. Looks up a localized string similar to The method {0}.{1}({2}) is static. Static methods cannot be injected.. Looks up a localized string similar to The type {0} is an open generic type. An open generic type cannot be resolved.. Looks up a localized string similar to Resolving parameter "{0}" of constructor {1}. Looks up a localized string similar to The parameter {0} could not be resolved when attempting to call constructor {1}.. Looks up a localized string similar to Parameter type inference does not work for null values. Indicate the parameter type explicitly using a properly configured instance of the InjectionParameter or InjectionParameter<T> classes.. Looks up a localized string similar to Calling constructor {0}. Looks up a localized string similar to Calling method {0}.{1}. Looks up a localized string similar to An item with the given key is already present in the dictionary.. Looks up a localized string similar to The lifetime manager is already registered. Lifetime managers cannot be reused, please create a new one.. Looks up a localized string similar to The override marker build plan policy has been invoked. This should never happen, looks like a bug in the container.. Looks up a localized string similar to Resolving parameter "{0}" of method {1}.{2}. Looks up a localized string similar to The value for parameter "{1}" of method {0} could not be resolved. . Looks up a localized string similar to Could not resolve dependency for build key {0}.. Looks up a localized string similar to The type {0} has multiple constructors marked with the InjectionConstructor attribute. Unable to disambiguate.. Looks up a localized string similar to The supplied type {0} must be an open generic type.. Looks up a localized string similar to The supplied type {0} does not have the same number of generic arguments as the target type {1}.. Looks up a localized string similar to The type {0} does not have an accessible constructor.. Looks up a localized string similar to The type {0} does not have a generic argument named "{1}". Looks up a localized string similar to while resolving. Looks up a localized string similar to The type {0} does not have a constructor that takes the parameters ({1}).. Looks up a localized string similar to The type {0} does not have a public method named {1} that takes the parameters ({2}).. Looks up a localized string similar to The type {0} does not contain an instance property named {1}.. Looks up a localized string similar to The type {0} is not a generic type, and you are attempting to inject a generic parameter named "{1}".. Looks up a localized string similar to The type {0} is not an array type with rank 1, and you are attempting to use a [DependencyArray] attribute on a parameter or property with this type.. Looks up a localized string similar to Optional dependencies must be reference types. The type {0} is a value type.. Looks up a localized string similar to The property {0} on type {1} is not settable.. Looks up a localized string similar to The property {0} on type {1} is of type {2}, and cannot be injected with a value of type {3}.. Looks up a localized string similar to The value for the property "{0}" could not be resolved.. Looks up a localized string similar to The provided string argument must not be empty.. Looks up a localized string similar to Resolution of the dependency failed, type = "{0}", name = "{1}". Exception occurred while: {2}. Exception is: {3} - {4} ----------------------------------------------- At the time of the exception, the container was: . Looks up a localized string similar to Resolving {0},{1}. Looks up a localized string similar to Resolving {0},{1} (mapped from {2}, {3}). Looks up a localized string similar to Resolving value for property {0}.{1}. Looks up a localized string similar to The constructor {1} selected for type {0} has ref or out parameters. Such parameters are not supported for constructor injection.. Looks up a localized string similar to Setting value for property {0}.{1}. Looks up a localized string similar to The type {0} cannot be constructed. You must configure the container to supply this value.. Looks up a localized string similar to The type {1} cannot be assigned to variables of type {0}.. Looks up a localized string similar to <unknown>. A simple, extensible dependency injection container. Create a default . Create a with the given parent container. The parent . The current object will apply its own settings first, and then check the parent for additional ones. RegisterType a type mapping with the container, where the created instances will use the given . that will be requested. that will actually be returned. Name to use for registration, null if a default registration. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). RegisterType an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. Name for registration. If true, the container will take over the lifetime of the instance, calling Dispose on it (if it's ) when the container is Disposed. If false, container will not maintain a strong reference to . User is responsible for disposing instance, and for keeping the instance from being garbage collected. The object that this method was called on (this in C#, Me in Visual Basic). Get an instance of the requested type with the given name from the container. of object to get from the container. Name of the object to retrieve. Any overrides for the resolve call. The retrieved object. Return instances of all registered types requested. This method is useful if you've registered multiple types with the same but different names. Be aware that this method does NOT return an instance for the default (unnamed) registration. The type requested. Any overrides for the resolve calls. Set of objects of type . Run an existing object through the container and perform injection on it. This method is useful when you don't control the construction of an instance (ASP.NET pages or objects created via XAML, for instance) but you still want properties and other injection performed. of object to perform injection on. Instance to build up. name to use when looking up the typemappings and other configurations. Any overrides for the buildup. The resulting object. By default, this will be , but container extensions may add things like automatic proxy creation which would cause this to return a different object (but still type compatible with ). Run an existing object through the container, and clean it up. The object to tear down. Add an extension object to the container. to add. The object that this method was called on (this in C#, Me in Visual Basic). Get access to a configuration interface exposed by an extension. Extensions can expose configuration interfaces as well as adding strategies and policies to the container. This method walks the list of added extensions and returns the first one that implements the requested type. of configuration interface required. The requested extension's configuration interface, or null if not found. Remove all installed extensions from this container. This method removes all extensions from the container, including the default ones that implement the out-of-the-box behavior. After this method, if you want to use the container again you will need to either read the default extensions or replace them with your own. The registered instances and singletons that have already been set up in this container do not get removed. The object that this method was called on (this in C#, Me in Visual Basic). Create a child container. A child container shares the parent's configuration, but can be configured with different settings or lifetime. The new child container. Dispose this container instance. Disposing the container also disposes any child containers, and disposes any instances whose lifetimes are managed by the container. Dispose this container instance. This class doesn't have a finalizer, so will always be true. True if being called from the IDisposable.Dispose method, false if being called from a finalizer. Remove policies associated with building this type. This removes the compiled build plan so that it can be rebuilt with the new settings the next time this type is resolved. Type of object to clear the plan for. Name the object is being registered with. The parent of this container. The parent container, or null if this container doesn't have one. Get a sequence of that describe the current state of the container. Implementation of the ExtensionContext that is actually used by the UnityContainer implementation. This is a nested class so that it can access state in the container that would otherwise be inaccessible. This event is raised when the method, or one of its overloads, is called. This extension supplies the default behavior of the UnityContainer API by handling the context events and setting policies. Install the default container behavior into the container. Remove the default behavior from the container. This extension installs the default strategies and policies into the container to implement the standard behavior of the Unity container. Add the default ObjectBuilder strategies & policies to the container. Helper class to wrap common reflection stuff dealing with methods. Create a new instance that lets us do more reflection stuff on that method. The method to reflect on. Given our set of generic type arguments, The generic type arguments. An array with closed parameter types. Returns true if any of the parameters of this method are open generics. Return the of each parameter for this method. Sequence of objects, one for each parameter in order. A helper class that encapsulates two different data items together into a a single item. Create a new containing the two values give. First value Second value The first value of the pair. The second value of the pair. Container for a Pair helper method. A helper factory method that lets users take advantage of type inference. Type of first value. Type of second value. First value. Second value. A new instance. A utility class that handles the logic of matching parameter lists, so we can find the right constructor and method overloads. Create a new that will attempt to match the given parameter types. Target parameters to match against. Tests to see if the given set of types matches the ones we're looking for. parameter list to look for. true if they match, false if they don't. Tests to see if the given set of types matches the ones we're looking for. Candidate method signature to look for. True if they match, false if they don't. Another reflection helper class that has extra methods for dealing with ParameterInfo. A small helper class to encapsulate details of the reflection API, particularly around generics. Create a new instance that lets you look at information about the given type. Type to do reflection on. Test the given object, looking at the parameters. Determine if any of the parameters are open generic types that need type attributes filled in. The method to check. True if any of the parameters are open generics. False if not. If this type is an open generic, use the given array to determine what the required closed type is and return that. If the parameter is not an open type, just return this parameter's type. Type arguments to substitute in for the open type parameters. Corresponding closed type of this parameter. Given a generic argument name, return the corresponding type for this closed type. For example, if the current type is SomeType<User>, and the corresponding definition was SomeType<TSomething>, calling this method and passing "TSomething" will return typeof(User). Name of the generic parameter. Type of the corresponding generic parameter, or null if there is no matching name. The object we're reflecting over. Is this type generic? Is this type an open generic (no type parameter specified) Is this type an array type? Is this type an array of generic elements? The type of the elements in this type (if it's an array). Returns all the public constructors defined for the current reflected . An enumeration of ConstructorInfo objects representing all the public instance constructors defined for the current reflected , but not including the type initializer (static constructor). Create a new instance of that lets you query information about the given ParameterInfo object. Parameter to query. A set of helper methods to pick through lambdas and pull out from them. Pull out a object from an expression of the form () => SomeClass.SomeMethod() Expression describing the method to call. Corresponding . Pull out a object from an expression of the form x => x.SomeMethod() The type where the method is defined. Expression describing the method to call. Corresponding . Pull out a object for the get method from an expression of the form x => x.SomeProperty The type where the method is defined. The type for the property. Expression describing the property for which the get method is to be extracted. Corresponding . Pull out a object for the set method from an expression of the form x => x.SomeProperty The type where the method is defined. The type for the property. Expression describing the property for which the set method is to be extracted. Corresponding . Pull out a object from an expression of the form () => new SomeType() The type where the constructor is defined. Expression invoking the desired constructor. Corresponding . ================================================ FILE: packages/Unity.3.5.1404.0/lib/wp80/Microsoft.Practices.Unity.RegistrationByConvention.XML ================================================ Microsoft.Practices.Unity.RegistrationByConvention Provides helper methods to retrieve classes from assemblies. Returns all visible, non-abstract classes from . The assemblies. All visible, non-abstract classes found in the assemblies. is . contains elements. All exceptions thrown while getting types from the assemblies are ignored, and the types that can be retrieved are returned. Returns all visible, non-abstract classes from , and optionally skips errors. to skip errors; otherwise, . The assemblies. All visible, non-abstract classes. is . contains elements. If is , all exceptions thrown while getting types from the assemblies are ignored, and the types that can be retrieved are returned; otherwise, the original exception is thrown. Returns all visible, non-abstract classes from . to skip errors; otherwise, . The assemblies. All visible, non-abstract classes. is . contains elements. If is , all exceptions thrown while getting types from the assemblies are ignored, and the types that can be retrieved are returned; otherwise, the original exception is thrown. Returns all visible, non-abstract classes from all assemblies located where the application is installed. to include the Unity assemblies; otherwise, . Defaults to . to skip errors; otherwise, . All visible, non-abstract classes. If is , all exceptions thrown while loading assemblies or getting types from the assemblies are ignored, and the types that can be retrieved are returned; otherwise, the original exception is thrown. These exceptions might be wrapped in a . The exception that is thrown when registering multiple types would result in an type mapping being overwritten. Initializes a new instance of the class. The name for the mapping. The source type for the mapping. The type currently mapped. The new type to map. Gets the name for the mapping. Gets the source type for the mapping. Gets the type currently mapped. Gets the new type to map. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to An attempt to override an existing mapping was detected for type {1} with name "{0}", currently mapped to type {2}, to type {3}.. Looks up a localized string similar to The set of assemblies contains a null element.. Represents a set of types to register and their registration settings. Gets types to register. Gets a function to get the types that will be requested for each type to configure. Gets a function to get the name to use for the registration of each type. Gets a function to get the for the registration of each type. Defaults to no lifetime management. Gets a function to get the additional objects for the registration of each type. Defaults to no injection members. Provides a set of convenience overloads to the interface to support registration of multiple types. Registers the supplied types by using the specified rules for name, lifetime manager, injection members, and registration types. The container to configure. The types to register. The methods in the class can be used to scan assemblies to get types, and further filtering can be performed using LINQ queries. A function that gets the types that will be requested for each type to configure. It can be a method from the class or a custom function. Defaults to no registration types, and registers only the supplied types. A function that gets the name to use for the registration of each type. It can be a method from the or a custom function. Defaults to no name. A function that gets the for the registration of each type. It can be a method from the class or a custom function. Defaults to no lifetime management. A function that gets the additional objects for the registration of each type. Defaults to no injection members. to overwrite existing mappings; otherwise, . Defaults to . The container that this method was called on. A new registration would overwrite an existing mapping and is . Registers the types according to the . The container to configure. The convention to determine which types will be registered and how. to overwrite existing mappings; otherwise, . Defaults to . The container that this method was called on. Provides helper methods to specify the lifetime for a type with registration by convention. Returns a . The type. A lifetime manager Returns a . The type. A container controlled lifetime manager. Returns a . The type. An externally controlled lifetime manager. Returns a . The type. A hierarchical lifetime manager. Returns a . The type. A per resolve lifetime manager. Returns a . The type. A transient lifetime manager. Returns a . The custom type. The type. A lifetime manager. Returns a . The type. A per thread lifetime manager. Provides helper methods to map types to the types interfaces to which register them. Returns no types. The type to register. An empty enumeration. Returns an enumeration with the interface that matches the name of . The type to register. An enumeration with the first interface matching the name of (for example, if type is MyType, a matching interface is IMyType), or an empty enumeration if no such interface is found. Returns an enumeration with all the interfaces implemented by . The type to register. An enumeration with all the interfaces implemented by the implementation type except . Returns an enumeration with all the interfaces implemented by that belong to the same assembly as implementationType. The type to register. An enumeration with all the interfaces implemented by the implementation type that belong to the same assembly. Provides helper methods to get type names. Returns the type name. The type. The type name. Returns null for the registration name. The type. ================================================ FILE: packages/Unity.3.5.1404.0/lib/wp80/Microsoft.Practices.Unity.xml ================================================ Microsoft.Practices.Unity Provides access to the names registered for a container. Represents a builder policy interface. Since there are no fixed requirements for policies, it acts as a marker interface from which to derive all other policy interfaces. Gets the names registered for a type. The type. The names registered for . An implementation that constructs a build plan for creating objects. A that can create and return an for the given build key. Create a build plan using the given context and build key. Current build context. Current build key. The build plan. Creates a build plan using the given context and build key. Current build context. Current build key. The build plan. Provides extension methods to the class due to the introduction of class in the .NET for Windows Store apps. Returns the constructor in that matches the specified constructor parameter types. The type to inspect The constructor parameter types. The constructor that matches the specified parameter types. Returns the non-static declared methods of a type or its base types. The type to inspect An enumerable of the objects. Returns the non-static method of a type or its based type. The type to inspect The name of the method to seek. The (closed) parameter type signature of the method. The discovered Returns the declared properties of a type or its base types. The type to inspect An enumerable of the objects. Determines if the types in a parameter set ordinally matches the set of supplied types. Base class for attributes that can be placed on parameters or properties to specify how to resolve the value for that parameter or property. Create an instance of that will be used to get the value for the member this attribute is applied to. Type of parameter or property that this attribute is decoration. The resolver object. This attribute is used to indicate which constructor to choose when the container attempts to build a type. This attribute is used to mark methods that should be called when the container is building an object. This attribute is used to mark properties and parameters as targets for injection. For properties, this attribute is necessary for injection to happen. For parameters, it's not needed unless you want to specify additional information to control how the parameter is resolved. Create an instance of with no name. Create an instance of with the given name. Name to use when resolving this dependency. Create an instance of that will be used to get the value for the member this attribute is applied to. Type of parameter or property that this attribute is decoration. The resolver object. The name specified in the constructor. An used to mark a dependency as optional - the container will try to resolve it, and return null if the resolution fails rather than throw. Construct a new object. Construct a new object that specifies a named dependency. Name of the dependency. Create an instance of that will be used to get the value for the member this attribute is applied to. Type of parameter or property that this attribute is decoration. The resolver object. Name of the dependency. A that composites other ResolverOverride objects. The GetResolver operation then returns the resolver from the first child override that matches the current context and request. Base class for all override objects passed in the method. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. Wrap this resolver in one that verifies the type of the object being built. This allows you to narrow any override down to a specific type easily. Type to constrain the override to. The new override. Wrap this resolver in one that verifies the type of the object being built. This allows you to narrow any override down to a specific type easily. Type to constrain the override to. The new override. Add a new to the collection that is checked. item to add. Add a set of s to the collection. items to add. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. 2 Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. 1 Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. Class that returns information about the types registered in a container. The type that was passed to the method as the "from" type, or the only type if type mapping wasn't done. The type that this registration is mapped to. If no type mapping was done, the property and this one will have the same value. Name the type was registered under. Null for default registration. The registered lifetime manager instance. The lifetime manager for this registration. This property will be null if this registration is for an open generic. A class that overrides the value injected whenever there is a dependency of the given type, regardless of where it appears in the object graph. Create an instance of to override the given type with the given value. Type of the dependency. Value to use. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. A convenience version of that lets you specify the dependency type using generic syntax. Type of the dependency to override. Construct a new object that will override the given dependency, and pass the given value. A convenience form of that lets you specify multiple parameter overrides in one shot rather than having to construct multiple objects. This class isn't really a collection, it just implements IEnumerable so that we get use of the nice C# collection initializer syntax. Base helper class for creating collections of objects for use in passing a bunch of them to the resolve call. This base class provides the mechanics needed to allow you to use the C# collection initializer syntax. Concrete type of the this class collects. Key used to create the underlying override object. Value that the override returns. Add a new override to the collection with the given key and value. Key - for example, a parameter or property name. Value - the value to be returned by the override. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. 2 Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. 1 When implemented in derived classes, this method is called from the method to create the actual objects. Key value to create the resolver. Value to store in the resolver. The created . When implemented in derived classes, this method is called from the method to create the actual objects. Key value to create the resolver. Value to store in the resolver. The created . Event argument class for the event. Construct a new object with the given child container object. An for the newly created child container. The newly created child container. An extension context for the created child container. Base class for subclasses that let you specify that an instance of a generic type parameter should be resolved. Base type for objects that are used to configure parameters for constructor or method injection, or for getting the value to be injected into a property. Test to see if this parameter value has a matching type for the given type. Type to check. True if this parameter value is compatible with type , false if not. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . Convert the given set of arbitrary values to a sequence of InjectionParameterValue objects. The rules are: If it's already an InjectionParameterValue, return it. If it's a Type, return a ResolvedParameter object for that type. Otherwise return an InjectionParameter object for that value. The values to build the sequence from. The resulting converted sequence. Convert an arbitrary value to an InjectionParameterValue object. The rules are: If it's already an InjectionParameterValue, return it. If it's a Type, return a ResolvedParameter object for that type. Otherwise return an InjectionParameter object for that value. The value to convert. The resulting . Name for the type represented by this . This may be an actual type name or a generic argument name. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. name to use when looking up in the container. Test to see if this parameter value has a matching type for the given type. Type to check. True if this parameter value is compatible with type , false if not. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . Return a instance that will return this types value for the parameter. The actual type to resolve. The resolution key. The . Name for the type represented by this . This may be an actual type name or a generic argument name. A that lets you specify that an instance of a generic type parameter should be resolved, providing the value if resolving fails. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. name to use when looking up in the container. Return a instance that will return this types value for the parameter. The actual type to resolve. The resolution key. The . A class that lets you specify a factory method the container will use to create the object. This is a significantly easier way to do the same thing the old static factory extension was used for. Base class for objects that can be used to configure what class members get injected by the container. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Type to register. Policy list to add policies to. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Type of interface being registered. If no interface, this will be null. Type of concrete type being registered. Name used to resolve the type object. Policy list to add policies to. Create a new instance of with the given factory function. Factory function. Create a new instance of with the given factory function. Factory function. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Type of interface being registered. If no interface, this will be null. This parameter is ignored in this implementation. Type of concrete type being registered. Name used to resolve the type object. Policy list to add policies to. A that can be passed to to configure a parameter or property as an optional dependency. A base class for implementing classes that deal in explicit types. Create a new that exposes information about the given . Type of the parameter. Test to see if this parameter value has a matching type for the given type. Type to check. True if this parameter value is compatible with type , false if not. The type of parameter this object represents. Name for the type represented by this . This may be an actual type name or a generic argument name. Construct a new object that specifies the given . Type of the dependency. Construct a new object that specifies the given and . Type of the dependency. Name for the dependency. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . A generic version of that lets you specify the type of the dependency using generics syntax. Type of the dependency. Construct a new . Construct a new with the given . Name of the dependency. A special lifetime manager which works like , except that in the presence of child containers, each child gets it's own instance of the object, instead of sharing one in the common parent. A that holds onto the instance given to it. When the is disposed, the instance is disposed with it. Base class for Lifetime managers which need to synchronize calls to . The purpose of this class is to provide a basic implementation of the lifetime manager synchronization pattern. Calls to the method of a instance acquire a lock, and if the instance has not been initialized with a value yet the lock will only be released when such an initialization takes place by calling the method or if the build request which resulted in the call to the GetValue method fails. Base class for Lifetime managers - classes that control how and when instances are created by the Unity container. A that controls how instances are persisted and recovered from an external store. Used to implement things like singletons and per-http-request lifetime. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. The object to store. Remove the value this lifetime policy is managing from backing store. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. The object being stored. Remove the given object from backing store. This interface provides a hook for the builder context to implement error recovery when a builder strategy throws an exception. Since we can't get try/finally blocks onto the call stack for later stages in the chain, we instead add these objects to the context. If there's an exception, all the current IRequiresRecovery instances will have their Recover methods called. A method that does whatever is needed to clean up as part of cleaning up after an exception. Don't do anything that could throw in this method, it will cause later recover operations to get skipped and play real havoc with the stack trace. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Calls to this method acquire a lock which is released only if a non-null value has been set for the lifetime manager. Performs the actual retrieval of a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. This method is invoked by after it has acquired its lock. Stores the given value into backing store for retrieval later. The object being stored. Setting a value will attempt to release the lock acquired by . Performs the actual storage of the given value into backing store for retrieval later. The object being stored. This method is invoked by before releasing its lock. Remove the given object from backing store. A method that does whatever is needed to clean up as part of cleaning up after an exception. Don't do anything that could throw in this method, it will cause later recover operations to get skipped and play real havoc with the stack trace. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. The object being stored. Remove the given object from backing store. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Standard Dispose pattern implementation. Not needed, but it keeps FxCop happy. Always true, since we don't have a finalizer. This is a custom lifetime manager that acts like , but also provides a signal to the default build plan, marking the type so that instances are reused across the build up object graph. Construct a new object that does not itself manage an instance. Construct a new object that stores the give value. This value will be returned by but is not stored in the lifetime manager, nor is the value disposed. This Lifetime manager is intended only for internal use, which is why the normal method is not used here. Value to store. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. In this class, this is a noop, since it has special hooks down in the guts. The object being stored. Remove the given object from backing store. Noop in this class. A strategy that handles Hierarchical lifetimes across a set of parent/child containers. Represents a strategy in the chain of responsibility. Strategies are required to support both BuildUp and TearDown. Represents a strategy in the chain of responsibility. Strategies are required to support both BuildUp and TearDown. Although you can implement this interface directly, you may also choose to use as the base class for your strategies, as this class provides useful helper methods and makes support BuildUp and TearDown optional. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. Called during the chain of responsibility for a build operation. The PostBuildUp method is called when the chain has finished the PreBuildUp phase and executes in reverse order from the PreBuildUp calls. Context of the build operation. Called during the chain of responsibility for a teardown operation. The PreTearDown method is called when the chain is being executed in the forward direction. Context of the teardown operation. Called during the chain of responsibility for a teardown operation. The PostTearDown method is called when the chain has finished the PreTearDown phase and executes in reverse order from the PreTearDown calls. Context of the teardown operation. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. Called during the chain of responsibility for a build operation. The PostBuildUp method is called when the chain has finished the PreBuildUp phase and executes in reverse order from the PreBuildUp calls. Context of the build operation. Called during the chain of responsibility for a teardown operation. The PreTearDown method is called when the chain is being executed in the forward direction. Context of the teardown operation. Called during the chain of responsibility for a teardown operation. The PostTearDown method is called when the chain has finished the PreTearDown phase and executes in reverse order from the PreTearDown calls. Context of the teardown operation. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. A that will attempt to resolve a value, and return null if it cannot rather than throwing. A strategy that is used at build plan execution time to resolve a dependent value. Get the value for a dependency. Current build context. The value for the dependency. Construct a new object that will attempt to resolve the given name and type from the container. Type to resolve. Must be a reference type. Name to resolve with. Construct a new object that will attempt to resolve the given type from the container. Type to resolve. Must be a reference type. Get the value for a dependency. Current build context. The value for the dependency. Type this resolver will resolve. Name this resolver will resolve. Extension methods on to provide convenience overloads (generic versions, mostly). Removes an individual policy type for a build key. The type the policy was registered as. to remove the policy from. The key the policy applies. Removes a default policy. The type the policy was registered as. to remove the policy from. Gets an individual policy. The interface the policy is registered under. to search. The key the policy applies. The policy in the list, if present; returns null otherwise. Gets an individual policy. The interface the policy is registered under. to search. The key the policy applies. The policy list that actually contains the returned policy. The policy in the list, if present; returns null otherwise. Gets an individual policy. to search. The interface the policy is registered under. The key the policy applies. The policy in the list, if present; returns null otherwise. Gets an individual policy. to search. The interface the policy is registered under. The key the policy applies. The policy list that actually contains the returned policy. The policy in the list, if present; returns null otherwise. Gets an individual policy. The interface the policy is registered under. to search. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy in the list, if present; returns null otherwise. Gets an individual policy. The interface the policy is registered under. to search. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy list that actually contains the returned policy. The policy in the list, if present; returns null otherwise. Gets an individual policy. to search. The interface the policy is registered under. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy in the list, if present; returns null otherwise. Get the non default policy. The interface the policy is registered under. to search. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy in the list, if present; returns null otherwise. Get the non default policy. The interface the policy is registered under. to search. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy list that actually contains the returned policy. The policy in the list, if present; returns null otherwise. Get the non default policy. to search. The interface the policy is registered under. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy in the list, if present; returns null otherwise. Sets an individual policy. The interface the policy is registered under. to add the policy to. The policy to be registered. The key the policy applies. Sets a default policy. When checking for a policy, if no specific individual policy is available, the default will be used. The interface to register the policy under. to add the policy to. The default policy to be registered. Base class for the current operation stored in the build context. Create a new . Type currently being built. The type that's currently being built. Build plan for that will return a Func that will resolve the requested type through this container later. A build plan is an object that, when invoked, will create a new object or fill in a given existing one. It encapsulates all the information gathered by the strategies to construct a particular object. Creates an instance of this build plan's type, or fills in the existing type if passed in. Context used to build up the object. Creates an instance of this build plan's type, or fills in the existing type if passed in. Context used to build up the object. The almost inevitable collection of extra helper methods on to augment the rich set of what LINQ already gives us. Execute the provided on every item in . Type of the items stored in Sequence of items to process. Code to run over each item. Create a single string from a sequence of items, separated by the provided , and with the conversion to string done by the given . This method does basically the same thing as , but will work on any sequence of items, not just arrays. Type of items in the sequence. Sequence of items to convert. Separator to place between the items in the string. The conversion function to change TItem -> string. The resulting string. Create a single string from a sequence of items, separated by the provided , and with the conversion to string done by the item's method. This method does basically the same thing as , but will work on any sequence of items, not just arrays. Type of items in the sequence. Sequence of items to convert. Separator to place between the items in the string. The resulting string. A class that lets you override a named parameter passed to a constructor. Construct a new object that will override the given named constructor parameter, and pass the given value. Name of the constructor parameter. Value to pass for the constructor. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. A convenience form of that lets you specify multiple parameter overrides in one shot rather than having to construct multiple objects. When implemented in derived classes, this method is called from the method to create the actual objects. Key value to create the resolver. Value to store in the resolver. The created . A that lets you override the value for a specified property. Create an instance of . The property name. Value to use for the property. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. A convenience form of that lets you specify multiple property overrides in one shot rather than having to construct multiple objects. When implemented in derived classes, this method is called from the method to create the actual objects. Key value to create the resolver. Value to store in the resolver. The created . Interface defining the configuration interface exposed by the Static Factory extension. Base interface for all extension configuration interfaces. Retrieve the container instance that we are currently configuring. Register the given factory delegate to be called when the container is asked to resolve . Type that will be requested from the container. Delegate to invoke to create the instance. The container extension object this method was invoked on. Register the given factory delegate to be called when the container is asked to resolve and . Type that will be requested from the container. The name that will be used when requesting to resolve this type. Delegate to invoke to create the instance. The container extension object this method was invoked on. Represents the context in which a build-up or tear-down operation runs. Represents the context in which a build-up or tear-down operation runs. Add a new set of resolver override objects to the current build operation. objects to add. Get a object for the given or null if that dependency hasn't been overridden. Type of the dependency. Resolver to use, or null if no override matches for the current operation. A convenience method to do a new buildup operation on an existing context. Key to use to build up. Created object. A convenience method to do a new buildup operation on an existing context. This overload allows you to specify extra policies which will be in effect for the duration of the build. Key defining what to build up. A delegate that takes a . This is invoked with the new child context before the build up process starts. This gives callers the opportunity to customize the context for the build process. Created object. Gets the head of the strategy chain. The strategy that's first in the chain; returns null if there are no strategies in the chain. Gets the associated with the build. The associated with the build. Gets the original build key for the build operation. The original build key for the build operation. Get the current build key for the current build operation. The set of policies that were passed into this context. This returns the policies passed into the context. Policies added here will remain after buildup completes. The persistent policies for the current context. Gets the policies for the current context. Any policies added to this object are transient and will be erased at the end of the buildup. The policies for the current context. Gets the collection of objects that need to execute in event of an exception. The current object being built up or torn down. The current object being manipulated by the build operation. May be null if the object hasn't been created yet. Flag indicating if the build operation should continue. true means that building should not call any more strategies, false means continue to the next strategy. An object representing what is currently being done in the build chain. Used to report back errors if there's a failure. The build context used to resolve a dependency during the build operation represented by this context. Initialize a new instance of the class. Initialize a new instance of the class with a , , and the build key used to start this build operation. The to use for this context. The to use for this context. The to use for this context. Build key to start building. The existing object to build up. Create a new using the explicitly provided values. The to use for this context. The to use for this context. The set of persistent policies to use for this context. The set of transient policies to use for this context. It is the caller's responsibility to ensure that the transient and persistent policies are properly combined. Build key for this context. Existing object to build up. Create a new using the explicitly provided values. The to use for this context. The to use for this context. The set of persistent policies to use for this context. The set of transient policies to use for this context. It is the caller's responsibility to ensure that the transient and persistent policies are properly combined. Build key for this context. The resolver overrides. Add a new set of resolver override objects to the current build operation. objects to add. Get a object for the given or null if that dependency hasn't been overridden. Type of the dependency. Resolver to use, or null if no override matches for the current operation. A convenience method to do a new buildup operation on an existing context. Key to use to build up. Created object. A convenience method to do a new buildup operation on an existing context. This overload allows you to specify extra policies which will be in effect for the duration of the build. Key defining what to build up. A delegate that takes a . This is invoked with the new child context before the build up process starts. This gives callers the opportunity to customize the context for the build process. Created object. Gets the head of the strategy chain. The strategy that's first in the chain; returns null if there are no strategies in the chain. Get the current build key for the current build operation. The current object being built up or torn down. The current object being manipulated by the build operation. May be null if the object hasn't been created yet. Gets the associated with the build. The associated with the build. Gets the original build key for the build operation. The original build key for the build operation. The set of policies that were passed into this context. This returns the policies passed into the context. Policies added here will remain after buildup completes. The persistent policies for the current context. Gets the policies for the current context. Any modifications will be transient (meaning, they will be forgotten when the outer BuildUp for this context is finished executing). The policies for the current context. Gets the collection of objects that need to execute in event of an exception. Flag indicating if the build operation should continue. true means that building should not call any more strategies, false means continue to the next strategy. An object representing what is currently being done in the build chain. Used to report back errors if there's a failure. The build context used to resolve a dependency during the build operation represented by this context. Represents that a dependency could not be resolved. Initializes a new instance of the class with no extra information. Initializes a new instance of the class with the given message. Some random message. Initialize a new instance of the class with the given message and inner exception. Some random message Inner exception. Initializes a new instance of the class with the build key of the object begin built. The build key of the object begin built. The exception thrown when injection is attempted on a method that is an open generic or has out or ref params. Construct a new with no message. Construct a with the given message Message to return. Construct a with the given message and inner exception. Message to return. Inner exception Extension methods to provide convenience overloads over the interface. Start a recursive build up operation to retrieve the default value for the given type. Type of object to build. Parent context. Resulting object. Start a recursive build up operation to retrieve the named implementation for the given type. Type to resolve. Parent context. Name to resolve with. The resulting object. Add a set of s to the context, specified as a variable argument list. Context to add overrides to. The overrides. Data structure that stores the set of objects and executes them when requested. Add a new object to this list. Object to add. Execute the method of everything in the recovery list. Recoveries will execute in the opposite order of add - it's a stack. Return the number of recovery objects currently in the stack. Represents a lifetime container. A lifetime container tracks the lifetime of an object, and implements IDisposable. When the container is disposed, any objects in the container which implement IDisposable are also disposed. Adds an object to the lifetime container. The item to be added to the lifetime container. Determine if a given object is in the lifetime container. The item to locate in the lifetime container. Returns true if the object is contained in the lifetime container; returns false otherwise. Removes an item from the lifetime container. The item is not disposed. The item to be removed. Gets the number of references in the lifetime container The number of references in the lifetime container Represents a lifetime container. A lifetime container tracks the lifetime of an object, and implements IDisposable. When the container is disposed, any objects in the container which implement IDisposable are also disposed. Adds an object to the lifetime container. The item to be added to the lifetime container. Determine if a given object is in the lifetime container. The item to locate in the lifetime container. Returns true if the object is contained in the lifetime container; returns false otherwise. Releases the resources used by the . Releases the resources used by the . true to release managed and unmanaged resources; false to release only unmanaged resources. Returns an enumerator that iterates through the lifetime container. An object that can be used to iterate through the life time container. Returns an enumerator that iterates through the lifetime container. An object that can be used to iterate through the life time container. Removes an item from the lifetime container. The item is not disposed. The item to be removed. Gets the number of references in the lifetime container The number of references in the lifetime container A custom collection over objects. Removes an individual policy type for a build key. The type of policy to remove. The key the policy applies. Removes all policies from the list. Removes a default policy. The type the policy was registered as. Gets an individual policy. The interface the policy is registered under. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy list in the chain that the searched for policy was found in, null if the policy was not found. The policy in the list, if present; returns null otherwise. Get the non default policy. The interface the policy is registered under. The key the policy applies to. True if the search should be in the local policy list only; otherwise false to search up the parent chain. The policy list in the chain that the searched for policy was found in, null if the policy was not found. The policy in the list if present; returns null otherwise. Sets an individual policy. The of the policy. The policy to be registered. The key the policy applies. Sets a default policy. When checking for a policy, if no specific individual policy is available, the default will be used. The interface to register the policy under. The default policy to be registered. A custom collection wrapper over objects. Initialize a new instance of a class. Initialize a new instance of a class with another policy list. An inner policy list to search. Removes an individual policy type for a build key. The type of policy to remove. The key the policy applies. Removes all policies from the list. Removes a default policy. The type the policy was registered as. Gets an individual policy. The interface the policy is registered under. The key the policy applies. true if the policy searches local only; otherwise false to search up the parent chain. The policy list in the chain that the searched for policy was found in, null if the policy was not found. The policy in the list, if present; returns null otherwise. Get the non default policy. The interface the policy is registered under. The key the policy applies to. True if the search should be in the local policy list only; otherwise false to search up the parent chain. The policy list in the chain that the searched for policy was found in, null if the policy was not found. The policy in the list if present; returns null otherwise. Sets an individual policy. The of the policy. The policy to be registered. The key the policy applies. Sets a default policy. When checking for a policy, if no specific individual policy is available, the default will be used. The interface to register the policy under. The default policy to be registered. Gets the number of items in the locator. The number of items in the locator. An implementation of . Add a new object to this list. Object to add. Execute the method of everything in the recovery list. Recoveries will execute in the opposite order of add - it's a stack. Return the number of recovery objects currently in the stack. Implementation of which will notify an object about the completion of a BuildUp operation, or start of a TearDown operation. This strategy checks the object that is passing through the builder chain to see if it implements IBuilderAware and if it does, it will call and . This strategy is meant to be used from the stage. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. Called during the chain of responsibility for a teardown operation. The PreTearDown method is called when the chain is being executed in the forward direction. Context of the teardown operation. Implemented on a class when it wants to receive notifications about the build process. Called by the when the object is being built up. The key of the object that was just built up. Called by the when the object is being torn down. Enumeration to represent the object builder stages. The order of the values in the enumeration is the order in which the stages are run. Strategies in this stage run before creation. Typical work done in this stage might include strategies that use reflection to set policies into the context that other strategies would later use. Strategies in this stage create objects. Typically you will only have a single policy-driven creation strategy in this stage. Strategies in this stage work on created objects. Typical work done in this stage might include setter injection and method calls. Strategies in this stage work on objects that are already initialized. Typical work done in this stage might include looking to see if the object implements some notification interface to discover when its initialization stage has been completed. Represents a builder policy for mapping build keys. Represents a builder policy for mapping build keys. Maps the build key. The build key to map. Current build context. Used for contextual information if writing a more sophisticated mapping. This parameter can be null (called when getting container registrations). The new build key. Initialize a new instance of the with the new build key. The new build key. Maps the build key. The build key to map. Current build context. Used for contextual information if writing a more sophisticated mapping, unused in this implementation. The new build key. Represents a strategy for mapping build keys in the build up operation. Called during the chain of responsibility for a build operation. Looks for the and if found maps the build key for the current operation. The context for the operation. An implementation of that can map generic types. Create a new instance that will map generic types. Build key to map to. This must be or contain an open generic type. Maps the build key. The build key to map. Current build context. Used for contextual information if writing a more sophisticated mapping. The new build key. A that will look for a build plan in the current context. If it exists, it invokes it, otherwise it creates one and stores it for later, and invokes it. Called during the chain of responsibility for a build operation. The context for the operation. An implementation of that chooses constructors based on these criteria: first, pick a constructor marked with the attribute. If there isn't one, then choose the constructor with the longest parameter list. If that is ambiguous, then throw. Thrown when the constructor to choose is ambiguous. Attribute used to mark the constructor to call. Base class that provides an implementation of which lets you override how the parameter resolvers are created. A that, when implemented, will determine which constructor to call from the build plan. Choose the constructor to call for the given type. Current build context The to add any generated resolver objects into. The chosen constructor. Choose the constructor to call for the given type. Current build context The to add any generated resolver objects into. The chosen constructor. Create a instance for the given . Parameter to create the resolver for. The resolver object. Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. The second object to compare. The first object to compare. Value Condition Less than zero is less than y. Zero equals y. Greater than zero is greater than y. Create a instance for the given . Parameter to create the resolver for. The resolver object. Objects of this type are the return value from . It encapsulates the desired with the string keys needed to look up the for each parameter. Base class for return values from selector policies that return a MemberInfo of some sort plus a list of parameter keys to look up the parameter resolvers. Base class for return of selector policies that need to keep track of a set of parameter resolvers. Adds the parameter resolver. Resolvers are assumed to be in the order of the parameters to the member. The new resolver. Gets the parameter resolvers. An array with the parameter resolvers. Construct a new , storing the given member info. Member info to store. The member info stored. Create a new instance which contains the given constructor. The constructor to wrap. The constructor this object wraps. This class records the information about which constructor argument is currently being resolved, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. The type that is being constructed. A string representing the constructor being called. Parameter being resolved. Generate the string describing what parameter was being resolved. The description string. String describing the constructor being set up. Parameter that's being resolved. A that emits IL to call constructors as part of creating a build plan. Called during the chain of responsibility for a build operation. Existing object is an instance of . The context for the operation. A helper method used by the generated IL to set up a PerResolveLifetimeManager lifetime manager if the current object is such. Current build context. Build up the string that will represent the constructor signature in any exception message. A helper method used by the generated IL to store the current operation in the build context. A helper method used by the generated IL to store the current operation in the build context. A helper method used by the generated IL to throw an exception if no existing object is present, but the user is attempting to build an interface (usually due to the lack of a type mapping). The currently being used for the build of this object. A helper method used by the generated IL to throw an exception if no existing object is present, but the user is attempting to build an abstract class (usually due to the lack of a type mapping). The currently being used for the build of this object. A helper method used by the generated IL to throw an exception if no existing object is present, but the user is attempting to build an delegate other than Func{T} or Func{IEnumerable{T}}. The currently being used for the build of this object. A helper method used by the generated IL to throw an exception if a dependency cannot be resolved. The currently being used for the build of this object. A helper method used by the generated IL to throw an exception if a dependency cannot be resolved because of an invalid constructor. The currently being used for the build of this object. The signature of the invalid constructor. A class that records that a constructor is about to be call, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. Generate the description string. The string. Constructor we're trying to call. Helper method used by generated IL to look up a dependency resolver based on the given key. Current build context. Type of the dependency being resolved. Key the resolver was stored under. The found dependency resolver. Helper method used by generated IL to look up a dependency resolver based on the given key. Current build context. Type of the dependency being resolved. The configured resolver. The found dependency resolver. The type that is to be built with the dynamic build plan. The context parameter representing the used when the build plan is executed. An implementation that constructs a build plan via dynamic IL emission. Construct a that uses the given strategy chain to construct the build plan. The strategy chain. Construct a build plan. The current build context. The current build key. The created build plan. A class that records that a constructor is about to be call, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. Generate the description string. The string. Method we're trying to call. This class records the information about which constructor argument is currently being resolved, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. The type that is being constructed. A string representing the method being called. Parameter being resolved. Generate the string describing what parameter was being resolved. The description string. String describing the method being set up. Parameter that's being resolved. A that generates IL to call chosen methods (as specified by the current ) as part of object build up. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. A helper method used by the generated IL to store the current operation in the build context. A helper method used by the generated IL to store the current operation in the build context. A base class that holds the information shared by all operations performed by the container while setting properties. Initializes a new instance of the class. Generate the description of this operation. The string. Get a format string used to create the description. Called by the base method. The format string. The property value currently being resolved. This class records the information about which property value is currently being resolved, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. Get a format string used to create the description. Called by the base method. The format string. A that generates IL to resolve properties on an object being built. Called during the chain of responsibility for a build operation. The context for the operation. A helper method used by the generated IL to store the current operation in the build context. A helper method used by the generated IL to store the current operation in the build context. This class records the information about which property value is currently being set, and is responsible for generating the error string required when an error has occurred. Initializes a new instance of the class. Type property is on. Name of property being set. Get a format string used to create the description. Called by the base method. The format string. Creates an instance of this build plan's type, or fills in the existing type if passed in. Context used to build up the object. An that will examine the given types and return a sequence of objects that should be called as part of building the object. Return the sequence of methods to call while building the target object. Current build context. The to add any generated resolver objects into. Sequence of methods to call. An implementation of that selects methods by looking for the given attribute on those methods. Type of attribute used to mark methods to inject. Base class that provides an implementation of which lets you override how the parameter resolvers are created. Attribute that marks methods that should be called. Return the sequence of methods to call while building the target object. Current build context. The to add any generated resolver objects into. Sequence of methods to call. Create a instance for the given . Parameter to create the resolver for. The resolver object. Create a instance for the given . Parameter to create the resolver for. The resolver object. Objects of this type are the return value from . It encapsulates the desired with the string keys needed to look up the for each parameter. Create a new instance which contains the given method. The method The constructor this object wraps. An that returns a sequence of properties that should be injected for the given type. Returns sequence of properties on the given type that should be set as part of building that object. Current build context. The to add any generated resolver objects into. Sequence of objects that contain the properties to set. Base class that provides an implementation of which lets you override how the parameter resolvers are created. Returns sequence of properties on the given type that should be set as part of building that object. Current build context. The to add any generated resolver objects into. Sequence of objects that contain the properties to set. Create a for the given property. Property to create resolver for. The resolver object. An implementation of that looks for properties marked with the attribute that are also settable and not indexers. Create a for the given property. Property to create resolver for. The resolver object. Objects of this type are returned from . This class combines the about the property with the string key used to look up the resolver for this property's value. Create an instance of with the given and key. The property. PropertyInfo for this property. IDependencyResolverPolicy for this property Implementation of . A builder policy that lets you keep track of the current resolvers and will remove them from the given policy set. Add a new resolver to track by key. Key that was used to add the resolver to the policy set. Remove the currently tracked resolvers from the given policy list. Policy list to remove the resolvers from. Add a new resolver to track by key. Key that was used to add the resolver to the policy set. Remove the currently tracked resolvers from the given policy list. Policy list to remove the resolvers from. Get an instance that implements , either the current one in the policy set or creating a new one if it doesn't exist. Policy list to look up from. Build key to track. The resolver tracker. Add a key to be tracked to the current tracker. Policy list containing the resolvers and trackers. Build key for the resolvers being tracked. Key for the resolver. Remove the resolvers for the given build key. Policy list containing the build key. Build key. An implementation of that calls back into the build chain to build up the dependency, passing a type given at compile time as its build key. Create a new instance storing the given type. Type to resolve. Get the value for a dependency. Current build context. The value for the dependency. This interface defines a standard method to convert any regardless of the stage enum into a regular, flat strategy chain. Convert this into a flat . The flattened . Represents a chain of responsibility for builder strategies. Reverse the order of the strategy chain. The reversed strategy chain. Execute this strategy chain against the given context, calling the Buildup methods on the strategies. Context for the build process. The build up object Execute this strategy chain against the given context, calling the TearDown methods on the strategies. Context for the teardown process. A builder policy used to create lifetime policy instances. Used by the LifetimeStrategy when instantiating open generic types. Create a new instance of . The new instance. The type of Lifetime manager that will be created by this factory. An implementation that uses a to figure out if an object has already been created and to update or remove that object from some backing store. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. Context of the build operation. Called during the chain of responsibility for a build operation. The PostBuildUp method is called when the chain has finished the PreBuildUp phase and executes in reverse order from the PreBuildUp calls. Context of the build operation. Represents a chain of responsibility for builder strategies partitioned by stages. The stage enumeration to partition the strategies. Initialize a new instance of the class. Initialize a new instance of the class with an inner strategy chain to use when building. The inner strategy chain to use first when finding strategies in the build operation. Adds a strategy to the chain at a particular stage. The strategy to add to the chain. The stage to add the strategy. Add a new strategy for the . The of The stage to add the strategy. Clear the current strategy chain list. This will not clear the inner strategy chain if this instance was created with one. Makes a strategy chain based on this instance. A new . Represents a chain of responsibility for builder strategies. Initialize a new instance of the class. Initialize a new instance of the class with a collection of strategies. A collection of strategies to initialize the chain. Adds a strategy to the chain. The strategy to add to the chain. Adds strategies to the chain. The strategies to add to the chain. Reverse the order of the strategy chain. The reversed strategy chain. Execute this strategy chain against the given context to build up. Context for the build processes. The build up object Execute this strategy chain against the given context, calling the TearDown methods on the strategies. Context for the teardown process. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Build key used to combine a type object with a string name. Used by ObjectBuilder to indicate exactly what is being built. Create a new instance with the given type and name. to build. Key to use to look up type mappings and singletons. Create a new instance for the default buildup of the given type. to build. This helper method creates a new instance. It is initialized for the default key for the given type. Type to build. A new instance. This helper method creates a new instance for the given type and key. Type to build Key to use to look up type mappings and singletons. A new instance initialized with the given type and name. Compare two instances. Two instances compare equal if they contain the same name and the same type. Also, comparing against a different type will also return false. Object to compare to. True if the two keys are equal, false if not. Calculate a hash code for this instance. A hash code. Compare two instances for equality. Two instances compare equal if they contain the same name and the same type. First of the two keys to compare. Second of the two keys to compare. True if the values of the keys are the same, else false. Compare two instances for inequality. Two instances compare equal if they contain the same name and the same type. If either field differs the keys are not equal. First of the two keys to compare. Second of the two keys to compare. false if the values of the keys are the same, else true. Formats the build key as a string (primarily for debugging). A readable string representation of the build key. Return the stored in this build key. The type to build. Returns the name stored in this build key. The name to use when building. A generic version of so that you can new up a key using generic syntax. Type for the key. Construct a new that specifies the given type. Construct a new that specifies the given type and name. Name for the key. A series of helper methods to deal with sequences - objects that implement . A function that turns an arbitrary parameter list into an . Type of arguments. The items to put into the collection. An array that contains the values of the . Given two sequences, return a new sequence containing the corresponding values from each one. Type of first sequence. Type of second sequence. First sequence of items. Second sequence of items. New sequence of pairs. This sequence ends when the shorter of sequence1 and sequence2 does. A that lets you register a delegate with the container to create an object, rather than calling the object's constructor. Base class for all extension objects. The container calls this method when the extension is added. A instance that gives the extension access to the internals of the container. Initial the container with this extension's functionality. When overridden in a derived class, this method will modify the given by adding strategies, policies, etc. to install it's functions into the container. Removes the extension's functions from the container. This method is called when extensions are being removed from the container. It can be used to do things like disconnect event handlers or clean up member state. You do not need to remove strategies or policies here; the container will do that automatically. The default implementation of this method does nothing. The container this extension has been added to. The that this extension has been added to. The object used to manipulate the inner state of the container. Initialize this extension. This particular extension requires no initialization work. Register the given factory delegate to be called when the container is asked to resolve and . Type that will be requested from the container. The name that will be used when requesting to resolve this type. Delegate to invoke to create the instance. The container extension object this method was invoked on. Register the given factory delegate to be called when the container is asked to resolve . Type that will be requested from the container. Delegate to invoke to create the instance. The container extension object this method was invoked on. An implementation of that acts as a decorator over another . This checks to see if the current type being built is the right one before checking the inner . Create an instance of Type to check for. Inner override to check after type matches. Return a that can be used to give a value for the given desired dependency. Current build context. Type of dependency desired. a object if this override applies, null if not. A convenience version of that lets you specify the type to construct via generics syntax. Type to check for. Create an instance of . Inner override to check after type matches. Extension class that adds a set of convenience overloads to the interface. Register a type with specific members to be injected. Type this registration is for. Container to configure. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container. This method is used to tell the container that when asked for type , actually return an instance of type . This is very useful for getting instances of interfaces. This overload registers a default mapping and transient lifetime. that will be requested. that will actually be returned. Container to configure. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container, where the created instances will use the given . that will be requested. that will actually be returned. Container to configure. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container. This method is used to tell the container that when asked for type , actually return an instance of type . This is very useful for getting instances of interfaces. that will be requested. that will actually be returned. Container to configure. Name of this mapping. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container, where the created instances will use the given . that will be requested. that will actually be returned. Container to configure. Name to use for registration, null if a default registration. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type with the container. No type mapping is performed for this type. The type to apply the to. Container to configure. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type with the container. No type mapping is performed for this type. The type to configure injection on. Container to configure. Name that will be used to request the type. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type and name with the container. No type mapping is performed for this type. The type to apply the to. Container to configure. Name that will be used to request the type. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type with specific members to be injected. Container to configure. Type this registration is for. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container. This method is used to tell the container that when asked for type , actually return an instance of type . This is very useful for getting instances of interfaces. This overload registers a default mapping. Container to configure. that will be requested. that will actually be returned. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container. This method is used to tell the container that when asked for type , actually return an instance of type . This is very useful for getting instances of interfaces. Container to configure. that will be requested. that will actually be returned. Name to use for registration, null if a default registration. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a type mapping with the container, where the created instances will use the given . Container to configure. that will be requested. that will actually be returned. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type and name with the container. No type mapping is performed for this type. Container to configure. The to apply the to. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type and name with the container. No type mapping is performed for this type. Container to configure. The to configure in the container. Name to use for registration, null if a default registration. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register a for the given type and name with the container. No type mapping is performed for this type. Container to configure. The to apply the to. Name to use for registration, null if a default registration. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload does a default registration and has the container take over the lifetime of the instance. Type of instance to register (may be an implemented interface instead of the full type). Container to configure. Object to returned. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload does a default registration (name = null). Type of instance to register (may be an implemented interface instead of the full type). Container to configure. Object to returned. object that controls how this instance will be managed by the container. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload automatically has the container take ownership of the . Type of instance to register (may be an implemented interface instead of the full type). Object to returned. Container to configure. Name for registration. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. Container to configure. Name for registration. object that controls how this instance will be managed by the container. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload does a default registration and has the container take over the lifetime of the instance. Container to configure. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload does a default registration (name = null). Container to configure. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. object that controls how this instance will be managed by the container. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. This overload automatically has the container take ownership of the . Container to configure. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. Name for registration. The object that this method was called on (this in C#, Me in Visual Basic). Resolve an instance of the default requested type from the container. of object to get from the container. Container to resolve from. Any overrides for the resolve call. The retrieved object. Resolve an instance of the requested type with the given name from the container. of object to get from the container. Container to resolve from. Name of the object to retrieve. Any overrides for the resolve call. The retrieved object. Resolve an instance of the default requested type from the container. Container to resolve from. of object to get from the container. Any overrides for the resolve call. The retrieved object. Return instances of all registered types requested. This method is useful if you've registered multiple types with the same but different names. Be aware that this method does NOT return an instance for the default (unnamed) registration. The type requested. Container to resolve from. Any overrides for the resolve calls. Set of objects of type . Run an existing object through the container and perform injection on it. This method is useful when you don't control the construction of an instance (ASP.NET pages or objects created via XAML, for instance) but you still want properties and other injection performed. This overload uses the default registrations. of object to perform injection on. Container to resolve through. Instance to build up. Any overrides for the buildup. The resulting object. By default, this will be , but container extensions may add things like automatic proxy creation which would cause this to return a different object (but still type compatible with ). Run an existing object through the container and perform injection on it. This method is useful when you don't control the construction of an instance (ASP.NET pages or objects created via XAML, for instance) but you still want properties and other injection performed. of object to perform injection on. Container to resolve through. Instance to build up. name to use when looking up the typemappings and other configurations. Any overrides for the Buildup. The resulting object. By default, this will be , but container extensions may add things like automatic proxy creation which would cause this to return a different object (but still type compatible with ). Run an existing object through the container and perform injection on it. This method is useful when you don't control the construction of an instance (ASP.NET pages or objects created via XAML, for instance) but you still want properties and other injection performed. This overload uses the default registrations. Container to resolve through. of object to perform injection on. Instance to build up. Any overrides for the Buildup. The resulting object. By default, this will be , but container extensions may add things like automatic proxy creation which would cause this to return a different object (but still type compatible with ). Creates a new extension object and adds it to the container. Type of to add. The extension type will be resolved from within the supplied . Container to add the extension to. The object that this method was called on (this in C#, Me in Visual Basic). Resolve access to a configuration interface exposed by an extension. Extensions can expose configuration interfaces as well as adding strategies and policies to the container. This method walks the list of added extensions and returns the first one that implements the requested type. The configuration interface required. Container to configure. The requested extension's configuration interface, or null if not found. Check if a particular type has been registered with the container with the default name. Container to inspect. Type to check registration for. True if this type has been registered, false if not. Check if a particular type/name pair has been registered with the container. Container to inspect. Type to check registration for. Name to check registration for. True if this type/name pair has been registered, false if not. Check if a particular type has been registered with the container with the default name. Type to check registration for. Container to inspect. True if this type has been registered, false if not. Check if a particular type/name pair has been registered with the container. Type to check registration for. Container to inspect. Name to check registration for. True if this type/name pair has been registered, false if not. The class provides the means for extension objects to manipulate the internal state of the . Store a type/name pair for later resolution. When users register type mappings (or other things) with a named key, this method allows you to register that name with the container so that when the method is called, that name is included in the list that is returned. to register. Name associated with that type. The container that this context is associated with. The object. The strategies this container uses. The that the container uses to build objects. The strategies this container uses to construct build plans. The that this container uses when creating build plans. The policies this container uses. The the that container uses to build objects. The that this container uses. The is used to manage objects that the container is managing. This event is raised when the method, or one of its overloads, is called. This event is raised when the method, or one of its overloads, is called. This event is raised when the method is called, providing the newly created child container to extensions to act on as they see fit. An EventArgs class that holds a string Name. Create a new with a null name. Create a new with the given name. Name to store. The name. Name used for this EventArg object. Event argument class for the event. Create a new instance of . Type to map from. Type to map to. Name for the registration. to manage instances. Type to map from. Type to map to. to manage instances. Event argument class for the event. Create a default instance. Create a instance initialized with the given arguments. Type of instance being registered. The instance object itself. Name to register under, null if default registration. object that handles how the instance will be owned. Type of instance being registered. Type of instance being registered. Instance object being registered. Instance object being registered that controls ownership of this instance. A that lets you specify that an instance of a generic type parameter should be resolved. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. name to use when looking up in the container. Return a instance that will return this types value for the parameter. The actual type to resolve. The resolution key. The . A that lets you specify that an array containing the registered instances of a generic type parameter should be resolved. Create a new instance that specifies that the given named generic parameter should be resolved. The generic parameter name to resolve. The values for the elements, that will be converted to objects. Test to see if this parameter value has a matching type for the given type. Type to check. True if this parameter value is compatible with type , false if not. A type is considered compatible if it is an array type of rank one and its element type is a generic type parameter with a name matching this generic parameter name configured for the receiver. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . Name for the type represented by this . This may be an actual type name or a generic argument name. A Unity container extension that allows you to configure which constructors, properties, and methods get injected via an API rather than through attributes. Initial the container with this extension's functionality. When overridden in a derived class, this method will modify the given by adding strategies, policies, etc. to install it's functions into the container. API to configure the injection settings for a particular type. Type the injection is being configured for. Objects containing the details on which members to inject and how. This extension object. API to configure the injection settings for a particular type/name pair. Type the injection is being configured for. Name of registration Objects containing the details on which members to inject and how. This extension object. API to configure the injection settings for a particular type. Type to configure. Objects containing the details on which members to inject and how. This extension object. API to configure the injection settings for a particular type/name pair. Type to configure. Name of registration. Objects containing the details on which members to inject and how. This extension object. API to configure the injection settings for a particular type/name pair. Type of interface/base class being registered (may be null). Type of actual implementation class being registered. Name of registration. Objects containing the details on which members to inject and how. This extension object. A class that holds the collection of information for a constructor, so that the container can be configured to call this constructor. Create a new instance of that looks for a constructor with the given set of parameters. The values for the parameters, that will be converted to objects. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Interface registered, ignored in this implementation. Type to register. Name used to resolve the type object. Policy list to add policies to. An that configures the container to call a method as part of buildup. Create a new instance which will configure the container to call the given methods with the given parameters. Name of the method to call. Parameter values for the method. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Type of interface registered, ignored in this implementation. Type to register. Name used to resolve the type object. Policy list to add policies to. A small function to handle name matching. You can override this to do things like case insensitive comparisons. MethodInfo for the method you're checking. Name of the method you're looking for. True if a match, false if not. A class that holds on to the given value and provides the required when the container is configured. Create an instance of that stores the given value, using the runtime type of that value as the type of the parameter. Value to be injected for this parameter. Create an instance of that stores the given value, associated with the given type. Type of the parameter. Value of the parameter Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . A generic version of that makes it a little easier to specify the type of the parameter. Type of parameter. Create a new . Value for the parameter. This class stores information about which properties to inject, and will configure the container accordingly. Configure the container to inject the given property name, resolving the value via the container. Name of the property to inject. Configure the container to inject the given property name, using the value supplied. This value is converted to an object using the rules defined by the method. Name of property to inject. Value for property. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Interface being registered, ignored in this implementation. Type to register. Name used to resolve the type object. Policy list to add policies to. A class that stores a type, and generates a resolver object that resolves all the named instances or the type registered in a container. Construct a new that resolves to the given element type and collection of element values. The type of elements to resolve. The values for the elements, that will be converted to objects. Construct a new that resolves to the given array and element types and collection of element values. The type for the array of elements to resolve. The type of elements to resolve. The values for the elements, that will be converted to objects. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . A generic version of for convenience when creating them by hand. Type of the elements for the array of the parameter. Construct a new that resolves to the given element generic type with the given element values. The values for the elements, that will be converted to objects. Interface defining the behavior of the Unity dependency injection container. Register a type mapping with the container, where the created instances will use the given . that will be requested. that will actually be returned. Name to use for registration, null if a default registration. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). Register an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. Name for registration. object that controls how this instance will be managed by the container. The object that this method was called on (this in C#, Me in Visual Basic). Resolve an instance of the requested type with the given name from the container. of object to get from the container. Name of the object to retrieve. Any overrides for the resolve call. The retrieved object. Return instances of all registered types requested. This method is useful if you've registered multiple types with the same but different names. Be aware that this method does NOT return an instance for the default (unnamed) registration. The type requested. Any overrides for the resolve calls. Set of objects of type . Run an existing object through the container and perform injection on it. This method is useful when you don't control the construction of an instance (ASP.NET pages or objects created via XAML, for instance) but you still want properties and other injection performed. of object to perform injection on. Instance to build up. name to use when looking up the TypeMappings and other configurations. Any overrides for the resolve calls. The resulting object. By default, this will be , but container extensions may add things like automatic proxy creation which would cause this to return a different object (but still type compatible with ). Run an existing object through the container, and clean it up. The object to tear down. Add an extension object to the container. to add. The object that this method was called on (this in C#, Me in Visual Basic). Resolve access to a configuration interface exposed by an extension. Extensions can expose configuration interfaces as well as adding strategies and policies to the container. This method walks the list of added extensions and returns the first one that implements the requested type. of configuration interface required. The requested extension's configuration interface, or null if not found. Remove all installed extensions from this container. This method removes all extensions from the container, including the default ones that implement the out-of-the-box behavior. After this method, if you want to use the container again you will need to either read the default extensions or replace them with your own. The registered instances and singletons that have already been set up in this container do not get removed. The object that this method was called on (this in C#, Me in Visual Basic). Create a child container. A child container shares the parent's configuration, but can be configured with different settings or lifetime. The new child container. The parent of this container. The parent container, or null if this container doesn't have one. Get a sequence of that describe the current state of the container. A that holds a weak reference to it's managed instance. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. The object being stored. Remove the given object from backing store. An implementation of that creates instances of the type of the given Lifetime Manager by resolving them through the container. Create a new that will return instances of the given type, creating them by resolving through the container. Container to resolve with. Type of LifetimeManager to create. Create a new instance of . The new instance. The type of Lifetime manager that will be created by this factory. A that holds the instances given to it, keeping one instance per thread. This LifetimeManager does not dispose the instances it holds. Initializes a new instance of the class. Retrieve a value from the backing store associated with this Lifetime policy for the current thread. the object desired, or if no such object is currently stored for the current thread. Stores the given value into backing store for retrieval later when requested in the current thread. The object being stored. Remove the given object from backing store. Not implemented for this lifetime manager. An implementation that does nothing, thus ensuring that instances are created new every time. Retrieve a value from the backing store associated with this Lifetime policy. the object desired, or null if no such object is currently stored. Stores the given value into backing store for retrieval later. The object being stored. Remove the given object from backing store. This strategy implements the logic that will call container.ResolveAll when an array parameter is detected. Do the PreBuildUp stage of construction. This is where the actual work is performed. Current build context. An implementation of that is aware of the build keys used by the Unity container. Create a instance for the given . This implementation looks for the Unity on the parameter and uses it to create an instance of for this parameter. Parameter to create the resolver for. The resolver object. An implementation of that is aware of the build keys used by the Unity container. Create a instance for the given . Parameter to create the resolver for. The resolver object. An implementation of that is aware of the build keys used by the unity container. Create a for the given property. Property to create resolver for. The resolver object. A implementation that returns the value set in the constructor. Create a new instance of which will return the given value when resolved. The value to return. Get the value for a dependency. Current build context. The value for the dependency. An implementation of that stores a type and name, and at resolution time puts them together into a . Create an instance of with the given type and name. The type. The name (may be null). Resolve the value for a dependency. Current build context. The value for the dependency. The type that this resolver resolves. The name that this resolver resolves. An implementation of that resolves to to an array populated with the values that result from resolving other instances of . Create an instance of with the given type and a collection of instances to use when populating the result. The type. The resolver policies to use when populating an array. Resolve the value for a dependency. Current build context. An array populated with the results of resolving the resolver policies. An implementation of that selects the given constructor and creates the appropriate resolvers to call it with the specified parameters. Create an instance of that will return the given constructor, being passed the given injection values as parameters. The constructor to call. Set of objects that describes how to obtain the values for the constructor parameters. Choose the constructor to call for the given type. Current build context The to add any generated resolver objects into. The chosen constructor. Helper class for implementing selector policies that need to set up dependency resolver policies. Add dependency resolvers to the parameter set. Type that's currently being built (used to resolve open generics). PolicyList to add the resolvers to. Objects supplying the dependency resolvers. Result object to store the keys in. A implementation that calls the specific methods with the given parameters. Add the given method and parameter collection to the list of methods that will be returned when the selector's method is called. Method to call. sequence of objects that describe how to create the method parameter values. Return the sequence of methods to call while building the target object. Current build context. The to add any generated resolver objects into. Sequence of methods to call. An implementation of which returns the set of specific properties that the selector was configured with. Add a property that will be par of the set returned when the is called. The property to set. object describing how to create the value to inject. Returns sequence of properties on the given type that should be set as part of building that object. Current build context. The to add any generated resolver objects into. Sequence of objects that contain the properties to set. The exception thrown by the Unity container when an attempt to resolve a dependency fails. Create a new that records the exception for the given type and name. Type requested from the container. Name requested from the container. The actual exception that caused the failure of the build. The build context representing the failed operation. The type that was being requested from the container at the time of failure. The name that was being requested from the container at the time of failure. A class that stores a name and type, and generates a resolver object that resolves the parameter via the container. Construct a new that resolves to the given type. Type of this parameter. Construct a new that resolves the given type and name. Type of this parameter. Name to use when resolving parameter. Return a instance that will return this types value for the parameter. Type that contains the member that needs this parameter. Used to resolve open generic parameters. The . A generic version of for convenience when creating them by hand. Type of the parameter Create a new for the given generic type and the default name. Create a new for the given generic type and name. Name to use to resolve this parameter. An implementation of that wraps a Unity container. Initializes a new instance of the class for a container. The to wrap with the interface implementation. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. 2 When implemented by inheriting classes, this method will do the actual work of resolving the requested service instance. Type of instance requested.Name of registered service you want. May be null. The requested service instance. When implemented by inheriting classes, this method will do the actual work of resolving all the requested service instances. Type of service requested. Sequence of service instance objects. A static helper class that includes various parameter checking routines. Throws if the given argument is null. if tested value if null. Argument value to test. Name of the argument being tested. Throws an exception if the tested string argument is null or the empty string. Thrown if string value is null. Thrown if the string is empty Argument value to check. Name of argument being checked. Verifies that an argument type is assignable from the provided type (meaning interfaces are implemented, or classes exist in the base class hierarchy). The argument type that will be assigned to. The type of the value being assigned. Argument name. Verifies that an argument instance is assignable from the provided type (meaning interfaces are implemented, or classes exist in the base class hierarchy, or instance can be assigned through a runtime wrapper, as is the case for COM Objects). The argument type that will be assigned to. The instance that will be assigned. Argument name. A helper class to manage the names that get registered in the container The build stages we use in the Unity container strategy pipeline. First stage. By default, nothing happens here. Second stage. Type mapping occurs here. Third stage. lifetime managers are checked here, and if they're available the rest of the pipeline is skipped. Fourth stage. Reflection over constructors, properties, etc. is performed here. Fifth stage. Instance creation happens here. Sixth stage. Property sets and method injection happens here. Seventh and final stage. By default, nothing happens here. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to The type {0} has multiple constructors of length {1}. Unable to disambiguate.. Looks up a localized string similar to The provided string argument must not be empty.. Looks up a localized string similar to The current build operation (build key {2}) failed: {3} (Strategy type {0}, index {1}). Looks up a localized string similar to The current type, {0}, is an abstract class and cannot be constructed. Are you missing a type mapping?. Looks up a localized string similar to The current type, {0}, is delegate and cannot be constructed. Unity only supports resolving Func<T> and Func<IEnumerable<T>> by default.. Looks up a localized string similar to The current type, {0}, is an interface and cannot be constructed. Are you missing a type mapping?. Looks up a localized string similar to Cannot extract type from build key {0}.. Looks up a localized string similar to The method {0}.{1}({2}) is an open generic method. Open generic methods cannot be injected.. Looks up a localized string similar to The property {0} on type {1} is an indexer. Indexed properties cannot be injected.. Looks up a localized string similar to The method {1} on type {0} has an out parameter. Injection cannot be performed.. Looks up a localized string similar to The method {0}.{1}({2}) has at least one out parameter. Methods with out parameters cannot be injected.. Looks up a localized string similar to The method {0}.{1}({2}) has at least one ref parameter.Methods with ref parameters cannot be injected.. Looks up a localized string similar to The method {1} on type {0} is marked for injection, but it is an open generic method. Injection cannot be performed.. Looks up a localized string similar to The method {0}.{1}({2}) is static. Static methods cannot be injected.. Looks up a localized string similar to The type {0} is an open generic type. An open generic type cannot be resolved.. Looks up a localized string similar to Resolving parameter "{0}" of constructor {1}. Looks up a localized string similar to The parameter {0} could not be resolved when attempting to call constructor {1}.. Looks up a localized string similar to Parameter type inference does not work for null values. Indicate the parameter type explicitly using a properly configured instance of the InjectionParameter or InjectionParameter<T> classes.. Looks up a localized string similar to Calling constructor {0}. Looks up a localized string similar to Calling method {0}.{1}. Looks up a localized string similar to An item with the given key is already present in the dictionary.. Looks up a localized string similar to The lifetime manager is already registered. Lifetime managers cannot be reused, please create a new one.. Looks up a localized string similar to The override marker build plan policy has been invoked. This should never happen, looks like a bug in the container.. Looks up a localized string similar to Resolving parameter "{0}" of method {1}.{2}. Looks up a localized string similar to The value for parameter "{1}" of method {0} could not be resolved. . Looks up a localized string similar to Could not resolve dependency for build key {0}.. Looks up a localized string similar to The type {0} has multiple constructors marked with the InjectionConstructor attribute. Unable to disambiguate.. Looks up a localized string similar to The supplied type {0} must be an open generic type.. Looks up a localized string similar to The supplied type {0} does not have the same number of generic arguments as the target type {1}.. Looks up a localized string similar to The type {0} does not have an accessible constructor.. Looks up a localized string similar to The type {0} does not have a generic argument named "{1}". Looks up a localized string similar to while resolving. Looks up a localized string similar to The type {0} does not have a constructor that takes the parameters ({1}).. Looks up a localized string similar to The type {0} does not have a public method named {1} that takes the parameters ({2}).. Looks up a localized string similar to The type {0} does not contain an instance property named {1}.. Looks up a localized string similar to The type {0} is not a generic type, and you are attempting to inject a generic parameter named "{1}".. Looks up a localized string similar to The type {0} is not an array type with rank 1, and you are attempting to use a [DependencyArray] attribute on a parameter or property with this type.. Looks up a localized string similar to Optional dependencies must be reference types. The type {0} is a value type.. Looks up a localized string similar to The property {0} on type {1} is not settable.. Looks up a localized string similar to The property {0} on type {1} is of type {2}, and cannot be injected with a value of type {3}.. Looks up a localized string similar to The value for the property "{0}" could not be resolved.. Looks up a localized string similar to The provided string argument must not be empty.. Looks up a localized string similar to Resolution of the dependency failed, type = "{0}", name = "{1}". Exception occurred while: {2}. Exception is: {3} - {4} ----------------------------------------------- At the time of the exception, the container was: . Looks up a localized string similar to Resolving {0},{1}. Looks up a localized string similar to Resolving {0},{1} (mapped from {2}, {3}). Looks up a localized string similar to Resolving value for property {0}.{1}. Looks up a localized string similar to The constructor {1} selected for type {0} has ref or out parameters. Such parameters are not supported for constructor injection.. Looks up a localized string similar to Setting value for property {0}.{1}. Looks up a localized string similar to The type {0} cannot be constructed. You must configure the container to supply this value.. Looks up a localized string similar to The type {1} cannot be assigned to variables of type {0}.. Looks up a localized string similar to <unknown>. A simple, extensible dependency injection container. Create a default . Create a with the given parent container. The parent . The current object will apply its own settings first, and then check the parent for additional ones. RegisterType a type mapping with the container, where the created instances will use the given . that will be requested. that will actually be returned. Name to use for registration, null if a default registration. The that controls the lifetime of the returned instance. Injection configuration objects. The object that this method was called on (this in C#, Me in Visual Basic). RegisterType an instance with the container. Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container. Type of instance to register (may be an implemented interface instead of the full type). Object to returned. Name for registration. If true, the container will take over the lifetime of the instance, calling Dispose on it (if it's ) when the container is Disposed. If false, container will not maintain a strong reference to . User is responsible for disposing instance, and for keeping the instance from being garbage collected. The object that this method was called on (this in C#, Me in Visual Basic). Get an instance of the requested type with the given name from the container. of object to get from the container. Name of the object to retrieve. Any overrides for the resolve call. The retrieved object. Return instances of all registered types requested. This method is useful if you've registered multiple types with the same but different names. Be aware that this method does NOT return an instance for the default (unnamed) registration. The type requested. Any overrides for the resolve calls. Set of objects of type . Run an existing object through the container and perform injection on it. This method is useful when you don't control the construction of an instance (ASP.NET pages or objects created via XAML, for instance) but you still want properties and other injection performed. of object to perform injection on. Instance to build up. name to use when looking up the typemappings and other configurations. Any overrides for the buildup. The resulting object. By default, this will be , but container extensions may add things like automatic proxy creation which would cause this to return a different object (but still type compatible with ). Run an existing object through the container, and clean it up. The object to tear down. Add an extension object to the container. to add. The object that this method was called on (this in C#, Me in Visual Basic). Get access to a configuration interface exposed by an extension. Extensions can expose configuration interfaces as well as adding strategies and policies to the container. This method walks the list of added extensions and returns the first one that implements the requested type. of configuration interface required. The requested extension's configuration interface, or null if not found. Remove all installed extensions from this container. This method removes all extensions from the container, including the default ones that implement the out-of-the-box behavior. After this method, if you want to use the container again you will need to either read the default extensions or replace them with your own. The registered instances and singletons that have already been set up in this container do not get removed. The object that this method was called on (this in C#, Me in Visual Basic). Create a child container. A child container shares the parent's configuration, but can be configured with different settings or lifetime. The new child container. Dispose this container instance. Disposing the container also disposes any child containers, and disposes any instances whose lifetimes are managed by the container. Dispose this container instance. This class doesn't have a finalizer, so will always be true. True if being called from the IDisposable.Dispose method, false if being called from a finalizer. Remove policies associated with building this type. This removes the compiled build plan so that it can be rebuilt with the new settings the next time this type is resolved. Type of object to clear the plan for. Name the object is being registered with. The parent of this container. The parent container, or null if this container doesn't have one. Get a sequence of that describe the current state of the container. Implementation of the ExtensionContext that is actually used by the UnityContainer implementation. This is a nested class so that it can access state in the container that would otherwise be inaccessible. This event is raised when the method, or one of its overloads, is called. This extension supplies the default behavior of the UnityContainer API by handling the context events and setting policies. Install the default container behavior into the container. Remove the default behavior from the container. This extension installs the default strategies and policies into the container to implement the standard behavior of the Unity container. Add the default ObjectBuilder strategies & policies to the container. Helper class to wrap common reflection stuff dealing with methods. Create a new instance that lets us do more reflection stuff on that method. The method to reflect on. Given our set of generic type arguments, The generic type arguments. An array with closed parameter types. Returns true if any of the parameters of this method are open generics. Return the of each parameter for this method. Sequence of objects, one for each parameter in order. A helper class that encapsulates two different data items together into a a single item. Create a new containing the two values give. First value Second value The first value of the pair. The second value of the pair. Container for a Pair helper method. A helper factory method that lets users take advantage of type inference. Type of first value. Type of second value. First value. Second value. A new instance. A utility class that handles the logic of matching parameter lists, so we can find the right constructor and method overloads. Create a new that will attempt to match the given parameter types. Target parameters to match against. Tests to see if the given set of types matches the ones we're looking for. parameter list to look for. true if they match, false if they don't. Tests to see if the given set of types matches the ones we're looking for. Candidate method signature to look for. True if they match, false if they don't. Another reflection helper class that has extra methods for dealing with ParameterInfo. A small helper class to encapsulate details of the reflection API, particularly around generics. Create a new instance that lets you look at information about the given type. Type to do reflection on. Test the given object, looking at the parameters. Determine if any of the parameters are open generic types that need type attributes filled in. The method to check. True if any of the parameters are open generics. False if not. If this type is an open generic, use the given array to determine what the required closed type is and return that. If the parameter is not an open type, just return this parameter's type. Type arguments to substitute in for the open type parameters. Corresponding closed type of this parameter. Given a generic argument name, return the corresponding type for this closed type. For example, if the current type is SomeType<User>, and the corresponding definition was SomeType<TSomething>, calling this method and passing "TSomething" will return typeof(User). Name of the generic parameter. Type of the corresponding generic parameter, or null if there is no matching name. The object we're reflecting over. Is this type generic? Is this type an open generic (no type parameter specified) Is this type an array type? Is this type an array of generic elements? The type of the elements in this type (if it's an array). Returns all the public constructors defined for the current reflected . An enumeration of ConstructorInfo objects representing all the public instance constructors defined for the current reflected , but not including the type initializer (static constructor). Create a new instance of that lets you query information about the given ParameterInfo object. Parameter to query. A set of helper methods to pick through lambdas and pull out from them. Pull out a object from an expression of the form () => SomeClass.SomeMethod() Expression describing the method to call. Corresponding . Pull out a object from an expression of the form x => x.SomeMethod() The type where the method is defined. Expression describing the method to call. Corresponding . Pull out a object for the get method from an expression of the form x => x.SomeProperty The type where the method is defined. The type for the property. Expression describing the property for which the get method is to be extracted. Corresponding . Pull out a object for the set method from an expression of the form x => x.SomeProperty The type where the method is defined. The type for the property. Expression describing the property for which the set method is to be extracted. Corresponding . Pull out a object from an expression of the form () => new SomeType() The type where the constructor is defined. Expression invoking the desired constructor. Corresponding . ================================================ FILE: packages/Unity.Interception.3.5.1404.0/lib/Net45/Microsoft.Practices.Unity.Interception.Configuration.xml ================================================ Microsoft.Practices.Unity.Interception.Configuration Configuration element that lets you specify additional interfaces to add when this type is intercepted. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Return the set of s that are needed to configure the container according to this configuration element. Container that is being configured. Type that is being registered. Type that is being mapped to. Name this registration is under. One or more objects that should be applied to the container registration. Type of interface to add. Each element must have a unique key, which is generated by the subclasses. Configuration element representing a call handler. Base class for the two children of the Policy element: MatchingRuleElement and CallHandlerElement. These configuration elements have a required "name" attribute, an optional "type" attribute, and optional child elements <lifetime> and <injection> Elements without a value for the type attribute can only have a value for the name attribute, and indicate that the represented handler or rule is configured elsewhere and that a reference to the given name must be added to the policy to be resolved, while elements with a value for the type attribute indicate how the represented handler or rule should be built and can optionally specify lifetime management and injection configuration. This element is similar to the , except that it does not provide an extension point for arbitrary configuration. Reads XML from the configuration file. The that reads from the configuration file. true to serialize only the collection key properties; otherwise, false. The element to read is locked. - or - An attribute of the current node is not recognized. - or - The lock status of the current node cannot be determined. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Name of this item Type that implements this matching rule or call handler. Injection members that control how this item is created. Lifetime manager for this item. A collection of s for configuration. Gets the element key for a specified configuration element when overridden in a derived class. An that acts as the key for the specified . The to return the key for. Causes the configuration system to throw an exception. true if the unrecognized element was deserialized successfully; otherwise, false. The default is false. The name of the unrecognized element. An input stream that reads XML from the configuration file. The element specified in is the <clear> element. starts with the reserved prefix "config" or "lock". Retrieve a call handler element from the collection by name. Name to look up. The rule, or null if not in the collection. The <default> element that appears inside an <interceptor> element. Base class for the default and key elements that can occur inside the <interceptor> element. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Actually register the interceptor against this type. Container to configure. interceptor to register. Type name that this interceptor will be registered for. Return the type object that is resolved from the property. The type object. Actually register the interceptor against this type. Container to configure. interceptor to register. Configuration element for specifying interception behaviors for a type. Reads XML from the configuration file. The that reads from the configuration file. true to serialize only the collection key properties; otherwise, false. The element to read is locked. - or - An attribute of the current node is not recognized. - or - The lock status of the current node cannot be determined. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Return the set of s that are needed to configure the container according to this configuration element. Container that is being configured. Type that is being registered. Type that is being mapped to. Name this registration is under. One or more objects that should be applied to the container registration. Type of behavior to add. Name of behavior to resolve. Should this behavior be configured as a default behavior for this type, or specifically for this type/name pair only? Each element must have a unique key, which is generated by the subclasses. Section extension class used to add the elements needed to configure Unity interception to the configuration schema. Add the extensions to the section via the context. Context object that can be used to add elements and aliases. A configuration element that contains the top-level container configuration information for interception - handler policies and global interceptor definitions. Gets a value indicating whether an unknown element is encountered during deserialization. true when an unknown element is encountered while deserializing; otherwise, false. The name of the unknown subelement. The being used for deserialization. The element identified by is locked. - or - One or more of the element's attributes is locked. - or - is unrecognized, or the element has an unrecognized attribute. - or - The element has a Boolean attribute with an invalid value. - or - An attempt was made to deserialize a property more than once. - or - An attempt was made to deserialize a property that is not a valid member of the element. - or - The element cannot contain a CDATA or text element. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Apply this element's configuration to the given . Container to configure. Policies defined for this container. Configuration element that lets you configure what interceptor to use for a type. Initialize a new . Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Return the set of s that are needed to configure the container according to this configuration element. Container that is being configured. Type that is being registered. Type that is being mapped to. Name this registration is under. One or more objects that should be applied to the container registration. Type name for the interceptor to apply. Name to use when resolving interceptors from the container. Should this interceptor be registered as the default for the contained type, or only for this particular type/name pair? Each element must have a unique key, which is generated by the subclasses. A collection of objects as shown in configuration. When overridden in a derived class, creates a new . A new . Gets the element key for a specified configuration element when overridden in a derived class. An that acts as the key for the specified . The to return the key for. Configuration element that provides a top-level element for configuration interceptors for types in a container. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Apply this element's configuration to the given . Container to configure. The various child elements that are contained in this element. Configuration element that represents the configuration for a specific interceptor, as presented in the config file inside the <interceptors> element. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Gets a value indicating whether an unknown element is encountered during deserialization. true when an unknown element is encountered while deserializing; otherwise, false. The name of the unknown subelement. The being used for deserialization. The element identified by is locked. - or - One or more of the element's attributes is locked. - or - is unrecognized, or the element has an unrecognized attribute. - or - The element has a Boolean attribute with an invalid value. - or - An attempt was made to deserialize a property more than once. - or - An attempt was made to deserialize a property that is not a valid member of the element. - or - The element cannot contain a CDATA or text element. Type of interceptor to configure. The types that this interceptor will be registered against. Any value passed to the type converter. Type converter to use to create the interceptor, if any. A collection of objects as stored in configuration. Gets the element key for a specified configuration element when overridden in a derived class. An that acts as the key for the specified . The to return the key for. The <key> element that occurs inside an <interceptor> element Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Actually register the interceptor against this type. Container to configure. interceptor to register. Name registration should be under. To register under the default, leave blank. A configuration element representing a matching rule. A collection of s for configuration. Gets the element key for a specified configuration element when overridden in a derived class. An that acts as the key for the specified . The to return the key for. Causes the configuration system to throw an exception. true if the unrecognized element was deserialized successfully; otherwise, false. The default is false. The name of the unrecognized element. An input stream that reads XML from the configuration file. The element specified in is the <clear> element. starts with the reserved prefix "config" or "lock". Retrieve a matching rule element from the collection by name. Name to look up. The rule, or null if not in the collection. Configuration element for building up an interception policy. Gets a value indicating whether an unknown element is encountered during deserialization. true when an unknown element is encountered while deserializing; otherwise, false. The name of the unknown subelement. The being used for deserialization. The element identified by is locked. - or - One or more of the element's attributes is locked. - or - is unrecognized, or the element has an unrecognized attribute. - or - The element has a Boolean attribute with an invalid value. - or - An attempt was made to deserialize a property more than once. - or - An attempt was made to deserialize a property that is not a valid member of the element. - or - The element cannot contain a CDATA or text element. Write the contents of this element to the given . The caller of this method has already written the start element tag before calling this method, so deriving classes only need to write the element content, not the start or end tags. Writer to send XML content to. Name of this policy. Matching rules for this policy. Call handlers for this policy. A collection of in the configuration. Gets the element key for a specified configuration element when overridden in a derived class. An that acts as the key for the specified . The to return the key for. Indexer to retrieve policy element objects by name. Name of policy to get. The element. A shortcut element to enable the policy injection behavior. Return the set of s that are needed to configure the container according to this configuration element. Container that is being configured. Type that is being registered. Type that is being mapped to. Name this registration is under. One or more objects that should be applied to the container registration. Each element must have a unique key, which is generated by the subclasses. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to The abstract type InterceptorRegistrationElement cannot be created. Please create a concrete instance.. Looks up a localized string similar to The <injection/> element is not allowed on element named '{0}' because it doesn't have a type attribute.. Looks up a localized string similar to The <lifetime/> element is not allowed on element named '{0}' because it doesn't have a type attribute.. Looks up a localized string similar to The type name or alias {0} could not be resolved. Please check your configuration file and verify this type name.. Looks up a localized string similar to Cannot create instance of type {0} with a default constructor.. Looks up a localized string similar to The type name {0} resolved to type {1} is not compatible with the required type {2}.. Looks up a localized string similar to The type {0} could not be resolved to a valid type. Please double check your configuration.. Looks up a localized string similar to The interception behavior element must have at least one of the 'name' or 'type' attributes.. ================================================ FILE: packages/Unity.Interception.3.5.1404.0/lib/Net45/Microsoft.Practices.Unity.Interception.xml ================================================ Microsoft.Practices.Unity.Interception Stores information about a single to be an additional interface for an intercepted object and configures a container accordingly. Stores information about a an intercepted object and configures a container accordingly. Initializes a new instance of the with a . A descriptor representing the interception behavior to use. when is . when is not an interface. Add policies to the to configure the container to use the represented as an additional interface for the supplied parameters. Interface being registered. Type to register. Name used to resolve the type object. Policy list to add policies to. Stores information about a single to be an additional interface for an intercepted object and configures a container accordingly. The interface. Initializes a new instance of the . An injection member that lets you specify behaviors that should apply to all instances of a type in the container regardless of what name it's resolved under. Base class for injection members that allow you to add interception behaviors. Initializes a new instance of the with a . The interception behavior to use. Initializes a new instance of the with a given type/name pair. Type of behavior to Initializes a new instance of the with a given behavior type. Type of behavior to Add policies to the to configure the container to use the represented for the supplied parameters. Interface being registered. Type to register. Name used to resolve the type object. Policy list to add policies to. Get the list of behaviors for the current type so that it can be added to. Policy list. Implementation type to set behaviors for. Name type is registered under. An instance of . Create a new that will supply the given interception behavior to the container. Behavior to apply to this type. Create a new that will resolve the given type/name pair to get the behavior. Type of behavior. Name for behavior registration. Create a new that will resolve the given type to get the behavior. Type of behavior. Get the list of behaviors for the current type so that it can be added to. Policy list. Implementation type to set behaviors for. Name type is registered under. An instance of . A generic version of so you can give the behavior type using generic syntax. Type of the behavior object to apply. Construct a new instance that use the given type and name to resolve the behavior object. Name of the registration. Construct a new instance that uses the given type to resolve the behavior object. A that can be passed to the method to specify which interceptor to use. This member sets up the default interceptor for a type - this will be used regardless of which name is used to resolve the type. Construct a new instance that, when applied to a container, will register the given interceptor as the default one. Interceptor to use. Construct a new that, when applied to a container, will register the given type as the default interceptor. Type of interceptor. Name to use to resolve the interceptor. Construct a new that, when applied to a container, will register the given type as the default interceptor. Type of interceptor. Add policies to the to configure the container to call this constructor with the appropriate parameter values. Type of interface being registered. If no interface, this will be null. Type of concrete type being registered. Name used to resolve the type object. Policy list to add policies to. A generic version of so that you can specify the interceptor type using generics. Create a new instance of . Name to use when resolving interceptor. Create a new instance of . An that accumulates a sequence of instances representing the additional interfaces for an intercepted object. An that returns a sequence of instances representing the additional interfaces for an intercepted object. Gets the instances accumulated by this policy. Initializes a new instance of the class. Gets the instances accumulated by this policy. An implementation of that will resolve the interceptor through the container. An interface that determines when to intercept instances and which interceptor to use. Interceptor to use. Context for current build operation. Construct a new that will resolve the interceptor using the given build key. build key to resolve. Interceptor to use. Context for current build operation. An implementation of that will resolve the interceptor through the container. Interface that controls when and how types get intercepted. Interceptor to use to create type proxy Context for current build operation. Cache for proxied type. construct a new that will resolve the interceptor with the given . The build key to use to resolve. Interceptor to use to create type proxy Context for current build operation. Cache for proxied type. High-level API for performing interception on existing and new objects. Returns a for type which wraps the supplied . The type to intercept. The instance to intercept. The to use when creating the proxy. The interception behaviors for the new proxy. Any additional interfaces the proxy must implement. A proxy for compatible with . when is . when is . when is . when is . when cannot intercept . Returns a for type which wraps the supplied . Type to intercept. The instance to intercept. The to use when creating the proxy. The interception behaviors for the new proxy. A proxy for compatible with . when is . when is . when is . when cannot intercept . Returns a for type which wraps the supplied . The type to intercept. The instance to intercept. The to use when creating the proxy. The interception behaviors for the new proxy. Any additional interfaces the proxy must implement. A proxy for compatible with . when is . when is . when is . when is . when is . when cannot intercept . Returns a for type which wraps the supplied . The type to intercept. The instance to intercept. The to use when creating the proxy. The interception behaviors for the new proxy. A proxy for compatible with . when is . when is . when is . when is . when cannot intercept . Creates a new instance of type that is intercepted with the behaviors in . The type of the object to create. The to use when creating the proxy. The interception behaviors for the new proxy. Any additional interfaces the proxy must implement. The arguments for the creation of the new instance. An instance of a class compatible with that includes execution of the given . when is . when is . When is . when cannot intercept . Creates a new instance of type that is intercepted with the behaviors in . The type of the object to create. The to use when creating the proxy. The interception behaviors for the new proxy. The arguments for the creation of the new instance. An instance of a class compatible with that includes execution of the given . when is . when is . when cannot intercept . Creates a new instance of type that is intercepted with the behaviors in . The type of the object to create. The to use when creating the proxy. The interception behaviors for the new proxy. Any additional interfaces the instance must implement. The arguments for the creation of the new instance. An instance of a class compatible with that includes execution of the given . when is . when is . when is . when is . when cannot intercept . Creates a new instance of type that is intercepted with the behaviors in . The type of the object to create. The to use when creating the proxy. The interception behaviors for the new proxy. The arguments for the creation of the new instance. An instance of a class compatible with that includes execution of the given . when is . when is . when is . when cannot intercept . Computes the array with all the additional interfaces for the interception of an object. The interception behaviors for the new proxy. Any additional interfaces the instance must implement. An array with the required interfaces for when the interfaces are not valid. Stores information about the to be used to intercept an object and configures a container accordingly. Initializes a new instance of the class with an interceptor instance. The to use. when is . Initialize a new instance of the class with a given name and type that will be resolved to provide interception. Type of the interceptor name to use to resolve. Initialize a new instance of the class with a given type that will be resolved to provide interception. Type of the interceptor. Add policies to the to configure the container to use the represented for the supplied parameters. Interface being registered. Type to register. Name used to resolve the type object. Policy list to add policies to. Generic version of that lets you specify an interceptor type using generic syntax. Type of interceptor Initialize an instance of that will resolve the given interceptor type. Initialize an instance of that will resolve the given interceptor type and name. Name that will be used to resolve the interceptor. A simple data holder class used to store information about the current interception operation that's being set up. Useful for creating behaviors that need to know this stuff (especially the PIAB behavior). Create a new instance of that stores the given , , and . that will be used to create the intercepting type or proxy. Type that interception was requested on. Type of the object that will actually be intercepted. that will be used to create the intercepting type or proxy. Type that interception was requested on. Type of the object that will actually be intercepted. Maps types involving generic parameter types from reflected types into equivalent versions involving generated types. Initializes a new instance of the class. A constructed generic type, open or closed. The parent mapper, or . Initializes a new instance of the class. The reflected generic parameters. The generated generic parameters. Initializes a new instance of the class. The reflected generic parameters. The generated generic parameters. The parent mapper, or . Maps a type to an equivalent type involving generated types. The type to map. Gets the formal parameters. Gets the actual parameters. Gets the default mapper. This interface is implemented by all proxy objects, type or instance based. It allows for adding interception behaviors. Adds a to the proxy. The to add. Base interface for type and instance based interceptor classes. Can this interceptor generate a proxy for the given type? Type to check. True if interception is possible, false if not. Returns a sequence of methods on the given type that can be intercepted. Type that was specified when this interceptor was created (typically an interface). The concrete type of the implementing object. Sequence of objects. Interface for interceptors that generate separate proxy objects to implement interception on instances. Create a proxy object that provides interception for . Type to generate the proxy of. Object to create the proxy for. Additional interfaces the proxy must implement. The proxy object. Implementation of that returns a pre-created interceptor. Create a new instance of . Interceptor to store. Interceptor to use. Context for current build operation. A that intercepts objects in the build chain by creating a proxy object. Called during the chain of responsibility for a build operation. The PostBuildUp method is called when the chain has finished the PreBuildUp phase and executes in reverse order from the PreBuildUp calls. Context of the build operation. An instance interceptor that works by generating a proxy class on the fly for a single interface. Can this interceptor generate a proxy for the given type? Type to check. True if interception is possible, false if not. Returns a sequence of methods on the given type that can be intercepted. Type that was specified when this interceptor was created (typically an interface). The concrete type of the implementing object. Sequence of objects. Create a proxy object that provides interception for . Type to generate the proxy of. Object to create the proxy for. Additional interfaces the proxy must implement. The proxy object. A class used to generate proxy classes for doing interception on interfaces. Create an instance of that can construct an intercepting proxy for the given interface. Type of the interface to intercept. Additional interfaces the proxy must implement. Create the type to proxy the requested interface Represents the implementation of an interface method. Used to throw an for non-implemented methods on the additional interfaces. This class provides the remoting based interception mechanism. It is invoked by a call on the corresponding TransparentProxy object. It routes calls through the handlers as appropriate. Creates a new instance that applies the given policies to the given target object. Target object to intercept calls to. Type to return as the type being proxied. Additional interfaces the proxy must implement. Adds a to the proxy. The to add. Checks whether the proxy that represents the specified object type can be cast to the type represented by the interface. true if cast will succeed; otherwise, false. The type to cast to. The object for which to check casting. The immediate caller makes the call through a reference to the interface and does not have infrastructure permission. Executes a method call represented by the parameter. The CLR will call this method when a method is called on the TransparentProxy. This method runs the invocation through the call handler pipeline and finally sends it down to the target object, and then back through the pipeline. An object that contains the information about the method call. An object contains the information about the target method's return value. Returns the target of this intercepted call. The target object. Gets or sets the fully qualified type name of the server object in a . The fully qualified type name of the server object in a . The immediate caller makes the call through a reference to the interface and does not have infrastructure permission. An instance interceptor that uses remoting proxies to do the interception. Can this interceptor generate a proxy for the given type? Type to check. True if interception is possible, false if not. Returns a sequence of methods on the given type that can be intercepted. The intercepted type. The concrete type of the implementing object. Sequence of objects. Create a proxy object that provides interception for . Type to generate the proxy of. Object to create the proxy for. Additional interfaces the proxy must implement. The proxy object. A dumb data holder that returns the MethodInfo for both an interface method and the method that implements that interface method. Construct a new which holds the given objects. MethodInfo for the interface method (may be null if no interface). MethodInfo for implementing method. Determines whether the specified is equal to the current . true if the specified is equal to the current ; otherwise, false. The to compare with the current . The parameter is null. 2 Serves as a hash function for a particular type. A hash code for the current . 2 Standard equals operator standard not equal operator. Returns a that represents the current . A that represents the current . 2 The interface method MethodInfo. The implementing method MethodInfo. Interface for interceptor objects that generate proxy types. Create a type to proxy for the given type . Type to proxy. Additional interfaces the proxy must implement. New type that can be instantiated instead of the original type t, and supports interception. Implementation of that returns a pre-created interceptor object. Create a new instance of that uses the given . Interceptor to use. Interceptor to use to create type proxy Context for current build operation. Cache for proxied type. A that hooks up type interception. It looks for a for the current build key, or the current build type. If present, it substitutes types so that that proxy class gets built up instead. On the way back, it hooks up the appropriate handlers. Called during the chain of responsibility for a build operation. The PreBuildUp method is called when the chain is being executed in the forward direction. In this class, PreBuildUp is responsible for figuring out if the class is proxyable, and if so, replacing it with a proxy class. Context of the build operation. Called during the chain of responsibility for a build operation. The PostBuildUp method is called when the chain has finished the PreBuildUp phase and executes in reverse order from the PreBuildUp calls. In this class, PostBuildUp checks to see if the object was proxyable, and if it was, wires up the handlers. Context of the build operation. Class that handles generating the dynamic types used for interception. Create a new that will generate a wrapper class for the requested . Type to generate the wrapper for. Additional interfaces the proxy must implement. Create the wrapper class for the given type. Wrapper type. This class provides the code needed to implement the interface on a class. This class handles parameter type mapping. When we generate a generic method, we need to make sure our parameter type objects line up with the generic parameters on the generated method, not on the one we're overriding. A utility class that takes a set of s and pulls out shadowed methods, only returning the ones that are actually accessible to be overridden. Take the list of methods and put them together into lists index by method name. Methods to sort through. Given a list of overloads for a method, return only those methods that are actually visible. In other words, if there's a "new SomeType" method somewhere, return only the new one, not the one from the base class that's now hidden. Sequence of methods to process. Sequence of returned methods. Take a semi-randomly ordered set of methods on a type and sort them into groups by name and by parameter list. The list of methods. Sequence of lists of methods, grouped by method name. Given a set of hiding overloads, return only the currently visible one. The set of overloads. The most visible one. Given a method, return a value indicating how deeply in the inheritance hierarchy the method is declared. Current type = 0, parent = 1, grandparent = 2, etc. Method to check. Declaration depth A implementation that can compare two based on their parameter lists. First to compare. Second to compare. < 0, 0, or > 0 based on which one is "greater" than the other. Compare two parameter lists. First parameter list. Second parameter list. < 0, 0, or > 0. Compare two objects by type. First First < 0, 0, or > 0 A type based interceptor that works by generated a new class on the fly that derives from the target class. Can this interceptor generate a proxy for the given type? Type to check. True if interception is possible, false if not. Returns a sequence of methods on the given type that can be intercepted. The intercepted type. The concrete type of the implementing object. Sequence of objects. Create a type to proxy for the given type . Type to proxy. Additional interfaces the proxy must implement. New type that can be instantiated instead of the original type t, and supports interception. An that returns a sequence of instances for an intercepted object. Get the set of object to be used for the given type and interceptor. This method will return a sequence of s. These behaviors will only be included if their properties are true. Context for the current build operation. Interceptor that will be used to invoke the behavior. Type that interception was requested on. Type that implements the interception. Get the set of that can be used to resolve the behaviors. Key for handler pipelines. Creates a new for the supplied method. The method for the key. The new key. Compare two instances. Object to compare to. True if the two keys are equal, false if not. Calculate a hash code for this instance. A hash code. Compare two instances for equality. First of the two keys to compare. Second of the two keys to compare. True if the values of the keys are the same, else false. Compare two instances for inequality. First of the two keys to compare. Second of the two keys to compare. false if the values of the keys are the same, else true. Compare two instances. Object to compare to. True if the two keys are equal, false if not. Some utility extension methods to make things portable to Silverlight. A collection of objects, indexed by . Returns an empty pipeline if a MethodBase is requested that isn't in the dictionary. Retrieve the pipeline associated with the requested . The method for which the pipeline is being requested. The handler pipeline for the given method. If no pipeline has been set, returns a new empty pipeline. Set a new pipeline for a method. The method on which the pipeline should be set. The new pipeline. Get the pipeline for the given method, creating it if necessary. Method to retrieve the pipeline for. Handlers to initialize the pipeline with True if the pipeline has any handlers in it, false if not. Attribute used to indicate that no interception should be applied to the attribute target. A class that reads and constructs handlers based on on the target. Base class for Policies that specifies which handlers apply to which methods of an object. This base class always enforces the before passing the checks onto derived classes. This way, derived classes do not need to worry about implementing this check. It also means that derived classes cannot override this rule. This is considered a feature. Creates a new empty Policy. Creates a new empty policy with the given name. Name of the policy. Checks if the rules in this policy match the given member info. MemberInfo to check against. true if ruleset matches, false if it does not. Returns ordered collection of handlers in order that apply to the given member. Member that may or may not be assigned handlers by this policy. The to use when creating handlers, if necessary. Collection of handlers (possibly empty) that apply to this member. Given a method on an object, return the set of MethodBases for that method, plus any interface methods that the member implements. Member to get Method Set for. The set of methods Derived classes implement this method to calculate if the policy will provide any handler to the specified member. Member to check. true if policy applies to this member, false if not. Derived classes implement this method to supply the list of handlers for this specific member. Member to get handlers for. The to use when creating handlers, if necessary. Enumerable collection of handlers for this method. Gets the name of this policy. The name of the policy. Constructs a new instance of the . Derived classes implement this method to calculate if the policy will provide any handler to the specified member. Member to check. true if policy applies to this member, false if not. Derived classes implement this method to supply the list of handlers for this specific member. Member to get handlers for. The to use when creating handlers, if necessary. Enumerable collection of handlers for this method. Base class for handler attributes used in the attribute-driven interception policy. Derived classes implement this method. When called, it creates a new call handler as specified in the attribute configuration. The to use when creating handlers, if necessary. A new call handler object. Gets or sets the order in which the handler will be executed. The HandlerPipeline class encapsulates a list of s and manages calling them in the proper order with the right inputs. Creates a new with an empty pipeline. Creates a new with the given collection of s. Collection of handlers to add to the pipeline. Execute the pipeline with the given input. Input to the method call. The ultimate target of the call. Return value from the pipeline. Get the number of handlers in this pipeline. Handlers implement this interface and are called for each invocation of the pipelines that they're included in. Implement this method to execute your handler processing. Inputs to the current call to the target. Delegate to execute to get the next delegate in the handler chain. Return value from the target. Order in which the handler will be executed This delegate type is the type that points to the next method to execute in the current pipeline. Inputs to the current method call. Delegate to get the next handler in the chain. Return from the next method in the chain. This delegate type is passed to each handler's Invoke method. Call the delegate to get the next delegate to call to continue the chain. Next delegate in the handler chain to call. This interface is implemented by the matching rule classes. A Matching rule is used to see if a particular policy should be applied to a class member. Tests to see if this rule applies to the given member. Member to test. true if the rule applies, false if it doesn't. This interface is used to represent the call to a method. An implementation of IMethodInvocation is passed to the call handlers so that they may manipulate the call (typically by changing the parameters) before the final target gets called. Factory method that creates the correct implementation of IMethodReturn. Return value to be placed in the IMethodReturn object. All arguments passed or returned as out/byref to the method. Note that this is the entire argument list, including in parameters. New IMethodReturn object. Factory method that creates the correct implementation of IMethodReturn in the presence of an exception. Exception to be set into the returned object. New IMethodReturn object Gets the inputs for this call. Collection of all parameters to the call: in, out and byref. Retrieves a dictionary that can be used to store arbitrary additional values. This allows the user to pass values between call handlers. The object that the call is made on. The method on Target that we're aiming at. This interface is used to represent the return value from a method. An implementation of IMethodReturn is returned by call handlers, and each handler can manipulate the parameters, return value, or add an exception on the way out. The collection of output parameters. If the method has no output parameters, this is a zero-length list (never null). Returns value from the method call. This value is null if the method has no return value. If the method threw an exception, the exception object is here. Retrieves a dictionary that can be used to store arbitrary additional values. This allows the user to pass values between call handlers. This is guaranteed to be the same dictionary that was used in the IMethodInvocation object, so handlers can set context properties in the pre-call phase and retrieve them in the after-call phase. A Unity container extension that allows you to configure whether an object should be intercepted and which mechanism should be used to do it, and also provides a convenient set of methods for configuring injection for instances. Initial the container with this extension's functionality. API to configure interception for a type. Type to intercept. Name type is registered under. Interceptor to use. This extension object. API to configure interception for a type. Type to intercept. Interceptor to use. This extension object. API to configure interception for a type. Type to intercept Name type is registered under. Interceptor object to use. This extension object. API to configure interception for a type. Type to intercept Interceptor object to use. This extension object. API to configure interception for a type. Type to intercept. Name type is registered under. Instance interceptor to use. This extension object. Set the interceptor for a type, regardless of what name is used to resolve the instances. Type to intercept Interceptor instance. This extension object. Set the interceptor for a type, regardless of what name is used to resolve the instances. Type to intercept Interceptor instance. This extension object. API to configure interception for a type. Type to intercept. Instance interceptor to use. This extension object. API to configure interception for a type. Type to intercept. Name type is registered under. Instance interceptor to use. This extension object. API to configure interception for a type. Type to intercept. Instance interceptor to use. This extension object. API to configure the default interception settings for a type. Type the interception is being configured for. The interceptor to use by default. This extension object. API to configure the default interception settings for a type. Type the interception is being configured for. The interceptor to use by default. This extension object. Starts the definition of a new . The policy name. This is a convenient way for defining a new policy and the instances and instances that are required by a policy. This mechanism is just a shortcut for what can be natively expressed by wiring up together objects with repeated calls to the method. This interface represents a list of either input or output parameters. It implements a fixed size list, plus a couple of other utility methods. Gets the name of a parameter based on index. Index of parameter to get the name for. Name of the requested parameter. Gets the ParameterInfo for a particular parameter by index. Index for this parameter. ParameterInfo object describing the parameter. Gets the ParameterInfo for a particular parameter by name. Name of the parameter. ParameterInfo object for the named parameter. Does this collection contain a parameter value with the given name? Name of parameter to find. True if the parameter name is in the collection, false if not. Fetches a parameter's value by name. parameter name. value of the named parameter. A is a matching rule that is a collection of other matching rules. All the contained rules much match for the set to match. Tests the given member against the ruleset. The member matches if all contained rules in the ruleset match against it. If the ruleset is empty, then Matches passes since no rules failed. MemberInfo to test. true if all contained rules match, false if any fail. A implementation that fails to match if the method in question has the ApplyNoPolicies attribute on it. Check if the matches this rule. This rule returns true if the member does NOT have the on it, or a containing type doesn't have the attribute. Member to check. True if the rule matches, false if it doesn't. An that matches the assembly name of the given member. Constructs a new with the given assembly name (or partial name). Assembly name to match. Constructs a new that matches against the given assembly. Assembly to match. Determines if the supplied matches the rule. This rule matches if the assembly containing the given matches the name given. The rule used for matches lets you include the parts of the assembly name in order. You can specify assembly name only, assembly and version, assembly, version and culture, or the fully qualified assembly name. Member to check. true if is in a matching assembly, false if not. An implementation of that checks to see if the member (or type containing that member) have any s. Checks to see if matches the rule. Returns true if any s are present on the method or the type containing that method. Member to check. true if member matches, false if not. An implementation of that checks to see if the member tested has an arbitrary attribute applied. Constructs a new . Attribute to match. If true, checks the base class for attributes as well. Checks to see if the given matches the rule. Member to check. true if it matches, false if not. Class used for storing information about a single name/ignoreCase pair. This class is also used as a base class for other classes that need this pair plus some other properties. Constructs an empty object with empty string and ignoreCase = false. Constructs a object that matches the given string. IgnoreCase is false. The name to match. Constructs a object that matches the given string, setting the ignoreCase flag to the given value. The name to match. true to do case insensitive comparison, false to do case sensitive. Gets or sets the name to match. The name to match. Gets or sets whether to do case sensitive comparisons of Match. If false, case sensitive comparison. If true, case insensitive comparisons. A matching rule that matches when the given member name is the same as the one supplied in the constructor. Create a new that matches the given member name. Wildcards are allowed. Name to match against. Comparison is case sensitive. Create a new that matches the given member name. Wildcards are allowed. Name to match against. If false, name comparisons are case sensitive. If true, name comparisons are case insensitive. Create a new that matches the given member names. Wildcards are allowed. collections of names to match. If any of these patterns match, the rule matches. Comparisons are case sensitive. Create a new that matches the given member names. Wildcards are allowed. Collections of names to match. If any of these patterns match, the rule matches. If false, name comparisons are case sensitive. If true, name comparisons are case insensitive. Create a new that matches one of the given member names. Wildcards are allowed. List of objects containing the pattern to match and case sensitivity flag. Check if the given matches one of this object's matching patterns. Member to check. True if matches, false if not. Match methods with the given names and method signature. Creates a new that matches methods with the given name, with parameter types matching the given list. Method name to match. Wildcards are allowed. Parameter type names to match, in order. Wildcards are allowed. If false, name comparisons are case sensitive. If true, name comparisons are case insensitive. Create a new that matches methods with the given name, with parameter types matching the given list. Name comparisons are case sensitive. Method name to match. Wildcards are allowed. Parameter type names to match, in order. Wildcards are allowed. Create a new that matches any method with parameter types matching the given list. Name comparisons are case sensitive. Parameter type names to match, in order. Wildcards are allowed. Create a new that matches any method with parameter types matching the given list. Parameter type names to match, in order. Wildcards are allowed. If false, name comparisons are case sensitive. If true, name comparisons are case insensitive. Check to see if the given method matches the name and signature. Member to check. True if match, false if not. An that matches members in a given namespace. You can specify either a single namespace (e.g. System.Data) or a namespace root (e.g. System.Data.* to match types in that namespace or below. Create a new that matches the given namespace. namespace name to match. Comparison is case sensitive. Create a new that matches the given namespace. namespace name to match. If false, comparison is case sensitive. If true, comparison is case insensitive. Create a new that matches any of the given namespace names. Collection of namespace names to match. Check to see if the given is in a namespace matched by any of our given namespace names. member to check. True if member is contained in a matching namespace, false if not. A helper class that encapsulates the name to match, case sensitivity flag, and the wildcard rules for matching namespaces. Construct a new that matches the given namespace name. Namespace name to match. If false, comparison is case sensitive. If true, comparison is case insensitive. Check if the given type is in a matching namespace. Type to check. True if type is in a matching namespace, false if not. An that matches methods that have any parameters of the given types. Creates a new that matches if any of the method parameters match ones in the given collection. Collection of that describes the types to match. Check the given member to see if it has any matching parameters. Member to match. true if member matches, false if it doesn't. The list of describing the parameter types to match. The collection of matches. Describes the type of parameter to match. Input parameter Output parameter Input or output parameter Method return value A class that stores information about a single type to match. Creates a new uninitialized . Creates a new matching the given kind of parameter. of parameter to match. Creates a new matching the given parameter type and kind. Parameter name to match. of parameter to match. Creates a new matching the given parameter type and kind. Parameter name to match. If false, compare type names using case-sensitive comparison. If true, compare type names using case-insensitive comparison. of parameter to match. What kind of parameter to match. indicating which kind of parameters to match. An implementation that matches properties by name. You can match the getter, setter, or both. Construct a new that matches the getter or setter of the given property. Name of the property. Name comparison is case sensitive. Wildcards are allowed. Constructs a new that matches the given method of the given property. Name of the property. Name comparison is case sensitive. Wildcards are allowed. Match the getter, setter, or both. Constructs a new that matches the given method of the given property. Name of the property to match. Wildcards are allowed. Match the getter, setter, or both. If false, name comparison is case sensitive. If true, name comparison is case insensitive. Constructs a new that matches any of the given properties. Collection of defining which properties to match. Checks if the given member matches the rule. Member to check. True if it matches, false if it does not. Specifies which methods of a property should be matches by the . Match the property getter method. Match the property setter method. Match either the getter or setter method. Information about a property match. Construct a new that matches the get or set methods of the given property name, and does a case-sensitive comparison. Property name to match. Constructs a new that matches the given methods of the given property name, doing a case-sensitive comparison. Property name to match. specifying which methods of the property to match. Construct a new that matches the given methods of the given property name. Property name to match. specifying which methods of the property to match. If false, name comparison is case sensitive. If true, name comparison is case insensitive. The to use when doing name comparisons on this property. Specifies which methods of the property to match. An that checks to see if a member has a specified type. Construct a new that matches members with the given return type. Type to look for. Construct a new that matches the given return type by name. See the class for details on how type name matches are done. Type name to match. Name comparisons are case sensitive. Construct a new that matches the given return type by name. See the class for details on how type name matches are done. Type name to match. If false, name comparison is case sensitive. If true, comparison is case insensitive. Check to see if the given member has a matching return type. Member to check. true if return types match, false if they don't. A that checks a member for the presence of the on the method, property, or class, and that the given string matches. Constructs a new , looking for the given string. The comparison is case sensitive. tag string to match. Constructs a new , looking for the given string. The comparison is case sensitive if is false, case insensitive if is true. tag string to match. if false, case-sensitive comparison. If true, case-insensitive comparison. Check the given member for the presence of the and match the strings. Member to check. True if tag strings match, false if they don't. A matching rule that matches when the member is declared in the given type. Constructs a new that matches the given type. The type to match. Constructs a new that matches types with the given name. Comparisons are case sensitive. Type name to match. Constructs a new that matches types with the given name, using the given case sensitivity. Type name to match. if false, do case-sensitive comparison. If true, do case-insensitive. Constructs a new that will match any of the type names given in the collection of match information. The match information to match. Checks if the given member matches any of this object's matches. Member to match. True if match, false if not. Checks if the given type matches any of this object's matches. Matches may be on the namespace-qualified type name or just the type name. Type to check. True if it matches, false if it doesn't. An implementation of that wraps a provided array containing the argument values. Construct a new that wraps the given array of arguments. Complete collection of arguments. Type information about each parameter. A that indicates whether a particular parameter is part of the collection. Used to filter out only input parameters, for example. Gets the ParameterInfo for a particular parameter by index. Index for this parameter. ParameterInfo object describing the parameter. Gets the for the given named parameter. Name of parameter. for the requested parameter. Gets the name of a parameter based on index. Index of parameter to get the name for. Name of the requested parameter. Does this collection contain a parameter value with the given name? Name of parameter to find. True if the parameter name is in the collection, false if not. Adds to the collection. This is a read only collection, so this method always throws . Object to add. Nothing, always throws. Always throws this. Checks to see if the collection contains the given object. Tests for the object using object.Equals. Object to find. true if object is in collection, false if it is not. Remove all items in the collection. This collection is fixed-size, so this method always throws . This is always thrown. Returns the index of the given object, or -1 if not found. Object to find. zero-based index of found object, or -1 if not found. Inserts a new item. This is a fixed-size collection, so this method throws . Index to insert at. Always throws. Always throws this. Removes the given item. This is a fixed-size collection, so this method throws . Always throws. Always throws this. Removes the given item. This is a fixed-size collection, so this method throws . Always throws. Always throws this. Copies the contents of this collection to the given array. Destination array. index to start copying from. Gets an enumerator object to support the foreach construct. Enumerator object. Fetches a parameter's value by name. parameter name. value of the named parameter. Gets the value of a parameter based on index. Index of parameter to get the value for. Value of the requested parameter. Is this collection read only? No, it is not read only, the contents can change. Is this collection fixed size? Yes, it is. Total number of items in the collection. The count. Gets a synchronized version of this collection. WARNING: Not implemented completely, DO NOT USE THIS METHOD. Is the object synchronized for thread safety? No, it isn't. An internal struct that maps the index in the arguments collection to the corresponding about that argument. Construct a new object linking the given index and object. Index into arguments array (zero-based). for the argument at . Transient class that supports convenience method for specifying interception policies. Adds a reference to matching rule by name. The name for the matching rule. The than allows further configuration of the policy. The details of how the rule should be created by the container must be specified using a standard injection specification mechanism. Makes a matching rule in the current policy. The new for the policy. The than allows further configuration of the policy. Configures injection for a new and makes it available as a matching rule in the current policy. The type for the new matching rule. Objects containing the details on which members to inject and how. The than allows further configuration of the policy. Configures injection for a new and makes it available as a matching rule in the current policy, using the given . The type for the new matching rule. The that controls the lifetime of the configured matching rule. Objects containing the details on which members to inject and how. The than allows further configuration of the policy. Configures injection for a new using the specified name and makes it available as a matching rule in the current policy. The type for the new matching rule. The name for the injection configuration for the matching rule. Objects containing the details on which members to inject and how. The than allows further configuration of the policy. Configures injection for a new and makes it available as a matching rule in the current policy, using the given . The type for the new matching rule. The name for the injection configuration for the matching rule. The that controls the lifetime of the configured matching rule. Objects containing the details on which members to inject and how. The than allows further configuration of the policy. Configures injection for a new and makes it available as a matching rule in the current policy. The type for the new matching rule. Objects containing the details on which members to inject and how. The than allows further configuration of the policy. Configures injection for a new and makes it available as a matching rule in the current policy, using the given . The type for the new matching rule. The that controls the lifetime of the configured matching rule. Objects containing the details on which members to inject and how. The than allows further configuration of the policy. Configures injection for a new using the specified name and makes it available as a matching rule in the current policy. The type for the new matching rule. The name for the injection configuration for the matching rule. Objects containing the details on which members to inject and how. The than allows further configuration of the policy. Configures injection for a new using the specified name and makes it available as a matching rule in the current policy, using the given . The type for the new matching rule. The name for the injection configuration for the matching rule. The that controls the lifetime of the configured matching rule. Objects containing the details on which members to inject and how. The than allows further configuration of the policy. Adds a reference to call handler by name. The name for the call handler. The than allows further configuration of the policy. The details of how the handler should be created by the container must be specified using a standard injection specification mechanism. Makes a call handler in the current policy. The new for the policy. The than allows further configuration of the policy. Configures injection for a new and makes it available as a call handler in the current policy. The type for the new call handler. Objects containing the details on which members to inject and how. The than allows further configuration of the policy. Configures injection for a new and makes it available as a call handler in the current policy, using the given . The type for the new call handler. The that controls the lifetime of the configured call handler. Objects containing the details on which members to inject and how. The than allows further configuration of the policy. Configures injection for a new using the specified name and makes it available as a call handler in the current policy. The type for the new call handler. The name for the injection configuration for the call handler. Objects containing the details on which members to inject and how. The than allows further configuration of the policy. Configures injection for a new using the specified name and makes it available as a call handler in the current policy, using the given . The type for the new call handler. The name for the injection configuration for the call handler. The that controls the lifetime of the configured call handler. Objects containing the details on which members to inject and how. The than allows further configuration of the policy. Configures injection for a new and makes it available as a call handler in the current policy. The type for the new call handler. Objects containing the details on which members to inject and how. The than allows further configuration of the policy. Configures injection for a new and makes it available as a call handler in the current policy, using the given . The type for the new call handler. The that controls the lifetime of the configured call handler. Objects containing the details on which members to inject and how. The than allows further configuration of the policy. Configures injection for a new using the specified name and makes it available as a call handler in the current policy. The type for the new call handler. The name for the injection configuration for the call handler . Objects containing the details on which members to inject and how. The than allows further configuration of the policy. Configures injection for a new using the specified name and makes it available as a call handler in the current policy, using the given . The type for the new call handler. The name for the injection configuration for the call handler . The that controls the lifetime of the configured call handler. Objects containing the details on which members to inject and how. The than allows further configuration of the policy. The that is currently being configured. The extension to which the policy was added. Use this property to start adding a new policy. A collection of Policy objects. The policies within a PolicySet combine using an "or" operation. Creates a new containing the given policies. Policies to put into the policy set. Gets the policies that apply to the given member. Member to get policies for. Collection of policies that apply to this member. Gets the policies in the that do not apply to the given member. Member to check. Collection of policies that do not apply to . Gets the handlers that apply to the given member based on all policies in the . Member to get handlers for. The to use when creating handlers, if necessary. Collection of call handlers for . Interceptor that performs policy injection. Interception behaviors implement this interface and are called for each invocation of the pipelines that they're included in. Implement this method to execute your behavior processing. Inputs to the current call to the target. Delegate to execute to get the next delegate in the behavior chain. Return value from the target. Returns the interfaces required by the behavior for the objects it intercepts. The required interfaces. Returns a flag indicating if this behavior will actually do anything when invoked. This is used to optimize interception. If the behaviors won't actually do anything (for example, PIAB where no policies match) then the interception mechanism can be skipped completely. Initializes a new instance of the with a pipeline manager. The for the new instance. Initializes a new instance of the with the given information about what's being intercepted and the current set of injection policies. Information about what will be injected. Current injection policies. Unity container that can be used to resolve call handlers. Applies the policy injection handlers configured for the invoked method. Inputs to the current call to the target. Delegate to execute to get the next delegate in the handler chain. Return value from the target. Returns the interfaces required by the behavior for the objects it intercepts. An empty array of interfaces. Returns a flag indicating if this behavior will actually do anything when invoked. This is used to optimize interception. If the behaviors won't actually do anything (for example, PIAB where no policies match) then the interception mechanism can be skipped completely. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to Intercepted abstract method was invoked.. Looks up a localized string similar to Additional interfaces do not have an implementation.. Looks up a localized string similar to The additional interfaces supplied are invalid: {0}. Looks up a localized string similar to Type must be a subclass of System.Attribute.. Looks up a localized string similar to Could not create instance of type {0} with no constructor arguments.. Looks up a localized string similar to Cannot map generic type parameters on a generic type definition (an unbound generic type).. Looks up a localized string similar to Collection contains a null element.. Looks up a localized string similar to The lengths of the mapped generic parameters do not match.. Looks up a localized string similar to The collection of interfaces is null.. Looks up a localized string similar to The required interfaces for behavior {1} are invalid: {0}. Looks up a localized string similar to The type {0} is not an interface.. Looks up a localized string similar to Null type.. Looks up a localized string similar to The type {0} is an open generic.. Looks up a localized string similar to The type {0} is not interceptable.. Looks up a localized string similar to Could not find the implementation of interface method {0}.{1} in type {2}. Looks up a localized string similar to Null is not permitted as an interception behavior.. A class that wraps the inputs of a into the interface. Constructs a new that wraps the given method call and arguments. The call message. The arguments. An implementation of that wraps the remoting based in the PIAB call interface. Creates a new implementation that wraps the given , with the given ultimate target object. Remoting call message object. Ultimate target of the method call. Factory method that creates the correct implementation of IMethodReturn. In this implementation we create an instance of . Return value to be placed in the IMethodReturn object. All arguments passed or returned as out/byref to the method. Note that this is the entire argument list, including in parameters. New IMethodReturn object. Factory method that creates the correct implementation of IMethodReturn in the presence of an exception. Exception to be set into the returned object. New IMethodReturn object Gets the inputs for this call. The input collection. Collection of all parameters to the call: in, out and byref. The arguments collection. Retrieves a dictionary that can be used to store arbitrary additional values. This allows the user to pass values between call handlers. The invocation context dictionary. The object that the call is made on. The target object. The method on Target that we're aiming at. The target method base. Gets the collection of arguments being passed to the target. This method exists because the underlying remoting call message does not let handlers change the arguments. Array containing the arguments to the target. An implementation of that wraps the remoting call and return messages. Creates a new object that contains a return value. The original call message that invoked the method. Return value from the method. Collections of arguments passed to the method (including the new values of any out params). Invocation context dictionary passed into the call. Creates a new object that contains an exception thrown by the target. Exception that was thrown. The original call message that invoked the method. Invocation context dictionary passed into the call. Constructs a for the remoting infrastructure based on the contents of this object. The instance. The collection of output parameters. If the method has no output parameters, this is a zero-length list (never null). The output parameter collection. Return value from the method call. This value is null if the method has no return value. The return value. If the method threw an exception, the exception object is here. The exception, or null if no exception was thrown. Retrieves a dictionary that can be used to store arbitrary additional values. This allows the user to pass values between call handlers. This is guaranteed to be the same dictionary that was used in the IMethodInvocation object, so handlers can set context properties in the pre-call phase and retrieve them in the after-call phase. The invocation context dictionary. A class that wraps the outputs of a into the interface. Constructs a new that wraps the given method call and arguments. The call message. The arguments. A policy is a combination of a matching rule set and a set of handlers. If the policy applies to a member, then the handlers will be enabled for that member. Creates a new object with a set of matching rules and the names to use when resolving handlers. Creates a new object with a name, a set of matching rules and the names to use when resolving handlers. Checks if the rules in this policy match the given member info. MemberInfo to check against. true if ruleset matches, false if it does not. Return ordered collection of handlers in order that apply to the given member. Member that may or may not be assigned handlers by this policy. The to use when creating handlers, if necessary. Collection of handlers (possibly empty) that apply to this member. A simple attribute used to "tag" classes, methods, or properties with a string that can later be matched via the . Creates a new with the given string. The tag string. The string tag for this attribute. the tag. Stores information about a single to be used on an intercepted object and configures a container accordingly. Initializes a new instance of the with a . The interception behavior to use. Initializes a new instance of the with a given type/name pair. Type of behavior to Initializes a new instance of the with a given behavior type. Type of behavior to Get the list of behaviors for the current type so that it can be added to. Policy list. Implementation type to set behaviors for. Name type is registered under. An instance of . A generic version of that lets you specify behavior types using generic syntax. Type of behavior to register. Initializes a new instance of the with a given behavior type. Initializes a new instance of the with a given type/name pair. Name to use to resolve the behavior. An that accumulates a sequence of instances for an intercepted object. Get the set of object to be used for the given type and interceptor. This method will return a sequence of s. These behaviors will only be included if their properties are true. Context for the current build operation. Interceptor that will be used to invoke the behavior. Type that interception was requested on. Type that implements the interception. Get the set of that can be used to resolve the behaviors. The InterceptionBehaviorPipeline class encapsulates a list of s and manages calling them in the proper order with the right inputs. Creates a new with an empty pipeline. Creates a new with the given collection of s. Collection of interception behaviors to add to the pipeline. Execute the pipeline with the given input. Input to the method call. The ultimate target of the call. Return value from the pipeline. Adds a to the pipeline. The interception behavior to add. Get the number of interceptors in this pipeline. This delegate type is the type that points to the next method to execute in the current pipeline. Inputs to the current method call. Delegate to get the next interceptor in the chain. Return from the next method in the chain. This delegate type is passed to each interceptor's Invoke method. Call the delegate to get the next delegate to call to continue the chain. Next delegate in the interceptor chain to call. A "glob" is a string matching pattern. It is similar to the matches available in the file system (*.cs, for example). The Glob class implements this string matching. Glob supports the following meta-characters: * - match zero or more characters ? - match any one character [abc] - match one character if it's in the characters inside the brackets. All other characters in the glob are literals. Constructs a new instance that matches the given pattern. The pattern match is case sensitive by default. Pattern to use. See summary for details of the pattern. Constructs a new instance that matches the given pattern. The pattern to use. See summary for details of the patterns supported. If true, perform a case sensitive match. If false, perform a case insensitive comparison. Checks to see if the given string matches the pattern. String to check. True if it matches, false if it doesn't. A collection of utility functions to encapsulate details of reflection and finding attributes. Given a MethodBase for a property's get or set method, return the corresponding property info. MethodBase for the property's get or set method. PropertyInfo for the property, or null if method is not part of a property. Given a MethodInfo for a property's get or set method, return the corresponding property info. MethodBase for the property's get or set method. PropertyInfo for the property, or null if method is not part of a property. Given a particular MemberInfo, return the custom attributes of the given type on that member. Type of attribute to retrieve. The member to look at. True to include attributes inherited from base classes. Array of found attributes. Given a particular MemberInfo, find all the attributes that apply to this member. Specifically, it returns the attributes on the type, then (if it's a property accessor) on the property, then on the member itself. Type of attribute to retrieve. The member to look at. true to include attributes inherited from base classes. Array of found attributes. A small implementation of that returns the given object. Create a new instance. Information about which constructor to select. Choose the constructor to call for the given type. Current build context The to add any generated resolver objects into. The chosen constructor. MethodInfo objects for the methods we need to generate calls to on IMethodInvocation. Represents the implementation of a method override. Used to throw an for overrides on abstract methods. Implementation of used by the virtual method interceptor. Construct a new instance for the given target object and method, passing the to the target method. Object that is target of this invocation. Method on to call. Values for the parameters. Factory method that creates the correct implementation of IMethodReturn. Return value to be placed in the IMethodReturn object. All arguments passed or returned as out/byref to the method. Note that this is the entire argument list, including in parameters. New IMethodReturn object. Factory method that creates the correct implementation of IMethodReturn in the presence of an exception. Exception to be set into the returned object. New IMethodReturn object Gets the inputs for this call. Collection of all parameters to the call: in, out and byref. Retrieves a dictionary that can be used to store arbitrary additional values. This allows the user to pass values between call handlers. The object that the call is made on. The method on Target that we're aiming at. An implementation of used by the virtual method interception mechanism. Construct a instance that returns a value. The method invocation. Return value (should be null if method returns void). All arguments (including current values) passed to the method. Construct a instance for when the target method throws an exception. The method invocation. Exception that was thrown. The collection of output parameters. If the method has no output parameters, this is a zero-length list (never null). Returns value from the method call. This value is null if the method has no return value. If the method threw an exception, the exception object is here. Retrieves a dictionary that can be used to store arbitrary additional values. This allows the user to pass values between call handlers. This is guaranteed to be the same dictionary that was used in the IMethodInvocation object, so handlers can set context properties in the pre-call phase and retrieve them in the after-call phase. ================================================ FILE: packages/jQuery.1.7.1.1/Content/Scripts/jquery-1.7.1-vsdoc.js ================================================ /* * This file has been generated to support Visual Studio IntelliSense. * You should not use this file at runtime inside the browser--it is only * intended to be used only for design-time IntelliSense. Please use the * standard jQuery library for all production use. * * Comment version: 1.7.1 */ /*! * jQuery JavaScript Library v1.7.1 * http://jquery.com/ * * Distributed in whole under the terms of the MIT * * Copyright 2010, John Resig * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Includes Sizzle.js * http://sizzlejs.com/ * Copyright 2010, The Dojo Foundation * Released under the MIT and BSD Licenses. * * Documentation Content * Copyright (c) 2009 Packt Publishing, http://packtpub.com/ * Copyright (c) 2012 jQuery Foundation, http://jquery.org/ * * This software consists of voluntary contributions made by many * individuals. For exact contribution history, see the revision history * and logs, available at http://github.com/jquery/api.jquery.com * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ (function ( window, undefined ) { var jQuery = function( selector, context ) { /// /// 1: Accepts a string containing a CSS selector which is then used to match a set of elements. /// 1.1 - $(selector, context) /// 1.2 - $(element) /// 1.3 - $(object) /// 1.4 - $(elementArray) /// 1.5 - $(jQuery object) /// 1.6 - $() /// 2: Creates DOM elements on the fly from the provided string of raw HTML. /// 2.1 - $(html, ownerDocument) /// 2.2 - $(html, props) /// 3: Binds a function to be executed when the DOM has finished loading. /// 3.1 - $(callback) /// /// /// A string containing a selector expression /// /// /// A DOM Element, Document, or jQuery to use as context /// /// // The jQuery object is actually just the init constructor 'enhanced' return new jQuery.fn.init( selector, context, rootjQuery ); }; jQuery.Callbacks = function( flags ) { /// /// A multi-purpose callbacks list object that provides a powerful way to manage callback lists. /// /// /// An optional list of space-separated flags that change how the callback list behaves. /// // Convert flags from String-formatted to Object-formatted // (we check in cache first) flags = flags ? ( flagsCache[ flags ] || createFlags( flags ) ) : {}; var // Actual callback list list = [], // Stack of fire calls for repeatable lists stack = [], // Last fire value (for non-forgettable lists) memory, // Flag to know if list is currently firing firing, // First callback to fire (used internally by add and fireWith) firingStart, // End of the loop when firing firingLength, // Index of currently firing callback (modified by remove if needed) firingIndex, // Add one or several callbacks to the list add = function( args ) { var i, length, elem, type, actual; for ( i = 0, length = args.length; i < length; i++ ) { elem = args[ i ]; type = jQuery.type( elem ); if ( type === "array" ) { // Inspect recursively add( elem ); } else if ( type === "function" ) { // Add if not in unique mode and callback is not in if ( !flags.unique || !self.has( elem ) ) { list.push( elem ); } } } }, // Fire callbacks fire = function( context, args ) { args = args || []; memory = !flags.memory || [ context, args ]; firing = true; firingIndex = firingStart || 0; firingStart = 0; firingLength = list.length; for ( ; list && firingIndex < firingLength; firingIndex++ ) { if ( list[ firingIndex ].apply( context, args ) === false && flags.stopOnFalse ) { memory = true; // Mark as halted break; } } firing = false; if ( list ) { if ( !flags.once ) { if ( stack && stack.length ) { memory = stack.shift(); self.fireWith( memory[ 0 ], memory[ 1 ] ); } } else if ( memory === true ) { self.disable(); } else { list = []; } } }, // Actual Callbacks object self = { // Add a callback or a collection of callbacks to the list add: function() { if ( list ) { var length = list.length; add( arguments ); // Do we need to add the callbacks to the // current firing batch? if ( firing ) { firingLength = list.length; // With memory, if we're not firing then // we should call right away, unless previous // firing was halted (stopOnFalse) } else if ( memory && memory !== true ) { firingStart = length; fire( memory[ 0 ], memory[ 1 ] ); } } return this; }, // Remove a callback from the list remove: function() { if ( list ) { var args = arguments, argIndex = 0, argLength = args.length; for ( ; argIndex < argLength ; argIndex++ ) { for ( var i = 0; i < list.length; i++ ) { if ( args[ argIndex ] === list[ i ] ) { // Handle firingIndex and firingLength if ( firing ) { if ( i <= firingLength ) { firingLength--; if ( i <= firingIndex ) { firingIndex--; } } } // Remove the element list.splice( i--, 1 ); // If we have some unicity property then // we only need to do this once if ( flags.unique ) { break; } } } } } return this; }, // Control if a given callback is in the list has: function( fn ) { if ( list ) { var i = 0, length = list.length; for ( ; i < length; i++ ) { if ( fn === list[ i ] ) { return true; } } } return false; }, // Remove all callbacks from the list empty: function() { list = []; return this; }, // Have the list do nothing anymore disable: function() { list = stack = memory = undefined; return this; }, // Is it disabled? disabled: function() { return !list; }, // Lock the list in its current state lock: function() { stack = undefined; if ( !memory || memory === true ) { self.disable(); } return this; }, // Is it locked? locked: function() { return !stack; }, // Call all callbacks with the given context and arguments fireWith: function( context, args ) { if ( stack ) { if ( firing ) { if ( !flags.once ) { stack.push( [ context, args ] ); } } else if ( !( flags.once && memory ) ) { fire( context, args ); } } return this; }, // Call all the callbacks with the given arguments fire: function() { self.fireWith( this, arguments ); return this; }, // To know if the callbacks have already been called at least once fired: function() { return !!memory; } }; return self; }; jQuery.Deferred = function( func ) { var doneList = jQuery.Callbacks( "once memory" ), failList = jQuery.Callbacks( "once memory" ), progressList = jQuery.Callbacks( "memory" ), state = "pending", lists = { resolve: doneList, reject: failList, notify: progressList }, promise = { done: doneList.add, fail: failList.add, progress: progressList.add, state: function() { return state; }, // Deprecated isResolved: doneList.fired, isRejected: failList.fired, then: function( doneCallbacks, failCallbacks, progressCallbacks ) { deferred.done( doneCallbacks ).fail( failCallbacks ).progress( progressCallbacks ); return this; }, always: function() { deferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments ); return this; }, pipe: function( fnDone, fnFail, fnProgress ) { return jQuery.Deferred(function( newDefer ) { jQuery.each( { done: [ fnDone, "resolve" ], fail: [ fnFail, "reject" ], progress: [ fnProgress, "notify" ] }, function( handler, data ) { var fn = data[ 0 ], action = data[ 1 ], returned; if ( jQuery.isFunction( fn ) ) { deferred[ handler ](function() { returned = fn.apply( this, arguments ); if ( returned && jQuery.isFunction( returned.promise ) ) { returned.promise().then( newDefer.resolve, newDefer.reject, newDefer.notify ); } else { newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] ); } }); } else { deferred[ handler ]( newDefer[ action ] ); } }); }).promise(); }, // Get a promise for this deferred // If obj is provided, the promise aspect is added to the object promise: function( obj ) { if ( obj == null ) { obj = promise; } else { for ( var key in promise ) { obj[ key ] = promise[ key ]; } } return obj; } }, deferred = promise.promise({}), key; for ( key in lists ) { deferred[ key ] = lists[ key ].fire; deferred[ key + "With" ] = lists[ key ].fireWith; } // Handle state deferred.done( function() { state = "resolved"; }, failList.disable, progressList.lock ).fail( function() { state = "rejected"; }, doneList.disable, progressList.lock ); // Call given func if any if ( func ) { func.call( deferred, deferred ); } // All done! return deferred; }; jQuery.Event = function( src, props ) { // Allow instantiation without the 'new' keyword if ( !(this instanceof jQuery.Event) ) { return new jQuery.Event( src, props ); } // Event object if ( src && src.type ) { this.originalEvent = src; this.type = src.type; // Events bubbling up the document may have been marked as prevented // by a handler lower down the tree; reflect the correct value. this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; // Event type } else { this.type = src; } // Put explicitly provided properties onto the event object if ( props ) { jQuery.extend( this, props ); } // Create a timestamp if incoming event doesn't have one this.timeStamp = src && src.timeStamp || jQuery.now(); // Mark it as fixed this[ jQuery.expando ] = true; }; jQuery._data = function( elem, name, data ) { return jQuery.data( elem, name, data, true ); }; jQuery._mark = function( elem, type ) { if ( elem ) { type = ( type || "fx" ) + "mark"; jQuery._data( elem, type, (jQuery._data( elem, type ) || 0) + 1 ); } }; jQuery._unmark = function( force, elem, type ) { if ( force !== true ) { type = elem; elem = force; force = false; } if ( elem ) { type = type || "fx"; var key = type + "mark", count = force ? 0 : ( (jQuery._data( elem, key ) || 1) - 1 ); if ( count ) { jQuery._data( elem, key, count ); } else { jQuery.removeData( elem, key, true ); handleQueueMarkDefer( elem, type, "mark" ); } } }; jQuery.acceptData = function( elem ) { if ( elem.nodeName ) { var match = jQuery.noData[ elem.nodeName.toLowerCase() ]; if ( match ) { return !(match === true || elem.getAttribute("classid") !== match); } } return true; }; jQuery.access = function( elems, key, value, exec, fn, pass ) { var length = elems.length; // Setting many attributes if ( typeof key === "object" ) { for ( var k in key ) { jQuery.access( elems, k, key[k], exec, fn, value ); } return elems; } // Setting one attribute if ( value !== undefined ) { // Optionally, function values get executed if exec is true exec = !pass && exec && jQuery.isFunction(value); for ( var i = 0; i < length; i++ ) { fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); } return elems; } // Getting an attribute return length ? fn( elems[0], key ) : undefined; }; jQuery.active = 0; jQuery.ajax = function( url, options ) { /// /// Perform an asynchronous HTTP (Ajax) request. /// 1 - jQuery.ajax(url, settings) /// 2 - jQuery.ajax(settings) /// /// /// A string containing the URL to which the request is sent. /// /// /// A set of key/value pairs that configure the Ajax request. All settings are optional. A default can be set for any option with $.ajaxSetup(). See jQuery.ajax( settings ) below for a complete list of all settings. /// // If url is an object, simulate pre-1.5 signature if ( typeof url === "object" ) { options = url; url = undefined; } // Force options to be an object options = options || {}; var // Create the final options object s = jQuery.ajaxSetup( {}, options ), // Callbacks context callbackContext = s.context || s, // Context for global events // It's the callbackContext if one was provided in the options // and if it's a DOM node or a jQuery collection globalEventContext = callbackContext !== s && ( callbackContext.nodeType || callbackContext instanceof jQuery ) ? jQuery( callbackContext ) : jQuery.event, // Deferreds deferred = jQuery.Deferred(), completeDeferred = jQuery.Callbacks( "once memory" ), // Status-dependent callbacks statusCode = s.statusCode || {}, // ifModified key ifModifiedKey, // Headers (they are sent all at once) requestHeaders = {}, requestHeadersNames = {}, // Response headers responseHeadersString, responseHeaders, // transport transport, // timeout handle timeoutTimer, // Cross-domain detection vars parts, // The jqXHR state state = 0, // To know if global events are to be dispatched fireGlobals, // Loop variable i, // Fake xhr jqXHR = { readyState: 0, // Caches the header setRequestHeader: function( name, value ) { if ( !state ) { var lname = name.toLowerCase(); name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name; requestHeaders[ name ] = value; } return this; }, // Raw string getAllResponseHeaders: function() { return state === 2 ? responseHeadersString : null; }, // Builds headers hashtable if needed getResponseHeader: function( key ) { var match; if ( state === 2 ) { if ( !responseHeaders ) { responseHeaders = {}; while( ( match = rheaders.exec( responseHeadersString ) ) ) { responseHeaders[ match[1].toLowerCase() ] = match[ 2 ]; } } match = responseHeaders[ key.toLowerCase() ]; } return match === undefined ? null : match; }, // Overrides response content-type header overrideMimeType: function( type ) { if ( !state ) { s.mimeType = type; } return this; }, // Cancel the request abort: function( statusText ) { statusText = statusText || "abort"; if ( transport ) { transport.abort( statusText ); } done( 0, statusText ); return this; } }; // Callback for when everything is done // It is defined here because jslint complains if it is declared // at the end of the function (which would be more logical and readable) function done( status, nativeStatusText, responses, headers ) { // Called once if ( state === 2 ) { return; } // State is "done" now state = 2; // Clear timeout if it exists if ( timeoutTimer ) { clearTimeout( timeoutTimer ); } // Dereference transport for early garbage collection // (no matter how long the jqXHR object will be used) transport = undefined; // Cache response headers responseHeadersString = headers || ""; // Set readyState jqXHR.readyState = status > 0 ? 4 : 0; var isSuccess, success, error, statusText = nativeStatusText, response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined, lastModified, etag; // If successful, handle type chaining if ( status >= 200 && status < 300 || status === 304 ) { // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. if ( s.ifModified ) { if ( ( lastModified = jqXHR.getResponseHeader( "Last-Modified" ) ) ) { jQuery.lastModified[ ifModifiedKey ] = lastModified; } if ( ( etag = jqXHR.getResponseHeader( "Etag" ) ) ) { jQuery.etag[ ifModifiedKey ] = etag; } } // If not modified if ( status === 304 ) { statusText = "notmodified"; isSuccess = true; // If we have data } else { try { success = ajaxConvert( s, response ); statusText = "success"; isSuccess = true; } catch(e) { // We have a parsererror statusText = "parsererror"; error = e; } } } else { // We extract error from statusText // then normalize statusText and status for non-aborts error = statusText; if ( !statusText || status ) { statusText = "error"; if ( status < 0 ) { status = 0; } } } // Set data for the fake xhr object jqXHR.status = status; jqXHR.statusText = "" + ( nativeStatusText || statusText ); // Success/Error if ( isSuccess ) { deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); } else { deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); } // Status-dependent callbacks jqXHR.statusCode( statusCode ); statusCode = undefined; if ( fireGlobals ) { globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ), [ jqXHR, s, isSuccess ? success : error ] ); } // Complete completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); if ( fireGlobals ) { globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); // Handle the global AJAX counter if ( !( --jQuery.active ) ) { jQuery.event.trigger( "ajaxStop" ); } } } // Attach deferreds deferred.promise( jqXHR ); jqXHR.success = jqXHR.done; jqXHR.error = jqXHR.fail; jqXHR.complete = completeDeferred.add; // Status-dependent callbacks jqXHR.statusCode = function( map ) { if ( map ) { var tmp; if ( state < 2 ) { for ( tmp in map ) { statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ]; } } else { tmp = map[ jqXHR.status ]; jqXHR.then( tmp, tmp ); } } return this; }; // Remove hash character (#7531: and string promotion) // Add protocol if not provided (#5866: IE7 issue with protocol-less urls) // We also use the url parameter if available s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" ); // Extract dataTypes list s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax ); // Determine if a cross-domain request is in order if ( s.crossDomain == null ) { parts = rurl.exec( s.url.toLowerCase() ); s.crossDomain = !!( parts && ( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] || ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) != ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) ) ); } // Convert data if not already a string if ( s.data && s.processData && typeof s.data !== "string" ) { s.data = jQuery.param( s.data, s.traditional ); } // Apply prefilters inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); // If request was aborted inside a prefiler, stop there if ( state === 2 ) { return false; } // We can fire global events as of now if asked to fireGlobals = s.global; // Uppercase the type s.type = s.type.toUpperCase(); // Determine if request has content s.hasContent = !rnoContent.test( s.type ); // Watch for a new set of requests if ( fireGlobals && jQuery.active++ === 0 ) { jQuery.event.trigger( "ajaxStart" ); } // More options handling for requests with no content if ( !s.hasContent ) { // If data is available, append data to url if ( s.data ) { s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data; // #9682: remove data so that it's not used in an eventual retry delete s.data; } // Get ifModifiedKey before adding the anti-cache parameter ifModifiedKey = s.url; // Add anti-cache in url if needed if ( s.cache === false ) { var ts = jQuery.now(), // try replacing _= if it is there ret = s.url.replace( rts, "$1_=" + ts ); // if nothing was replaced, add timestamp to the end s.url = ret + ( ( ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" ); } } // Set the correct header, if data is being sent if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { jqXHR.setRequestHeader( "Content-Type", s.contentType ); } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. if ( s.ifModified ) { ifModifiedKey = ifModifiedKey || s.url; if ( jQuery.lastModified[ ifModifiedKey ] ) { jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] ); } if ( jQuery.etag[ ifModifiedKey ] ) { jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] ); } } // Set the Accepts header for the server, depending on the dataType jqXHR.setRequestHeader( "Accept", s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : s.accepts[ "*" ] ); // Check for headers option for ( i in s.headers ) { jqXHR.setRequestHeader( i, s.headers[ i ] ); } // Allow custom headers/mimetypes and early abort if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) { // Abort if not done already jqXHR.abort(); return false; } // Install callbacks on deferreds for ( i in { success: 1, error: 1, complete: 1 } ) { jqXHR[ i ]( s[ i ] ); } // Get transport transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); // If no transport, we auto-abort if ( !transport ) { done( -1, "No Transport" ); } else { jqXHR.readyState = 1; // Send global event if ( fireGlobals ) { globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); } // Timeout if ( s.async && s.timeout > 0 ) { timeoutTimer = setTimeout( function(){ jqXHR.abort( "timeout" ); }, s.timeout ); } try { state = 1; transport.send( requestHeaders, done ); } catch (e) { // Propagate exception as error if not done if ( state < 2 ) { done( -1, e ); // Simply rethrow otherwise } else { throw e; } } } return jqXHR; }; jQuery.ajaxPrefilter = function( dataTypeExpression, func ) { /// /// Handle custom Ajax options or modify existing options before each request is sent and before they are processed by $.ajax(). /// /// /// An optional string containing one or more space-separated dataTypes /// /// /// A handler to set default values for future Ajax requests. /// /// if ( typeof dataTypeExpression !== "string" ) { func = dataTypeExpression; dataTypeExpression = "*"; } if ( jQuery.isFunction( func ) ) { var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ), i = 0, length = dataTypes.length, dataType, list, placeBefore; // For each dataType in the dataTypeExpression for ( ; i < length; i++ ) { dataType = dataTypes[ i ]; // We control if we're asked to add before // any existing element placeBefore = /^\+/.test( dataType ); if ( placeBefore ) { dataType = dataType.substr( 1 ) || "*"; } list = structure[ dataType ] = structure[ dataType ] || []; // then we add to the structure accordingly list[ placeBefore ? "unshift" : "push" ]( func ); } } }; jQuery.ajaxSettings = { "url": 'http://localhost:25813/', "isLocal": false, "global": true, "type": 'GET', "contentType": 'application/x-www-form-urlencoded', "processData": true, "async": true, "accepts": {}, "contents": {}, "responseFields": {}, "converters": {}, "flatOptions": {}, "jsonp": 'callback' }; jQuery.ajaxSetup = function( target, settings ) { /// /// Set default values for future Ajax requests. /// /// /// A set of key/value pairs that configure the default Ajax request. All options are optional. /// if ( settings ) { // Building a settings object ajaxExtend( target, jQuery.ajaxSettings ); } else { // Extending ajaxSettings settings = target; target = jQuery.ajaxSettings; } ajaxExtend( target, settings ); return target; }; jQuery.ajaxTransport = function( dataTypeExpression, func ) { if ( typeof dataTypeExpression !== "string" ) { func = dataTypeExpression; dataTypeExpression = "*"; } if ( jQuery.isFunction( func ) ) { var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ), i = 0, length = dataTypes.length, dataType, list, placeBefore; // For each dataType in the dataTypeExpression for ( ; i < length; i++ ) { dataType = dataTypes[ i ]; // We control if we're asked to add before // any existing element placeBefore = /^\+/.test( dataType ); if ( placeBefore ) { dataType = dataType.substr( 1 ) || "*"; } list = structure[ dataType ] = structure[ dataType ] || []; // then we add to the structure accordingly list[ placeBefore ? "unshift" : "push" ]( func ); } } }; jQuery.attr = function( elem, name, value, pass ) { var ret, hooks, notxml, nType = elem.nodeType; // don't get/set attributes on text, comment and attribute nodes if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { return; } if ( pass && name in jQuery.attrFn ) { return jQuery( elem )[ name ]( value ); } // Fallback to prop when attributes are not supported if ( typeof elem.getAttribute === "undefined" ) { return jQuery.prop( elem, name, value ); } notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); // All attributes are lowercase // Grab necessary hook if one is defined if ( notxml ) { name = name.toLowerCase(); hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook ); } if ( value !== undefined ) { if ( value === null ) { jQuery.removeAttr( elem, name ); return; } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) { return ret; } else { elem.setAttribute( name, "" + value ); return value; } } else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) { return ret; } else { ret = elem.getAttribute( name ); // Non-existent attributes return null, we normalize to undefined return ret === null ? undefined : ret; } }; jQuery.attrFn = { "val": true, "css": true, "html": true, "text": true, "data": true, "width": true, "height": true, "offset": true, "blur": true, "focus": true, "focusin": true, "focusout": true, "load": true, "resize": true, "scroll": true, "unload": true, "click": true, "dblclick": true, "mousedown": true, "mouseup": true, "mousemove": true, "mouseover": true, "mouseout": true, "mouseenter": true, "mouseleave": true, "change": true, "select": true, "submit": true, "keydown": true, "keypress": true, "keyup": true, "error": true, "contextmenu": true }; jQuery.attrHooks = { "type": {}, "value": {}, "tabindex": {} }; jQuery.bindReady = function() { if ( readyList ) { return; } readyList = jQuery.Callbacks( "once memory" ); // Catch cases where $(document).ready() is called after the // browser event has already occurred. if ( document.readyState === "complete" ) { // Handle it asynchronously to allow scripts the opportunity to delay ready return setTimeout( jQuery.ready, 1 ); } // Mozilla, Opera and webkit nightlies currently support this event if ( document.addEventListener ) { // Use the handy event callback document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); // A fallback to window.onload, that will always work window.addEventListener( "load", jQuery.ready, false ); // If IE event model is used } else if ( document.attachEvent ) { // ensure firing before onload, // maybe late but safe also for iframes document.attachEvent( "onreadystatechange", DOMContentLoaded ); // A fallback to window.onload, that will always work window.attachEvent( "onload", jQuery.ready ); // If IE and not a frame // continually check to see if the document is ready var toplevel = false; try { toplevel = window.frameElement == null; } catch(e) {} if ( document.documentElement.doScroll && toplevel ) { doScrollCheck(); } } }; jQuery.boxModel = true; jQuery.browser = { "msie": true, "version": '9.0' }; jQuery.buildFragment = function( args, nodes, scripts ) { var fragment, cacheable, cacheresults, doc, first = args[ 0 ]; // nodes may contain either an explicit document object, // a jQuery collection or context object. // If nodes[0] contains a valid object to assign to doc if ( nodes && nodes[0] ) { doc = nodes[0].ownerDocument || nodes[0]; } // Ensure that an attr object doesn't incorrectly stand in as a document object // Chrome and Firefox seem to allow this to occur and will throw exception // Fixes #8950 if ( !doc.createDocumentFragment ) { doc = document; } // Only cache "small" (1/2 KB) HTML strings that are associated with the main document // Cloning options loses the selected state, so don't cache them // IE 6 doesn't like it when you put or elements in a fragment // Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache // Lastly, IE6,7,8 will not correctly reuse cached fragments that were created from unknown elems #10501 if ( args.length === 1 && typeof first === "string" && first.length < 512 && doc === document && first.charAt(0) === "<" && !rnocache.test( first ) && (jQuery.support.checkClone || !rchecked.test( first )) && (jQuery.support.html5Clone || !rnoshimcache.test( first )) ) { cacheable = true; cacheresults = jQuery.fragments[ first ]; if ( cacheresults && cacheresults !== 1 ) { fragment = cacheresults; } } if ( !fragment ) { fragment = doc.createDocumentFragment(); jQuery.clean( args, doc, fragment, scripts ); } if ( cacheable ) { jQuery.fragments[ first ] = cacheresults ? fragment : 1; } return { fragment: fragment, cacheable: cacheable }; }; jQuery.cache = {}; jQuery.camelCase = function( string ) { return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); }; jQuery.clean = function( elems, context, fragment, scripts ) { var checkScriptType; context = context || document; // !context.createElement fails in IE with an error but returns typeof 'object' if ( typeof context.createElement === "undefined" ) { context = context.ownerDocument || context[0] && context[0].ownerDocument || document; } var ret = [], j; for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { if ( typeof elem === "number" ) { elem += ""; } if ( !elem ) { continue; } // Convert html string into DOM nodes if ( typeof elem === "string" ) { if ( !rhtml.test( elem ) ) { elem = context.createTextNode( elem ); } else { // Fix "XHTML"-style tags in all browsers elem = elem.replace(rxhtmlTag, "<$1>"); // Trim whitespace, otherwise indexOf won't work as expected var tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(), wrap = wrapMap[ tag ] || wrapMap._default, depth = wrap[0], div = context.createElement("div"); // Append wrapper element to unknown element safe doc fragment if ( context === document ) { // Use the fragment we've already created for this document safeFragment.appendChild( div ); } else { // Use a fragment created with the owner document createSafeFragment( context ).appendChild( div ); } // Go to html and back, then peel off extra wrappers div.innerHTML = wrap[1] + elem + wrap[2]; // Move to the right depth while ( depth-- ) { div = div.lastChild; } // Remove IE's autoinserted from table fragments if ( !jQuery.support.tbody ) { // String was a , *may* have spurious var hasBody = rtbody.test(elem), tbody = tag === "table" && !hasBody ? div.firstChild && div.firstChild.childNodes : // String was a bare or wrap[1] === "
    " && !hasBody ? div.childNodes : []; for ( j = tbody.length - 1; j >= 0 ; --j ) { if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) { tbody[ j ].parentNode.removeChild( tbody[ j ] ); } } } // IE completely kills leading whitespace when innerHTML is used if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild ); } elem = div.childNodes; } } // Resets defaultChecked for any radios and checkboxes // about to be appended to the DOM in IE 6/7 (#8060) var len; if ( !jQuery.support.appendChecked ) { if ( elem[0] && typeof (len = elem.length) === "number" ) { for ( j = 0; j < len; j++ ) { findInputs( elem[j] ); } } else { findInputs( elem ); } } if ( elem.nodeType ) { ret.push( elem ); } else { ret = jQuery.merge( ret, elem ); } } if ( fragment ) { checkScriptType = function( elem ) { return !elem.type || rscriptType.test( elem.type ); }; for ( i = 0; ret[i]; i++ ) { if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) { scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] ); } else { if ( ret[i].nodeType === 1 ) { var jsTags = jQuery.grep( ret[i].getElementsByTagName( "script" ), checkScriptType ); ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) ); } fragment.appendChild( ret[i] ); } } } return ret; }; jQuery.cleanData = function( elems ) { var data, id, cache = jQuery.cache, special = jQuery.event.special, deleteExpando = jQuery.support.deleteExpando; for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) { continue; } id = elem[ jQuery.expando ]; if ( id ) { data = cache[ id ]; if ( data && data.events ) { for ( var type in data.events ) { if ( special[ type ] ) { jQuery.event.remove( elem, type ); // This is a shortcut to avoid jQuery.event.remove's overhead } else { jQuery.removeEvent( elem, type, data.handle ); } } // Null the DOM reference to avoid IE6/7/8 leak (#7054) if ( data.handle ) { data.handle.elem = null; } } if ( deleteExpando ) { delete elem[ jQuery.expando ]; } else if ( elem.removeAttribute ) { elem.removeAttribute( jQuery.expando ); } delete cache[ id ]; } } }; jQuery.clone = function( elem, dataAndEvents, deepDataAndEvents ) { var srcElements, destElements, i, // IE<=8 does not properly clone detached, unknown element nodes clone = jQuery.support.html5Clone || !rnoshimcache.test( "<" + elem.nodeName ) ? elem.cloneNode( true ) : shimCloneNode( elem ); if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { // IE copies events bound via attachEvent when using cloneNode. // Calling detachEvent on the clone will also remove the events // from the original. In order to get around this, we use some // proprietary methods to clear the events. Thanks to MooTools // guys for this hotness. cloneFixAttributes( elem, clone ); // Using Sizzle here is crazy slow, so we use getElementsByTagName instead srcElements = getAll( elem ); destElements = getAll( clone ); // Weird iteration because IE will replace the length property // with an element if you are cloning the body and one of the // elements on the page has a name or id of "length" for ( i = 0; srcElements[i]; ++i ) { // Ensure that the destination node is not null; Fixes #9587 if ( destElements[i] ) { cloneFixAttributes( srcElements[i], destElements[i] ); } } } // Copy the events from the original to the clone if ( dataAndEvents ) { cloneCopyEvent( elem, clone ); if ( deepDataAndEvents ) { srcElements = getAll( elem ); destElements = getAll( clone ); for ( i = 0; srcElements[i]; ++i ) { cloneCopyEvent( srcElements[i], destElements[i] ); } } } srcElements = destElements = null; // Return the cloned set return clone; }; jQuery.contains = function( a, b ) { /// /// Check to see if a DOM element is within another DOM element. /// /// /// The DOM element that may contain the other element. /// /// /// The DOM element that may be contained by the other element. /// /// return a !== b && (a.contains ? a.contains(b) : true); }; jQuery.css = function( elem, name, extra ) { var ret, hooks; // Make sure that we're working with the right name name = jQuery.camelCase( name ); hooks = jQuery.cssHooks[ name ]; name = jQuery.cssProps[ name ] || name; // cssFloat needs a special treatment if ( name === "cssFloat" ) { name = "float"; } // If a hook was provided get the computed value from there if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) { return ret; // Otherwise, if a way to get the computed value exists, use that } else if ( curCSS ) { return curCSS( elem, name ); } }; jQuery.cssHooks = { "opacity": {}, "height": {}, "width": {} }; jQuery.cssNumber = { "fillOpacity": true, "fontWeight": true, "lineHeight": true, "opacity": true, "orphans": true, "widows": true, "zIndex": true, "zoom": true }; jQuery.cssProps = { "float": 'cssFloat' }; jQuery.curCSS = function( elem, name, extra ) { var ret, hooks; // Make sure that we're working with the right name name = jQuery.camelCase( name ); hooks = jQuery.cssHooks[ name ]; name = jQuery.cssProps[ name ] || name; // cssFloat needs a special treatment if ( name === "cssFloat" ) { name = "float"; } // If a hook was provided get the computed value from there if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) { return ret; // Otherwise, if a way to get the computed value exists, use that } else if ( curCSS ) { return curCSS( elem, name ); } }; jQuery.data = function( elem, name, data, pvt /* Internal Use Only */ ) { /// /// 1: Store arbitrary data associated with the specified element. Returns the value that was set. /// 1.1 - jQuery.data(element, key, value) /// 2: Returns value at named data store for the element, as set by jQuery.data(element, name, value), or the full data store for the element. /// 2.1 - jQuery.data(element, key) /// 2.2 - jQuery.data(element) /// /// /// The DOM element to associate with the data. /// /// /// A string naming the piece of data to set. /// /// /// The new data value. /// /// if ( !jQuery.acceptData( elem ) ) { return; } var privateCache, thisCache, ret, internalKey = jQuery.expando, getByName = typeof name === "string", // We have to handle DOM nodes and JS objects differently because IE6-7 // can't GC object references properly across the DOM-JS boundary isNode = elem.nodeType, // Only DOM nodes need the global jQuery cache; JS object data is // attached directly to the object so GC can occur automatically cache = isNode ? jQuery.cache : elem, // Only defining an ID for JS objects if its cache already exists allows // the code to shortcut on the same path as a DOM node with no cache id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey, isEvents = name === "events"; // Avoid doing any more work than we need to when trying to get data on an // object that has no data at all if ( (!id || !cache[id] || (!isEvents && !pvt && !cache[id].data)) && getByName && data === undefined ) { return; } if ( !id ) { // Only DOM nodes need a new unique ID for each element since their data // ends up in the global cache if ( isNode ) { elem[ internalKey ] = id = ++jQuery.uuid; } else { id = internalKey; } } if ( !cache[ id ] ) { cache[ id ] = {}; // Avoids exposing jQuery metadata on plain JS objects when the object // is serialized using JSON.stringify if ( !isNode ) { cache[ id ].toJSON = jQuery.noop; } } // An object can be passed to jQuery.data instead of a key/value pair; this gets // shallow copied over onto the existing cache if ( typeof name === "object" || typeof name === "function" ) { if ( pvt ) { cache[ id ] = jQuery.extend( cache[ id ], name ); } else { cache[ id ].data = jQuery.extend( cache[ id ].data, name ); } } privateCache = thisCache = cache[ id ]; // jQuery data() is stored in a separate object inside the object's internal data // cache in order to avoid key collisions between internal data and user-defined // data. if ( !pvt ) { if ( !thisCache.data ) { thisCache.data = {}; } thisCache = thisCache.data; } if ( data !== undefined ) { thisCache[ jQuery.camelCase( name ) ] = data; } // Users should not attempt to inspect the internal events object using jQuery.data, // it is undocumented and subject to change. But does anyone listen? No. if ( isEvents && !thisCache[ name ] ) { return privateCache.events; } // Check for both converted-to-camel and non-converted data property names // If a data property was specified if ( getByName ) { // First Try to find as-is property data ret = thisCache[ name ]; // Test for null|undefined property data if ( ret == null ) { // Try to find the camelCased property ret = thisCache[ jQuery.camelCase( name ) ]; } } else { ret = thisCache; } return ret; }; jQuery.dequeue = function( elem, type ) { /// /// Execute the next function on the queue for the matched element. /// /// /// A DOM element from which to remove and execute a queued function. /// /// /// A string containing the name of the queue. Defaults to fx, the standard effects queue. /// /// type = type || "fx"; var queue = jQuery.queue( elem, type ), fn = queue.shift(), hooks = {}; // If the fx queue is dequeued, always remove the progress sentinel if ( fn === "inprogress" ) { fn = queue.shift(); } if ( fn ) { // Add a progress sentinel to prevent the fx queue from being // automatically dequeued if ( type === "fx" ) { queue.unshift( "inprogress" ); } jQuery._data( elem, type + ".run", hooks ); fn.call( elem, function() { jQuery.dequeue( elem, type ); }, hooks ); } if ( !queue.length ) { jQuery.removeData( elem, type + "queue " + type + ".run", true ); handleQueueMarkDefer( elem, type, "queue" ); } }; jQuery.dir = function( elem, dir, until ) { var matched = [], cur = elem[ dir ]; while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { if ( cur.nodeType === 1 ) { matched.push( cur ); } cur = cur[dir]; } return matched; }; jQuery.each = function( object, callback, args ) { /// /// A generic iterator function, which can be used to seamlessly iterate over both objects and arrays. Arrays and array-like objects with a length property (such as a function's arguments object) are iterated by numeric index, from 0 to length-1. Other objects are iterated via their named properties. /// /// /// The object or array to iterate over. /// /// /// The function that will be executed on every object. /// /// var name, i = 0, length = object.length, isObj = length === undefined || jQuery.isFunction( object ); if ( args ) { if ( isObj ) { for ( name in object ) { if ( callback.apply( object[ name ], args ) === false ) { break; } } } else { for ( ; i < length; ) { if ( callback.apply( object[ i++ ], args ) === false ) { break; } } } // A special, fast, case for the most common use of each } else { if ( isObj ) { for ( name in object ) { if ( callback.call( object[ name ], name, object[ name ] ) === false ) { break; } } } else { for ( ; i < length; ) { if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { break; } } } } return object; }; jQuery.easing = {}; jQuery.error = function( msg ) { /// /// Takes a string and throws an exception containing it. /// /// /// The message to send out. /// throw new Error( msg ); }; jQuery.etag = {}; jQuery.event = { "global": {}, "customEvent": {}, "props": ['attrChange','attrName','relatedNode','srcElement','altKey','bubbles','cancelable','ctrlKey','currentTarget','eventPhase','metaKey','relatedTarget','shiftKey','target','timeStamp','view','which'], "fixHooks": {}, "keyHooks": {}, "mouseHooks": {}, "special": {}, "triggered": false }; jQuery.expr = { "order": ['ID','CLASS','NAME','TAG'], "match": {}, "leftMatch": {}, "attrMap": {}, "attrHandle": {}, "relative": {}, "find": {}, "preFilter": {}, "filters": {}, "setFilters": {}, "filter": {}, ":": {} }; jQuery.extend = function() { /// /// Merge the contents of two or more objects together into the first object. /// 1 - jQuery.extend(target, object1, objectN) /// 2 - jQuery.extend(deep, target, object1, objectN) /// /// /// If true, the merge becomes recursive (aka. deep copy). /// /// /// The object to extend. It will receive the new properties. /// /// /// An object containing additional properties to merge in. /// /// /// Additional objects containing properties to merge in. /// /// var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = false; // Handle a deep copy situation if ( typeof target === "boolean" ) { deep = target; target = arguments[1] || {}; // skip the boolean and the target i = 2; } // Handle case when target is a string or something (possible in deep copy) if ( typeof target !== "object" && !jQuery.isFunction(target) ) { target = {}; } // extend jQuery itself if only one argument is passed if ( length === i ) { target = this; --i; } for ( ; i < length; i++ ) { // Only deal with non-null/undefined values if ( (options = arguments[ i ]) != null ) { // Extend the base object for ( name in options ) { src = target[ name ]; copy = options[ name ]; // Prevent never-ending loop if ( target === copy ) { continue; } // Recurse if we're merging plain objects or arrays if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { if ( copyIsArray ) { copyIsArray = false; clone = src && jQuery.isArray(src) ? src : []; } else { clone = src && jQuery.isPlainObject(src) ? src : {}; } // Never move original objects, clone them target[ name ] = jQuery.extend( deep, clone, copy ); // Don't bring in undefined values } else if ( copy !== undefined ) { target[ name ] = copy; } } } } // Return the modified object return target; }; jQuery.filter = function( expr, elems, not ) { if ( not ) { expr = ":not(" + expr + ")"; } return elems.length === 1 ? jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : jQuery.find.matches(expr, elems); }; jQuery.find = function( query, context, extra, seed ) { context = context || document; // Only use querySelectorAll on non-XML documents // (ID selectors don't work in non-HTML documents) if ( !seed && !Sizzle.isXML(context) ) { // See if we find a selector to speed up var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query ); if ( match && (context.nodeType === 1 || context.nodeType === 9) ) { // Speed-up: Sizzle("TAG") if ( match[1] ) { return makeArray( context.getElementsByTagName( query ), extra ); // Speed-up: Sizzle(".CLASS") } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) { return makeArray( context.getElementsByClassName( match[2] ), extra ); } } if ( context.nodeType === 9 ) { // Speed-up: Sizzle("body") // The body element only exists once, optimize finding it if ( query === "body" && context.body ) { return makeArray( [ context.body ], extra ); // Speed-up: Sizzle("#ID") } else if ( match && match[3] ) { var elem = context.getElementById( match[3] ); // Check parentNode to catch when Blackberry 4.6 returns // nodes that are no longer in the document #6963 if ( elem && elem.parentNode ) { // Handle the case where IE and Opera return items // by name instead of ID if ( elem.id === match[3] ) { return makeArray( [ elem ], extra ); } } else { return makeArray( [], extra ); } } try { return makeArray( context.querySelectorAll(query), extra ); } catch(qsaError) {} // qSA works strangely on Element-rooted queries // We can work around this by specifying an extra ID on the root // and working up from there (Thanks to Andrew Dupont for the technique) // IE 8 doesn't work on object elements } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { var oldContext = context, old = context.getAttribute( "id" ), nid = old || id, hasParent = context.parentNode, relativeHierarchySelector = /^\s*[+~]/.test( query ); if ( !old ) { context.setAttribute( "id", nid ); } else { nid = nid.replace( /'/g, "\\$&" ); } if ( relativeHierarchySelector && hasParent ) { context = context.parentNode; } try { if ( !relativeHierarchySelector || hasParent ) { return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra ); } } catch(pseudoError) { } finally { if ( !old ) { oldContext.removeAttribute( "id" ); } } } } return oldSizzle(query, context, extra, seed); }; jQuery.fn = { "selector": '', "jquery": '1.7.1', "length": 0 }; jQuery.fragments = {}; jQuery.fx = function( elem, options, prop ) { this.options = options; this.elem = elem; this.prop = prop; options.orig = options.orig || {}; }; jQuery.get = function( url, data, callback, type ) { /// /// Load data from the server using a HTTP GET request. /// /// /// A string containing the URL to which the request is sent. /// /// /// A map or string that is sent to the server with the request. /// /// /// A callback function that is executed if the request succeeds. /// /// /// The type of data expected from the server. Default: Intelligent Guess (xml, json, script, or html). /// // shift arguments if data argument was omitted if ( jQuery.isFunction( data ) ) { type = type || callback; callback = data; data = undefined; } return jQuery.ajax({ type: method, url: url, data: data, success: callback, dataType: type }); }; jQuery.getJSON = function( url, data, callback ) { /// /// Load JSON-encoded data from the server using a GET HTTP request. /// /// /// A string containing the URL to which the request is sent. /// /// /// A map or string that is sent to the server with the request. /// /// /// A callback function that is executed if the request succeeds. /// return jQuery.get( url, data, callback, "json" ); }; jQuery.getScript = function( url, callback ) { /// /// Load a JavaScript file from the server using a GET HTTP request, then execute it. /// /// /// A string containing the URL to which the request is sent. /// /// /// A callback function that is executed if the request succeeds. /// return jQuery.get( url, undefined, callback, "script" ); }; jQuery.globalEval = function( data ) { /// /// Execute some JavaScript code globally. /// /// /// The JavaScript code to execute. /// if ( data && rnotwhite.test( data ) ) { // We use execScript on Internet Explorer // We use an anonymous function so that context is window // rather than jQuery in Firefox ( window.execScript || function( data ) { window[ "eval" ].call( window, data ); } )( data ); } }; jQuery.grep = function( elems, callback, inv ) { /// /// Finds the elements of an array which satisfy a filter function. The original array is not affected. /// /// /// The array to search through. /// /// /// The function to process each item against. The first argument to the function is the item, and the second argument is the index. The function should return a Boolean value. this will be the global window object. /// /// /// If "invert" is false, or not provided, then the function returns an array consisting of all elements for which "callback" returns true. If "invert" is true, then the function returns an array consisting of all elements for which "callback" returns false. /// /// var ret = [], retVal; inv = !!inv; // Go through the array, only saving the items // that pass the validator function for ( var i = 0, length = elems.length; i < length; i++ ) { retVal = !!callback( elems[ i ], i ); if ( inv !== retVal ) { ret.push( elems[ i ] ); } } return ret; }; jQuery.guid = 1; jQuery.hasData = function( elem ) { /// /// Determine whether an element has any jQuery data associated with it. /// /// /// A DOM element to be checked for data. /// /// elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; return !!elem && !isEmptyDataObject( elem ); }; jQuery.holdReady = function( hold ) { /// /// Holds or releases the execution of jQuery's ready event. /// /// /// Indicates whether the ready hold is being requested or released /// /// if ( hold ) { jQuery.readyWait++; } else { jQuery.ready( true ); } }; jQuery.inArray = function( elem, array, i ) { /// /// Search for a specified value within an array and return its index (or -1 if not found). /// /// /// The value to search for. /// /// /// An array through which to search. /// /// /// The index of the array at which to begin the search. The default is 0, which will search the whole array. /// /// var len; if ( array ) { if ( indexOf ) { return indexOf.call( array, elem, i ); } len = array.length; i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; for ( ; i < len; i++ ) { // Skip accessing in sparse arrays if ( i in array && array[ i ] === elem ) { return i; } } } return -1; }; jQuery.isArray = Array.isArray || function (obj) { /// /// Determine whether the argument is an array. /// /// /// Object to test whether or not it is an array. /// /// return jQuery.type(obj) === "array"; }; jQuery.isEmptyObject = function( obj ) { /// /// Check to see if an object is empty (contains no properties). /// /// /// The object that will be checked to see if it's empty. /// /// for ( var name in obj ) { return false; } return true; }; jQuery.isFunction = function( obj ) { /// /// Determine if the argument passed is a Javascript function object. /// /// /// Object to test whether or not it is a function. /// /// return jQuery.type(obj) === "function"; }; jQuery.isNumeric = function( obj ) { /// /// Determines whether its argument is a number. /// /// /// The value to be tested. /// /// return !isNaN( parseFloat(obj) ) && isFinite( obj ); }; jQuery.isPlainObject = function( obj ) { /// /// Check to see if an object is a plain object (created using "{}" or "new Object"). /// /// /// The object that will be checked to see if it's a plain object. /// /// // Must be an Object. // Because of IE, we also have to check the presence of the constructor property. // Make sure that DOM nodes and window objects don't pass through, as well if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { return false; } try { // Not own constructor property must be Object if ( obj.constructor && !hasOwn.call(obj, "constructor") && !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { return false; } } catch ( e ) { // IE8,9 Will throw exceptions on certain host objects #9897 return false; } // Own properties are enumerated firstly, so to speed up, // if last one is own, then all properties are own. var key; for ( key in obj ) {} return key === undefined || hasOwn.call( obj, key ); }; jQuery.isReady = true; jQuery.isWindow = function( obj ) { /// /// Determine whether the argument is a window. /// /// /// Object to test whether or not it is a window. /// /// return obj && typeof obj === "object" && "setInterval" in obj; }; jQuery.isXMLDoc = function( elem ) { /// /// Check to see if a DOM node is within an XML document (or is an XML document). /// /// /// The DOM node that will be checked to see if it's in an XML document. /// /// // documentElement is verified for cases where it doesn't yet exist // (such as loading iframes in IE - #4833) var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement; return documentElement ? documentElement.nodeName !== "HTML" : false; }; jQuery.lastModified = {}; jQuery.makeArray = function( array, results ) { /// /// Convert an array-like object into a true JavaScript array. /// /// /// Any object to turn into a native Array. /// /// var ret = results || []; if ( array != null ) { // The window, strings (and functions) also have 'length' // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 var type = jQuery.type( array ); if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { push.call( ret, array ); } else { jQuery.merge( ret, array ); } } return ret; }; jQuery.map = function( elems, callback, arg ) { /// /// Translate all items in an array or object to new array of items. /// 1 - jQuery.map(array, callback(elementOfArray, indexInArray)) /// 2 - jQuery.map(arrayOrObject, callback( value, indexOrKey )) /// /// /// The Array to translate. /// /// /// The function to process each item against. The first argument to the function is the array item, the second argument is the index in array The function can return any value. Within the function, this refers to the global (window) object. /// /// var value, key, ret = [], i = 0, length = elems.length, // jquery objects are treated as arrays isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ; // Go through the array, translating each of the items to their if ( isArray ) { for ( ; i < length; i++ ) { value = callback( elems[ i ], i, arg ); if ( value != null ) { ret[ ret.length ] = value; } } // Go through every key on the object, } else { for ( key in elems ) { value = callback( elems[ key ], key, arg ); if ( value != null ) { ret[ ret.length ] = value; } } } // Flatten any nested arrays return ret.concat.apply( [], ret ); }; jQuery.merge = function( first, second ) { /// /// Merge the contents of two arrays together into the first array. /// /// /// The first array to merge, the elements of second added. /// /// /// The second array to merge into the first, unaltered. /// /// var i = first.length, j = 0; if ( typeof second.length === "number" ) { for ( var l = second.length; j < l; j++ ) { first[ i++ ] = second[ j ]; } } else { while ( second[j] !== undefined ) { first[ i++ ] = second[ j++ ]; } } first.length = i; return first; }; jQuery.noConflict = function( deep ) { /// /// Relinquish jQuery's control of the $ variable. /// /// /// A Boolean indicating whether to remove all jQuery variables from the global scope (including jQuery itself). /// /// if ( window.$ === jQuery ) { window.$ = _$; } if ( deep && window.jQuery === jQuery ) { window.jQuery = _jQuery; } return jQuery; }; jQuery.noData = { "embed": true, "object": 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000', "applet": true }; jQuery.nodeName = function( elem, name ) { return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); }; jQuery.noop = function() { /// /// An empty function. /// /// }; jQuery.now = function() { /// /// Return a number representing the current time. /// /// return ( new Date() ).getTime(); }; jQuery.nth = function( cur, result, dir, elem ) { result = result || 1; var num = 0; for ( ; cur; cur = cur[dir] ) { if ( cur.nodeType === 1 && ++num === result ) { break; } } return cur; }; jQuery.offset = {}; jQuery.param = function( a, traditional ) { /// /// Create a serialized representation of an array or object, suitable for use in a URL query string or Ajax request. /// 1 - jQuery.param(obj) /// 2 - jQuery.param(obj, traditional) /// /// /// An array or object to serialize. /// /// /// A Boolean indicating whether to perform a traditional "shallow" serialization. /// /// var s = [], add = function( key, value ) { // If value is a function, invoke it and return its value value = jQuery.isFunction( value ) ? value() : value; s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value ); }; // Set traditional to true for jQuery <= 1.3.2 behavior. if ( traditional === undefined ) { traditional = jQuery.ajaxSettings.traditional; } // If an array was passed in, assume that it is an array of form elements. if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { // Serialize the form elements jQuery.each( a, function() { add( this.name, this.value ); }); } else { // If traditional, encode the "old" way (the way 1.3.2 or older // did it), otherwise encode params recursively. for ( var prefix in a ) { buildParams( prefix, a[ prefix ], traditional, add ); } } // Return the resulting serialization return s.join( "&" ).replace( r20, "+" ); }; jQuery.parseJSON = function( data ) { /// /// Takes a well-formed JSON string and returns the resulting JavaScript object. /// /// /// The JSON string to parse. /// /// if ( typeof data !== "string" || !data ) { return null; } // Make sure leading/trailing whitespace is removed (IE can't handle it) data = jQuery.trim( data ); // Attempt to parse using the native JSON parser first if ( window.JSON && window.JSON.parse ) { return window.JSON.parse( data ); } // Make sure the incoming data is actual JSON // Logic borrowed from http://json.org/json2.js if ( rvalidchars.test( data.replace( rvalidescape, "@" ) .replace( rvalidtokens, "]" ) .replace( rvalidbraces, "")) ) { return ( new Function( "return " + data ) )(); } jQuery.error( "Invalid JSON: " + data ); }; jQuery.parseXML = function( data ) { /// /// Parses a string into an XML document. /// /// /// a well-formed XML string to be parsed /// /// var xml, tmp; try { if ( window.DOMParser ) { // Standard tmp = new DOMParser(); xml = tmp.parseFromString( data , "text/xml" ); } else { // IE xml = new ActiveXObject( "Microsoft.XMLDOM" ); xml.async = "false"; xml.loadXML( data ); } } catch( e ) { xml = undefined; } if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { jQuery.error( "Invalid XML: " + data ); } return xml; }; jQuery.post = function( url, data, callback, type ) { /// /// Load data from the server using a HTTP POST request. /// /// /// A string containing the URL to which the request is sent. /// /// /// A map or string that is sent to the server with the request. /// /// /// A callback function that is executed if the request succeeds. /// /// /// The type of data expected from the server. Default: Intelligent Guess (xml, json, script, or html). /// // shift arguments if data argument was omitted if ( jQuery.isFunction( data ) ) { type = type || callback; callback = data; data = undefined; } return jQuery.ajax({ type: method, url: url, data: data, success: callback, dataType: type }); }; jQuery.prop = function( elem, name, value ) { var ret, hooks, notxml, nType = elem.nodeType; // don't get/set properties on text, comment and attribute nodes if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { return; } notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); if ( notxml ) { // Fix name and attach hooks name = jQuery.propFix[ name ] || name; hooks = jQuery.propHooks[ name ]; } if ( value !== undefined ) { if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { return ret; } else { return ( elem[ name ] = value ); } } else { if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { return ret; } else { return elem[ name ]; } } }; jQuery.propFix = { "tabindex": 'tabIndex', "readonly": 'readOnly', "for": 'htmlFor', "class": 'className', "maxlength": 'maxLength', "cellspacing": 'cellSpacing', "cellpadding": 'cellPadding', "rowspan": 'rowSpan', "colspan": 'colSpan', "usemap": 'useMap', "frameborder": 'frameBorder', "contenteditable": 'contentEditable' }; jQuery.propHooks = { "tabIndex": {}, "selected": {} }; jQuery.proxy = function( fn, context ) { /// /// Takes a function and returns a new one that will always have a particular context. /// 1 - jQuery.proxy(function, context) /// 2 - jQuery.proxy(context, name) /// /// /// The function whose context will be changed. /// /// /// The object to which the context (this) of the function should be set. /// /// if ( typeof context === "string" ) { var tmp = fn[ context ]; context = fn; fn = tmp; } // Quick check to determine if target is callable, in the spec // this throws a TypeError, but we will just return undefined. if ( !jQuery.isFunction( fn ) ) { return undefined; } // Simulated bind var args = slice.call( arguments, 2 ), proxy = function() { return fn.apply( context, args.concat( slice.call( arguments ) ) ); }; // Set the guid of unique handler to the same of original handler, so it can be removed proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; return proxy; }; jQuery.queue = function( elem, type, data ) { /// /// 1: Show the queue of functions to be executed on the matched element. /// 1.1 - jQuery.queue(element, queueName) /// 2: Manipulate the queue of functions to be executed on the matched element. /// 2.1 - jQuery.queue(element, queueName, newQueue) /// 2.2 - jQuery.queue(element, queueName, callback()) /// /// /// A DOM element where the array of queued functions is attached. /// /// /// A string containing the name of the queue. Defaults to fx, the standard effects queue. /// /// /// An array of functions to replace the current queue contents. /// /// var q; if ( elem ) { type = ( type || "fx" ) + "queue"; q = jQuery._data( elem, type ); // Speed up dequeue by getting out quickly if this is just a lookup if ( data ) { if ( !q || jQuery.isArray(data) ) { q = jQuery._data( elem, type, jQuery.makeArray(data) ); } else { q.push( data ); } } return q || []; } }; jQuery.ready = function( wait ) { // Either a released hold or an DOMready/load event and not yet ready if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) { // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). if ( !document.body ) { return setTimeout( jQuery.ready, 1 ); } // Remember that the DOM is ready jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be if ( wait !== true && --jQuery.readyWait > 0 ) { return; } // If there are functions bound, to execute readyList.fireWith( document, [ jQuery ] ); // Trigger any bound ready events if ( jQuery.fn.trigger ) { jQuery( document ).trigger( "ready" ).off( "ready" ); } } }; jQuery.readyWait = 0; jQuery.removeAttr = function( elem, value ) { var propName, attrNames, name, l, i = 0; if ( value && elem.nodeType === 1 ) { attrNames = value.toLowerCase().split( rspace ); l = attrNames.length; for ( ; i < l; i++ ) { name = attrNames[ i ]; if ( name ) { propName = jQuery.propFix[ name ] || name; // See #9699 for explanation of this approach (setting first, then removal) jQuery.attr( elem, name, "" ); elem.removeAttribute( getSetAttribute ? name : propName ); // Set corresponding property to false for boolean attributes if ( rboolean.test( name ) && propName in elem ) { elem[ propName ] = false; } } } } }; jQuery.removeData = function( elem, name, pvt /* Internal Use Only */ ) { /// /// Remove a previously-stored piece of data. /// /// /// A DOM element from which to remove data. /// /// /// A string naming the piece of data to remove. /// /// if ( !jQuery.acceptData( elem ) ) { return; } var thisCache, i, l, // Reference to internal data cache key internalKey = jQuery.expando, isNode = elem.nodeType, // See jQuery.data for more information cache = isNode ? jQuery.cache : elem, // See jQuery.data for more information id = isNode ? elem[ internalKey ] : internalKey; // If there is already no cache entry for this object, there is no // purpose in continuing if ( !cache[ id ] ) { return; } if ( name ) { thisCache = pvt ? cache[ id ] : cache[ id ].data; if ( thisCache ) { // Support array or space separated string names for data keys if ( !jQuery.isArray( name ) ) { // try the string as a key before any manipulation if ( name in thisCache ) { name = [ name ]; } else { // split the camel cased version by spaces unless a key with the spaces exists name = jQuery.camelCase( name ); if ( name in thisCache ) { name = [ name ]; } else { name = name.split( " " ); } } } for ( i = 0, l = name.length; i < l; i++ ) { delete thisCache[ name[i] ]; } // If there is no data left in the cache, we want to continue // and let the cache object itself get destroyed if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) { return; } } } // See jQuery.data for more information if ( !pvt ) { delete cache[ id ].data; // Don't destroy the parent cache unless the internal data object // had been the only thing left in it if ( !isEmptyDataObject(cache[ id ]) ) { return; } } // Browsers that fail expando deletion also refuse to delete expandos on // the window, but it will allow it on all other JS objects; other browsers // don't care // Ensure that `cache` is not a window object #10080 if ( jQuery.support.deleteExpando || !cache.setInterval ) { delete cache[ id ]; } else { cache[ id ] = null; } // We destroyed the cache and need to eliminate the expando on the node to avoid // false lookups in the cache for entries that no longer exist if ( isNode ) { // IE does not allow us to delete expando properties from nodes, // nor does it have a removeAttribute function on Document nodes; // we must handle all of these cases if ( jQuery.support.deleteExpando ) { delete elem[ internalKey ]; } else if ( elem.removeAttribute ) { elem.removeAttribute( internalKey ); } else { elem[ internalKey ] = null; } } }; jQuery.removeEvent = function( elem, type, handle ) { if ( elem.removeEventListener ) { elem.removeEventListener( type, handle, false ); } }; jQuery.sibling = function( n, elem ) { var r = []; for ( ; n; n = n.nextSibling ) { if ( n.nodeType === 1 && n !== elem ) { r.push( n ); } } return r; }; jQuery.speed = function( speed, easing, fn ) { var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { complete: fn || !fn && easing || jQuery.isFunction( speed ) && speed, duration: speed, easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing }; opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default; // normalize opt.queue - true/undefined/null -> "fx" if ( opt.queue == null || opt.queue === true ) { opt.queue = "fx"; } // Queueing opt.old = opt.complete; opt.complete = function( noUnmark ) { if ( jQuery.isFunction( opt.old ) ) { opt.old.call( this ); } if ( opt.queue ) { jQuery.dequeue( this, opt.queue ); } else if ( noUnmark !== false ) { jQuery._unmark( this ); } }; return opt; }; jQuery.style = function( elem, name, value, extra ) { // Don't set styles on text and comment nodes if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { return; } // Make sure that we're working with the right name var ret, type, origName = jQuery.camelCase( name ), style = elem.style, hooks = jQuery.cssHooks[ origName ]; name = jQuery.cssProps[ origName ] || origName; // Check if we're setting a value if ( value !== undefined ) { type = typeof value; // convert relative number strings (+= or -=) to relative numbers. #7345 if ( type === "string" && (ret = rrelNum.exec( value )) ) { value = ( +( ret[1] + 1) * +ret[2] ) + parseFloat( jQuery.css( elem, name ) ); // Fixes bug #9237 type = "number"; } // Make sure that NaN and null values aren't set. See: #7116 if ( value == null || type === "number" && isNaN( value ) ) { return; } // If a number was passed in, add 'px' to the (except for certain CSS properties) if ( type === "number" && !jQuery.cssNumber[ origName ] ) { value += "px"; } // If a hook was provided, use that value, otherwise just set the specified value if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) { // Wrapped to prevent IE from throwing errors when 'invalid' values are provided // Fixes bug #5509 try { style[ name ] = value; } catch(e) {} } } else { // If a hook was provided get the non-computed value from there if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { return ret; } // Otherwise just get the value from the style object return style[ name ]; } }; jQuery.sub = function() { /// /// Creates a new copy of jQuery whose properties and methods can be modified without affecting the original jQuery object. /// /// function jQuerySub( selector, context ) { return new jQuerySub.fn.init( selector, context ); } jQuery.extend( true, jQuerySub, this ); jQuerySub.superclass = this; jQuerySub.fn = jQuerySub.prototype = this(); jQuerySub.fn.constructor = jQuerySub; jQuerySub.sub = this.sub; jQuerySub.fn.init = function init( selector, context ) { if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { context = jQuerySub( context ); } return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); }; jQuerySub.fn.init.prototype = jQuerySub.fn; var rootjQuerySub = jQuerySub(document); return jQuerySub; }; jQuery.support = { "leadingWhitespace": true, "tbody": true, "htmlSerialize": true, "style": true, "hrefNormalized": true, "opacity": true, "cssFloat": true, "checkOn": true, "optSelected": false, "getSetAttribute": true, "enctype": true, "html5Clone": true, "submitBubbles": true, "changeBubbles": true, "focusinBubbles": true, "deleteExpando": true, "noCloneEvent": true, "inlineBlockNeedsLayout": false, "shrinkWrapBlocks": false, "reliableMarginRight": true, "noCloneChecked": false, "optDisabled": true, "radioValue": false, "checkClone": true, "appendChecked": true, "ajax": true, "cors": false, "reliableHiddenOffsets": true, "boxModel": true, "doesNotAddBorder": true, "doesAddBorderForTableAndCells": true, "fixedPosition": true, "subtractsBorderForOverflowNotVisible": false, "doesNotIncludeMarginInBodyOffset": true }; jQuery.swap = function( elem, options, callback ) { var old = {}; // Remember the old values, and insert the new ones for ( var name in options ) { old[ name ] = elem.style[ name ]; elem.style[ name ] = options[ name ]; } callback.call( elem ); // Revert the old values for ( name in options ) { elem.style[ name ] = old[ name ]; } }; jQuery.text = function( elem ) { var i, node, nodeType = elem.nodeType, ret = ""; if ( nodeType ) { if ( nodeType === 1 || nodeType === 9 ) { // Use textContent || innerText for elements if ( typeof elem.textContent === 'string' ) { return elem.textContent; } else if ( typeof elem.innerText === 'string' ) { // Replace IE's carriage returns return elem.innerText.replace( rReturn, '' ); } else { // Traverse it's children for ( elem = elem.firstChild; elem; elem = elem.nextSibling) { ret += getText( elem ); } } } else if ( nodeType === 3 || nodeType === 4 ) { return elem.nodeValue; } } else { // If no nodeType, this is expected to be an array for ( i = 0; (node = elem[i]); i++ ) { // Do not traverse comment nodes if ( node.nodeType !== 8 ) { ret += getText( node ); } } } return ret; }; jQuery.trim = function( text ) { /// /// Remove the whitespace from the beginning and end of a string. /// /// /// The string to trim. /// /// return text == null ? "" : trim.call( text ); }; jQuery.type = function( obj ) { /// /// Determine the internal JavaScript [[Class]] of an object. /// /// /// Object to get the internal JavaScript [[Class]] of. /// /// return obj == null ? String( obj ) : class2type[ toString.call(obj) ] || "object"; }; jQuery.uaMatch = function( ua ) { ua = ua.toLowerCase(); var match = rwebkit.exec( ua ) || ropera.exec( ua ) || rmsie.exec( ua ) || ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) || []; return { browser: match[1] || "", version: match[2] || "0" }; }; jQuery.unique = function( results ) { /// /// Sorts an array of DOM elements, in place, with the duplicates removed. Note that this only works on arrays of DOM elements, not strings or numbers. /// /// /// The Array of DOM elements. /// /// if ( sortOrder ) { hasDuplicate = baseHasDuplicate; results.sort( sortOrder ); if ( hasDuplicate ) { for ( var i = 1; i < results.length; i++ ) { if ( results[i] === results[ i - 1 ] ) { results.splice( i--, 1 ); } } } } return results; }; jQuery.uuid = 0; jQuery.valHooks = { "option": {}, "select": {}, "radio": {}, "checkbox": {} }; jQuery.when = function( firstParam ) { /// /// Provides a way to execute callback functions based on one or more objects, usually Deferred objects that represent asynchronous events. /// /// /// One or more Deferred objects, or plain JavaScript objects. /// /// var args = sliceDeferred.call( arguments, 0 ), i = 0, length = args.length, pValues = new Array( length ), count = length, pCount = length, deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ? firstParam : jQuery.Deferred(), promise = deferred.promise(); function resolveFunc( i ) { return function( value ) { args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value; if ( !( --count ) ) { deferred.resolveWith( deferred, args ); } }; } function progressFunc( i ) { return function( value ) { pValues[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value; deferred.notifyWith( promise, pValues ); }; } if ( length > 1 ) { for ( ; i < length; i++ ) { if ( args[ i ] && args[ i ].promise && jQuery.isFunction( args[ i ].promise ) ) { args[ i ].promise().then( resolveFunc(i), deferred.reject, progressFunc(i) ); } else { --count; } } if ( !count ) { deferred.resolveWith( deferred, args ); } } else if ( deferred !== firstParam ) { deferred.resolveWith( deferred, length ? [ firstParam ] : [] ); } return promise; }; jQuery.Event.prototype.isDefaultPrevented = function returnFalse() { /// /// Returns whether event.preventDefault() was ever called on this event object. /// /// return false; }; jQuery.Event.prototype.isImmediatePropagationStopped = function returnFalse() { /// /// Returns whether event.stopImmediatePropagation() was ever called on this event object. /// /// return false; }; jQuery.Event.prototype.isPropagationStopped = function returnFalse() { /// /// Returns whether event.stopPropagation() was ever called on this event object. /// /// return false; }; jQuery.Event.prototype.preventDefault = function() { /// /// If this method is called, the default action of the event will not be triggered. /// /// this.isDefaultPrevented = returnTrue; var e = this.originalEvent; if ( !e ) { return; } // if preventDefault exists run it on the original event if ( e.preventDefault ) { e.preventDefault(); // otherwise set the returnValue property of the original event to false (IE) } else { e.returnValue = false; } }; jQuery.Event.prototype.stopImmediatePropagation = function() { /// /// Keeps the rest of the handlers from being executed and prevents the event from bubbling up the DOM tree. /// this.isImmediatePropagationStopped = returnTrue; this.stopPropagation(); }; jQuery.Event.prototype.stopPropagation = function() { /// /// Prevents the event from bubbling up the DOM tree, preventing any parent handlers from being notified of the event. /// this.isPropagationStopped = returnTrue; var e = this.originalEvent; if ( !e ) { return; } // if stopPropagation exists run it on the original event if ( e.stopPropagation ) { e.stopPropagation(); } // otherwise set the cancelBubble property of the original event to true (IE) e.cancelBubble = true; }; jQuery.prototype._toggle = function( fn ) { // Save reference to arguments for access in closure var args = arguments, guid = fn.guid || jQuery.guid++, i = 0, toggler = function( event ) { // Figure out which function to execute var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i; jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 ); // Make sure that clicks stop event.preventDefault(); // and execute the function return args[ lastToggle ].apply( this, arguments ) || false; }; // link all the functions, so any of them can unbind this click handler toggler.guid = guid; while ( i < args.length ) { args[ i++ ].guid = guid; } return this.click( toggler ); }; jQuery.prototype.add = function( selector, context ) { /// /// Add elements to the set of matched elements. /// 1 - add(selector) /// 2 - add(elements) /// 3 - add(html) /// 4 - add(jQuery object) /// 5 - add(selector, context) /// /// /// A string representing a selector expression to find additional elements to add to the set of matched elements. /// /// /// The point in the document at which the selector should begin matching; similar to the context argument of the $(selector, context) method. /// /// var set = typeof selector === "string" ? jQuery( selector, context ) : jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), all = jQuery.merge( this.get(), set ); return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? all : jQuery.unique( all ) ); }; jQuery.prototype.addClass = function( value ) { /// /// Adds the specified class(es) to each of the set of matched elements. /// 1 - addClass(className) /// 2 - addClass(function(index, currentClass)) /// /// /// One or more class names to be added to the class attribute of each matched element. /// /// var classNames, i, l, elem, setClass, c, cl; if ( jQuery.isFunction( value ) ) { return this.each(function( j ) { jQuery( this ).addClass( value.call(this, j, this.className) ); }); } if ( value && typeof value === "string" ) { classNames = value.split( rspace ); for ( i = 0, l = this.length; i < l; i++ ) { elem = this[ i ]; if ( elem.nodeType === 1 ) { if ( !elem.className && classNames.length === 1 ) { elem.className = value; } else { setClass = " " + elem.className + " "; for ( c = 0, cl = classNames.length; c < cl; c++ ) { if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) { setClass += classNames[ c ] + " "; } } elem.className = jQuery.trim( setClass ); } } } } return this; }; jQuery.prototype.after = function() { /// /// Insert content, specified by the parameter, after each element in the set of matched elements. /// 1 - after(content, content) /// 2 - after(function(index)) /// /// /// HTML string, DOM element, or jQuery object to insert after each element in the set of matched elements. /// /// /// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert after each element in the set of matched elements. /// /// if ( this[0] && this[0].parentNode ) { return this.domManip(arguments, false, function( elem ) { this.parentNode.insertBefore( elem, this.nextSibling ); }); } else if ( arguments.length ) { var set = this.pushStack( this, "after", arguments ); set.push.apply( set, jQuery.clean(arguments) ); return set; } }; jQuery.prototype.ajaxComplete = function( f ){ /// /// Register a handler to be called when Ajax requests complete. This is an Ajax Event. /// /// /// The function to be invoked. /// /// return this.on( o, f ); }; jQuery.prototype.ajaxError = function( f ){ /// /// Register a handler to be called when Ajax requests complete with an error. This is an Ajax Event. /// /// /// The function to be invoked. /// /// return this.on( o, f ); }; jQuery.prototype.ajaxSend = function( f ){ /// /// Attach a function to be executed before an Ajax request is sent. This is an Ajax Event. /// /// /// The function to be invoked. /// /// return this.on( o, f ); }; jQuery.prototype.ajaxStart = function( f ){ /// /// Register a handler to be called when the first Ajax request begins. This is an Ajax Event. /// /// /// The function to be invoked. /// /// return this.on( o, f ); }; jQuery.prototype.ajaxStop = function( f ){ /// /// Register a handler to be called when all Ajax requests have completed. This is an Ajax Event. /// /// /// The function to be invoked. /// /// return this.on( o, f ); }; jQuery.prototype.ajaxSuccess = function( f ){ /// /// Attach a function to be executed whenever an Ajax request completes successfully. This is an Ajax Event. /// /// /// The function to be invoked. /// /// return this.on( o, f ); }; jQuery.prototype.andSelf = function() { /// /// Add the previous set of elements on the stack to the current set. /// /// return this.add( this.prevObject ); }; jQuery.prototype.animate = function( prop, speed, easing, callback ) { /// /// Perform a custom animation of a set of CSS properties. /// 1 - animate(properties, duration, easing, complete) /// 2 - animate(properties, options) /// /// /// A map of CSS properties that the animation will move toward. /// /// /// A string or number determining how long the animation will run. /// /// /// A string indicating which easing function to use for the transition. /// /// /// A function to call once the animation is complete. /// /// var optall = jQuery.speed( speed, easing, callback ); if ( jQuery.isEmptyObject( prop ) ) { return this.each( optall.complete, [ false ] ); } // Do not change referenced properties as per-property easing will be lost prop = jQuery.extend( {}, prop ); function doAnimation() { // XXX 'this' does not always have a nodeName when running the // test suite if ( optall.queue === false ) { jQuery._mark( this ); } var opt = jQuery.extend( {}, optall ), isElement = this.nodeType === 1, hidden = isElement && jQuery(this).is(":hidden"), name, val, p, e, parts, start, end, unit, method; // will store per property easing and be used to determine when an animation is complete opt.animatedProperties = {}; for ( p in prop ) { // property name normalization name = jQuery.camelCase( p ); if ( p !== name ) { prop[ name ] = prop[ p ]; delete prop[ p ]; } val = prop[ name ]; // easing resolution: per property > opt.specialEasing > opt.easing > 'swing' (default) if ( jQuery.isArray( val ) ) { opt.animatedProperties[ name ] = val[ 1 ]; val = prop[ name ] = val[ 0 ]; } else { opt.animatedProperties[ name ] = opt.specialEasing && opt.specialEasing[ name ] || opt.easing || 'swing'; } if ( val === "hide" && hidden || val === "show" && !hidden ) { return opt.complete.call( this ); } if ( isElement && ( name === "height" || name === "width" ) ) { // Make sure that nothing sneaks out // Record all 3 overflow attributes because IE does not // change the overflow attribute when overflowX and // overflowY are set to the same value opt.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ]; // Set display property to inline-block for height/width // animations on inline elements that are having width/height animated if ( jQuery.css( this, "display" ) === "inline" && jQuery.css( this, "float" ) === "none" ) { // inline-level elements accept inline-block; // block-level elements need to be inline with layout if ( !jQuery.support.inlineBlockNeedsLayout || defaultDisplay( this.nodeName ) === "inline" ) { this.style.display = "inline-block"; } else { this.style.zoom = 1; } } } } if ( opt.overflow != null ) { this.style.overflow = "hidden"; } for ( p in prop ) { e = new jQuery.fx( this, opt, p ); val = prop[ p ]; if ( rfxtypes.test( val ) ) { // Tracks whether to show or hide based on private // data attached to the element method = jQuery._data( this, "toggle" + p ) || ( val === "toggle" ? hidden ? "show" : "hide" : 0 ); if ( method ) { jQuery._data( this, "toggle" + p, method === "show" ? "hide" : "show" ); e[ method ](); } else { e[ val ](); } } else { parts = rfxnum.exec( val ); start = e.cur(); if ( parts ) { end = parseFloat( parts[2] ); unit = parts[3] || ( jQuery.cssNumber[ p ] ? "" : "px" ); // We need to compute starting value if ( unit !== "px" ) { jQuery.style( this, p, (end || 1) + unit); start = ( (end || 1) / e.cur() ) * start; jQuery.style( this, p, start + unit); } // If a +=/-= token was provided, we're doing a relative animation if ( parts[1] ) { end = ( (parts[ 1 ] === "-=" ? -1 : 1) * end ) + start; } e.custom( start, end, unit ); } else { e.custom( start, val, "" ); } } } // For JS strict compliance return true; } return optall.queue === false ? this.each( doAnimation ) : this.queue( optall.queue, doAnimation ); }; jQuery.prototype.append = function() { /// /// Insert content, specified by the parameter, to the end of each element in the set of matched elements. /// 1 - append(content, content) /// 2 - append(function(index, html)) /// /// /// DOM element, HTML string, or jQuery object to insert at the end of each element in the set of matched elements. /// /// /// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert at the end of each element in the set of matched elements. /// /// return this.domManip(arguments, true, function( elem ) { if ( this.nodeType === 1 ) { this.appendChild( elem ); } }); }; jQuery.prototype.appendTo = function( selector ) { /// /// Insert every element in the set of matched elements to the end of the target. /// /// /// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted at the end of the element(s) specified by this parameter. /// /// var ret = [], insert = jQuery( selector ), parent = this.length === 1 && this[0].parentNode; if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) { insert[ original ]( this[0] ); return this; } else { for ( var i = 0, l = insert.length; i < l; i++ ) { var elems = ( i > 0 ? this.clone(true) : this ).get(); jQuery( insert[i] )[ original ]( elems ); ret = ret.concat( elems ); } return this.pushStack( ret, name, insert.selector ); } }; jQuery.prototype.attr = function( name, value ) { /// /// 1: Get the value of an attribute for the first element in the set of matched elements. /// 1.1 - attr(attributeName) /// 2: Set one or more attributes for the set of matched elements. /// 2.1 - attr(attributeName, value) /// 2.2 - attr(map) /// 2.3 - attr(attributeName, function(index, attr)) /// /// /// The name of the attribute to set. /// /// /// A value to set for the attribute. /// /// return jQuery.access( this, name, value, true, jQuery.attr ); }; jQuery.prototype.before = function() { /// /// Insert content, specified by the parameter, before each element in the set of matched elements. /// 1 - before(content, content) /// 2 - before(function) /// /// /// HTML string, DOM element, or jQuery object to insert before each element in the set of matched elements. /// /// /// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert before each element in the set of matched elements. /// /// if ( this[0] && this[0].parentNode ) { return this.domManip(arguments, false, function( elem ) { this.parentNode.insertBefore( elem, this ); }); } else if ( arguments.length ) { var set = jQuery.clean( arguments ); set.push.apply( set, this.toArray() ); return this.pushStack( set, "before", arguments ); } }; jQuery.prototype.bind = function( types, data, fn ) { /// /// Attach a handler to an event for the elements. /// 1 - bind(eventType, eventData, handler(eventObject)) /// 2 - bind(eventType, eventData, preventBubble) /// 3 - bind(events) /// /// /// A string containing one or more DOM event types, such as "click" or "submit," or custom event names. /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// return this.on( types, null, data, fn ); }; jQuery.prototype.blur = function( data, fn ) { /// /// Bind an event handler to the "blur" JavaScript event, or trigger that event on an element. /// 1 - blur(handler(eventObject)) /// 2 - blur(eventData, handler(eventObject)) /// 3 - blur() /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.change = function( data, fn ) { /// /// Bind an event handler to the "change" JavaScript event, or trigger that event on an element. /// 1 - change(handler(eventObject)) /// 2 - change(eventData, handler(eventObject)) /// 3 - change() /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.children = function( until, selector ) { /// /// Get the children of each element in the set of matched elements, optionally filtered by a selector. /// /// /// A string containing a selector expression to match elements against. /// /// var ret = jQuery.map( this, fn, until ); if ( !runtil.test( name ) ) { selector = until; } if ( selector && typeof selector === "string" ) { ret = jQuery.filter( selector, ret ); } ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { ret = ret.reverse(); } return this.pushStack( ret, name, slice.call( arguments ).join(",") ); }; jQuery.prototype.clearQueue = function( type ) { /// /// Remove from the queue all items that have not yet been run. /// /// /// A string containing the name of the queue. Defaults to fx, the standard effects queue. /// /// return this.queue( type || "fx", [] ); }; jQuery.prototype.click = function( data, fn ) { /// /// Bind an event handler to the "click" JavaScript event, or trigger that event on an element. /// 1 - click(handler(eventObject)) /// 2 - click(eventData, handler(eventObject)) /// 3 - click() /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.clone = function( dataAndEvents, deepDataAndEvents ) { /// /// Create a deep copy of the set of matched elements. /// 1 - clone(withDataAndEvents) /// 2 - clone(withDataAndEvents, deepWithDataAndEvents) /// /// /// A Boolean indicating whether event handlers and data should be copied along with the elements. The default value is false. *In jQuery 1.5.0 the default value was incorrectly true; it was changed back to false in 1.5.1 and up. /// /// /// A Boolean indicating whether event handlers and data for all children of the cloned element should be copied. By default its value matches the first argument's value (which defaults to false). /// /// dataAndEvents = dataAndEvents == null ? false : dataAndEvents; deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; return this.map( function () { return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); }); }; jQuery.prototype.closest = function( selectors, context ) { /// /// 1: Get the first element that matches the selector, beginning at the current element and progressing up through the DOM tree. /// 1.1 - closest(selector) /// 1.2 - closest(selector, context) /// 1.3 - closest(jQuery object) /// 1.4 - closest(element) /// 2: Gets an array of all the elements and selectors matched against the current element up through the DOM tree. /// 2.1 - closest(selectors, context) /// /// /// A string containing a selector expression to match elements against. /// /// /// A DOM element within which a matching element may be found. If no context is passed in then the context of the jQuery set will be used instead. /// /// var ret = [], i, l, cur = this[0]; // Array (deprecated as of jQuery 1.7) if ( jQuery.isArray( selectors ) ) { var level = 1; while ( cur && cur.ownerDocument && cur !== context ) { for ( i = 0; i < selectors.length; i++ ) { if ( jQuery( cur ).is( selectors[ i ] ) ) { ret.push({ selector: selectors[ i ], elem: cur, level: level }); } } cur = cur.parentNode; level++; } return ret; } // String var pos = POS.test( selectors ) || typeof selectors !== "string" ? jQuery( selectors, context || this.context ) : 0; for ( i = 0, l = this.length; i < l; i++ ) { cur = this[i]; while ( cur ) { if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { ret.push( cur ); break; } else { cur = cur.parentNode; if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) { break; } } } } ret = ret.length > 1 ? jQuery.unique( ret ) : ret; return this.pushStack( ret, "closest", selectors ); }; jQuery.prototype.constructor = function( selector, context ) { // The jQuery object is actually just the init constructor 'enhanced' return new jQuery.fn.init( selector, context, rootjQuery ); }; jQuery.prototype.contents = function( until, selector ) { /// /// Get the children of each element in the set of matched elements, including text and comment nodes. /// /// var ret = jQuery.map( this, fn, until ); if ( !runtil.test( name ) ) { selector = until; } if ( selector && typeof selector === "string" ) { ret = jQuery.filter( selector, ret ); } ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { ret = ret.reverse(); } return this.pushStack( ret, name, slice.call( arguments ).join(",") ); }; jQuery.prototype.contextmenu = function( data, fn ) { if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.css = function( name, value ) { /// /// 1: Get the value of a style property for the first element in the set of matched elements. /// 1.1 - css(propertyName) /// 2: Set one or more CSS properties for the set of matched elements. /// 2.1 - css(propertyName, value) /// 2.2 - css(propertyName, function(index, value)) /// 2.3 - css(map) /// /// /// A CSS property name. /// /// /// A value to set for the property. /// /// // Setting 'undefined' is a no-op if ( arguments.length === 2 && value === undefined ) { return this; } return jQuery.access( this, name, value, true, function( elem, name, value ) { return value !== undefined ? jQuery.style( elem, name, value ) : jQuery.css( elem, name ); }); }; jQuery.prototype.data = function( key, value ) { /// /// 1: Store arbitrary data associated with the matched elements. /// 1.1 - data(key, value) /// 1.2 - data(obj) /// 2: Returns value at named data store for the first element in the jQuery collection, as set by data(name, value). /// 2.1 - data(key) /// 2.2 - data() /// /// /// A string naming the piece of data to set. /// /// /// The new data value; it can be any Javascript type including Array or Object. /// /// var parts, attr, name, data = null; if ( typeof key === "undefined" ) { if ( this.length ) { data = jQuery.data( this[0] ); if ( this[0].nodeType === 1 && !jQuery._data( this[0], "parsedAttrs" ) ) { attr = this[0].attributes; for ( var i = 0, l = attr.length; i < l; i++ ) { name = attr[i].name; if ( name.indexOf( "data-" ) === 0 ) { name = jQuery.camelCase( name.substring(5) ); dataAttr( this[0], name, data[ name ] ); } } jQuery._data( this[0], "parsedAttrs", true ); } } return data; } else if ( typeof key === "object" ) { return this.each(function() { jQuery.data( this, key ); }); } parts = key.split("."); parts[1] = parts[1] ? "." + parts[1] : ""; if ( value === undefined ) { data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); // Try to fetch any internally stored data first if ( data === undefined && this.length ) { data = jQuery.data( this[0], key ); data = dataAttr( this[0], key, data ); } return data === undefined && parts[1] ? this.data( parts[0] ) : data; } else { return this.each(function() { var self = jQuery( this ), args = [ parts[0], value ]; self.triggerHandler( "setData" + parts[1] + "!", args ); jQuery.data( this, key, value ); self.triggerHandler( "changeData" + parts[1] + "!", args ); }); } }; jQuery.prototype.dblclick = function( data, fn ) { /// /// Bind an event handler to the "dblclick" JavaScript event, or trigger that event on an element. /// 1 - dblclick(handler(eventObject)) /// 2 - dblclick(eventData, handler(eventObject)) /// 3 - dblclick() /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.delay = function( time, type ) { /// /// Set a timer to delay execution of subsequent items in the queue. /// /// /// An integer indicating the number of milliseconds to delay execution of the next item in the queue. /// /// /// A string containing the name of the queue. Defaults to fx, the standard effects queue. /// /// time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; type = type || "fx"; return this.queue( type, function( next, hooks ) { var timeout = setTimeout( next, time ); hooks.stop = function() { clearTimeout( timeout ); }; }); }; jQuery.prototype.delegate = function( selector, types, data, fn ) { /// /// Attach a handler to one or more events for all elements that match the selector, now or in the future, based on a specific set of root elements. /// 1 - delegate(selector, eventType, handler) /// 2 - delegate(selector, eventType, eventData, handler) /// 3 - delegate(selector, events) /// /// /// A selector to filter the elements that trigger the event. /// /// /// A string containing one or more space-separated JavaScript event types, such as "click" or "keydown," or custom event names. /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute at the time the event is triggered. /// /// return this.on( types, selector, data, fn ); }; jQuery.prototype.dequeue = function( type ) { /// /// Execute the next function on the queue for the matched elements. /// /// /// A string containing the name of the queue. Defaults to fx, the standard effects queue. /// /// return this.each(function() { jQuery.dequeue( this, type ); }); }; jQuery.prototype.detach = function( selector ) { /// /// Remove the set of matched elements from the DOM. /// /// /// A selector expression that filters the set of matched elements to be removed. /// /// return this.remove( selector, true ); }; jQuery.prototype.die = function( types, fn ) { /// /// 1: Remove all event handlers previously attached using .live() from the elements. /// 1.1 - die() /// 2: Remove an event handler previously attached using .live() from the elements. /// 2.1 - die(eventType, handler) /// 2.2 - die(eventTypes) /// /// /// A string containing a JavaScript event type, such as click or keydown. /// /// /// The function that is no longer to be executed. /// /// jQuery( this.context ).off( types, this.selector || "**", fn ); return this; }; jQuery.prototype.domManip = function( args, table, callback ) { var results, first, fragment, parent, value = args[0], scripts = []; // We can't cloneNode fragments that contain checked, in WebKit if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) { return this.each(function() { jQuery(this).domManip( args, table, callback, true ); }); } if ( jQuery.isFunction(value) ) { return this.each(function(i) { var self = jQuery(this); args[0] = value.call(this, i, table ? self.html() : undefined); self.domManip( args, table, callback ); }); } if ( this[0] ) { parent = value && value.parentNode; // If we're in a fragment, just use that instead of building a new one if ( jQuery.support.parentNode && parent && parent.nodeType === 11 && parent.childNodes.length === this.length ) { results = { fragment: parent }; } else { results = jQuery.buildFragment( args, this, scripts ); } fragment = results.fragment; if ( fragment.childNodes.length === 1 ) { first = fragment = fragment.firstChild; } else { first = fragment.firstChild; } if ( first ) { table = table && jQuery.nodeName( first, "tr" ); for ( var i = 0, l = this.length, lastIndex = l - 1; i < l; i++ ) { callback.call( table ? root(this[i], first) : this[i], // Make sure that we do not leak memory by inadvertently discarding // the original fragment (which might have attached data) instead of // using it; in addition, use the original fragment object for the last // item instead of first because it can end up being emptied incorrectly // in certain situations (Bug #8070). // Fragments from the fragment cache must always be cloned and never used // in place. results.cacheable || ( l > 1 && i < lastIndex ) ? jQuery.clone( fragment, true, true ) : fragment ); } } if ( scripts.length ) { jQuery.each( scripts, evalScript ); } } return this; }; jQuery.prototype.each = function( callback, args ) { /// /// Iterate over a jQuery object, executing a function for each matched element. /// /// /// A function to execute for each matched element. /// /// return jQuery.each( this, callback, args ); }; jQuery.prototype.empty = function() { /// /// Remove all child nodes of the set of matched elements from the DOM. /// /// for ( var i = 0, elem; (elem = this[i]) != null; i++ ) { // Remove element nodes and prevent memory leaks if ( elem.nodeType === 1 ) { jQuery.cleanData( elem.getElementsByTagName("*") ); } // Remove any remaining nodes while ( elem.firstChild ) { elem.removeChild( elem.firstChild ); } } return this; }; jQuery.prototype.end = function() { /// /// End the most recent filtering operation in the current chain and return the set of matched elements to its previous state. /// /// return this.prevObject || this.constructor(null); }; jQuery.prototype.eq = function( i ) { /// /// Reduce the set of matched elements to the one at the specified index. /// 1 - eq(index) /// 2 - eq(-index) /// /// /// An integer indicating the 0-based position of the element. /// /// i = +i; return i === -1 ? this.slice( i ) : this.slice( i, i + 1 ); }; jQuery.prototype.error = function( data, fn ) { /// /// Bind an event handler to the "error" JavaScript event. /// 1 - error(handler(eventObject)) /// 2 - error(eventData, handler(eventObject)) /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.extend = function() { var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = false; // Handle a deep copy situation if ( typeof target === "boolean" ) { deep = target; target = arguments[1] || {}; // skip the boolean and the target i = 2; } // Handle case when target is a string or something (possible in deep copy) if ( typeof target !== "object" && !jQuery.isFunction(target) ) { target = {}; } // extend jQuery itself if only one argument is passed if ( length === i ) { target = this; --i; } for ( ; i < length; i++ ) { // Only deal with non-null/undefined values if ( (options = arguments[ i ]) != null ) { // Extend the base object for ( name in options ) { src = target[ name ]; copy = options[ name ]; // Prevent never-ending loop if ( target === copy ) { continue; } // Recurse if we're merging plain objects or arrays if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { if ( copyIsArray ) { copyIsArray = false; clone = src && jQuery.isArray(src) ? src : []; } else { clone = src && jQuery.isPlainObject(src) ? src : {}; } // Never move original objects, clone them target[ name ] = jQuery.extend( deep, clone, copy ); // Don't bring in undefined values } else if ( copy !== undefined ) { target[ name ] = copy; } } } } // Return the modified object return target; }; jQuery.prototype.fadeIn = function( speed, easing, callback ) { /// /// Display the matched elements by fading them to opaque. /// 1 - fadeIn(duration, callback) /// 2 - fadeIn(duration, easing, callback) /// /// /// A string or number determining how long the animation will run. /// /// /// A string indicating which easing function to use for the transition. /// /// /// A function to call once the animation is complete. /// /// return this.animate( props, speed, easing, callback ); }; jQuery.prototype.fadeOut = function( speed, easing, callback ) { /// /// Hide the matched elements by fading them to transparent. /// 1 - fadeOut(duration, callback) /// 2 - fadeOut(duration, easing, callback) /// /// /// A string or number determining how long the animation will run. /// /// /// A string indicating which easing function to use for the transition. /// /// /// A function to call once the animation is complete. /// /// return this.animate( props, speed, easing, callback ); }; jQuery.prototype.fadeTo = function( speed, to, easing, callback ) { /// /// Adjust the opacity of the matched elements. /// 1 - fadeTo(duration, opacity, callback) /// 2 - fadeTo(duration, opacity, easing, callback) /// /// /// A string or number determining how long the animation will run. /// /// /// A number between 0 and 1 denoting the target opacity. /// /// /// A string indicating which easing function to use for the transition. /// /// /// A function to call once the animation is complete. /// /// return this.filter(":hidden").css("opacity", 0).show().end() .animate({opacity: to}, speed, easing, callback); }; jQuery.prototype.fadeToggle = function( speed, easing, callback ) { /// /// Display or hide the matched elements by animating their opacity. /// /// /// A string or number determining how long the animation will run. /// /// /// A string indicating which easing function to use for the transition. /// /// /// A function to call once the animation is complete. /// /// return this.animate( props, speed, easing, callback ); }; jQuery.prototype.filter = function( selector ) { /// /// Reduce the set of matched elements to those that match the selector or pass the function's test. /// 1 - filter(selector) /// 2 - filter(function(index)) /// 3 - filter(element) /// 4 - filter(jQuery object) /// /// /// A string containing a selector expression to match the current set of elements against. /// /// return this.pushStack( winnow(this, selector, true), "filter", selector ); }; jQuery.prototype.find = function( selector ) { /// /// Get the descendants of each element in the current set of matched elements, filtered by a selector, jQuery object, or element. /// 1 - find(selector) /// 2 - find(jQuery object) /// 3 - find(element) /// /// /// A string containing a selector expression to match elements against. /// /// var self = this, i, l; if ( typeof selector !== "string" ) { return jQuery( selector ).filter(function() { for ( i = 0, l = self.length; i < l; i++ ) { if ( jQuery.contains( self[ i ], this ) ) { return true; } } }); } var ret = this.pushStack( "", "find", selector ), length, n, r; for ( i = 0, l = this.length; i < l; i++ ) { length = ret.length; jQuery.find( selector, this[i], ret ); if ( i > 0 ) { // Make sure that the results are unique for ( n = length; n < ret.length; n++ ) { for ( r = 0; r < length; r++ ) { if ( ret[r] === ret[n] ) { ret.splice(n--, 1); break; } } } } } return ret; }; jQuery.prototype.first = function() { /// /// Reduce the set of matched elements to the first in the set. /// /// return this.eq( 0 ); }; jQuery.prototype.focus = function( data, fn ) { /// /// Bind an event handler to the "focus" JavaScript event, or trigger that event on an element. /// 1 - focus(handler(eventObject)) /// 2 - focus(eventData, handler(eventObject)) /// 3 - focus() /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.focusin = function( data, fn ) { /// /// Bind an event handler to the "focusin" event. /// 1 - focusin(handler(eventObject)) /// 2 - focusin(eventData, handler(eventObject)) /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.focusout = function( data, fn ) { /// /// Bind an event handler to the "focusout" JavaScript event. /// 1 - focusout(handler(eventObject)) /// 2 - focusout(eventData, handler(eventObject)) /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.get = function( num ) { /// /// Retrieve the DOM elements matched by the jQuery object. /// /// /// A zero-based integer indicating which element to retrieve. /// /// return num == null ? // Return a 'clean' array this.toArray() : // Return just the object ( num < 0 ? this[ this.length + num ] : this[ num ] ); }; jQuery.prototype.has = function( target ) { /// /// Reduce the set of matched elements to those that have a descendant that matches the selector or DOM element. /// 1 - has(selector) /// 2 - has(contained) /// /// /// A string containing a selector expression to match elements against. /// /// var targets = jQuery( target ); return this.filter(function() { for ( var i = 0, l = targets.length; i < l; i++ ) { if ( jQuery.contains( this, targets[i] ) ) { return true; } } }); }; jQuery.prototype.hasClass = function( selector ) { /// /// Determine whether any of the matched elements are assigned the given class. /// /// /// The class name to search for. /// /// var className = " " + selector + " ", i = 0, l = this.length; for ( ; i < l; i++ ) { if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { return true; } } return false; }; jQuery.prototype.height = function( size ) { /// /// 1: Get the current computed height for the first element in the set of matched elements. /// 1.1 - height() /// 2: Set the CSS height of every matched element. /// 2.1 - height(value) /// 2.2 - height(function(index, height)) /// /// /// An integer representing the number of pixels, or an integer with an optional unit of measure appended (as a string). /// /// // Get window width or height var elem = this[0]; if ( !elem ) { return size == null ? null : this; } if ( jQuery.isFunction( size ) ) { return this.each(function( i ) { var self = jQuery( this ); self[ type ]( size.call( this, i, self[ type ]() ) ); }); } if ( jQuery.isWindow( elem ) ) { // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode // 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat var docElemProp = elem.document.documentElement[ "client" + name ], body = elem.document.body; return elem.document.compatMode === "CSS1Compat" && docElemProp || body && body[ "client" + name ] || docElemProp; // Get document width or height } else if ( elem.nodeType === 9 ) { // Either scroll[Width/Height] or offset[Width/Height], whichever is greater return Math.max( elem.documentElement["client" + name], elem.body["scroll" + name], elem.documentElement["scroll" + name], elem.body["offset" + name], elem.documentElement["offset" + name] ); // Get or set width or height on the element } else if ( size === undefined ) { var orig = jQuery.css( elem, type ), ret = parseFloat( orig ); return jQuery.isNumeric( ret ) ? ret : orig; // Set the width or height on the element (default to pixels if value is unitless) } else { return this.css( type, typeof size === "string" ? size : size + "px" ); } }; jQuery.prototype.hide = function( speed, easing, callback ) { /// /// Hide the matched elements. /// 1 - hide() /// 2 - hide(duration, callback) /// 3 - hide(duration, easing, callback) /// /// /// A string or number determining how long the animation will run. /// /// /// A string indicating which easing function to use for the transition. /// /// /// A function to call once the animation is complete. /// /// if ( speed || speed === 0 ) { return this.animate( genFx("hide", 3), speed, easing, callback); } else { var elem, display, i = 0, j = this.length; for ( ; i < j; i++ ) { elem = this[i]; if ( elem.style ) { display = jQuery.css( elem, "display" ); if ( display !== "none" && !jQuery._data( elem, "olddisplay" ) ) { jQuery._data( elem, "olddisplay", display ); } } } // Set the display of the elements in a second loop // to avoid the constant reflow for ( i = 0; i < j; i++ ) { if ( this[i].style ) { this[i].style.display = "none"; } } return this; } }; jQuery.prototype.hover = function( fnOver, fnOut ) { /// /// 1: Bind two handlers to the matched elements, to be executed when the mouse pointer enters and leaves the elements. /// 1.1 - hover(handlerIn(eventObject), handlerOut(eventObject)) /// 2: Bind a single handler to the matched elements, to be executed when the mouse pointer enters or leaves the elements. /// 2.1 - hover(handlerInOut(eventObject)) /// /// /// A function to execute when the mouse pointer enters the element. /// /// /// A function to execute when the mouse pointer leaves the element. /// /// return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); }; jQuery.prototype.html = function( value ) { /// /// 1: Get the HTML contents of the first element in the set of matched elements. /// 1.1 - html() /// 2: Set the HTML contents of each element in the set of matched elements. /// 2.1 - html(htmlString) /// 2.2 - html(function(index, oldhtml)) /// /// /// A string of HTML to set as the content of each matched element. /// /// if ( value === undefined ) { return this[0] && this[0].nodeType === 1 ? this[0].innerHTML.replace(rinlinejQuery, "") : null; // See if we can take a shortcut and just use innerHTML } else if ( typeof value === "string" && !rnoInnerhtml.test( value ) && (jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value )) && !wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase() ] ) { value = value.replace(rxhtmlTag, "<$1>"); try { for ( var i = 0, l = this.length; i < l; i++ ) { // Remove element nodes and prevent memory leaks if ( this[i].nodeType === 1 ) { jQuery.cleanData( this[i].getElementsByTagName("*") ); this[i].innerHTML = value; } } // If using innerHTML throws an exception, use the fallback method } catch(e) { this.empty().append( value ); } } else if ( jQuery.isFunction( value ) ) { this.each(function(i){ var self = jQuery( this ); self.html( value.call(this, i, self.html()) ); }); } else { this.empty().append( value ); } return this; }; jQuery.prototype.index = function( elem ) { /// /// Search for a given element from among the matched elements. /// 1 - index() /// 2 - index(selector) /// 3 - index(element) /// /// /// A selector representing a jQuery collection in which to look for an element. /// /// // No argument, return index in parent if ( !elem ) { return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1; } // index in selector if ( typeof elem === "string" ) { return jQuery.inArray( this[0], jQuery( elem ) ); } // Locate the position of the desired element return jQuery.inArray( // If it receives a jQuery object, the first element is used elem.jquery ? elem[0] : elem, this ); }; jQuery.prototype.init = function( selector, context, rootjQuery ) { var match, elem, ret, doc; // Handle $(""), $(null), or $(undefined) if ( !selector ) { return this; } // Handle $(DOMElement) if ( selector.nodeType ) { this.context = this[0] = selector; this.length = 1; return this; } // The body element only exists once, optimize finding it if ( selector === "body" && !context && document.body ) { this.context = document; this[0] = document.body; this.selector = selector; this.length = 1; return this; } // Handle HTML strings if ( typeof selector === "string" ) { // Are we dealing with HTML string or an ID? if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { // Assume that strings that start and end with <> are HTML and skip the regex check match = [ null, selector, null ]; } else { match = quickExpr.exec( selector ); } // Verify a match, and that no context was specified for #id if ( match && (match[1] || !context) ) { // HANDLE: $(html) -> $(array) if ( match[1] ) { context = context instanceof jQuery ? context[0] : context; doc = ( context ? context.ownerDocument || context : document ); // If a single string is passed in and it's a single tag // just do a createElement and skip the rest ret = rsingleTag.exec( selector ); if ( ret ) { if ( jQuery.isPlainObject( context ) ) { selector = [ document.createElement( ret[1] ) ]; jQuery.fn.attr.call( selector, context, true ); } else { selector = [ doc.createElement( ret[1] ) ]; } } else { ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); selector = ( ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment ).childNodes; } return jQuery.merge( this, selector ); // HANDLE: $("#id") } else { elem = document.getElementById( match[2] ); // Check parentNode to catch when Blackberry 4.6 returns // nodes that are no longer in the document #6963 if ( elem && elem.parentNode ) { // Handle the case where IE and Opera return items // by name instead of ID if ( elem.id !== match[2] ) { return rootjQuery.find( selector ); } // Otherwise, we inject the element directly into the jQuery object this.length = 1; this[0] = elem; } this.context = document; this.selector = selector; return this; } // HANDLE: $(expr, $(...)) } else if ( !context || context.jquery ) { return ( context || rootjQuery ).find( selector ); // HANDLE: $(expr, context) // (which is just equivalent to: $(context).find(expr) } else { return this.constructor( context ).find( selector ); } // HANDLE: $(function) // Shortcut for document ready } else if ( jQuery.isFunction( selector ) ) { return rootjQuery.ready( selector ); } if ( selector.selector !== undefined ) { this.selector = selector.selector; this.context = selector.context; } return jQuery.makeArray( selector, this ); }; jQuery.prototype.innerHeight = function() { /// /// Get the current computed height for the first element in the set of matched elements, including padding but not border. /// /// var elem = this[0]; return elem ? elem.style ? parseFloat( jQuery.css( elem, type, "padding" ) ) : this[ type ]() : null; }; jQuery.prototype.innerWidth = function() { /// /// Get the current computed width for the first element in the set of matched elements, including padding but not border. /// /// var elem = this[0]; return elem ? elem.style ? parseFloat( jQuery.css( elem, type, "padding" ) ) : this[ type ]() : null; }; jQuery.prototype.insertAfter = function( selector ) { /// /// Insert every element in the set of matched elements after the target. /// /// /// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted after the element(s) specified by this parameter. /// /// var ret = [], insert = jQuery( selector ), parent = this.length === 1 && this[0].parentNode; if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) { insert[ original ]( this[0] ); return this; } else { for ( var i = 0, l = insert.length; i < l; i++ ) { var elems = ( i > 0 ? this.clone(true) : this ).get(); jQuery( insert[i] )[ original ]( elems ); ret = ret.concat( elems ); } return this.pushStack( ret, name, insert.selector ); } }; jQuery.prototype.insertBefore = function( selector ) { /// /// Insert every element in the set of matched elements before the target. /// /// /// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted before the element(s) specified by this parameter. /// /// var ret = [], insert = jQuery( selector ), parent = this.length === 1 && this[0].parentNode; if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) { insert[ original ]( this[0] ); return this; } else { for ( var i = 0, l = insert.length; i < l; i++ ) { var elems = ( i > 0 ? this.clone(true) : this ).get(); jQuery( insert[i] )[ original ]( elems ); ret = ret.concat( elems ); } return this.pushStack( ret, name, insert.selector ); } }; jQuery.prototype.is = function( selector ) { /// /// Check the current matched set of elements against a selector, element, or jQuery object and return true if at least one of these elements matches the given arguments. /// 1 - is(selector) /// 2 - is(function(index)) /// 3 - is(jQuery object) /// 4 - is(element) /// /// /// A string containing a selector expression to match elements against. /// /// return !!selector && ( typeof selector === "string" ? // If this is a positional selector, check membership in the returned set // so $("p:first").is("p:last") won't return true for a doc with two "p". POS.test( selector ) ? jQuery( selector, this.context ).index( this[0] ) >= 0 : jQuery.filter( selector, this ).length > 0 : this.filter( selector ).length > 0 ); }; jQuery.prototype.keydown = function( data, fn ) { /// /// Bind an event handler to the "keydown" JavaScript event, or trigger that event on an element. /// 1 - keydown(handler(eventObject)) /// 2 - keydown(eventData, handler(eventObject)) /// 3 - keydown() /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.keypress = function( data, fn ) { /// /// Bind an event handler to the "keypress" JavaScript event, or trigger that event on an element. /// 1 - keypress(handler(eventObject)) /// 2 - keypress(eventData, handler(eventObject)) /// 3 - keypress() /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.keyup = function( data, fn ) { /// /// Bind an event handler to the "keyup" JavaScript event, or trigger that event on an element. /// 1 - keyup(handler(eventObject)) /// 2 - keyup(eventData, handler(eventObject)) /// 3 - keyup() /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.last = function() { /// /// Reduce the set of matched elements to the final one in the set. /// /// return this.eq( -1 ); }; jQuery.prototype.length = 0; jQuery.prototype.live = function( types, data, fn ) { /// /// Attach an event handler for all elements which match the current selector, now and in the future. /// 1 - live(events, handler) /// 2 - live(events, data, handler) /// 3 - live(events-map) /// /// /// A string containing a JavaScript event type, such as "click" or "keydown." As of jQuery 1.4 the string can contain multiple, space-separated event types or custom event names. /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute at the time the event is triggered. /// /// jQuery( this.context ).on( types, this.selector, data, fn ); return this; }; jQuery.prototype.load = function( url, params, callback ) { /// /// 1: Bind an event handler to the "load" JavaScript event. /// 1.1 - load(handler(eventObject)) /// 1.2 - load(eventData, handler(eventObject)) /// 2: Load data from the server and place the returned HTML into the matched element. /// 2.1 - load(url, data, complete(responseText, textStatus, XMLHttpRequest)) /// /// /// A string containing the URL to which the request is sent. /// /// /// A map or string that is sent to the server with the request. /// /// /// A callback function that is executed when the request completes. /// /// if ( typeof url !== "string" && _load ) { return _load.apply( this, arguments ); // Don't do a request if no elements are being requested } else if ( !this.length ) { return this; } var off = url.indexOf( " " ); if ( off >= 0 ) { var selector = url.slice( off, url.length ); url = url.slice( 0, off ); } // Default to a GET request var type = "GET"; // If the second parameter was provided if ( params ) { // If it's a function if ( jQuery.isFunction( params ) ) { // We assume that it's the callback callback = params; params = undefined; // Otherwise, build a param string } else if ( typeof params === "object" ) { params = jQuery.param( params, jQuery.ajaxSettings.traditional ); type = "POST"; } } var self = this; // Request the remote document jQuery.ajax({ url: url, type: type, dataType: "html", data: params, // Complete callback (responseText is used internally) complete: function( jqXHR, status, responseText ) { // Store the response as specified by the jqXHR object responseText = jqXHR.responseText; // If successful, inject the HTML into all the matched elements if ( jqXHR.isResolved() ) { // #4825: Get the actual response in case // a dataFilter is present in ajaxSettings jqXHR.done(function( r ) { responseText = r; }); // See if a selector was specified self.html( selector ? // Create a dummy div to hold the results jQuery("
    ") // inject the contents of the document in, removing the scripts // to avoid any 'Permission Denied' errors in IE .append(responseText.replace(rscript, "")) // Locate the specified elements .find(selector) : // If not, just inject the full result responseText ); } if ( callback ) { self.each( callback, [ responseText, status, jqXHR ] ); } } }); return this; }; jQuery.prototype.map = function( callback ) { /// /// Pass each element in the current matched set through a function, producing a new jQuery object containing the return values. /// /// /// A function object that will be invoked for each element in the current set. /// /// return this.pushStack( jQuery.map(this, function( elem, i ) { return callback.call( elem, i, elem ); })); }; jQuery.prototype.mousedown = function( data, fn ) { /// /// Bind an event handler to the "mousedown" JavaScript event, or trigger that event on an element. /// 1 - mousedown(handler(eventObject)) /// 2 - mousedown(eventData, handler(eventObject)) /// 3 - mousedown() /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.mouseenter = function( data, fn ) { /// /// Bind an event handler to be fired when the mouse enters an element, or trigger that handler on an element. /// 1 - mouseenter(handler(eventObject)) /// 2 - mouseenter(eventData, handler(eventObject)) /// 3 - mouseenter() /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.mouseleave = function( data, fn ) { /// /// Bind an event handler to be fired when the mouse leaves an element, or trigger that handler on an element. /// 1 - mouseleave(handler(eventObject)) /// 2 - mouseleave(eventData, handler(eventObject)) /// 3 - mouseleave() /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.mousemove = function( data, fn ) { /// /// Bind an event handler to the "mousemove" JavaScript event, or trigger that event on an element. /// 1 - mousemove(handler(eventObject)) /// 2 - mousemove(eventData, handler(eventObject)) /// 3 - mousemove() /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.mouseout = function( data, fn ) { /// /// Bind an event handler to the "mouseout" JavaScript event, or trigger that event on an element. /// 1 - mouseout(handler(eventObject)) /// 2 - mouseout(eventData, handler(eventObject)) /// 3 - mouseout() /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.mouseover = function( data, fn ) { /// /// Bind an event handler to the "mouseover" JavaScript event, or trigger that event on an element. /// 1 - mouseover(handler(eventObject)) /// 2 - mouseover(eventData, handler(eventObject)) /// 3 - mouseover() /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.mouseup = function( data, fn ) { /// /// Bind an event handler to the "mouseup" JavaScript event, or trigger that event on an element. /// 1 - mouseup(handler(eventObject)) /// 2 - mouseup(eventData, handler(eventObject)) /// 3 - mouseup() /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.next = function( until, selector ) { /// /// Get the immediately following sibling of each element in the set of matched elements. If a selector is provided, it retrieves the next sibling only if it matches that selector. /// /// /// A string containing a selector expression to match elements against. /// /// var ret = jQuery.map( this, fn, until ); if ( !runtil.test( name ) ) { selector = until; } if ( selector && typeof selector === "string" ) { ret = jQuery.filter( selector, ret ); } ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { ret = ret.reverse(); } return this.pushStack( ret, name, slice.call( arguments ).join(",") ); }; jQuery.prototype.nextAll = function( until, selector ) { /// /// Get all following siblings of each element in the set of matched elements, optionally filtered by a selector. /// /// /// A string containing a selector expression to match elements against. /// /// var ret = jQuery.map( this, fn, until ); if ( !runtil.test( name ) ) { selector = until; } if ( selector && typeof selector === "string" ) { ret = jQuery.filter( selector, ret ); } ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { ret = ret.reverse(); } return this.pushStack( ret, name, slice.call( arguments ).join(",") ); }; jQuery.prototype.nextUntil = function( until, selector ) { /// /// Get all following siblings of each element up to but not including the element matched by the selector, DOM node, or jQuery object passed. /// 1 - nextUntil(selector, filter) /// 2 - nextUntil(element, filter) /// /// /// A string containing a selector expression to indicate where to stop matching following sibling elements. /// /// /// A string containing a selector expression to match elements against. /// /// var ret = jQuery.map( this, fn, until ); if ( !runtil.test( name ) ) { selector = until; } if ( selector && typeof selector === "string" ) { ret = jQuery.filter( selector, ret ); } ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { ret = ret.reverse(); } return this.pushStack( ret, name, slice.call( arguments ).join(",") ); }; jQuery.prototype.not = function( selector ) { /// /// Remove elements from the set of matched elements. /// 1 - not(selector) /// 2 - not(elements) /// 3 - not(function(index)) /// /// /// A string containing a selector expression to match elements against. /// /// return this.pushStack( winnow(this, selector, false), "not", selector); }; jQuery.prototype.off = function( types, selector, fn ) { /// /// Remove an event handler. /// 1 - off(events, selector, handler) /// 2 - off(events-map, selector) /// /// /// One or more space-separated event types and optional namespaces, or just namespaces, such as "click", "keydown.myPlugin", or ".myPlugin". /// /// /// A selector which should match the one originally passed to .on() when attaching event handlers. /// /// /// A handler function previously attached for the event(s), or the special value false. /// /// if ( types && types.preventDefault && types.handleObj ) { // ( event ) dispatched jQuery.Event var handleObj = types.handleObj; jQuery( types.delegateTarget ).off( handleObj.namespace? handleObj.type + "." + handleObj.namespace : handleObj.type, handleObj.selector, handleObj.handler ); return this; } if ( typeof types === "object" ) { // ( types-object [, selector] ) for ( var type in types ) { this.off( type, selector, types[ type ] ); } return this; } if ( selector === false || typeof selector === "function" ) { // ( types [, fn] ) fn = selector; selector = undefined; } if ( fn === false ) { fn = returnFalse; } return this.each(function() { jQuery.event.remove( this, types, fn, selector ); }); }; jQuery.prototype.offset = function( options ) { /// /// 1: Get the current coordinates of the first element in the set of matched elements, relative to the document. /// 1.1 - offset() /// 2: Set the current coordinates of every element in the set of matched elements, relative to the document. /// 2.1 - offset(coordinates) /// 2.2 - offset(function(index, coords)) /// /// /// An object containing the properties top and left, which are integers indicating the new top and left coordinates for the elements. /// /// var elem = this[0], box; if ( options ) { return this.each(function( i ) { jQuery.offset.setOffset( this, options, i ); }); } if ( !elem || !elem.ownerDocument ) { return null; } if ( elem === elem.ownerDocument.body ) { return jQuery.offset.bodyOffset( elem ); } try { box = elem.getBoundingClientRect(); } catch(e) {} var doc = elem.ownerDocument, docElem = doc.documentElement; // Make sure we're not dealing with a disconnected DOM node if ( !box || !jQuery.contains( docElem, elem ) ) { return box ? { top: box.top, left: box.left } : { top: 0, left: 0 }; } var body = doc.body, win = getWindow(doc), clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0, scrollTop = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop || body.scrollTop, scrollLeft = win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft, top = box.top + scrollTop - clientTop, left = box.left + scrollLeft - clientLeft; return { top: top, left: left }; }; jQuery.prototype.offsetParent = function() { /// /// Get the closest ancestor element that is positioned. /// /// return this.map(function() { var offsetParent = this.offsetParent || document.body; while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) { offsetParent = offsetParent.offsetParent; } return offsetParent; }); }; jQuery.prototype.on = function( types, selector, data, fn, /*INTERNAL*/ one ) { /// /// Attach an event handler function for one or more events to the selected elements. /// 1 - on(events, selector, data, handler) /// 2 - on(events-map, selector, data) /// /// /// One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". /// /// /// A selector string to filter the descendants of the selected elements that trigger the event. If the selector is null or omitted, the event is always triggered when it reaches the selected element. /// /// /// Data to be passed to the handler in event.data when an event is triggered. /// /// /// A function to execute when the event is triggered. The value false is also allowed as a shorthand for a function that simply does return false. /// /// var origFn, type; // Types can be a map of types/handlers if ( typeof types === "object" ) { // ( types-Object, selector, data ) if ( typeof selector !== "string" ) { // ( types-Object, data ) data = selector; selector = undefined; } for ( type in types ) { this.on( type, selector, data, types[ type ], one ); } return this; } if ( data == null && fn == null ) { // ( types, fn ) fn = selector; data = selector = undefined; } else if ( fn == null ) { if ( typeof selector === "string" ) { // ( types, selector, fn ) fn = data; data = undefined; } else { // ( types, data, fn ) fn = data; data = selector; selector = undefined; } } if ( fn === false ) { fn = returnFalse; } else if ( !fn ) { return this; } if ( one === 1 ) { origFn = fn; fn = function( event ) { // Can use an empty set, since event contains the info jQuery().off( event ); return origFn.apply( this, arguments ); }; // Use same guid so caller can remove using origFn fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); } return this.each( function() { jQuery.event.add( this, types, fn, data, selector ); }); }; jQuery.prototype.one = function( types, selector, data, fn ) { /// /// Attach a handler to an event for the elements. The handler is executed at most once per element. /// 1 - one(events, data, handler) /// 2 - one(events, selector, data, handler) /// 3 - one(events-map, selector, data) /// /// /// One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". /// /// /// A selector string to filter the descendants of the selected elements that trigger the event. If the selector is null or omitted, the event is always triggered when it reaches the selected element. /// /// /// Data to be passed to the handler in event.data when an event is triggered. /// /// /// A function to execute when the event is triggered. The value false is also allowed as a shorthand for a function that simply does return false. /// /// return this.on.call( this, types, selector, data, fn, 1 ); }; jQuery.prototype.outerHeight = function( margin ) { /// /// Get the current computed height for the first element in the set of matched elements, including padding, border, and optionally margin. Returns an integer (without "px") representation of the value or null if called on an empty set of elements. /// /// /// A Boolean indicating whether to include the element's margin in the calculation. /// /// var elem = this[0]; return elem ? elem.style ? parseFloat( jQuery.css( elem, type, margin ? "margin" : "border" ) ) : this[ type ]() : null; }; jQuery.prototype.outerWidth = function( margin ) { /// /// Get the current computed width for the first element in the set of matched elements, including padding and border. /// /// /// A Boolean indicating whether to include the element's margin in the calculation. /// /// var elem = this[0]; return elem ? elem.style ? parseFloat( jQuery.css( elem, type, margin ? "margin" : "border" ) ) : this[ type ]() : null; }; jQuery.prototype.parent = function( until, selector ) { /// /// Get the parent of each element in the current set of matched elements, optionally filtered by a selector. /// /// /// A string containing a selector expression to match elements against. /// /// var ret = jQuery.map( this, fn, until ); if ( !runtil.test( name ) ) { selector = until; } if ( selector && typeof selector === "string" ) { ret = jQuery.filter( selector, ret ); } ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { ret = ret.reverse(); } return this.pushStack( ret, name, slice.call( arguments ).join(",") ); }; jQuery.prototype.parents = function( until, selector ) { /// /// Get the ancestors of each element in the current set of matched elements, optionally filtered by a selector. /// /// /// A string containing a selector expression to match elements against. /// /// var ret = jQuery.map( this, fn, until ); if ( !runtil.test( name ) ) { selector = until; } if ( selector && typeof selector === "string" ) { ret = jQuery.filter( selector, ret ); } ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { ret = ret.reverse(); } return this.pushStack( ret, name, slice.call( arguments ).join(",") ); }; jQuery.prototype.parentsUntil = function( until, selector ) { /// /// Get the ancestors of each element in the current set of matched elements, up to but not including the element matched by the selector, DOM node, or jQuery object. /// 1 - parentsUntil(selector, filter) /// 2 - parentsUntil(element, filter) /// /// /// A string containing a selector expression to indicate where to stop matching ancestor elements. /// /// /// A string containing a selector expression to match elements against. /// /// var ret = jQuery.map( this, fn, until ); if ( !runtil.test( name ) ) { selector = until; } if ( selector && typeof selector === "string" ) { ret = jQuery.filter( selector, ret ); } ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { ret = ret.reverse(); } return this.pushStack( ret, name, slice.call( arguments ).join(",") ); }; jQuery.prototype.position = function() { /// /// Get the current coordinates of the first element in the set of matched elements, relative to the offset parent. /// /// if ( !this[0] ) { return null; } var elem = this[0], // Get *real* offsetParent offsetParent = this.offsetParent(), // Get correct offsets offset = this.offset(), parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset(); // Subtract element margins // note: when an element has margin: auto the offsetLeft and marginLeft // are the same in Safari causing offset.left to incorrectly be 0 offset.top -= parseFloat( jQuery.css(elem, "marginTop") ) || 0; offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0; // Add offsetParent borders parentOffset.top += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0; parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0; // Subtract the two offsets return { top: offset.top - parentOffset.top, left: offset.left - parentOffset.left }; }; jQuery.prototype.prepend = function() { /// /// Insert content, specified by the parameter, to the beginning of each element in the set of matched elements. /// 1 - prepend(content, content) /// 2 - prepend(function(index, html)) /// /// /// DOM element, array of elements, HTML string, or jQuery object to insert at the beginning of each element in the set of matched elements. /// /// /// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert at the beginning of each element in the set of matched elements. /// /// return this.domManip(arguments, true, function( elem ) { if ( this.nodeType === 1 ) { this.insertBefore( elem, this.firstChild ); } }); }; jQuery.prototype.prependTo = function( selector ) { /// /// Insert every element in the set of matched elements to the beginning of the target. /// /// /// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted at the beginning of the element(s) specified by this parameter. /// /// var ret = [], insert = jQuery( selector ), parent = this.length === 1 && this[0].parentNode; if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) { insert[ original ]( this[0] ); return this; } else { for ( var i = 0, l = insert.length; i < l; i++ ) { var elems = ( i > 0 ? this.clone(true) : this ).get(); jQuery( insert[i] )[ original ]( elems ); ret = ret.concat( elems ); } return this.pushStack( ret, name, insert.selector ); } }; jQuery.prototype.prev = function( until, selector ) { /// /// Get the immediately preceding sibling of each element in the set of matched elements, optionally filtered by a selector. /// /// /// A string containing a selector expression to match elements against. /// /// var ret = jQuery.map( this, fn, until ); if ( !runtil.test( name ) ) { selector = until; } if ( selector && typeof selector === "string" ) { ret = jQuery.filter( selector, ret ); } ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { ret = ret.reverse(); } return this.pushStack( ret, name, slice.call( arguments ).join(",") ); }; jQuery.prototype.prevAll = function( until, selector ) { /// /// Get all preceding siblings of each element in the set of matched elements, optionally filtered by a selector. /// /// /// A string containing a selector expression to match elements against. /// /// var ret = jQuery.map( this, fn, until ); if ( !runtil.test( name ) ) { selector = until; } if ( selector && typeof selector === "string" ) { ret = jQuery.filter( selector, ret ); } ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { ret = ret.reverse(); } return this.pushStack( ret, name, slice.call( arguments ).join(",") ); }; jQuery.prototype.prevUntil = function( until, selector ) { /// /// Get all preceding siblings of each element up to but not including the element matched by the selector, DOM node, or jQuery object. /// 1 - prevUntil(selector, filter) /// 2 - prevUntil(element, filter) /// /// /// A string containing a selector expression to indicate where to stop matching preceding sibling elements. /// /// /// A string containing a selector expression to match elements against. /// /// var ret = jQuery.map( this, fn, until ); if ( !runtil.test( name ) ) { selector = until; } if ( selector && typeof selector === "string" ) { ret = jQuery.filter( selector, ret ); } ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { ret = ret.reverse(); } return this.pushStack( ret, name, slice.call( arguments ).join(",") ); }; jQuery.prototype.promise = function( type, object ) { /// /// Return a Promise object to observe when all actions of a certain type bound to the collection, queued or not, have finished. /// /// /// The type of queue that needs to be observed. /// /// /// Object onto which the promise methods have to be attached /// /// if ( typeof type !== "string" ) { object = type; type = undefined; } type = type || "fx"; var defer = jQuery.Deferred(), elements = this, i = elements.length, count = 1, deferDataKey = type + "defer", queueDataKey = type + "queue", markDataKey = type + "mark", tmp; function resolve() { if ( !( --count ) ) { defer.resolveWith( elements, [ elements ] ); } } while( i-- ) { if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) || ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) || jQuery.data( elements[ i ], markDataKey, undefined, true ) ) && jQuery.data( elements[ i ], deferDataKey, jQuery.Callbacks( "once memory" ), true ) )) { count++; tmp.add( resolve ); } } resolve(); return defer.promise(); }; jQuery.prototype.prop = function( name, value ) { /// /// 1: Get the value of a property for the first element in the set of matched elements. /// 1.1 - prop(propertyName) /// 2: Set one or more properties for the set of matched elements. /// 2.1 - prop(propertyName, value) /// 2.2 - prop(map) /// 2.3 - prop(propertyName, function(index, oldPropertyValue)) /// /// /// The name of the property to set. /// /// /// A value to set for the property. /// /// return jQuery.access( this, name, value, true, jQuery.prop ); }; jQuery.prototype.pushStack = function( elems, name, selector ) { /// /// Add a collection of DOM elements onto the jQuery stack. /// 1 - pushStack(elements) /// 2 - pushStack(elements, name, arguments) /// /// /// An array of elements to push onto the stack and make into a new jQuery object. /// /// /// The name of a jQuery method that generated the array of elements. /// /// /// The arguments that were passed in to the jQuery method (for serialization). /// /// // Build a new jQuery matched element set var ret = this.constructor(); if ( jQuery.isArray( elems ) ) { push.apply( ret, elems ); } else { jQuery.merge( ret, elems ); } // Add the old object onto the stack (as a reference) ret.prevObject = this; ret.context = this.context; if ( name === "find" ) { ret.selector = this.selector + ( this.selector ? " " : "" ) + selector; } else if ( name ) { ret.selector = this.selector + "." + name + "(" + selector + ")"; } // Return the newly-formed element set return ret; }; jQuery.prototype.queue = function( type, data ) { /// /// 1: Show the queue of functions to be executed on the matched elements. /// 1.1 - queue(queueName) /// 2: Manipulate the queue of functions to be executed on the matched elements. /// 2.1 - queue(queueName, newQueue) /// 2.2 - queue(queueName, callback( next )) /// /// /// A string containing the name of the queue. Defaults to fx, the standard effects queue. /// /// /// An array of functions to replace the current queue contents. /// /// if ( typeof type !== "string" ) { data = type; type = "fx"; } if ( data === undefined ) { return jQuery.queue( this[0], type ); } return this.each(function() { var queue = jQuery.queue( this, type, data ); if ( type === "fx" && queue[0] !== "inprogress" ) { jQuery.dequeue( this, type ); } }); }; jQuery.prototype.ready = function( fn ) { /// /// Specify a function to execute when the DOM is fully loaded. /// /// /// A function to execute after the DOM is ready. /// /// // Attach the listeners jQuery.bindReady(); // Add the callback readyList.add( fn ); return this; }; jQuery.prototype.remove = function( selector, keepData ) { /// /// Remove the set of matched elements from the DOM. /// /// /// A selector expression that filters the set of matched elements to be removed. /// /// for ( var i = 0, elem; (elem = this[i]) != null; i++ ) { if ( !selector || jQuery.filter( selector, [ elem ] ).length ) { if ( !keepData && elem.nodeType === 1 ) { jQuery.cleanData( elem.getElementsByTagName("*") ); jQuery.cleanData( [ elem ] ); } if ( elem.parentNode ) { elem.parentNode.removeChild( elem ); } } } return this; }; jQuery.prototype.removeAttr = function( name ) { /// /// Remove an attribute from each element in the set of matched elements. /// /// /// An attribute to remove; as of version 1.7, it can be a space-separated list of attributes. /// /// return this.each(function() { jQuery.removeAttr( this, name ); }); }; jQuery.prototype.removeClass = function( value ) { /// /// Remove a single class, multiple classes, or all classes from each element in the set of matched elements. /// 1 - removeClass(className) /// 2 - removeClass(function(index, class)) /// /// /// One or more space-separated classes to be removed from the class attribute of each matched element. /// /// var classNames, i, l, elem, className, c, cl; if ( jQuery.isFunction( value ) ) { return this.each(function( j ) { jQuery( this ).removeClass( value.call(this, j, this.className) ); }); } if ( (value && typeof value === "string") || value === undefined ) { classNames = ( value || "" ).split( rspace ); for ( i = 0, l = this.length; i < l; i++ ) { elem = this[ i ]; if ( elem.nodeType === 1 && elem.className ) { if ( value ) { className = (" " + elem.className + " ").replace( rclass, " " ); for ( c = 0, cl = classNames.length; c < cl; c++ ) { className = className.replace(" " + classNames[ c ] + " ", " "); } elem.className = jQuery.trim( className ); } else { elem.className = ""; } } } } return this; }; jQuery.prototype.removeData = function( key ) { /// /// Remove a previously-stored piece of data. /// 1 - removeData(name) /// 2 - removeData(list) /// /// /// A string naming the piece of data to delete. /// /// return this.each(function() { jQuery.removeData( this, key ); }); }; jQuery.prototype.removeProp = function( name ) { /// /// Remove a property for the set of matched elements. /// /// /// The name of the property to set. /// /// name = jQuery.propFix[ name ] || name; return this.each(function() { // try/catch handles cases where IE balks (such as removing a property on window) try { this[ name ] = undefined; delete this[ name ]; } catch( e ) {} }); }; jQuery.prototype.replaceAll = function( selector ) { /// /// Replace each target element with the set of matched elements. /// /// /// A selector expression indicating which element(s) to replace. /// /// var ret = [], insert = jQuery( selector ), parent = this.length === 1 && this[0].parentNode; if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) { insert[ original ]( this[0] ); return this; } else { for ( var i = 0, l = insert.length; i < l; i++ ) { var elems = ( i > 0 ? this.clone(true) : this ).get(); jQuery( insert[i] )[ original ]( elems ); ret = ret.concat( elems ); } return this.pushStack( ret, name, insert.selector ); } }; jQuery.prototype.replaceWith = function( value ) { /// /// Replace each element in the set of matched elements with the provided new content. /// 1 - replaceWith(newContent) /// 2 - replaceWith(function) /// /// /// The content to insert. May be an HTML string, DOM element, or jQuery object. /// /// if ( this[0] && this[0].parentNode ) { // Make sure that the elements are removed from the DOM before they are inserted // this can help fix replacing a parent with child elements if ( jQuery.isFunction( value ) ) { return this.each(function(i) { var self = jQuery(this), old = self.html(); self.replaceWith( value.call( this, i, old ) ); }); } if ( typeof value !== "string" ) { value = jQuery( value ).detach(); } return this.each(function() { var next = this.nextSibling, parent = this.parentNode; jQuery( this ).remove(); if ( next ) { jQuery(next).before( value ); } else { jQuery(parent).append( value ); } }); } else { return this.length ? this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) : this; } }; jQuery.prototype.resize = function( data, fn ) { /// /// Bind an event handler to the "resize" JavaScript event, or trigger that event on an element. /// 1 - resize(handler(eventObject)) /// 2 - resize(eventData, handler(eventObject)) /// 3 - resize() /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.scroll = function( data, fn ) { /// /// Bind an event handler to the "scroll" JavaScript event, or trigger that event on an element. /// 1 - scroll(handler(eventObject)) /// 2 - scroll(eventData, handler(eventObject)) /// 3 - scroll() /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.scrollLeft = function( val ) { /// /// 1: Get the current horizontal position of the scroll bar for the first element in the set of matched elements. /// 1.1 - scrollLeft() /// 2: Set the current horizontal position of the scroll bar for each of the set of matched elements. /// 2.1 - scrollLeft(value) /// /// /// An integer indicating the new position to set the scroll bar to. /// /// var elem, win; if ( val === undefined ) { elem = this[ 0 ]; if ( !elem ) { return null; } win = getWindow( elem ); // Return the scroll offset return win ? ("pageXOffset" in win) ? win[ i ? "pageYOffset" : "pageXOffset" ] : jQuery.support.boxModel && win.document.documentElement[ method ] || win.document.body[ method ] : elem[ method ]; } // Set the scroll offset return this.each(function() { win = getWindow( this ); if ( win ) { win.scrollTo( !i ? val : jQuery( win ).scrollLeft(), i ? val : jQuery( win ).scrollTop() ); } else { this[ method ] = val; } }); }; jQuery.prototype.scrollTop = function( val ) { /// /// 1: Get the current vertical position of the scroll bar for the first element in the set of matched elements. /// 1.1 - scrollTop() /// 2: Set the current vertical position of the scroll bar for each of the set of matched elements. /// 2.1 - scrollTop(value) /// /// /// An integer indicating the new position to set the scroll bar to. /// /// var elem, win; if ( val === undefined ) { elem = this[ 0 ]; if ( !elem ) { return null; } win = getWindow( elem ); // Return the scroll offset return win ? ("pageXOffset" in win) ? win[ i ? "pageYOffset" : "pageXOffset" ] : jQuery.support.boxModel && win.document.documentElement[ method ] || win.document.body[ method ] : elem[ method ]; } // Set the scroll offset return this.each(function() { win = getWindow( this ); if ( win ) { win.scrollTo( !i ? val : jQuery( win ).scrollLeft(), i ? val : jQuery( win ).scrollTop() ); } else { this[ method ] = val; } }); }; jQuery.prototype.select = function( data, fn ) { /// /// Bind an event handler to the "select" JavaScript event, or trigger that event on an element. /// 1 - select(handler(eventObject)) /// 2 - select(eventData, handler(eventObject)) /// 3 - select() /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.serialize = function() { /// /// Encode a set of form elements as a string for submission. /// /// return jQuery.param( this.serializeArray() ); }; jQuery.prototype.serializeArray = function() { /// /// Encode a set of form elements as an array of names and values. /// /// return this.map(function(){ return this.elements ? jQuery.makeArray( this.elements ) : this; }) .filter(function(){ return this.name && !this.disabled && ( this.checked || rselectTextarea.test( this.nodeName ) || rinput.test( this.type ) ); }) .map(function( i, elem ){ var val = jQuery( this ).val(); return val == null ? null : jQuery.isArray( val ) ? jQuery.map( val, function( val, i ){ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; }) : { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; }).get(); }; jQuery.prototype.show = function( speed, easing, callback ) { /// /// Display the matched elements. /// 1 - show() /// 2 - show(duration, callback) /// 3 - show(duration, easing, callback) /// /// /// A string or number determining how long the animation will run. /// /// /// A string indicating which easing function to use for the transition. /// /// /// A function to call once the animation is complete. /// /// var elem, display; if ( speed || speed === 0 ) { return this.animate( genFx("show", 3), speed, easing, callback ); } else { for ( var i = 0, j = this.length; i < j; i++ ) { elem = this[ i ]; if ( elem.style ) { display = elem.style.display; // Reset the inline display of this element to learn if it is // being hidden by cascaded rules or not if ( !jQuery._data(elem, "olddisplay") && display === "none" ) { display = elem.style.display = ""; } // Set elements which have been overridden with display: none // in a stylesheet to whatever the default browser style is // for such an element if ( display === "" && jQuery.css(elem, "display") === "none" ) { jQuery._data( elem, "olddisplay", defaultDisplay(elem.nodeName) ); } } } // Set the display of most of the elements in a second loop // to avoid the constant reflow for ( i = 0; i < j; i++ ) { elem = this[ i ]; if ( elem.style ) { display = elem.style.display; if ( display === "" || display === "none" ) { elem.style.display = jQuery._data( elem, "olddisplay" ) || ""; } } } return this; } }; jQuery.prototype.siblings = function( until, selector ) { /// /// Get the siblings of each element in the set of matched elements, optionally filtered by a selector. /// /// /// A string containing a selector expression to match elements against. /// /// var ret = jQuery.map( this, fn, until ); if ( !runtil.test( name ) ) { selector = until; } if ( selector && typeof selector === "string" ) { ret = jQuery.filter( selector, ret ); } ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { ret = ret.reverse(); } return this.pushStack( ret, name, slice.call( arguments ).join(",") ); }; jQuery.prototype.size = function() { /// /// Return the number of elements in the jQuery object. /// /// return this.length; }; jQuery.prototype.slice = function() { /// /// Reduce the set of matched elements to a subset specified by a range of indices. /// /// /// An integer indicating the 0-based position at which the elements begin to be selected. If negative, it indicates an offset from the end of the set. /// /// /// An integer indicating the 0-based position at which the elements stop being selected. If negative, it indicates an offset from the end of the set. If omitted, the range continues until the end of the set. /// /// return this.pushStack( slice.apply( this, arguments ), "slice", slice.call(arguments).join(",") ); }; jQuery.prototype.slideDown = function( speed, easing, callback ) { /// /// Display the matched elements with a sliding motion. /// 1 - slideDown(duration, callback) /// 2 - slideDown(duration, easing, callback) /// /// /// A string or number determining how long the animation will run. /// /// /// A string indicating which easing function to use for the transition. /// /// /// A function to call once the animation is complete. /// /// return this.animate( props, speed, easing, callback ); }; jQuery.prototype.slideToggle = function( speed, easing, callback ) { /// /// Display or hide the matched elements with a sliding motion. /// 1 - slideToggle(duration, callback) /// 2 - slideToggle(duration, easing, callback) /// /// /// A string or number determining how long the animation will run. /// /// /// A string indicating which easing function to use for the transition. /// /// /// A function to call once the animation is complete. /// /// return this.animate( props, speed, easing, callback ); }; jQuery.prototype.slideUp = function( speed, easing, callback ) { /// /// Hide the matched elements with a sliding motion. /// 1 - slideUp(duration, callback) /// 2 - slideUp(duration, easing, callback) /// /// /// A string or number determining how long the animation will run. /// /// /// A string indicating which easing function to use for the transition. /// /// /// A function to call once the animation is complete. /// /// return this.animate( props, speed, easing, callback ); }; jQuery.prototype.stop = function( type, clearQueue, gotoEnd ) { /// /// Stop the currently-running animation on the matched elements. /// 1 - stop(clearQueue, jumpToEnd) /// 2 - stop(queue, clearQueue, jumpToEnd) /// /// /// The name of the queue in which to stop animations. /// /// /// A Boolean indicating whether to remove queued animation as well. Defaults to false. /// /// /// A Boolean indicating whether to complete the current animation immediately. Defaults to false. /// /// if ( typeof type !== "string" ) { gotoEnd = clearQueue; clearQueue = type; type = undefined; } if ( clearQueue && type !== false ) { this.queue( type || "fx", [] ); } return this.each(function() { var index, hadTimers = false, timers = jQuery.timers, data = jQuery._data( this ); // clear marker counters if we know they won't be if ( !gotoEnd ) { jQuery._unmark( true, this ); } function stopQueue( elem, data, index ) { var hooks = data[ index ]; jQuery.removeData( elem, index, true ); hooks.stop( gotoEnd ); } if ( type == null ) { for ( index in data ) { if ( data[ index ] && data[ index ].stop && index.indexOf(".run") === index.length - 4 ) { stopQueue( this, data, index ); } } } else if ( data[ index = type + ".run" ] && data[ index ].stop ){ stopQueue( this, data, index ); } for ( index = timers.length; index--; ) { if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) { if ( gotoEnd ) { // force the next step to be the last timers[ index ]( true ); } else { timers[ index ].saveState(); } hadTimers = true; timers.splice( index, 1 ); } } // start the next in the queue if the last step wasn't forced // timers currently will call their complete callbacks, which will dequeue // but only if they were gotoEnd if ( !( gotoEnd && hadTimers ) ) { jQuery.dequeue( this, type ); } }); }; jQuery.prototype.submit = function( data, fn ) { /// /// Bind an event handler to the "submit" JavaScript event, or trigger that event on an element. /// 1 - submit(handler(eventObject)) /// 2 - submit(eventData, handler(eventObject)) /// 3 - submit() /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.text = function( text ) { /// /// 1: Get the combined text contents of each element in the set of matched elements, including their descendants. /// 1.1 - text() /// 2: Set the content of each element in the set of matched elements to the specified text. /// 2.1 - text(textString) /// 2.2 - text(function(index, text)) /// /// /// A string of text to set as the content of each matched element. /// /// if ( jQuery.isFunction(text) ) { return this.each(function(i) { var self = jQuery( this ); self.text( text.call(this, i, self.text()) ); }); } if ( typeof text !== "object" && text !== undefined ) { return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) ); } return jQuery.text( this ); }; jQuery.prototype.toArray = function() { /// /// Retrieve all the DOM elements contained in the jQuery set, as an array. /// /// return slice.call( this, 0 ); }; jQuery.prototype.toggle = function( fn, fn2, callback ) { /// /// 1: Bind two or more handlers to the matched elements, to be executed on alternate clicks. /// 1.1 - toggle(handler(eventObject), handler(eventObject), handler(eventObject)) /// 2: Display or hide the matched elements. /// 2.1 - toggle(duration, callback) /// 2.2 - toggle(duration, easing, callback) /// 2.3 - toggle(showOrHide) /// /// /// A function to execute every even time the element is clicked. /// /// /// A function to execute every odd time the element is clicked. /// /// /// Additional handlers to cycle through after clicks. /// /// var bool = typeof fn === "boolean"; if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) { this._toggle.apply( this, arguments ); } else if ( fn == null || bool ) { this.each(function() { var state = bool ? fn : jQuery(this).is(":hidden"); jQuery(this)[ state ? "show" : "hide" ](); }); } else { this.animate(genFx("toggle", 3), fn, fn2, callback); } return this; }; jQuery.prototype.toggleClass = function( value, stateVal ) { /// /// Add or remove one or more classes from each element in the set of matched elements, depending on either the class's presence or the value of the switch argument. /// 1 - toggleClass(className) /// 2 - toggleClass(className, switch) /// 3 - toggleClass(switch) /// 4 - toggleClass(function(index, class, switch), switch) /// /// /// One or more class names (separated by spaces) to be toggled for each element in the matched set. /// /// /// A Boolean (not just truthy/falsy) value to determine whether the class should be added or removed. /// /// var type = typeof value, isBool = typeof stateVal === "boolean"; if ( jQuery.isFunction( value ) ) { return this.each(function( i ) { jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); }); } return this.each(function() { if ( type === "string" ) { // toggle individual class names var className, i = 0, self = jQuery( this ), state = stateVal, classNames = value.split( rspace ); while ( (className = classNames[ i++ ]) ) { // check each className given, space seperated list state = isBool ? state : !self.hasClass( className ); self[ state ? "addClass" : "removeClass" ]( className ); } } else if ( type === "undefined" || type === "boolean" ) { if ( this.className ) { // store className if set jQuery._data( this, "__className__", this.className ); } // toggle whole className this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; } }); }; jQuery.prototype.trigger = function( type, data ) { /// /// Execute all handlers and behaviors attached to the matched elements for the given event type. /// 1 - trigger(eventType, extraParameters) /// 2 - trigger(event) /// /// /// A string containing a JavaScript event type, such as click or submit. /// /// /// Additional parameters to pass along to the event handler. /// /// return this.each(function() { jQuery.event.trigger( type, data, this ); }); }; jQuery.prototype.triggerHandler = function( type, data ) { /// /// Execute all handlers attached to an element for an event. /// /// /// A string containing a JavaScript event type, such as click or submit. /// /// /// An array of additional parameters to pass along to the event handler. /// /// if ( this[0] ) { return jQuery.event.trigger( type, data, this[0], true ); } }; jQuery.prototype.unbind = function( types, fn ) { /// /// Remove a previously-attached event handler from the elements. /// 1 - unbind(eventType, handler(eventObject)) /// 2 - unbind(eventType, false) /// 3 - unbind(event) /// /// /// A string containing a JavaScript event type, such as click or submit. /// /// /// The function that is to be no longer executed. /// /// return this.off( types, null, fn ); }; jQuery.prototype.undelegate = function( selector, types, fn ) { /// /// Remove a handler from the event for all elements which match the current selector, based upon a specific set of root elements. /// 1 - undelegate() /// 2 - undelegate(selector, eventType) /// 3 - undelegate(selector, eventType, handler) /// 4 - undelegate(selector, events) /// 5 - undelegate(namespace) /// /// /// A selector which will be used to filter the event results. /// /// /// A string containing a JavaScript event type, such as "click" or "keydown" /// /// /// A function to execute at the time the event is triggered. /// /// // ( namespace ) or ( selector, types [, fn] ) return arguments.length == 1? this.off( selector, "**" ) : this.off( types, selector, fn ); }; jQuery.prototype.unload = function( data, fn ) { /// /// Bind an event handler to the "unload" JavaScript event. /// 1 - unload(handler(eventObject)) /// 2 - unload(eventData, handler(eventObject)) /// /// /// A map of data that will be passed to the event handler. /// /// /// A function to execute each time the event is triggered. /// /// if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; jQuery.prototype.unwrap = function() { /// /// Remove the parents of the set of matched elements from the DOM, leaving the matched elements in their place. /// /// return this.parent().each(function() { if ( !jQuery.nodeName( this, "body" ) ) { jQuery( this ).replaceWith( this.childNodes ); } }).end(); }; jQuery.prototype.val = function( value ) { /// /// 1: Get the current value of the first element in the set of matched elements. /// 1.1 - val() /// 2: Set the value of each element in the set of matched elements. /// 2.1 - val(value) /// 2.2 - val(function(index, value)) /// /// /// A string of text or an array of strings corresponding to the value of each matched element to set as selected/checked. /// /// var hooks, ret, isFunction, elem = this[0]; if ( !arguments.length ) { if ( elem ) { hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ]; if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { return ret; } ret = elem.value; return typeof ret === "string" ? // handle most common string cases ret.replace(rreturn, "") : // handle cases where value is null/undef or number ret == null ? "" : ret; } return; } isFunction = jQuery.isFunction( value ); return this.each(function( i ) { var self = jQuery(this), val; if ( this.nodeType !== 1 ) { return; } if ( isFunction ) { val = value.call( this, i, self.val() ); } else { val = value; } // Treat null/undefined as ""; convert numbers to string if ( val == null ) { val = ""; } else if ( typeof val === "number" ) { val += ""; } else if ( jQuery.isArray( val ) ) { val = jQuery.map(val, function ( value ) { return value == null ? "" : value + ""; }); } hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ]; // If set returns undefined, fall back to normal setting if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { this.value = val; } }); }; jQuery.prototype.width = function( size ) { /// /// 1: Get the current computed width for the first element in the set of matched elements. /// 1.1 - width() /// 2: Set the CSS width of each element in the set of matched elements. /// 2.1 - width(value) /// 2.2 - width(function(index, width)) /// /// /// An integer representing the number of pixels, or an integer along with an optional unit of measure appended (as a string). /// /// // Get window width or height var elem = this[0]; if ( !elem ) { return size == null ? null : this; } if ( jQuery.isFunction( size ) ) { return this.each(function( i ) { var self = jQuery( this ); self[ type ]( size.call( this, i, self[ type ]() ) ); }); } if ( jQuery.isWindow( elem ) ) { // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode // 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat var docElemProp = elem.document.documentElement[ "client" + name ], body = elem.document.body; return elem.document.compatMode === "CSS1Compat" && docElemProp || body && body[ "client" + name ] || docElemProp; // Get document width or height } else if ( elem.nodeType === 9 ) { // Either scroll[Width/Height] or offset[Width/Height], whichever is greater return Math.max( elem.documentElement["client" + name], elem.body["scroll" + name], elem.documentElement["scroll" + name], elem.body["offset" + name], elem.documentElement["offset" + name] ); // Get or set width or height on the element } else if ( size === undefined ) { var orig = jQuery.css( elem, type ), ret = parseFloat( orig ); return jQuery.isNumeric( ret ) ? ret : orig; // Set the width or height on the element (default to pixels if value is unitless) } else { return this.css( type, typeof size === "string" ? size : size + "px" ); } }; jQuery.prototype.wrap = function( html ) { /// /// Wrap an HTML structure around each element in the set of matched elements. /// 1 - wrap(wrappingElement) /// 2 - wrap(function(index)) /// /// /// An HTML snippet, selector expression, jQuery object, or DOM element specifying the structure to wrap around the matched elements. /// /// var isFunction = jQuery.isFunction( html ); return this.each(function(i) { jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); }); }; jQuery.prototype.wrapAll = function( html ) { /// /// Wrap an HTML structure around all elements in the set of matched elements. /// /// /// An HTML snippet, selector expression, jQuery object, or DOM element specifying the structure to wrap around the matched elements. /// /// if ( jQuery.isFunction( html ) ) { return this.each(function(i) { jQuery(this).wrapAll( html.call(this, i) ); }); } if ( this[0] ) { // The elements to wrap the target around var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); if ( this[0].parentNode ) { wrap.insertBefore( this[0] ); } wrap.map(function() { var elem = this; while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { elem = elem.firstChild; } return elem; }).append( this ); } return this; }; jQuery.prototype.wrapInner = function( html ) { /// /// Wrap an HTML structure around the content of each element in the set of matched elements. /// 1 - wrapInner(wrappingElement) /// 2 - wrapInner(function(index)) /// /// /// An HTML snippet, selector expression, jQuery object, or DOM element specifying the structure to wrap around the content of the matched elements. /// /// if ( jQuery.isFunction( html ) ) { return this.each(function(i) { jQuery(this).wrapInner( html.call(this, i) ); }); } return this.each(function() { var self = jQuery( this ), contents = self.contents(); if ( contents.length ) { contents.wrapAll( html ); } else { self.append( html ); } }); }; jQuery.fn = jQuery.prototype; jQuery.fn.init.prototype = jQuery.fn; window.jQuery = window.$ = jQuery; })(window); ================================================ FILE: packages/jQuery.1.7.1.1/Content/Scripts/jquery-1.7.1.js ================================================ /*! * jQuery JavaScript Library v1.7.1 * http://jquery.com/ * * Copyright 2011, John Resig * Released under the the MIT License. * http://jquery.org/license * * Includes Sizzle.js * http://sizzlejs.com/ * Copyright 2011, The Dojo Foundation * Released under the MIT and BSD Licenses. * * Date: Mon Nov 21 21:11:03 2011 -0500 */ (function( window, undefined ) { // Use the correct document accordingly with window argument (sandbox) var document = window.document, navigator = window.navigator, location = window.location; var jQuery = (function() { // Define a local copy of jQuery var jQuery = function( selector, context ) { // The jQuery object is actually just the init constructor 'enhanced' return new jQuery.fn.init( selector, context, rootjQuery ); }, // Map over jQuery in case of overwrite _jQuery = window.jQuery, // Map over the $ in case of overwrite _$ = window.$, // A central reference to the root jQuery(document) rootjQuery, // A simple way to check for HTML strings or ID strings // Prioritize #id over to avoid XSS via location.hash (#9521) quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, // Check if a string has a non-whitespace character in it rnotwhite = /\S/, // Used for trimming whitespace trimLeft = /^\s+/, trimRight = /\s+$/, // Match a standalone tag rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, // JSON RegExp rvalidchars = /^[\],:{}\s]*$/, rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, // Useragent RegExp rwebkit = /(webkit)[ \/]([\w.]+)/, ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/, rmsie = /(msie) ([\w.]+)/, rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/, // Matches dashed string for camelizing rdashAlpha = /-([a-z]|[0-9])/ig, rmsPrefix = /^-ms-/, // Used by jQuery.camelCase as callback to replace() fcamelCase = function( all, letter ) { return ( letter + "" ).toUpperCase(); }, // Keep a UserAgent string for use with jQuery.browser userAgent = navigator.userAgent, // For matching the engine and version of the browser browserMatch, // The deferred used on DOM ready readyList, // The ready event handler DOMContentLoaded, // Save a reference to some core methods toString = Object.prototype.toString, hasOwn = Object.prototype.hasOwnProperty, push = Array.prototype.push, slice = Array.prototype.slice, trim = String.prototype.trim, indexOf = Array.prototype.indexOf, // [[Class]] -> type pairs class2type = {}; jQuery.fn = jQuery.prototype = { constructor: jQuery, init: function( selector, context, rootjQuery ) { var match, elem, ret, doc; // Handle $(""), $(null), or $(undefined) if ( !selector ) { return this; } // Handle $(DOMElement) if ( selector.nodeType ) { this.context = this[0] = selector; this.length = 1; return this; } // The body element only exists once, optimize finding it if ( selector === "body" && !context && document.body ) { this.context = document; this[0] = document.body; this.selector = selector; this.length = 1; return this; } // Handle HTML strings if ( typeof selector === "string" ) { // Are we dealing with HTML string or an ID? if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { // Assume that strings that start and end with <> are HTML and skip the regex check match = [ null, selector, null ]; } else { match = quickExpr.exec( selector ); } // Verify a match, and that no context was specified for #id if ( match && (match[1] || !context) ) { // HANDLE: $(html) -> $(array) if ( match[1] ) { context = context instanceof jQuery ? context[0] : context; doc = ( context ? context.ownerDocument || context : document ); // If a single string is passed in and it's a single tag // just do a createElement and skip the rest ret = rsingleTag.exec( selector ); if ( ret ) { if ( jQuery.isPlainObject( context ) ) { selector = [ document.createElement( ret[1] ) ]; jQuery.fn.attr.call( selector, context, true ); } else { selector = [ doc.createElement( ret[1] ) ]; } } else { ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); selector = ( ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment ).childNodes; } return jQuery.merge( this, selector ); // HANDLE: $("#id") } else { elem = document.getElementById( match[2] ); // Check parentNode to catch when Blackberry 4.6 returns // nodes that are no longer in the document #6963 if ( elem && elem.parentNode ) { // Handle the case where IE and Opera return items // by name instead of ID if ( elem.id !== match[2] ) { return rootjQuery.find( selector ); } // Otherwise, we inject the element directly into the jQuery object this.length = 1; this[0] = elem; } this.context = document; this.selector = selector; return this; } // HANDLE: $(expr, $(...)) } else if ( !context || context.jquery ) { return ( context || rootjQuery ).find( selector ); // HANDLE: $(expr, context) // (which is just equivalent to: $(context).find(expr) } else { return this.constructor( context ).find( selector ); } // HANDLE: $(function) // Shortcut for document ready } else if ( jQuery.isFunction( selector ) ) { return rootjQuery.ready( selector ); } if ( selector.selector !== undefined ) { this.selector = selector.selector; this.context = selector.context; } return jQuery.makeArray( selector, this ); }, // Start with an empty selector selector: "", // The current version of jQuery being used jquery: "1.7.1", // The default length of a jQuery object is 0 length: 0, // The number of elements contained in the matched element set size: function() { return this.length; }, toArray: function() { return slice.call( this, 0 ); }, // Get the Nth element in the matched element set OR // Get the whole matched element set as a clean array get: function( num ) { return num == null ? // Return a 'clean' array this.toArray() : // Return just the object ( num < 0 ? this[ this.length + num ] : this[ num ] ); }, // Take an array of elements and push it onto the stack // (returning the new matched element set) pushStack: function( elems, name, selector ) { // Build a new jQuery matched element set var ret = this.constructor(); if ( jQuery.isArray( elems ) ) { push.apply( ret, elems ); } else { jQuery.merge( ret, elems ); } // Add the old object onto the stack (as a reference) ret.prevObject = this; ret.context = this.context; if ( name === "find" ) { ret.selector = this.selector + ( this.selector ? " " : "" ) + selector; } else if ( name ) { ret.selector = this.selector + "." + name + "(" + selector + ")"; } // Return the newly-formed element set return ret; }, // Execute a callback for every element in the matched set. // (You can seed the arguments with an array of args, but this is // only used internally.) each: function( callback, args ) { return jQuery.each( this, callback, args ); }, ready: function( fn ) { // Attach the listeners jQuery.bindReady(); // Add the callback readyList.add( fn ); return this; }, eq: function( i ) { i = +i; return i === -1 ? this.slice( i ) : this.slice( i, i + 1 ); }, first: function() { return this.eq( 0 ); }, last: function() { return this.eq( -1 ); }, slice: function() { return this.pushStack( slice.apply( this, arguments ), "slice", slice.call(arguments).join(",") ); }, map: function( callback ) { return this.pushStack( jQuery.map(this, function( elem, i ) { return callback.call( elem, i, elem ); })); }, end: function() { return this.prevObject || this.constructor(null); }, // For internal use only. // Behaves like an Array's method, not like a jQuery method. push: push, sort: [].sort, splice: [].splice }; // Give the init function the jQuery prototype for later instantiation jQuery.fn.init.prototype = jQuery.fn; jQuery.extend = jQuery.fn.extend = function() { var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = false; // Handle a deep copy situation if ( typeof target === "boolean" ) { deep = target; target = arguments[1] || {}; // skip the boolean and the target i = 2; } // Handle case when target is a string or something (possible in deep copy) if ( typeof target !== "object" && !jQuery.isFunction(target) ) { target = {}; } // extend jQuery itself if only one argument is passed if ( length === i ) { target = this; --i; } for ( ; i < length; i++ ) { // Only deal with non-null/undefined values if ( (options = arguments[ i ]) != null ) { // Extend the base object for ( name in options ) { src = target[ name ]; copy = options[ name ]; // Prevent never-ending loop if ( target === copy ) { continue; } // Recurse if we're merging plain objects or arrays if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { if ( copyIsArray ) { copyIsArray = false; clone = src && jQuery.isArray(src) ? src : []; } else { clone = src && jQuery.isPlainObject(src) ? src : {}; } // Never move original objects, clone them target[ name ] = jQuery.extend( deep, clone, copy ); // Don't bring in undefined values } else if ( copy !== undefined ) { target[ name ] = copy; } } } } // Return the modified object return target; }; jQuery.extend({ noConflict: function( deep ) { if ( window.$ === jQuery ) { window.$ = _$; } if ( deep && window.jQuery === jQuery ) { window.jQuery = _jQuery; } return jQuery; }, // Is the DOM ready to be used? Set to true once it occurs. isReady: false, // A counter to track how many items to wait for before // the ready event fires. See #6781 readyWait: 1, // Hold (or release) the ready event holdReady: function( hold ) { if ( hold ) { jQuery.readyWait++; } else { jQuery.ready( true ); } }, // Handle when the DOM is ready ready: function( wait ) { // Either a released hold or an DOMready/load event and not yet ready if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) { // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). if ( !document.body ) { return setTimeout( jQuery.ready, 1 ); } // Remember that the DOM is ready jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be if ( wait !== true && --jQuery.readyWait > 0 ) { return; } // If there are functions bound, to execute readyList.fireWith( document, [ jQuery ] ); // Trigger any bound ready events if ( jQuery.fn.trigger ) { jQuery( document ).trigger( "ready" ).off( "ready" ); } } }, bindReady: function() { if ( readyList ) { return; } readyList = jQuery.Callbacks( "once memory" ); // Catch cases where $(document).ready() is called after the // browser event has already occurred. if ( document.readyState === "complete" ) { // Handle it asynchronously to allow scripts the opportunity to delay ready return setTimeout( jQuery.ready, 1 ); } // Mozilla, Opera and webkit nightlies currently support this event if ( document.addEventListener ) { // Use the handy event callback document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); // A fallback to window.onload, that will always work window.addEventListener( "load", jQuery.ready, false ); // If IE event model is used } else if ( document.attachEvent ) { // ensure firing before onload, // maybe late but safe also for iframes document.attachEvent( "onreadystatechange", DOMContentLoaded ); // A fallback to window.onload, that will always work window.attachEvent( "onload", jQuery.ready ); // If IE and not a frame // continually check to see if the document is ready var toplevel = false; try { toplevel = window.frameElement == null; } catch(e) {} if ( document.documentElement.doScroll && toplevel ) { doScrollCheck(); } } }, // See test/unit/core.js for details concerning isFunction. // Since version 1.3, DOM methods and functions like alert // aren't supported. They return false on IE (#2968). isFunction: function( obj ) { return jQuery.type(obj) === "function"; }, isArray: Array.isArray || function( obj ) { return jQuery.type(obj) === "array"; }, // A crude way of determining if an object is a window isWindow: function( obj ) { return obj && typeof obj === "object" && "setInterval" in obj; }, isNumeric: function( obj ) { return !isNaN( parseFloat(obj) ) && isFinite( obj ); }, type: function( obj ) { return obj == null ? String( obj ) : class2type[ toString.call(obj) ] || "object"; }, isPlainObject: function( obj ) { // Must be an Object. // Because of IE, we also have to check the presence of the constructor property. // Make sure that DOM nodes and window objects don't pass through, as well if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { return false; } try { // Not own constructor property must be Object if ( obj.constructor && !hasOwn.call(obj, "constructor") && !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { return false; } } catch ( e ) { // IE8,9 Will throw exceptions on certain host objects #9897 return false; } // Own properties are enumerated firstly, so to speed up, // if last one is own, then all properties are own. var key; for ( key in obj ) {} return key === undefined || hasOwn.call( obj, key ); }, isEmptyObject: function( obj ) { for ( var name in obj ) { return false; } return true; }, error: function( msg ) { throw new Error( msg ); }, parseJSON: function( data ) { if ( typeof data !== "string" || !data ) { return null; } // Make sure leading/trailing whitespace is removed (IE can't handle it) data = jQuery.trim( data ); // Attempt to parse using the native JSON parser first if ( window.JSON && window.JSON.parse ) { return window.JSON.parse( data ); } // Make sure the incoming data is actual JSON // Logic borrowed from http://json.org/json2.js if ( rvalidchars.test( data.replace( rvalidescape, "@" ) .replace( rvalidtokens, "]" ) .replace( rvalidbraces, "")) ) { return ( new Function( "return " + data ) )(); } jQuery.error( "Invalid JSON: " + data ); }, // Cross-browser xml parsing parseXML: function( data ) { var xml, tmp; try { if ( window.DOMParser ) { // Standard tmp = new DOMParser(); xml = tmp.parseFromString( data , "text/xml" ); } else { // IE xml = new ActiveXObject( "Microsoft.XMLDOM" ); xml.async = "false"; xml.loadXML( data ); } } catch( e ) { xml = undefined; } if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { jQuery.error( "Invalid XML: " + data ); } return xml; }, noop: function() {}, // Evaluates a script in a global context // Workarounds based on findings by Jim Driscoll // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context globalEval: function( data ) { if ( data && rnotwhite.test( data ) ) { // We use execScript on Internet Explorer // We use an anonymous function so that context is window // rather than jQuery in Firefox ( window.execScript || function( data ) { window[ "eval" ].call( window, data ); } )( data ); } }, // Convert dashed to camelCase; used by the css and data modules // Microsoft forgot to hump their vendor prefix (#9572) camelCase: function( string ) { return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); }, nodeName: function( elem, name ) { return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); }, // args is for internal usage only each: function( object, callback, args ) { var name, i = 0, length = object.length, isObj = length === undefined || jQuery.isFunction( object ); if ( args ) { if ( isObj ) { for ( name in object ) { if ( callback.apply( object[ name ], args ) === false ) { break; } } } else { for ( ; i < length; ) { if ( callback.apply( object[ i++ ], args ) === false ) { break; } } } // A special, fast, case for the most common use of each } else { if ( isObj ) { for ( name in object ) { if ( callback.call( object[ name ], name, object[ name ] ) === false ) { break; } } } else { for ( ; i < length; ) { if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { break; } } } } return object; }, // Use native String.trim function wherever possible trim: trim ? function( text ) { return text == null ? "" : trim.call( text ); } : // Otherwise use our own trimming functionality function( text ) { return text == null ? "" : text.toString().replace( trimLeft, "" ).replace( trimRight, "" ); }, // results is for internal usage only makeArray: function( array, results ) { var ret = results || []; if ( array != null ) { // The window, strings (and functions) also have 'length' // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 var type = jQuery.type( array ); if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { push.call( ret, array ); } else { jQuery.merge( ret, array ); } } return ret; }, inArray: function( elem, array, i ) { var len; if ( array ) { if ( indexOf ) { return indexOf.call( array, elem, i ); } len = array.length; i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; for ( ; i < len; i++ ) { // Skip accessing in sparse arrays if ( i in array && array[ i ] === elem ) { return i; } } } return -1; }, merge: function( first, second ) { var i = first.length, j = 0; if ( typeof second.length === "number" ) { for ( var l = second.length; j < l; j++ ) { first[ i++ ] = second[ j ]; } } else { while ( second[j] !== undefined ) { first[ i++ ] = second[ j++ ]; } } first.length = i; return first; }, grep: function( elems, callback, inv ) { var ret = [], retVal; inv = !!inv; // Go through the array, only saving the items // that pass the validator function for ( var i = 0, length = elems.length; i < length; i++ ) { retVal = !!callback( elems[ i ], i ); if ( inv !== retVal ) { ret.push( elems[ i ] ); } } return ret; }, // arg is for internal usage only map: function( elems, callback, arg ) { var value, key, ret = [], i = 0, length = elems.length, // jquery objects are treated as arrays isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ; // Go through the array, translating each of the items to their if ( isArray ) { for ( ; i < length; i++ ) { value = callback( elems[ i ], i, arg ); if ( value != null ) { ret[ ret.length ] = value; } } // Go through every key on the object, } else { for ( key in elems ) { value = callback( elems[ key ], key, arg ); if ( value != null ) { ret[ ret.length ] = value; } } } // Flatten any nested arrays return ret.concat.apply( [], ret ); }, // A global GUID counter for objects guid: 1, // Bind a function to a context, optionally partially applying any // arguments. proxy: function( fn, context ) { if ( typeof context === "string" ) { var tmp = fn[ context ]; context = fn; fn = tmp; } // Quick check to determine if target is callable, in the spec // this throws a TypeError, but we will just return undefined. if ( !jQuery.isFunction( fn ) ) { return undefined; } // Simulated bind var args = slice.call( arguments, 2 ), proxy = function() { return fn.apply( context, args.concat( slice.call( arguments ) ) ); }; // Set the guid of unique handler to the same of original handler, so it can be removed proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; return proxy; }, // Mutifunctional method to get and set values to a collection // The value/s can optionally be executed if it's a function access: function( elems, key, value, exec, fn, pass ) { var length = elems.length; // Setting many attributes if ( typeof key === "object" ) { for ( var k in key ) { jQuery.access( elems, k, key[k], exec, fn, value ); } return elems; } // Setting one attribute if ( value !== undefined ) { // Optionally, function values get executed if exec is true exec = !pass && exec && jQuery.isFunction(value); for ( var i = 0; i < length; i++ ) { fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); } return elems; } // Getting an attribute return length ? fn( elems[0], key ) : undefined; }, now: function() { return ( new Date() ).getTime(); }, // Use of jQuery.browser is frowned upon. // More details: http://docs.jquery.com/Utilities/jQuery.browser uaMatch: function( ua ) { ua = ua.toLowerCase(); var match = rwebkit.exec( ua ) || ropera.exec( ua ) || rmsie.exec( ua ) || ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) || []; return { browser: match[1] || "", version: match[2] || "0" }; }, sub: function() { function jQuerySub( selector, context ) { return new jQuerySub.fn.init( selector, context ); } jQuery.extend( true, jQuerySub, this ); jQuerySub.superclass = this; jQuerySub.fn = jQuerySub.prototype = this(); jQuerySub.fn.constructor = jQuerySub; jQuerySub.sub = this.sub; jQuerySub.fn.init = function init( selector, context ) { if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { context = jQuerySub( context ); } return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); }; jQuerySub.fn.init.prototype = jQuerySub.fn; var rootjQuerySub = jQuerySub(document); return jQuerySub; }, browser: {} }); // Populate the class2type map jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { class2type[ "[object " + name + "]" ] = name.toLowerCase(); }); browserMatch = jQuery.uaMatch( userAgent ); if ( browserMatch.browser ) { jQuery.browser[ browserMatch.browser ] = true; jQuery.browser.version = browserMatch.version; } // Deprecated, use jQuery.browser.webkit instead if ( jQuery.browser.webkit ) { jQuery.browser.safari = true; } // IE doesn't match non-breaking spaces with \s if ( rnotwhite.test( "\xA0" ) ) { trimLeft = /^[\s\xA0]+/; trimRight = /[\s\xA0]+$/; } // All jQuery objects should point back to these rootjQuery = jQuery(document); // Cleanup functions for the document ready method if ( document.addEventListener ) { DOMContentLoaded = function() { document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); jQuery.ready(); }; } else if ( document.attachEvent ) { DOMContentLoaded = function() { // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). if ( document.readyState === "complete" ) { document.detachEvent( "onreadystatechange", DOMContentLoaded ); jQuery.ready(); } }; } // The DOM ready check for Internet Explorer function doScrollCheck() { if ( jQuery.isReady ) { return; } try { // If IE is used, use the trick by Diego Perini // http://javascript.nwbox.com/IEContentLoaded/ document.documentElement.doScroll("left"); } catch(e) { setTimeout( doScrollCheck, 1 ); return; } // and execute any waiting functions jQuery.ready(); } return jQuery; })(); // String to Object flags format cache var flagsCache = {}; // Convert String-formatted flags into Object-formatted ones and store in cache function createFlags( flags ) { var object = flagsCache[ flags ] = {}, i, length; flags = flags.split( /\s+/ ); for ( i = 0, length = flags.length; i < length; i++ ) { object[ flags[i] ] = true; } return object; } /* * Create a callback list using the following parameters: * * flags: an optional list of space-separated flags that will change how * the callback list behaves * * By default a callback list will act like an event callback list and can be * "fired" multiple times. * * Possible flags: * * once: will ensure the callback list can only be fired once (like a Deferred) * * memory: will keep track of previous values and will call any callback added * after the list has been fired right away with the latest "memorized" * values (like a Deferred) * * unique: will ensure a callback can only be added once (no duplicate in the list) * * stopOnFalse: interrupt callings when a callback returns false * */ jQuery.Callbacks = function( flags ) { // Convert flags from String-formatted to Object-formatted // (we check in cache first) flags = flags ? ( flagsCache[ flags ] || createFlags( flags ) ) : {}; var // Actual callback list list = [], // Stack of fire calls for repeatable lists stack = [], // Last fire value (for non-forgettable lists) memory, // Flag to know if list is currently firing firing, // First callback to fire (used internally by add and fireWith) firingStart, // End of the loop when firing firingLength, // Index of currently firing callback (modified by remove if needed) firingIndex, // Add one or several callbacks to the list add = function( args ) { var i, length, elem, type, actual; for ( i = 0, length = args.length; i < length; i++ ) { elem = args[ i ]; type = jQuery.type( elem ); if ( type === "array" ) { // Inspect recursively add( elem ); } else if ( type === "function" ) { // Add if not in unique mode and callback is not in if ( !flags.unique || !self.has( elem ) ) { list.push( elem ); } } } }, // Fire callbacks fire = function( context, args ) { args = args || []; memory = !flags.memory || [ context, args ]; firing = true; firingIndex = firingStart || 0; firingStart = 0; firingLength = list.length; for ( ; list && firingIndex < firingLength; firingIndex++ ) { if ( list[ firingIndex ].apply( context, args ) === false && flags.stopOnFalse ) { memory = true; // Mark as halted break; } } firing = false; if ( list ) { if ( !flags.once ) { if ( stack && stack.length ) { memory = stack.shift(); self.fireWith( memory[ 0 ], memory[ 1 ] ); } } else if ( memory === true ) { self.disable(); } else { list = []; } } }, // Actual Callbacks object self = { // Add a callback or a collection of callbacks to the list add: function() { if ( list ) { var length = list.length; add( arguments ); // Do we need to add the callbacks to the // current firing batch? if ( firing ) { firingLength = list.length; // With memory, if we're not firing then // we should call right away, unless previous // firing was halted (stopOnFalse) } else if ( memory && memory !== true ) { firingStart = length; fire( memory[ 0 ], memory[ 1 ] ); } } return this; }, // Remove a callback from the list remove: function() { if ( list ) { var args = arguments, argIndex = 0, argLength = args.length; for ( ; argIndex < argLength ; argIndex++ ) { for ( var i = 0; i < list.length; i++ ) { if ( args[ argIndex ] === list[ i ] ) { // Handle firingIndex and firingLength if ( firing ) { if ( i <= firingLength ) { firingLength--; if ( i <= firingIndex ) { firingIndex--; } } } // Remove the element list.splice( i--, 1 ); // If we have some unicity property then // we only need to do this once if ( flags.unique ) { break; } } } } } return this; }, // Control if a given callback is in the list has: function( fn ) { if ( list ) { var i = 0, length = list.length; for ( ; i < length; i++ ) { if ( fn === list[ i ] ) { return true; } } } return false; }, // Remove all callbacks from the list empty: function() { list = []; return this; }, // Have the list do nothing anymore disable: function() { list = stack = memory = undefined; return this; }, // Is it disabled? disabled: function() { return !list; }, // Lock the list in its current state lock: function() { stack = undefined; if ( !memory || memory === true ) { self.disable(); } return this; }, // Is it locked? locked: function() { return !stack; }, // Call all callbacks with the given context and arguments fireWith: function( context, args ) { if ( stack ) { if ( firing ) { if ( !flags.once ) { stack.push( [ context, args ] ); } } else if ( !( flags.once && memory ) ) { fire( context, args ); } } return this; }, // Call all the callbacks with the given arguments fire: function() { self.fireWith( this, arguments ); return this; }, // To know if the callbacks have already been called at least once fired: function() { return !!memory; } }; return self; }; var // Static reference to slice sliceDeferred = [].slice; jQuery.extend({ Deferred: function( func ) { var doneList = jQuery.Callbacks( "once memory" ), failList = jQuery.Callbacks( "once memory" ), progressList = jQuery.Callbacks( "memory" ), state = "pending", lists = { resolve: doneList, reject: failList, notify: progressList }, promise = { done: doneList.add, fail: failList.add, progress: progressList.add, state: function() { return state; }, // Deprecated isResolved: doneList.fired, isRejected: failList.fired, then: function( doneCallbacks, failCallbacks, progressCallbacks ) { deferred.done( doneCallbacks ).fail( failCallbacks ).progress( progressCallbacks ); return this; }, always: function() { deferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments ); return this; }, pipe: function( fnDone, fnFail, fnProgress ) { return jQuery.Deferred(function( newDefer ) { jQuery.each( { done: [ fnDone, "resolve" ], fail: [ fnFail, "reject" ], progress: [ fnProgress, "notify" ] }, function( handler, data ) { var fn = data[ 0 ], action = data[ 1 ], returned; if ( jQuery.isFunction( fn ) ) { deferred[ handler ](function() { returned = fn.apply( this, arguments ); if ( returned && jQuery.isFunction( returned.promise ) ) { returned.promise().then( newDefer.resolve, newDefer.reject, newDefer.notify ); } else { newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] ); } }); } else { deferred[ handler ]( newDefer[ action ] ); } }); }).promise(); }, // Get a promise for this deferred // If obj is provided, the promise aspect is added to the object promise: function( obj ) { if ( obj == null ) { obj = promise; } else { for ( var key in promise ) { obj[ key ] = promise[ key ]; } } return obj; } }, deferred = promise.promise({}), key; for ( key in lists ) { deferred[ key ] = lists[ key ].fire; deferred[ key + "With" ] = lists[ key ].fireWith; } // Handle state deferred.done( function() { state = "resolved"; }, failList.disable, progressList.lock ).fail( function() { state = "rejected"; }, doneList.disable, progressList.lock ); // Call given func if any if ( func ) { func.call( deferred, deferred ); } // All done! return deferred; }, // Deferred helper when: function( firstParam ) { var args = sliceDeferred.call( arguments, 0 ), i = 0, length = args.length, pValues = new Array( length ), count = length, pCount = length, deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ? firstParam : jQuery.Deferred(), promise = deferred.promise(); function resolveFunc( i ) { return function( value ) { args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value; if ( !( --count ) ) { deferred.resolveWith( deferred, args ); } }; } function progressFunc( i ) { return function( value ) { pValues[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value; deferred.notifyWith( promise, pValues ); }; } if ( length > 1 ) { for ( ; i < length; i++ ) { if ( args[ i ] && args[ i ].promise && jQuery.isFunction( args[ i ].promise ) ) { args[ i ].promise().then( resolveFunc(i), deferred.reject, progressFunc(i) ); } else { --count; } } if ( !count ) { deferred.resolveWith( deferred, args ); } } else if ( deferred !== firstParam ) { deferred.resolveWith( deferred, length ? [ firstParam ] : [] ); } return promise; } }); jQuery.support = (function() { var support, all, a, select, opt, input, marginDiv, fragment, tds, events, eventName, i, isSupported, div = document.createElement( "div" ), documentElement = document.documentElement; // Preliminary tests div.setAttribute("className", "t"); div.innerHTML = "
    a"; all = div.getElementsByTagName( "*" ); a = div.getElementsByTagName( "a" )[ 0 ]; // Can't get basic test support if ( !all || !all.length || !a ) { return {}; } // First batch of supports tests select = document.createElement( "select" ); opt = select.appendChild( document.createElement("option") ); input = div.getElementsByTagName( "input" )[ 0 ]; support = { // IE strips leading whitespace when .innerHTML is used leadingWhitespace: ( div.firstChild.nodeType === 3 ), // Make sure that tbody elements aren't automatically inserted // IE will insert them into empty tables tbody: !div.getElementsByTagName("tbody").length, // Make sure that link elements get serialized correctly by innerHTML // This requires a wrapper element in IE htmlSerialize: !!div.getElementsByTagName("link").length, // Get the style information from getAttribute // (IE uses .cssText instead) style: /top/.test( a.getAttribute("style") ), // Make sure that URLs aren't manipulated // (IE normalizes it by default) hrefNormalized: ( a.getAttribute("href") === "/a" ), // Make sure that element opacity exists // (IE uses filter instead) // Use a regex to work around a WebKit issue. See #5145 opacity: /^0.55/.test( a.style.opacity ), // Verify style float existence // (IE uses styleFloat instead of cssFloat) cssFloat: !!a.style.cssFloat, // Make sure that if no value is specified for a checkbox // that it defaults to "on". // (WebKit defaults to "" instead) checkOn: ( input.value === "on" ), // Make sure that a selected-by-default option has a working selected property. // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) optSelected: opt.selected, // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) getSetAttribute: div.className !== "t", // Tests for enctype support on a form(#6743) enctype: !!document.createElement("form").enctype, // Makes sure cloning an html5 element does not cause problems // Where outerHTML is undefined, this still works html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>", // Will be defined later submitBubbles: true, changeBubbles: true, focusinBubbles: false, deleteExpando: true, noCloneEvent: true, inlineBlockNeedsLayout: false, shrinkWrapBlocks: false, reliableMarginRight: true }; // Make sure checked status is properly cloned input.checked = true; support.noCloneChecked = input.cloneNode( true ).checked; // Make sure that the options inside disabled selects aren't marked as disabled // (WebKit marks them as disabled) select.disabled = true; support.optDisabled = !opt.disabled; // Test to see if it's possible to delete an expando from an element // Fails in Internet Explorer try { delete div.test; } catch( e ) { support.deleteExpando = false; } if ( !div.addEventListener && div.attachEvent && div.fireEvent ) { div.attachEvent( "onclick", function() { // Cloning a node shouldn't copy over any // bound event handlers (IE does this) support.noCloneEvent = false; }); div.cloneNode( true ).fireEvent( "onclick" ); } // Check if a radio maintains its value // after being appended to the DOM input = document.createElement("input"); input.value = "t"; input.setAttribute("type", "radio"); support.radioValue = input.value === "t"; input.setAttribute("checked", "checked"); div.appendChild( input ); fragment = document.createDocumentFragment(); fragment.appendChild( div.lastChild ); // WebKit doesn't clone checked state correctly in fragments support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; // Check if a disconnected checkbox will retain its checked // value of true after appended to the DOM (IE6/7) support.appendChecked = input.checked; fragment.removeChild( input ); fragment.appendChild( div ); div.innerHTML = ""; // Check if div with explicit width and no margin-right incorrectly // gets computed margin-right based on width of container. For more // info see bug #3333 // Fails in WebKit before Feb 2011 nightlies // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right if ( window.getComputedStyle ) { marginDiv = document.createElement( "div" ); marginDiv.style.width = "0"; marginDiv.style.marginRight = "0"; div.style.width = "2px"; div.appendChild( marginDiv ); support.reliableMarginRight = ( parseInt( ( window.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0; } // Technique from Juriy Zaytsev // http://perfectionkills.com/detecting-event-support-without-browser-sniffing/ // We only care about the case where non-standard event systems // are used, namely in IE. Short-circuiting here helps us to // avoid an eval call (in setAttribute) which can cause CSP // to go haywire. See: https://developer.mozilla.org/en/Security/CSP if ( div.attachEvent ) { for( i in { submit: 1, change: 1, focusin: 1 }) { eventName = "on" + i; isSupported = ( eventName in div ); if ( !isSupported ) { div.setAttribute( eventName, "return;" ); isSupported = ( typeof div[ eventName ] === "function" ); } support[ i + "Bubbles" ] = isSupported; } } fragment.removeChild( div ); // Null elements to avoid leaks in IE fragment = select = opt = marginDiv = div = input = null; // Run tests that need a body at doc ready jQuery(function() { var container, outer, inner, table, td, offsetSupport, conMarginTop, ptlm, vb, style, html, body = document.getElementsByTagName("body")[0]; if ( !body ) { // Return for frameset docs that don't have a body return; } conMarginTop = 1; ptlm = "position:absolute;top:0;left:0;width:1px;height:1px;margin:0;"; vb = "visibility:hidden;border:0;"; style = "style='" + ptlm + "border:5px solid #000;padding:0;'"; html = "
    " + "" + "
    "; container = document.createElement("div"); container.style.cssText = vb + "width:0;height:0;position:static;top:0;margin-top:" + conMarginTop + "px"; body.insertBefore( container, body.firstChild ); // Construct the test element div = document.createElement("div"); container.appendChild( div ); // Check if table cells still have offsetWidth/Height when they are set // to display:none and there are still other visible table cells in a // table row; if so, offsetWidth/Height are not reliable for use when // determining if an element has been hidden directly using // display:none (it is still safe to use offsets if a parent element is // hidden; don safety goggles and see bug #4512 for more information). // (only IE 8 fails this test) div.innerHTML = "
    t
    "; tds = div.getElementsByTagName( "td" ); isSupported = ( tds[ 0 ].offsetHeight === 0 ); tds[ 0 ].style.display = ""; tds[ 1 ].style.display = "none"; // Check if empty table cells still have offsetWidth/Height // (IE <= 8 fail this test) support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); // Figure out if the W3C box model works as expected div.innerHTML = ""; div.style.width = div.style.paddingLeft = "1px"; jQuery.boxModel = support.boxModel = div.offsetWidth === 2; if ( typeof div.style.zoom !== "undefined" ) { // Check if natively block-level elements act like inline-block // elements when setting their display to 'inline' and giving // them layout // (IE < 8 does this) div.style.display = "inline"; div.style.zoom = 1; support.inlineBlockNeedsLayout = ( div.offsetWidth === 2 ); // Check if elements with layout shrink-wrap their children // (IE 6 does this) div.style.display = ""; div.innerHTML = "
    "; support.shrinkWrapBlocks = ( div.offsetWidth !== 2 ); } div.style.cssText = ptlm + vb; div.innerHTML = html; outer = div.firstChild; inner = outer.firstChild; td = outer.nextSibling.firstChild.firstChild; offsetSupport = { doesNotAddBorder: ( inner.offsetTop !== 5 ), doesAddBorderForTableAndCells: ( td.offsetTop === 5 ) }; inner.style.position = "fixed"; inner.style.top = "20px"; // safari subtracts parent border width here which is 5px offsetSupport.fixedPosition = ( inner.offsetTop === 20 || inner.offsetTop === 15 ); inner.style.position = inner.style.top = ""; outer.style.overflow = "hidden"; outer.style.position = "relative"; offsetSupport.subtractsBorderForOverflowNotVisible = ( inner.offsetTop === -5 ); offsetSupport.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== conMarginTop ); body.removeChild( container ); div = container = null; jQuery.extend( support, offsetSupport ); }); return support; })(); var rbrace = /^(?:\{.*\}|\[.*\])$/, rmultiDash = /([A-Z])/g; jQuery.extend({ cache: {}, // Please use with caution uuid: 0, // Unique for each copy of jQuery on the page // Non-digits removed to match rinlinejQuery expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ), // The following elements throw uncatchable exceptions if you // attempt to add expando properties to them. noData: { "embed": true, // Ban all objects except for Flash (which handle expandos) "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", "applet": true }, hasData: function( elem ) { elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; return !!elem && !isEmptyDataObject( elem ); }, data: function( elem, name, data, pvt /* Internal Use Only */ ) { if ( !jQuery.acceptData( elem ) ) { return; } var privateCache, thisCache, ret, internalKey = jQuery.expando, getByName = typeof name === "string", // We have to handle DOM nodes and JS objects differently because IE6-7 // can't GC object references properly across the DOM-JS boundary isNode = elem.nodeType, // Only DOM nodes need the global jQuery cache; JS object data is // attached directly to the object so GC can occur automatically cache = isNode ? jQuery.cache : elem, // Only defining an ID for JS objects if its cache already exists allows // the code to shortcut on the same path as a DOM node with no cache id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey, isEvents = name === "events"; // Avoid doing any more work than we need to when trying to get data on an // object that has no data at all if ( (!id || !cache[id] || (!isEvents && !pvt && !cache[id].data)) && getByName && data === undefined ) { return; } if ( !id ) { // Only DOM nodes need a new unique ID for each element since their data // ends up in the global cache if ( isNode ) { elem[ internalKey ] = id = ++jQuery.uuid; } else { id = internalKey; } } if ( !cache[ id ] ) { cache[ id ] = {}; // Avoids exposing jQuery metadata on plain JS objects when the object // is serialized using JSON.stringify if ( !isNode ) { cache[ id ].toJSON = jQuery.noop; } } // An object can be passed to jQuery.data instead of a key/value pair; this gets // shallow copied over onto the existing cache if ( typeof name === "object" || typeof name === "function" ) { if ( pvt ) { cache[ id ] = jQuery.extend( cache[ id ], name ); } else { cache[ id ].data = jQuery.extend( cache[ id ].data, name ); } } privateCache = thisCache = cache[ id ]; // jQuery data() is stored in a separate object inside the object's internal data // cache in order to avoid key collisions between internal data and user-defined // data. if ( !pvt ) { if ( !thisCache.data ) { thisCache.data = {}; } thisCache = thisCache.data; } if ( data !== undefined ) { thisCache[ jQuery.camelCase( name ) ] = data; } // Users should not attempt to inspect the internal events object using jQuery.data, // it is undocumented and subject to change. But does anyone listen? No. if ( isEvents && !thisCache[ name ] ) { return privateCache.events; } // Check for both converted-to-camel and non-converted data property names // If a data property was specified if ( getByName ) { // First Try to find as-is property data ret = thisCache[ name ]; // Test for null|undefined property data if ( ret == null ) { // Try to find the camelCased property ret = thisCache[ jQuery.camelCase( name ) ]; } } else { ret = thisCache; } return ret; }, removeData: function( elem, name, pvt /* Internal Use Only */ ) { if ( !jQuery.acceptData( elem ) ) { return; } var thisCache, i, l, // Reference to internal data cache key internalKey = jQuery.expando, isNode = elem.nodeType, // See jQuery.data for more information cache = isNode ? jQuery.cache : elem, // See jQuery.data for more information id = isNode ? elem[ internalKey ] : internalKey; // If there is already no cache entry for this object, there is no // purpose in continuing if ( !cache[ id ] ) { return; } if ( name ) { thisCache = pvt ? cache[ id ] : cache[ id ].data; if ( thisCache ) { // Support array or space separated string names for data keys if ( !jQuery.isArray( name ) ) { // try the string as a key before any manipulation if ( name in thisCache ) { name = [ name ]; } else { // split the camel cased version by spaces unless a key with the spaces exists name = jQuery.camelCase( name ); if ( name in thisCache ) { name = [ name ]; } else { name = name.split( " " ); } } } for ( i = 0, l = name.length; i < l; i++ ) { delete thisCache[ name[i] ]; } // If there is no data left in the cache, we want to continue // and let the cache object itself get destroyed if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) { return; } } } // See jQuery.data for more information if ( !pvt ) { delete cache[ id ].data; // Don't destroy the parent cache unless the internal data object // had been the only thing left in it if ( !isEmptyDataObject(cache[ id ]) ) { return; } } // Browsers that fail expando deletion also refuse to delete expandos on // the window, but it will allow it on all other JS objects; other browsers // don't care // Ensure that `cache` is not a window object #10080 if ( jQuery.support.deleteExpando || !cache.setInterval ) { delete cache[ id ]; } else { cache[ id ] = null; } // We destroyed the cache and need to eliminate the expando on the node to avoid // false lookups in the cache for entries that no longer exist if ( isNode ) { // IE does not allow us to delete expando properties from nodes, // nor does it have a removeAttribute function on Document nodes; // we must handle all of these cases if ( jQuery.support.deleteExpando ) { delete elem[ internalKey ]; } else if ( elem.removeAttribute ) { elem.removeAttribute( internalKey ); } else { elem[ internalKey ] = null; } } }, // For internal use only. _data: function( elem, name, data ) { return jQuery.data( elem, name, data, true ); }, // A method for determining if a DOM node can handle the data expando acceptData: function( elem ) { if ( elem.nodeName ) { var match = jQuery.noData[ elem.nodeName.toLowerCase() ]; if ( match ) { return !(match === true || elem.getAttribute("classid") !== match); } } return true; } }); jQuery.fn.extend({ data: function( key, value ) { var parts, attr, name, data = null; if ( typeof key === "undefined" ) { if ( this.length ) { data = jQuery.data( this[0] ); if ( this[0].nodeType === 1 && !jQuery._data( this[0], "parsedAttrs" ) ) { attr = this[0].attributes; for ( var i = 0, l = attr.length; i < l; i++ ) { name = attr[i].name; if ( name.indexOf( "data-" ) === 0 ) { name = jQuery.camelCase( name.substring(5) ); dataAttr( this[0], name, data[ name ] ); } } jQuery._data( this[0], "parsedAttrs", true ); } } return data; } else if ( typeof key === "object" ) { return this.each(function() { jQuery.data( this, key ); }); } parts = key.split("."); parts[1] = parts[1] ? "." + parts[1] : ""; if ( value === undefined ) { data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); // Try to fetch any internally stored data first if ( data === undefined && this.length ) { data = jQuery.data( this[0], key ); data = dataAttr( this[0], key, data ); } return data === undefined && parts[1] ? this.data( parts[0] ) : data; } else { return this.each(function() { var self = jQuery( this ), args = [ parts[0], value ]; self.triggerHandler( "setData" + parts[1] + "!", args ); jQuery.data( this, key, value ); self.triggerHandler( "changeData" + parts[1] + "!", args ); }); } }, removeData: function( key ) { return this.each(function() { jQuery.removeData( this, key ); }); } }); function dataAttr( elem, key, data ) { // If nothing was found internally, try to fetch any // data from the HTML5 data-* attribute if ( data === undefined && elem.nodeType === 1 ) { var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); data = elem.getAttribute( name ); if ( typeof data === "string" ) { try { data = data === "true" ? true : data === "false" ? false : data === "null" ? null : jQuery.isNumeric( data ) ? parseFloat( data ) : rbrace.test( data ) ? jQuery.parseJSON( data ) : data; } catch( e ) {} // Make sure we set the data so it isn't changed later jQuery.data( elem, key, data ); } else { data = undefined; } } return data; } // checks a cache object for emptiness function isEmptyDataObject( obj ) { for ( var name in obj ) { // if the public data object is empty, the private is still empty if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { continue; } if ( name !== "toJSON" ) { return false; } } return true; } function handleQueueMarkDefer( elem, type, src ) { var deferDataKey = type + "defer", queueDataKey = type + "queue", markDataKey = type + "mark", defer = jQuery._data( elem, deferDataKey ); if ( defer && ( src === "queue" || !jQuery._data(elem, queueDataKey) ) && ( src === "mark" || !jQuery._data(elem, markDataKey) ) ) { // Give room for hard-coded callbacks to fire first // and eventually mark/queue something else on the element setTimeout( function() { if ( !jQuery._data( elem, queueDataKey ) && !jQuery._data( elem, markDataKey ) ) { jQuery.removeData( elem, deferDataKey, true ); defer.fire(); } }, 0 ); } } jQuery.extend({ _mark: function( elem, type ) { if ( elem ) { type = ( type || "fx" ) + "mark"; jQuery._data( elem, type, (jQuery._data( elem, type ) || 0) + 1 ); } }, _unmark: function( force, elem, type ) { if ( force !== true ) { type = elem; elem = force; force = false; } if ( elem ) { type = type || "fx"; var key = type + "mark", count = force ? 0 : ( (jQuery._data( elem, key ) || 1) - 1 ); if ( count ) { jQuery._data( elem, key, count ); } else { jQuery.removeData( elem, key, true ); handleQueueMarkDefer( elem, type, "mark" ); } } }, queue: function( elem, type, data ) { var q; if ( elem ) { type = ( type || "fx" ) + "queue"; q = jQuery._data( elem, type ); // Speed up dequeue by getting out quickly if this is just a lookup if ( data ) { if ( !q || jQuery.isArray(data) ) { q = jQuery._data( elem, type, jQuery.makeArray(data) ); } else { q.push( data ); } } return q || []; } }, dequeue: function( elem, type ) { type = type || "fx"; var queue = jQuery.queue( elem, type ), fn = queue.shift(), hooks = {}; // If the fx queue is dequeued, always remove the progress sentinel if ( fn === "inprogress" ) { fn = queue.shift(); } if ( fn ) { // Add a progress sentinel to prevent the fx queue from being // automatically dequeued if ( type === "fx" ) { queue.unshift( "inprogress" ); } jQuery._data( elem, type + ".run", hooks ); fn.call( elem, function() { jQuery.dequeue( elem, type ); }, hooks ); } if ( !queue.length ) { jQuery.removeData( elem, type + "queue " + type + ".run", true ); handleQueueMarkDefer( elem, type, "queue" ); } } }); jQuery.fn.extend({ queue: function( type, data ) { if ( typeof type !== "string" ) { data = type; type = "fx"; } if ( data === undefined ) { return jQuery.queue( this[0], type ); } return this.each(function() { var queue = jQuery.queue( this, type, data ); if ( type === "fx" && queue[0] !== "inprogress" ) { jQuery.dequeue( this, type ); } }); }, dequeue: function( type ) { return this.each(function() { jQuery.dequeue( this, type ); }); }, // Based off of the plugin by Clint Helfers, with permission. // http://blindsignals.com/index.php/2009/07/jquery-delay/ delay: function( time, type ) { time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; type = type || "fx"; return this.queue( type, function( next, hooks ) { var timeout = setTimeout( next, time ); hooks.stop = function() { clearTimeout( timeout ); }; }); }, clearQueue: function( type ) { return this.queue( type || "fx", [] ); }, // Get a promise resolved when queues of a certain type // are emptied (fx is the type by default) promise: function( type, object ) { if ( typeof type !== "string" ) { object = type; type = undefined; } type = type || "fx"; var defer = jQuery.Deferred(), elements = this, i = elements.length, count = 1, deferDataKey = type + "defer", queueDataKey = type + "queue", markDataKey = type + "mark", tmp; function resolve() { if ( !( --count ) ) { defer.resolveWith( elements, [ elements ] ); } } while( i-- ) { if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) || ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) || jQuery.data( elements[ i ], markDataKey, undefined, true ) ) && jQuery.data( elements[ i ], deferDataKey, jQuery.Callbacks( "once memory" ), true ) )) { count++; tmp.add( resolve ); } } resolve(); return defer.promise(); } }); var rclass = /[\n\t\r]/g, rspace = /\s+/, rreturn = /\r/g, rtype = /^(?:button|input)$/i, rfocusable = /^(?:button|input|object|select|textarea)$/i, rclickable = /^a(?:rea)?$/i, rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, getSetAttribute = jQuery.support.getSetAttribute, nodeHook, boolHook, fixSpecified; jQuery.fn.extend({ attr: function( name, value ) { return jQuery.access( this, name, value, true, jQuery.attr ); }, removeAttr: function( name ) { return this.each(function() { jQuery.removeAttr( this, name ); }); }, prop: function( name, value ) { return jQuery.access( this, name, value, true, jQuery.prop ); }, removeProp: function( name ) { name = jQuery.propFix[ name ] || name; return this.each(function() { // try/catch handles cases where IE balks (such as removing a property on window) try { this[ name ] = undefined; delete this[ name ]; } catch( e ) {} }); }, addClass: function( value ) { var classNames, i, l, elem, setClass, c, cl; if ( jQuery.isFunction( value ) ) { return this.each(function( j ) { jQuery( this ).addClass( value.call(this, j, this.className) ); }); } if ( value && typeof value === "string" ) { classNames = value.split( rspace ); for ( i = 0, l = this.length; i < l; i++ ) { elem = this[ i ]; if ( elem.nodeType === 1 ) { if ( !elem.className && classNames.length === 1 ) { elem.className = value; } else { setClass = " " + elem.className + " "; for ( c = 0, cl = classNames.length; c < cl; c++ ) { if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) { setClass += classNames[ c ] + " "; } } elem.className = jQuery.trim( setClass ); } } } } return this; }, removeClass: function( value ) { var classNames, i, l, elem, className, c, cl; if ( jQuery.isFunction( value ) ) { return this.each(function( j ) { jQuery( this ).removeClass( value.call(this, j, this.className) ); }); } if ( (value && typeof value === "string") || value === undefined ) { classNames = ( value || "" ).split( rspace ); for ( i = 0, l = this.length; i < l; i++ ) { elem = this[ i ]; if ( elem.nodeType === 1 && elem.className ) { if ( value ) { className = (" " + elem.className + " ").replace( rclass, " " ); for ( c = 0, cl = classNames.length; c < cl; c++ ) { className = className.replace(" " + classNames[ c ] + " ", " "); } elem.className = jQuery.trim( className ); } else { elem.className = ""; } } } } return this; }, toggleClass: function( value, stateVal ) { var type = typeof value, isBool = typeof stateVal === "boolean"; if ( jQuery.isFunction( value ) ) { return this.each(function( i ) { jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); }); } return this.each(function() { if ( type === "string" ) { // toggle individual class names var className, i = 0, self = jQuery( this ), state = stateVal, classNames = value.split( rspace ); while ( (className = classNames[ i++ ]) ) { // check each className given, space seperated list state = isBool ? state : !self.hasClass( className ); self[ state ? "addClass" : "removeClass" ]( className ); } } else if ( type === "undefined" || type === "boolean" ) { if ( this.className ) { // store className if set jQuery._data( this, "__className__", this.className ); } // toggle whole className this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; } }); }, hasClass: function( selector ) { var className = " " + selector + " ", i = 0, l = this.length; for ( ; i < l; i++ ) { if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { return true; } } return false; }, val: function( value ) { var hooks, ret, isFunction, elem = this[0]; if ( !arguments.length ) { if ( elem ) { hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ]; if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { return ret; } ret = elem.value; return typeof ret === "string" ? // handle most common string cases ret.replace(rreturn, "") : // handle cases where value is null/undef or number ret == null ? "" : ret; } return; } isFunction = jQuery.isFunction( value ); return this.each(function( i ) { var self = jQuery(this), val; if ( this.nodeType !== 1 ) { return; } if ( isFunction ) { val = value.call( this, i, self.val() ); } else { val = value; } // Treat null/undefined as ""; convert numbers to string if ( val == null ) { val = ""; } else if ( typeof val === "number" ) { val += ""; } else if ( jQuery.isArray( val ) ) { val = jQuery.map(val, function ( value ) { return value == null ? "" : value + ""; }); } hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ]; // If set returns undefined, fall back to normal setting if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { this.value = val; } }); } }); jQuery.extend({ valHooks: { option: { get: function( elem ) { // attributes.value is undefined in Blackberry 4.7 but // uses .value. See #6932 var val = elem.attributes.value; return !val || val.specified ? elem.value : elem.text; } }, select: { get: function( elem ) { var value, i, max, option, index = elem.selectedIndex, values = [], options = elem.options, one = elem.type === "select-one"; // Nothing was selected if ( index < 0 ) { return null; } // Loop through all the selected options i = one ? index : 0; max = one ? index + 1 : options.length; for ( ; i < max; i++ ) { option = options[ i ]; // Don't return options that are disabled or in a disabled optgroup if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { // Get the specific value for the option value = jQuery( option ).val(); // We don't need an array for one selects if ( one ) { return value; } // Multi-Selects return an array values.push( value ); } } // Fixes Bug #2551 -- select.val() broken in IE after form.reset() if ( one && !values.length && options.length ) { return jQuery( options[ index ] ).val(); } return values; }, set: function( elem, value ) { var values = jQuery.makeArray( value ); jQuery(elem).find("option").each(function() { this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; }); if ( !values.length ) { elem.selectedIndex = -1; } return values; } } }, attrFn: { val: true, css: true, html: true, text: true, data: true, width: true, height: true, offset: true }, attr: function( elem, name, value, pass ) { var ret, hooks, notxml, nType = elem.nodeType; // don't get/set attributes on text, comment and attribute nodes if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { return; } if ( pass && name in jQuery.attrFn ) { return jQuery( elem )[ name ]( value ); } // Fallback to prop when attributes are not supported if ( typeof elem.getAttribute === "undefined" ) { return jQuery.prop( elem, name, value ); } notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); // All attributes are lowercase // Grab necessary hook if one is defined if ( notxml ) { name = name.toLowerCase(); hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook ); } if ( value !== undefined ) { if ( value === null ) { jQuery.removeAttr( elem, name ); return; } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) { return ret; } else { elem.setAttribute( name, "" + value ); return value; } } else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) { return ret; } else { ret = elem.getAttribute( name ); // Non-existent attributes return null, we normalize to undefined return ret === null ? undefined : ret; } }, removeAttr: function( elem, value ) { var propName, attrNames, name, l, i = 0; if ( value && elem.nodeType === 1 ) { attrNames = value.toLowerCase().split( rspace ); l = attrNames.length; for ( ; i < l; i++ ) { name = attrNames[ i ]; if ( name ) { propName = jQuery.propFix[ name ] || name; // See #9699 for explanation of this approach (setting first, then removal) jQuery.attr( elem, name, "" ); elem.removeAttribute( getSetAttribute ? name : propName ); // Set corresponding property to false for boolean attributes if ( rboolean.test( name ) && propName in elem ) { elem[ propName ] = false; } } } } }, attrHooks: { type: { set: function( elem, value ) { // We can't allow the type property to be changed (since it causes problems in IE) if ( rtype.test( elem.nodeName ) && elem.parentNode ) { jQuery.error( "type property can't be changed" ); } else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { // Setting the type on a radio button after the value resets the value in IE6-9 // Reset value to it's default in case type is set after value // This is for element creation var val = elem.value; elem.setAttribute( "type", value ); if ( val ) { elem.value = val; } return value; } } }, // Use the value property for back compat // Use the nodeHook for button elements in IE6/7 (#1954) value: { get: function( elem, name ) { if ( nodeHook && jQuery.nodeName( elem, "button" ) ) { return nodeHook.get( elem, name ); } return name in elem ? elem.value : null; }, set: function( elem, value, name ) { if ( nodeHook && jQuery.nodeName( elem, "button" ) ) { return nodeHook.set( elem, value, name ); } // Does not return so that setAttribute is also used elem.value = value; } } }, propFix: { tabindex: "tabIndex", readonly: "readOnly", "for": "htmlFor", "class": "className", maxlength: "maxLength", cellspacing: "cellSpacing", cellpadding: "cellPadding", rowspan: "rowSpan", colspan: "colSpan", usemap: "useMap", frameborder: "frameBorder", contenteditable: "contentEditable" }, prop: function( elem, name, value ) { var ret, hooks, notxml, nType = elem.nodeType; // don't get/set properties on text, comment and attribute nodes if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { return; } notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); if ( notxml ) { // Fix name and attach hooks name = jQuery.propFix[ name ] || name; hooks = jQuery.propHooks[ name ]; } if ( value !== undefined ) { if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { return ret; } else { return ( elem[ name ] = value ); } } else { if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { return ret; } else { return elem[ name ]; } } }, propHooks: { tabIndex: { get: function( elem ) { // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ var attributeNode = elem.getAttributeNode("tabindex"); return attributeNode && attributeNode.specified ? parseInt( attributeNode.value, 10 ) : rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? 0 : undefined; } } } }); // Add the tabIndex propHook to attrHooks for back-compat (different case is intentional) jQuery.attrHooks.tabindex = jQuery.propHooks.tabIndex; // Hook for boolean attributes boolHook = { get: function( elem, name ) { // Align boolean attributes with corresponding properties // Fall back to attribute presence where some booleans are not supported var attrNode, property = jQuery.prop( elem, name ); return property === true || typeof property !== "boolean" && ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ? name.toLowerCase() : undefined; }, set: function( elem, value, name ) { var propName; if ( value === false ) { // Remove boolean attributes when set to false jQuery.removeAttr( elem, name ); } else { // value is true since we know at this point it's type boolean and not false // Set boolean attributes to the same name and set the DOM property propName = jQuery.propFix[ name ] || name; if ( propName in elem ) { // Only set the IDL specifically if it already exists on the element elem[ propName ] = true; } elem.setAttribute( name, name.toLowerCase() ); } return name; } }; // IE6/7 do not support getting/setting some attributes with get/setAttribute if ( !getSetAttribute ) { fixSpecified = { name: true, id: true }; // Use this for any attribute in IE6/7 // This fixes almost every IE6/7 issue nodeHook = jQuery.valHooks.button = { get: function( elem, name ) { var ret; ret = elem.getAttributeNode( name ); return ret && ( fixSpecified[ name ] ? ret.nodeValue !== "" : ret.specified ) ? ret.nodeValue : undefined; }, set: function( elem, value, name ) { // Set the existing or create a new attribute node var ret = elem.getAttributeNode( name ); if ( !ret ) { ret = document.createAttribute( name ); elem.setAttributeNode( ret ); } return ( ret.nodeValue = value + "" ); } }; // Apply the nodeHook to tabindex jQuery.attrHooks.tabindex.set = nodeHook.set; // Set width and height to auto instead of 0 on empty string( Bug #8150 ) // This is for removals jQuery.each([ "width", "height" ], function( i, name ) { jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { set: function( elem, value ) { if ( value === "" ) { elem.setAttribute( name, "auto" ); return value; } } }); }); // Set contenteditable to false on removals(#10429) // Setting to empty string throws an error as an invalid value jQuery.attrHooks.contenteditable = { get: nodeHook.get, set: function( elem, value, name ) { if ( value === "" ) { value = "false"; } nodeHook.set( elem, value, name ); } }; } // Some attributes require a special call on IE if ( !jQuery.support.hrefNormalized ) { jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { get: function( elem ) { var ret = elem.getAttribute( name, 2 ); return ret === null ? undefined : ret; } }); }); } if ( !jQuery.support.style ) { jQuery.attrHooks.style = { get: function( elem ) { // Return undefined in the case of empty string // Normalize to lowercase since IE uppercases css property names return elem.style.cssText.toLowerCase() || undefined; }, set: function( elem, value ) { return ( elem.style.cssText = "" + value ); } }; } // Safari mis-reports the default selected property of an option // Accessing the parent's selectedIndex property fixes it if ( !jQuery.support.optSelected ) { jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { get: function( elem ) { var parent = elem.parentNode; if ( parent ) { parent.selectedIndex; // Make sure that it also works with optgroups, see #5701 if ( parent.parentNode ) { parent.parentNode.selectedIndex; } } return null; } }); } // IE6/7 call enctype encoding if ( !jQuery.support.enctype ) { jQuery.propFix.enctype = "encoding"; } // Radios and checkboxes getter/setter if ( !jQuery.support.checkOn ) { jQuery.each([ "radio", "checkbox" ], function() { jQuery.valHooks[ this ] = { get: function( elem ) { // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified return elem.getAttribute("value") === null ? "on" : elem.value; } }; }); } jQuery.each([ "radio", "checkbox" ], function() { jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { set: function( elem, value ) { if ( jQuery.isArray( value ) ) { return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); } } }); }); var rformElems = /^(?:textarea|input|select)$/i, rtypenamespace = /^([^\.]*)?(?:\.(.+))?$/, rhoverHack = /\bhover(\.\S+)?\b/, rkeyEvent = /^key/, rmouseEvent = /^(?:mouse|contextmenu)|click/, rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, rquickIs = /^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/, quickParse = function( selector ) { var quick = rquickIs.exec( selector ); if ( quick ) { // 0 1 2 3 // [ _, tag, id, class ] quick[1] = ( quick[1] || "" ).toLowerCase(); quick[3] = quick[3] && new RegExp( "(?:^|\\s)" + quick[3] + "(?:\\s|$)" ); } return quick; }, quickIs = function( elem, m ) { var attrs = elem.attributes || {}; return ( (!m[1] || elem.nodeName.toLowerCase() === m[1]) && (!m[2] || (attrs.id || {}).value === m[2]) && (!m[3] || m[3].test( (attrs[ "class" ] || {}).value )) ); }, hoverHack = function( events ) { return jQuery.event.special.hover ? events : events.replace( rhoverHack, "mouseenter$1 mouseleave$1" ); }; /* * Helper functions for managing events -- not part of the public interface. * Props to Dean Edwards' addEvent library for many of the ideas. */ jQuery.event = { add: function( elem, types, handler, data, selector ) { var elemData, eventHandle, events, t, tns, type, namespaces, handleObj, handleObjIn, quick, handlers, special; // Don't attach events to noData or text/comment nodes (allow plain objects tho) if ( elem.nodeType === 3 || elem.nodeType === 8 || !types || !handler || !(elemData = jQuery._data( elem )) ) { return; } // Caller can pass in an object of custom data in lieu of the handler if ( handler.handler ) { handleObjIn = handler; handler = handleObjIn.handler; } // Make sure that the handler has a unique ID, used to find/remove it later if ( !handler.guid ) { handler.guid = jQuery.guid++; } // Init the element's event structure and main handler, if this is the first events = elemData.events; if ( !events ) { elemData.events = events = {}; } eventHandle = elemData.handle; if ( !eventHandle ) { elemData.handle = eventHandle = function( e ) { // Discard the second event of a jQuery.event.trigger() and // when an event is called after a page has unloaded return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ? jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : undefined; }; // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events eventHandle.elem = elem; } // Handle multiple events separated by a space // jQuery(...).bind("mouseover mouseout", fn); types = jQuery.trim( hoverHack(types) ).split( " " ); for ( t = 0; t < types.length; t++ ) { tns = rtypenamespace.exec( types[t] ) || []; type = tns[1]; namespaces = ( tns[2] || "" ).split( "." ).sort(); // If event changes its type, use the special event handlers for the changed type special = jQuery.event.special[ type ] || {}; // If selector defined, determine special event api type, otherwise given type type = ( selector ? special.delegateType : special.bindType ) || type; // Update special based on newly reset type special = jQuery.event.special[ type ] || {}; // handleObj is passed to all event handlers handleObj = jQuery.extend({ type: type, origType: tns[1], data: data, handler: handler, guid: handler.guid, selector: selector, quick: quickParse( selector ), namespace: namespaces.join(".") }, handleObjIn ); // Init the event handler queue if we're the first handlers = events[ type ]; if ( !handlers ) { handlers = events[ type ] = []; handlers.delegateCount = 0; // Only use addEventListener/attachEvent if the special events handler returns false if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { // Bind the global event handler to the element if ( elem.addEventListener ) { elem.addEventListener( type, eventHandle, false ); } else if ( elem.attachEvent ) { elem.attachEvent( "on" + type, eventHandle ); } } } if ( special.add ) { special.add.call( elem, handleObj ); if ( !handleObj.handler.guid ) { handleObj.handler.guid = handler.guid; } } // Add to the element's handler list, delegates in front if ( selector ) { handlers.splice( handlers.delegateCount++, 0, handleObj ); } else { handlers.push( handleObj ); } // Keep track of which events have ever been used, for event optimization jQuery.event.global[ type ] = true; } // Nullify elem to prevent memory leaks in IE elem = null; }, global: {}, // Detach an event or set of events from an element remove: function( elem, types, handler, selector, mappedTypes ) { var elemData = jQuery.hasData( elem ) && jQuery._data( elem ), t, tns, type, origType, namespaces, origCount, j, events, special, handle, eventType, handleObj; if ( !elemData || !(events = elemData.events) ) { return; } // Once for each type.namespace in types; type may be omitted types = jQuery.trim( hoverHack( types || "" ) ).split(" "); for ( t = 0; t < types.length; t++ ) { tns = rtypenamespace.exec( types[t] ) || []; type = origType = tns[1]; namespaces = tns[2]; // Unbind all events (on this namespace, if provided) for the element if ( !type ) { for ( type in events ) { jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); } continue; } special = jQuery.event.special[ type ] || {}; type = ( selector? special.delegateType : special.bindType ) || type; eventType = events[ type ] || []; origCount = eventType.length; namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.)?") + "(\\.|$)") : null; // Remove matching events for ( j = 0; j < eventType.length; j++ ) { handleObj = eventType[ j ]; if ( ( mappedTypes || origType === handleObj.origType ) && ( !handler || handler.guid === handleObj.guid ) && ( !namespaces || namespaces.test( handleObj.namespace ) ) && ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { eventType.splice( j--, 1 ); if ( handleObj.selector ) { eventType.delegateCount--; } if ( special.remove ) { special.remove.call( elem, handleObj ); } } } // Remove generic event handler if we removed something and no more handlers exist // (avoids potential for endless recursion during removal of special event handlers) if ( eventType.length === 0 && origCount !== eventType.length ) { if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) { jQuery.removeEvent( elem, type, elemData.handle ); } delete events[ type ]; } } // Remove the expando if it's no longer used if ( jQuery.isEmptyObject( events ) ) { handle = elemData.handle; if ( handle ) { handle.elem = null; } // removeData also checks for emptiness and clears the expando if empty // so use it instead of delete jQuery.removeData( elem, [ "events", "handle" ], true ); } }, // Events that are safe to short-circuit if no handlers are attached. // Native DOM events should not be added, they may have inline handlers. customEvent: { "getData": true, "setData": true, "changeData": true }, trigger: function( event, data, elem, onlyHandlers ) { // Don't do events on text and comment nodes if ( elem && (elem.nodeType === 3 || elem.nodeType === 8) ) { return; } // Event object or event type var type = event.type || event, namespaces = [], cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType; // focus/blur morphs to focusin/out; ensure we're not firing them right now if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { return; } if ( type.indexOf( "!" ) >= 0 ) { // Exclusive events trigger only for the exact event (no namespaces) type = type.slice(0, -1); exclusive = true; } if ( type.indexOf( "." ) >= 0 ) { // Namespaced trigger; create a regexp to match event type in handle() namespaces = type.split("."); type = namespaces.shift(); namespaces.sort(); } if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) { // No jQuery handlers for this event type, and it can't have inline handlers return; } // Caller can pass in an Event, Object, or just an event type string event = typeof event === "object" ? // jQuery.Event object event[ jQuery.expando ] ? event : // Object literal new jQuery.Event( type, event ) : // Just the event type (string) new jQuery.Event( type ); event.type = type; event.isTrigger = true; event.exclusive = exclusive; event.namespace = namespaces.join( "." ); event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)") : null; ontype = type.indexOf( ":" ) < 0 ? "on" + type : ""; // Handle a global trigger if ( !elem ) { // TODO: Stop taunting the data cache; remove global events and always attach to document cache = jQuery.cache; for ( i in cache ) { if ( cache[ i ].events && cache[ i ].events[ type ] ) { jQuery.event.trigger( event, data, cache[ i ].handle.elem, true ); } } return; } // Clean up the event in case it is being reused event.result = undefined; if ( !event.target ) { event.target = elem; } // Clone any incoming data and prepend the event, creating the handler arg list data = data != null ? jQuery.makeArray( data ) : []; data.unshift( event ); // Allow special events to draw outside the lines special = jQuery.event.special[ type ] || {}; if ( special.trigger && special.trigger.apply( elem, data ) === false ) { return; } // Determine event propagation path in advance, per W3C events spec (#9951) // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) eventPath = [[ elem, special.bindType || type ]]; if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { bubbleType = special.delegateType || type; cur = rfocusMorph.test( bubbleType + type ) ? elem : elem.parentNode; old = null; for ( ; cur; cur = cur.parentNode ) { eventPath.push([ cur, bubbleType ]); old = cur; } // Only add window if we got to document (e.g., not plain obj or detached DOM) if ( old && old === elem.ownerDocument ) { eventPath.push([ old.defaultView || old.parentWindow || window, bubbleType ]); } } // Fire handlers on the event path for ( i = 0; i < eventPath.length && !event.isPropagationStopped(); i++ ) { cur = eventPath[i][0]; event.type = eventPath[i][1]; handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); } // Note that this is a bare JS function and not a jQuery handler handle = ontype && cur[ ontype ]; if ( handle && jQuery.acceptData( cur ) && handle.apply( cur, data ) === false ) { event.preventDefault(); } } event.type = type; // If nobody prevented the default action, do it now if ( !onlyHandlers && !event.isDefaultPrevented() ) { if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) && !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { // Call a native DOM method on the target with the same name name as the event. // Can't use an .isFunction() check here because IE6/7 fails that test. // Don't do default actions on window, that's where global variables be (#6170) // IE<9 dies on focus/blur to hidden element (#1486) if ( ontype && elem[ type ] && ((type !== "focus" && type !== "blur") || event.target.offsetWidth !== 0) && !jQuery.isWindow( elem ) ) { // Don't re-trigger an onFOO event when we call its FOO() method old = elem[ ontype ]; if ( old ) { elem[ ontype ] = null; } // Prevent re-triggering of the same event, since we already bubbled it above jQuery.event.triggered = type; elem[ type ](); jQuery.event.triggered = undefined; if ( old ) { elem[ ontype ] = old; } } } } return event.result; }, dispatch: function( event ) { // Make a writable jQuery.Event from the native event object event = jQuery.event.fix( event || window.event ); var handlers = ( (jQuery._data( this, "events" ) || {} )[ event.type ] || []), delegateCount = handlers.delegateCount, args = [].slice.call( arguments, 0 ), run_all = !event.exclusive && !event.namespace, handlerQueue = [], i, j, cur, jqcur, ret, selMatch, matched, matches, handleObj, sel, related; // Use the fix-ed jQuery.Event rather than the (read-only) native event args[0] = event; event.delegateTarget = this; // Determine handlers that should run if there are delegated events // Avoid disabled elements in IE (#6911) and non-left-click bubbling in Firefox (#3861) if ( delegateCount && !event.target.disabled && !(event.button && event.type === "click") ) { // Pregenerate a single jQuery object for reuse with .is() jqcur = jQuery(this); jqcur.context = this.ownerDocument || this; for ( cur = event.target; cur != this; cur = cur.parentNode || this ) { selMatch = {}; matches = []; jqcur[0] = cur; for ( i = 0; i < delegateCount; i++ ) { handleObj = handlers[ i ]; sel = handleObj.selector; if ( selMatch[ sel ] === undefined ) { selMatch[ sel ] = ( handleObj.quick ? quickIs( cur, handleObj.quick ) : jqcur.is( sel ) ); } if ( selMatch[ sel ] ) { matches.push( handleObj ); } } if ( matches.length ) { handlerQueue.push({ elem: cur, matches: matches }); } } } // Add the remaining (directly-bound) handlers if ( handlers.length > delegateCount ) { handlerQueue.push({ elem: this, matches: handlers.slice( delegateCount ) }); } // Run delegates first; they may want to stop propagation beneath us for ( i = 0; i < handlerQueue.length && !event.isPropagationStopped(); i++ ) { matched = handlerQueue[ i ]; event.currentTarget = matched.elem; for ( j = 0; j < matched.matches.length && !event.isImmediatePropagationStopped(); j++ ) { handleObj = matched.matches[ j ]; // Triggered event must either 1) be non-exclusive and have no namespace, or // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). if ( run_all || (!event.namespace && !handleObj.namespace) || event.namespace_re && event.namespace_re.test( handleObj.namespace ) ) { event.data = handleObj.data; event.handleObj = handleObj; ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) .apply( matched.elem, args ); if ( ret !== undefined ) { event.result = ret; if ( ret === false ) { event.preventDefault(); event.stopPropagation(); } } } } } return event.result; }, // Includes some event props shared by KeyEvent and MouseEvent // *** attrChange attrName relatedNode srcElement are not normalized, non-W3C, deprecated, will be removed in 1.8 *** props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), fixHooks: {}, keyHooks: { props: "char charCode key keyCode".split(" "), filter: function( event, original ) { // Add which for key events if ( event.which == null ) { event.which = original.charCode != null ? original.charCode : original.keyCode; } return event; } }, mouseHooks: { props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), filter: function( event, original ) { var eventDoc, doc, body, button = original.button, fromElement = original.fromElement; // Calculate pageX/Y if missing and clientX/Y available if ( event.pageX == null && original.clientX != null ) { eventDoc = event.target.ownerDocument || document; doc = eventDoc.documentElement; body = eventDoc.body; event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); } // Add relatedTarget, if necessary if ( !event.relatedTarget && fromElement ) { event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; } // Add which for click: 1 === left; 2 === middle; 3 === right // Note: button is not normalized, so don't use it if ( !event.which && button !== undefined ) { event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); } return event; } }, fix: function( event ) { if ( event[ jQuery.expando ] ) { return event; } // Create a writable copy of the event object and normalize some properties var i, prop, originalEvent = event, fixHook = jQuery.event.fixHooks[ event.type ] || {}, copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; event = jQuery.Event( originalEvent ); for ( i = copy.length; i; ) { prop = copy[ --i ]; event[ prop ] = originalEvent[ prop ]; } // Fix target property, if necessary (#1925, IE 6/7/8 & Safari2) if ( !event.target ) { event.target = originalEvent.srcElement || document; } // Target should not be a text node (#504, Safari) if ( event.target.nodeType === 3 ) { event.target = event.target.parentNode; } // For mouse/key events; add metaKey if it's not there (#3368, IE6/7/8) if ( event.metaKey === undefined ) { event.metaKey = event.ctrlKey; } return fixHook.filter? fixHook.filter( event, originalEvent ) : event; }, special: { ready: { // Make sure the ready event is setup setup: jQuery.bindReady }, load: { // Prevent triggered image.load events from bubbling to window.load noBubble: true }, focus: { delegateType: "focusin" }, blur: { delegateType: "focusout" }, beforeunload: { setup: function( data, namespaces, eventHandle ) { // We only want to do this special case on windows if ( jQuery.isWindow( this ) ) { this.onbeforeunload = eventHandle; } }, teardown: function( namespaces, eventHandle ) { if ( this.onbeforeunload === eventHandle ) { this.onbeforeunload = null; } } } }, simulate: function( type, elem, event, bubble ) { // Piggyback on a donor event to simulate a different one. // Fake originalEvent to avoid donor's stopPropagation, but if the // simulated event prevents default then we do the same on the donor. var e = jQuery.extend( new jQuery.Event(), event, { type: type, isSimulated: true, originalEvent: {} } ); if ( bubble ) { jQuery.event.trigger( e, null, elem ); } else { jQuery.event.dispatch.call( elem, e ); } if ( e.isDefaultPrevented() ) { event.preventDefault(); } } }; // Some plugins are using, but it's undocumented/deprecated and will be removed. // The 1.7 special event interface should provide all the hooks needed now. jQuery.event.handle = jQuery.event.dispatch; jQuery.removeEvent = document.removeEventListener ? function( elem, type, handle ) { if ( elem.removeEventListener ) { elem.removeEventListener( type, handle, false ); } } : function( elem, type, handle ) { if ( elem.detachEvent ) { elem.detachEvent( "on" + type, handle ); } }; jQuery.Event = function( src, props ) { // Allow instantiation without the 'new' keyword if ( !(this instanceof jQuery.Event) ) { return new jQuery.Event( src, props ); } // Event object if ( src && src.type ) { this.originalEvent = src; this.type = src.type; // Events bubbling up the document may have been marked as prevented // by a handler lower down the tree; reflect the correct value. this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; // Event type } else { this.type = src; } // Put explicitly provided properties onto the event object if ( props ) { jQuery.extend( this, props ); } // Create a timestamp if incoming event doesn't have one this.timeStamp = src && src.timeStamp || jQuery.now(); // Mark it as fixed this[ jQuery.expando ] = true; }; function returnFalse() { return false; } function returnTrue() { return true; } // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html jQuery.Event.prototype = { preventDefault: function() { this.isDefaultPrevented = returnTrue; var e = this.originalEvent; if ( !e ) { return; } // if preventDefault exists run it on the original event if ( e.preventDefault ) { e.preventDefault(); // otherwise set the returnValue property of the original event to false (IE) } else { e.returnValue = false; } }, stopPropagation: function() { this.isPropagationStopped = returnTrue; var e = this.originalEvent; if ( !e ) { return; } // if stopPropagation exists run it on the original event if ( e.stopPropagation ) { e.stopPropagation(); } // otherwise set the cancelBubble property of the original event to true (IE) e.cancelBubble = true; }, stopImmediatePropagation: function() { this.isImmediatePropagationStopped = returnTrue; this.stopPropagation(); }, isDefaultPrevented: returnFalse, isPropagationStopped: returnFalse, isImmediatePropagationStopped: returnFalse }; // Create mouseenter/leave events using mouseover/out and event-time checks jQuery.each({ mouseenter: "mouseover", mouseleave: "mouseout" }, function( orig, fix ) { jQuery.event.special[ orig ] = { delegateType: fix, bindType: fix, handle: function( event ) { var target = this, related = event.relatedTarget, handleObj = event.handleObj, selector = handleObj.selector, ret; // For mousenter/leave call the handler if related is outside the target. // NB: No relatedTarget if the mouse left/entered the browser window if ( !related || (related !== target && !jQuery.contains( target, related )) ) { event.type = handleObj.origType; ret = handleObj.handler.apply( this, arguments ); event.type = fix; } return ret; } }; }); // IE submit delegation if ( !jQuery.support.submitBubbles ) { jQuery.event.special.submit = { setup: function() { // Only need this for delegated form submit events if ( jQuery.nodeName( this, "form" ) ) { return false; } // Lazy-add a submit handler when a descendant form may potentially be submitted jQuery.event.add( this, "click._submit keypress._submit", function( e ) { // Node name check avoids a VML-related crash in IE (#9807) var elem = e.target, form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; if ( form && !form._submit_attached ) { jQuery.event.add( form, "submit._submit", function( event ) { // If form was submitted by the user, bubble the event up the tree if ( this.parentNode && !event.isTrigger ) { jQuery.event.simulate( "submit", this.parentNode, event, true ); } }); form._submit_attached = true; } }); // return undefined since we don't need an event listener }, teardown: function() { // Only need this for delegated form submit events if ( jQuery.nodeName( this, "form" ) ) { return false; } // Remove delegated handlers; cleanData eventually reaps submit handlers attached above jQuery.event.remove( this, "._submit" ); } }; } // IE change delegation and checkbox/radio fix if ( !jQuery.support.changeBubbles ) { jQuery.event.special.change = { setup: function() { if ( rformElems.test( this.nodeName ) ) { // IE doesn't fire change on a check/radio until blur; trigger it on click // after a propertychange. Eat the blur-change in special.change.handle. // This still fires onchange a second time for check/radio after blur. if ( this.type === "checkbox" || this.type === "radio" ) { jQuery.event.add( this, "propertychange._change", function( event ) { if ( event.originalEvent.propertyName === "checked" ) { this._just_changed = true; } }); jQuery.event.add( this, "click._change", function( event ) { if ( this._just_changed && !event.isTrigger ) { this._just_changed = false; jQuery.event.simulate( "change", this, event, true ); } }); } return false; } // Delegated event; lazy-add a change handler on descendant inputs jQuery.event.add( this, "beforeactivate._change", function( e ) { var elem = e.target; if ( rformElems.test( elem.nodeName ) && !elem._change_attached ) { jQuery.event.add( elem, "change._change", function( event ) { if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { jQuery.event.simulate( "change", this.parentNode, event, true ); } }); elem._change_attached = true; } }); }, handle: function( event ) { var elem = event.target; // Swallow native change events from checkbox/radio, we already triggered them above if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { return event.handleObj.handler.apply( this, arguments ); } }, teardown: function() { jQuery.event.remove( this, "._change" ); return rformElems.test( this.nodeName ); } }; } // Create "bubbling" focus and blur events if ( !jQuery.support.focusinBubbles ) { jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { // Attach a single capturing handler while someone wants focusin/focusout var attaches = 0, handler = function( event ) { jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); }; jQuery.event.special[ fix ] = { setup: function() { if ( attaches++ === 0 ) { document.addEventListener( orig, handler, true ); } }, teardown: function() { if ( --attaches === 0 ) { document.removeEventListener( orig, handler, true ); } } }; }); } jQuery.fn.extend({ on: function( types, selector, data, fn, /*INTERNAL*/ one ) { var origFn, type; // Types can be a map of types/handlers if ( typeof types === "object" ) { // ( types-Object, selector, data ) if ( typeof selector !== "string" ) { // ( types-Object, data ) data = selector; selector = undefined; } for ( type in types ) { this.on( type, selector, data, types[ type ], one ); } return this; } if ( data == null && fn == null ) { // ( types, fn ) fn = selector; data = selector = undefined; } else if ( fn == null ) { if ( typeof selector === "string" ) { // ( types, selector, fn ) fn = data; data = undefined; } else { // ( types, data, fn ) fn = data; data = selector; selector = undefined; } } if ( fn === false ) { fn = returnFalse; } else if ( !fn ) { return this; } if ( one === 1 ) { origFn = fn; fn = function( event ) { // Can use an empty set, since event contains the info jQuery().off( event ); return origFn.apply( this, arguments ); }; // Use same guid so caller can remove using origFn fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); } return this.each( function() { jQuery.event.add( this, types, fn, data, selector ); }); }, one: function( types, selector, data, fn ) { return this.on.call( this, types, selector, data, fn, 1 ); }, off: function( types, selector, fn ) { if ( types && types.preventDefault && types.handleObj ) { // ( event ) dispatched jQuery.Event var handleObj = types.handleObj; jQuery( types.delegateTarget ).off( handleObj.namespace? handleObj.type + "." + handleObj.namespace : handleObj.type, handleObj.selector, handleObj.handler ); return this; } if ( typeof types === "object" ) { // ( types-object [, selector] ) for ( var type in types ) { this.off( type, selector, types[ type ] ); } return this; } if ( selector === false || typeof selector === "function" ) { // ( types [, fn] ) fn = selector; selector = undefined; } if ( fn === false ) { fn = returnFalse; } return this.each(function() { jQuery.event.remove( this, types, fn, selector ); }); }, bind: function( types, data, fn ) { return this.on( types, null, data, fn ); }, unbind: function( types, fn ) { return this.off( types, null, fn ); }, live: function( types, data, fn ) { jQuery( this.context ).on( types, this.selector, data, fn ); return this; }, die: function( types, fn ) { jQuery( this.context ).off( types, this.selector || "**", fn ); return this; }, delegate: function( selector, types, data, fn ) { return this.on( types, selector, data, fn ); }, undelegate: function( selector, types, fn ) { // ( namespace ) or ( selector, types [, fn] ) return arguments.length == 1? this.off( selector, "**" ) : this.off( types, selector, fn ); }, trigger: function( type, data ) { return this.each(function() { jQuery.event.trigger( type, data, this ); }); }, triggerHandler: function( type, data ) { if ( this[0] ) { return jQuery.event.trigger( type, data, this[0], true ); } }, toggle: function( fn ) { // Save reference to arguments for access in closure var args = arguments, guid = fn.guid || jQuery.guid++, i = 0, toggler = function( event ) { // Figure out which function to execute var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i; jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 ); // Make sure that clicks stop event.preventDefault(); // and execute the function return args[ lastToggle ].apply( this, arguments ) || false; }; // link all the functions, so any of them can unbind this click handler toggler.guid = guid; while ( i < args.length ) { args[ i++ ].guid = guid; } return this.click( toggler ); }, hover: function( fnOver, fnOut ) { return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); } }); jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { // Handle event binding jQuery.fn[ name ] = function( data, fn ) { if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; if ( jQuery.attrFn ) { jQuery.attrFn[ name ] = true; } if ( rkeyEvent.test( name ) ) { jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks; } if ( rmouseEvent.test( name ) ) { jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks; } }); /*! * Sizzle CSS Selector Engine * Copyright 2011, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * More information: http://sizzlejs.com/ */ (function(){ var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, expando = "sizcache" + (Math.random() + '').replace('.', ''), done = 0, toString = Object.prototype.toString, hasDuplicate = false, baseHasDuplicate = true, rBackslash = /\\/g, rReturn = /\r\n/g, rNonWord = /\W/; // Here we check if the JavaScript engine is using some sort of // optimization where it does not always call our comparision // function. If that is the case, discard the hasDuplicate value. // Thus far that includes Google Chrome. [0, 0].sort(function() { baseHasDuplicate = false; return 0; }); var Sizzle = function( selector, context, results, seed ) { results = results || []; context = context || document; var origContext = context; if ( context.nodeType !== 1 && context.nodeType !== 9 ) { return []; } if ( !selector || typeof selector !== "string" ) { return results; } var m, set, checkSet, extra, ret, cur, pop, i, prune = true, contextXML = Sizzle.isXML( context ), parts = [], soFar = selector; // Reset the position of the chunker regexp (start from head) do { chunker.exec( "" ); m = chunker.exec( soFar ); if ( m ) { soFar = m[3]; parts.push( m[1] ); if ( m[2] ) { extra = m[3]; break; } } } while ( m ); if ( parts.length > 1 && origPOS.exec( selector ) ) { if ( parts.length === 2 && Expr.relative[ parts[0] ] ) { set = posProcess( parts[0] + parts[1], context, seed ); } else { set = Expr.relative[ parts[0] ] ? [ context ] : Sizzle( parts.shift(), context ); while ( parts.length ) { selector = parts.shift(); if ( Expr.relative[ selector ] ) { selector += parts.shift(); } set = posProcess( selector, set, seed ); } } } else { // Take a shortcut and set the context if the root selector is an ID // (but not if it'll be faster if the inner selector is an ID) if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML && Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) { ret = Sizzle.find( parts.shift(), context, contextXML ); context = ret.expr ? Sizzle.filter( ret.expr, ret.set )[0] : ret.set[0]; } if ( context ) { ret = seed ? { expr: parts.pop(), set: makeArray(seed) } : Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML ); set = ret.expr ? Sizzle.filter( ret.expr, ret.set ) : ret.set; if ( parts.length > 0 ) { checkSet = makeArray( set ); } else { prune = false; } while ( parts.length ) { cur = parts.pop(); pop = cur; if ( !Expr.relative[ cur ] ) { cur = ""; } else { pop = parts.pop(); } if ( pop == null ) { pop = context; } Expr.relative[ cur ]( checkSet, pop, contextXML ); } } else { checkSet = parts = []; } } if ( !checkSet ) { checkSet = set; } if ( !checkSet ) { Sizzle.error( cur || selector ); } if ( toString.call(checkSet) === "[object Array]" ) { if ( !prune ) { results.push.apply( results, checkSet ); } else if ( context && context.nodeType === 1 ) { for ( i = 0; checkSet[i] != null; i++ ) { if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) { results.push( set[i] ); } } } else { for ( i = 0; checkSet[i] != null; i++ ) { if ( checkSet[i] && checkSet[i].nodeType === 1 ) { results.push( set[i] ); } } } } else { makeArray( checkSet, results ); } if ( extra ) { Sizzle( extra, origContext, results, seed ); Sizzle.uniqueSort( results ); } return results; }; Sizzle.uniqueSort = function( results ) { if ( sortOrder ) { hasDuplicate = baseHasDuplicate; results.sort( sortOrder ); if ( hasDuplicate ) { for ( var i = 1; i < results.length; i++ ) { if ( results[i] === results[ i - 1 ] ) { results.splice( i--, 1 ); } } } } return results; }; Sizzle.matches = function( expr, set ) { return Sizzle( expr, null, null, set ); }; Sizzle.matchesSelector = function( node, expr ) { return Sizzle( expr, null, null, [node] ).length > 0; }; Sizzle.find = function( expr, context, isXML ) { var set, i, len, match, type, left; if ( !expr ) { return []; } for ( i = 0, len = Expr.order.length; i < len; i++ ) { type = Expr.order[i]; if ( (match = Expr.leftMatch[ type ].exec( expr )) ) { left = match[1]; match.splice( 1, 1 ); if ( left.substr( left.length - 1 ) !== "\\" ) { match[1] = (match[1] || "").replace( rBackslash, "" ); set = Expr.find[ type ]( match, context, isXML ); if ( set != null ) { expr = expr.replace( Expr.match[ type ], "" ); break; } } } } if ( !set ) { set = typeof context.getElementsByTagName !== "undefined" ? context.getElementsByTagName( "*" ) : []; } return { set: set, expr: expr }; }; Sizzle.filter = function( expr, set, inplace, not ) { var match, anyFound, type, found, item, filter, left, i, pass, old = expr, result = [], curLoop = set, isXMLFilter = set && set[0] && Sizzle.isXML( set[0] ); while ( expr && set.length ) { for ( type in Expr.filter ) { if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) { filter = Expr.filter[ type ]; left = match[1]; anyFound = false; match.splice(1,1); if ( left.substr( left.length - 1 ) === "\\" ) { continue; } if ( curLoop === result ) { result = []; } if ( Expr.preFilter[ type ] ) { match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter ); if ( !match ) { anyFound = found = true; } else if ( match === true ) { continue; } } if ( match ) { for ( i = 0; (item = curLoop[i]) != null; i++ ) { if ( item ) { found = filter( item, match, i, curLoop ); pass = not ^ found; if ( inplace && found != null ) { if ( pass ) { anyFound = true; } else { curLoop[i] = false; } } else if ( pass ) { result.push( item ); anyFound = true; } } } } if ( found !== undefined ) { if ( !inplace ) { curLoop = result; } expr = expr.replace( Expr.match[ type ], "" ); if ( !anyFound ) { return []; } break; } } } // Improper expression if ( expr === old ) { if ( anyFound == null ) { Sizzle.error( expr ); } else { break; } } old = expr; } return curLoop; }; Sizzle.error = function( msg ) { throw new Error( "Syntax error, unrecognized expression: " + msg ); }; /** * Utility function for retreiving the text value of an array of DOM nodes * @param {Array|Element} elem */ var getText = Sizzle.getText = function( elem ) { var i, node, nodeType = elem.nodeType, ret = ""; if ( nodeType ) { if ( nodeType === 1 || nodeType === 9 ) { // Use textContent || innerText for elements if ( typeof elem.textContent === 'string' ) { return elem.textContent; } else if ( typeof elem.innerText === 'string' ) { // Replace IE's carriage returns return elem.innerText.replace( rReturn, '' ); } else { // Traverse it's children for ( elem = elem.firstChild; elem; elem = elem.nextSibling) { ret += getText( elem ); } } } else if ( nodeType === 3 || nodeType === 4 ) { return elem.nodeValue; } } else { // If no nodeType, this is expected to be an array for ( i = 0; (node = elem[i]); i++ ) { // Do not traverse comment nodes if ( node.nodeType !== 8 ) { ret += getText( node ); } } } return ret; }; var Expr = Sizzle.selectors = { order: [ "ID", "NAME", "TAG" ], match: { ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ }, leftMatch: {}, attrMap: { "class": "className", "for": "htmlFor" }, attrHandle: { href: function( elem ) { return elem.getAttribute( "href" ); }, type: function( elem ) { return elem.getAttribute( "type" ); } }, relative: { "+": function(checkSet, part){ var isPartStr = typeof part === "string", isTag = isPartStr && !rNonWord.test( part ), isPartStrNotTag = isPartStr && !isTag; if ( isTag ) { part = part.toLowerCase(); } for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) { if ( (elem = checkSet[i]) ) { while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {} checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ? elem || false : elem === part; } } if ( isPartStrNotTag ) { Sizzle.filter( part, checkSet, true ); } }, ">": function( checkSet, part ) { var elem, isPartStr = typeof part === "string", i = 0, l = checkSet.length; if ( isPartStr && !rNonWord.test( part ) ) { part = part.toLowerCase(); for ( ; i < l; i++ ) { elem = checkSet[i]; if ( elem ) { var parent = elem.parentNode; checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false; } } } else { for ( ; i < l; i++ ) { elem = checkSet[i]; if ( elem ) { checkSet[i] = isPartStr ? elem.parentNode : elem.parentNode === part; } } if ( isPartStr ) { Sizzle.filter( part, checkSet, true ); } } }, "": function(checkSet, part, isXML){ var nodeCheck, doneName = done++, checkFn = dirCheck; if ( typeof part === "string" && !rNonWord.test( part ) ) { part = part.toLowerCase(); nodeCheck = part; checkFn = dirNodeCheck; } checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML ); }, "~": function( checkSet, part, isXML ) { var nodeCheck, doneName = done++, checkFn = dirCheck; if ( typeof part === "string" && !rNonWord.test( part ) ) { part = part.toLowerCase(); nodeCheck = part; checkFn = dirNodeCheck; } checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML ); } }, find: { ID: function( match, context, isXML ) { if ( typeof context.getElementById !== "undefined" && !isXML ) { var m = context.getElementById(match[1]); // Check parentNode to catch when Blackberry 4.6 returns // nodes that are no longer in the document #6963 return m && m.parentNode ? [m] : []; } }, NAME: function( match, context ) { if ( typeof context.getElementsByName !== "undefined" ) { var ret = [], results = context.getElementsByName( match[1] ); for ( var i = 0, l = results.length; i < l; i++ ) { if ( results[i].getAttribute("name") === match[1] ) { ret.push( results[i] ); } } return ret.length === 0 ? null : ret; } }, TAG: function( match, context ) { if ( typeof context.getElementsByTagName !== "undefined" ) { return context.getElementsByTagName( match[1] ); } } }, preFilter: { CLASS: function( match, curLoop, inplace, result, not, isXML ) { match = " " + match[1].replace( rBackslash, "" ) + " "; if ( isXML ) { return match; } for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { if ( elem ) { if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) { if ( !inplace ) { result.push( elem ); } } else if ( inplace ) { curLoop[i] = false; } } } return false; }, ID: function( match ) { return match[1].replace( rBackslash, "" ); }, TAG: function( match, curLoop ) { return match[1].replace( rBackslash, "" ).toLowerCase(); }, CHILD: function( match ) { if ( match[1] === "nth" ) { if ( !match[2] ) { Sizzle.error( match[0] ); } match[2] = match[2].replace(/^\+|\s*/g, ''); // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec( match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" || !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]); // calculate the numbers (first)n+(last) including if they are negative match[2] = (test[1] + (test[2] || 1)) - 0; match[3] = test[3] - 0; } else if ( match[2] ) { Sizzle.error( match[0] ); } // TODO: Move to normal caching system match[0] = done++; return match; }, ATTR: function( match, curLoop, inplace, result, not, isXML ) { var name = match[1] = match[1].replace( rBackslash, "" ); if ( !isXML && Expr.attrMap[name] ) { match[1] = Expr.attrMap[name]; } // Handle if an un-quoted value was used match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" ); if ( match[2] === "~=" ) { match[4] = " " + match[4] + " "; } return match; }, PSEUDO: function( match, curLoop, inplace, result, not ) { if ( match[1] === "not" ) { // If we're dealing with a complex expression, or a simple one if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) { match[3] = Sizzle(match[3], null, null, curLoop); } else { var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); if ( !inplace ) { result.push.apply( result, ret ); } return false; } } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { return true; } return match; }, POS: function( match ) { match.unshift( true ); return match; } }, filters: { enabled: function( elem ) { return elem.disabled === false && elem.type !== "hidden"; }, disabled: function( elem ) { return elem.disabled === true; }, checked: function( elem ) { return elem.checked === true; }, selected: function( elem ) { // Accessing this property makes selected-by-default // options in Safari work properly if ( elem.parentNode ) { elem.parentNode.selectedIndex; } return elem.selected === true; }, parent: function( elem ) { return !!elem.firstChild; }, empty: function( elem ) { return !elem.firstChild; }, has: function( elem, i, match ) { return !!Sizzle( match[3], elem ).length; }, header: function( elem ) { return (/h\d/i).test( elem.nodeName ); }, text: function( elem ) { var attr = elem.getAttribute( "type" ), type = elem.type; // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) // use getAttribute instead to test this case return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null ); }, radio: function( elem ) { return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type; }, checkbox: function( elem ) { return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type; }, file: function( elem ) { return elem.nodeName.toLowerCase() === "input" && "file" === elem.type; }, password: function( elem ) { return elem.nodeName.toLowerCase() === "input" && "password" === elem.type; }, submit: function( elem ) { var name = elem.nodeName.toLowerCase(); return (name === "input" || name === "button") && "submit" === elem.type; }, image: function( elem ) { return elem.nodeName.toLowerCase() === "input" && "image" === elem.type; }, reset: function( elem ) { var name = elem.nodeName.toLowerCase(); return (name === "input" || name === "button") && "reset" === elem.type; }, button: function( elem ) { var name = elem.nodeName.toLowerCase(); return name === "input" && "button" === elem.type || name === "button"; }, input: function( elem ) { return (/input|select|textarea|button/i).test( elem.nodeName ); }, focus: function( elem ) { return elem === elem.ownerDocument.activeElement; } }, setFilters: { first: function( elem, i ) { return i === 0; }, last: function( elem, i, match, array ) { return i === array.length - 1; }, even: function( elem, i ) { return i % 2 === 0; }, odd: function( elem, i ) { return i % 2 === 1; }, lt: function( elem, i, match ) { return i < match[3] - 0; }, gt: function( elem, i, match ) { return i > match[3] - 0; }, nth: function( elem, i, match ) { return match[3] - 0 === i; }, eq: function( elem, i, match ) { return match[3] - 0 === i; } }, filter: { PSEUDO: function( elem, match, i, array ) { var name = match[1], filter = Expr.filters[ name ]; if ( filter ) { return filter( elem, i, match, array ); } else if ( name === "contains" ) { return (elem.textContent || elem.innerText || getText([ elem ]) || "").indexOf(match[3]) >= 0; } else if ( name === "not" ) { var not = match[3]; for ( var j = 0, l = not.length; j < l; j++ ) { if ( not[j] === elem ) { return false; } } return true; } else { Sizzle.error( name ); } }, CHILD: function( elem, match ) { var first, last, doneName, parent, cache, count, diff, type = match[1], node = elem; switch ( type ) { case "only": case "first": while ( (node = node.previousSibling) ) { if ( node.nodeType === 1 ) { return false; } } if ( type === "first" ) { return true; } node = elem; case "last": while ( (node = node.nextSibling) ) { if ( node.nodeType === 1 ) { return false; } } return true; case "nth": first = match[2]; last = match[3]; if ( first === 1 && last === 0 ) { return true; } doneName = match[0]; parent = elem.parentNode; if ( parent && (parent[ expando ] !== doneName || !elem.nodeIndex) ) { count = 0; for ( node = parent.firstChild; node; node = node.nextSibling ) { if ( node.nodeType === 1 ) { node.nodeIndex = ++count; } } parent[ expando ] = doneName; } diff = elem.nodeIndex - last; if ( first === 0 ) { return diff === 0; } else { return ( diff % first === 0 && diff / first >= 0 ); } } }, ID: function( elem, match ) { return elem.nodeType === 1 && elem.getAttribute("id") === match; }, TAG: function( elem, match ) { return (match === "*" && elem.nodeType === 1) || !!elem.nodeName && elem.nodeName.toLowerCase() === match; }, CLASS: function( elem, match ) { return (" " + (elem.className || elem.getAttribute("class")) + " ") .indexOf( match ) > -1; }, ATTR: function( elem, match ) { var name = match[1], result = Sizzle.attr ? Sizzle.attr( elem, name ) : Expr.attrHandle[ name ] ? Expr.attrHandle[ name ]( elem ) : elem[ name ] != null ? elem[ name ] : elem.getAttribute( name ), value = result + "", type = match[2], check = match[4]; return result == null ? type === "!=" : !type && Sizzle.attr ? result != null : type === "=" ? value === check : type === "*=" ? value.indexOf(check) >= 0 : type === "~=" ? (" " + value + " ").indexOf(check) >= 0 : !check ? value && result !== false : type === "!=" ? value !== check : type === "^=" ? value.indexOf(check) === 0 : type === "$=" ? value.substr(value.length - check.length) === check : type === "|=" ? value === check || value.substr(0, check.length + 1) === check + "-" : false; }, POS: function( elem, match, i, array ) { var name = match[2], filter = Expr.setFilters[ name ]; if ( filter ) { return filter( elem, i, match, array ); } } } }; var origPOS = Expr.match.POS, fescape = function(all, num){ return "\\" + (num - 0 + 1); }; for ( var type in Expr.match ) { Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) ); Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) ); } var makeArray = function( array, results ) { array = Array.prototype.slice.call( array, 0 ); if ( results ) { results.push.apply( results, array ); return results; } return array; }; // Perform a simple check to determine if the browser is capable of // converting a NodeList to an array using builtin methods. // Also verifies that the returned array holds DOM nodes // (which is not the case in the Blackberry browser) try { Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType; // Provide a fallback method if it does not work } catch( e ) { makeArray = function( array, results ) { var i = 0, ret = results || []; if ( toString.call(array) === "[object Array]" ) { Array.prototype.push.apply( ret, array ); } else { if ( typeof array.length === "number" ) { for ( var l = array.length; i < l; i++ ) { ret.push( array[i] ); } } else { for ( ; array[i]; i++ ) { ret.push( array[i] ); } } } return ret; }; } var sortOrder, siblingCheck; if ( document.documentElement.compareDocumentPosition ) { sortOrder = function( a, b ) { if ( a === b ) { hasDuplicate = true; return 0; } if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) { return a.compareDocumentPosition ? -1 : 1; } return a.compareDocumentPosition(b) & 4 ? -1 : 1; }; } else { sortOrder = function( a, b ) { // The nodes are identical, we can exit early if ( a === b ) { hasDuplicate = true; return 0; // Fallback to using sourceIndex (in IE) if it's available on both nodes } else if ( a.sourceIndex && b.sourceIndex ) { return a.sourceIndex - b.sourceIndex; } var al, bl, ap = [], bp = [], aup = a.parentNode, bup = b.parentNode, cur = aup; // If the nodes are siblings (or identical) we can do a quick check if ( aup === bup ) { return siblingCheck( a, b ); // If no parents were found then the nodes are disconnected } else if ( !aup ) { return -1; } else if ( !bup ) { return 1; } // Otherwise they're somewhere else in the tree so we need // to build up a full list of the parentNodes for comparison while ( cur ) { ap.unshift( cur ); cur = cur.parentNode; } cur = bup; while ( cur ) { bp.unshift( cur ); cur = cur.parentNode; } al = ap.length; bl = bp.length; // Start walking down the tree looking for a discrepancy for ( var i = 0; i < al && i < bl; i++ ) { if ( ap[i] !== bp[i] ) { return siblingCheck( ap[i], bp[i] ); } } // We ended someplace up the tree so do a sibling check return i === al ? siblingCheck( a, bp[i], -1 ) : siblingCheck( ap[i], b, 1 ); }; siblingCheck = function( a, b, ret ) { if ( a === b ) { return ret; } var cur = a.nextSibling; while ( cur ) { if ( cur === b ) { return -1; } cur = cur.nextSibling; } return 1; }; } // Check to see if the browser returns elements by name when // querying by getElementById (and provide a workaround) (function(){ // We're going to inject a fake input element with a specified name var form = document.createElement("div"), id = "script" + (new Date()).getTime(), root = document.documentElement; form.innerHTML = ""; // Inject it into the root element, check its status, and remove it quickly root.insertBefore( form, root.firstChild ); // The workaround has to do additional checks after a getElementById // Which slows things down for other browsers (hence the branching) if ( document.getElementById( id ) ) { Expr.find.ID = function( match, context, isXML ) { if ( typeof context.getElementById !== "undefined" && !isXML ) { var m = context.getElementById(match[1]); return m ? m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? [m] : undefined : []; } }; Expr.filter.ID = function( elem, match ) { var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); return elem.nodeType === 1 && node && node.nodeValue === match; }; } root.removeChild( form ); // release memory in IE root = form = null; })(); (function(){ // Check to see if the browser returns only elements // when doing getElementsByTagName("*") // Create a fake element var div = document.createElement("div"); div.appendChild( document.createComment("") ); // Make sure no comments are found if ( div.getElementsByTagName("*").length > 0 ) { Expr.find.TAG = function( match, context ) { var results = context.getElementsByTagName( match[1] ); // Filter out possible comments if ( match[1] === "*" ) { var tmp = []; for ( var i = 0; results[i]; i++ ) { if ( results[i].nodeType === 1 ) { tmp.push( results[i] ); } } results = tmp; } return results; }; } // Check to see if an attribute returns normalized href attributes div.innerHTML = ""; if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" && div.firstChild.getAttribute("href") !== "#" ) { Expr.attrHandle.href = function( elem ) { return elem.getAttribute( "href", 2 ); }; } // release memory in IE div = null; })(); if ( document.querySelectorAll ) { (function(){ var oldSizzle = Sizzle, div = document.createElement("div"), id = "__sizzle__"; div.innerHTML = "

    "; // Safari can't handle uppercase or unicode characters when // in quirks mode. if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { return; } Sizzle = function( query, context, extra, seed ) { context = context || document; // Only use querySelectorAll on non-XML documents // (ID selectors don't work in non-HTML documents) if ( !seed && !Sizzle.isXML(context) ) { // See if we find a selector to speed up var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query ); if ( match && (context.nodeType === 1 || context.nodeType === 9) ) { // Speed-up: Sizzle("TAG") if ( match[1] ) { return makeArray( context.getElementsByTagName( query ), extra ); // Speed-up: Sizzle(".CLASS") } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) { return makeArray( context.getElementsByClassName( match[2] ), extra ); } } if ( context.nodeType === 9 ) { // Speed-up: Sizzle("body") // The body element only exists once, optimize finding it if ( query === "body" && context.body ) { return makeArray( [ context.body ], extra ); // Speed-up: Sizzle("#ID") } else if ( match && match[3] ) { var elem = context.getElementById( match[3] ); // Check parentNode to catch when Blackberry 4.6 returns // nodes that are no longer in the document #6963 if ( elem && elem.parentNode ) { // Handle the case where IE and Opera return items // by name instead of ID if ( elem.id === match[3] ) { return makeArray( [ elem ], extra ); } } else { return makeArray( [], extra ); } } try { return makeArray( context.querySelectorAll(query), extra ); } catch(qsaError) {} // qSA works strangely on Element-rooted queries // We can work around this by specifying an extra ID on the root // and working up from there (Thanks to Andrew Dupont for the technique) // IE 8 doesn't work on object elements } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { var oldContext = context, old = context.getAttribute( "id" ), nid = old || id, hasParent = context.parentNode, relativeHierarchySelector = /^\s*[+~]/.test( query ); if ( !old ) { context.setAttribute( "id", nid ); } else { nid = nid.replace( /'/g, "\\$&" ); } if ( relativeHierarchySelector && hasParent ) { context = context.parentNode; } try { if ( !relativeHierarchySelector || hasParent ) { return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra ); } } catch(pseudoError) { } finally { if ( !old ) { oldContext.removeAttribute( "id" ); } } } } return oldSizzle(query, context, extra, seed); }; for ( var prop in oldSizzle ) { Sizzle[ prop ] = oldSizzle[ prop ]; } // release memory in IE div = null; })(); } (function(){ var html = document.documentElement, matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector; if ( matches ) { // Check to see if it's possible to do matchesSelector // on a disconnected node (IE 9 fails this) var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ), pseudoWorks = false; try { // This should fail with an exception // Gecko does not error, returns false instead matches.call( document.documentElement, "[test!='']:sizzle" ); } catch( pseudoError ) { pseudoWorks = true; } Sizzle.matchesSelector = function( node, expr ) { // Make sure that attribute selectors are quoted expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']"); if ( !Sizzle.isXML( node ) ) { try { if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) { var ret = matches.call( node, expr ); // IE 9's matchesSelector returns false on disconnected nodes if ( ret || !disconnectedMatch || // As well, disconnected nodes are said to be in a document // fragment in IE 9, so check for that node.document && node.document.nodeType !== 11 ) { return ret; } } } catch(e) {} } return Sizzle(expr, null, null, [node]).length > 0; }; } })(); (function(){ var div = document.createElement("div"); div.innerHTML = "
    "; // Opera can't find a second classname (in 9.6) // Also, make sure that getElementsByClassName actually exists if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) { return; } // Safari caches class attributes, doesn't catch changes (in 3.2) div.lastChild.className = "e"; if ( div.getElementsByClassName("e").length === 1 ) { return; } Expr.order.splice(1, 0, "CLASS"); Expr.find.CLASS = function( match, context, isXML ) { if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { return context.getElementsByClassName(match[1]); } }; // release memory in IE div = null; })(); function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { for ( var i = 0, l = checkSet.length; i < l; i++ ) { var elem = checkSet[i]; if ( elem ) { var match = false; elem = elem[dir]; while ( elem ) { if ( elem[ expando ] === doneName ) { match = checkSet[elem.sizset]; break; } if ( elem.nodeType === 1 && !isXML ){ elem[ expando ] = doneName; elem.sizset = i; } if ( elem.nodeName.toLowerCase() === cur ) { match = elem; break; } elem = elem[dir]; } checkSet[i] = match; } } } function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { for ( var i = 0, l = checkSet.length; i < l; i++ ) { var elem = checkSet[i]; if ( elem ) { var match = false; elem = elem[dir]; while ( elem ) { if ( elem[ expando ] === doneName ) { match = checkSet[elem.sizset]; break; } if ( elem.nodeType === 1 ) { if ( !isXML ) { elem[ expando ] = doneName; elem.sizset = i; } if ( typeof cur !== "string" ) { if ( elem === cur ) { match = true; break; } } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) { match = elem; break; } } elem = elem[dir]; } checkSet[i] = match; } } } if ( document.documentElement.contains ) { Sizzle.contains = function( a, b ) { return a !== b && (a.contains ? a.contains(b) : true); }; } else if ( document.documentElement.compareDocumentPosition ) { Sizzle.contains = function( a, b ) { return !!(a.compareDocumentPosition(b) & 16); }; } else { Sizzle.contains = function() { return false; }; } Sizzle.isXML = function( elem ) { // documentElement is verified for cases where it doesn't yet exist // (such as loading iframes in IE - #4833) var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement; return documentElement ? documentElement.nodeName !== "HTML" : false; }; var posProcess = function( selector, context, seed ) { var match, tmpSet = [], later = "", root = context.nodeType ? [context] : context; // Position selectors must be done after the filter // And so must :not(positional) so we move all PSEUDOs to the end while ( (match = Expr.match.PSEUDO.exec( selector )) ) { later += match[0]; selector = selector.replace( Expr.match.PSEUDO, "" ); } selector = Expr.relative[selector] ? selector + "*" : selector; for ( var i = 0, l = root.length; i < l; i++ ) { Sizzle( selector, root[i], tmpSet, seed ); } return Sizzle.filter( later, tmpSet ); }; // EXPOSE // Override sizzle attribute retrieval Sizzle.attr = jQuery.attr; Sizzle.selectors.attrMap = {}; jQuery.find = Sizzle; jQuery.expr = Sizzle.selectors; jQuery.expr[":"] = jQuery.expr.filters; jQuery.unique = Sizzle.uniqueSort; jQuery.text = Sizzle.getText; jQuery.isXMLDoc = Sizzle.isXML; jQuery.contains = Sizzle.contains; })(); var runtil = /Until$/, rparentsprev = /^(?:parents|prevUntil|prevAll)/, // Note: This RegExp should be improved, or likely pulled from Sizzle rmultiselector = /,/, isSimple = /^.[^:#\[\.,]*$/, slice = Array.prototype.slice, POS = jQuery.expr.match.POS, // methods guaranteed to produce a unique set when starting from a unique set guaranteedUnique = { children: true, contents: true, next: true, prev: true }; jQuery.fn.extend({ find: function( selector ) { var self = this, i, l; if ( typeof selector !== "string" ) { return jQuery( selector ).filter(function() { for ( i = 0, l = self.length; i < l; i++ ) { if ( jQuery.contains( self[ i ], this ) ) { return true; } } }); } var ret = this.pushStack( "", "find", selector ), length, n, r; for ( i = 0, l = this.length; i < l; i++ ) { length = ret.length; jQuery.find( selector, this[i], ret ); if ( i > 0 ) { // Make sure that the results are unique for ( n = length; n < ret.length; n++ ) { for ( r = 0; r < length; r++ ) { if ( ret[r] === ret[n] ) { ret.splice(n--, 1); break; } } } } } return ret; }, has: function( target ) { var targets = jQuery( target ); return this.filter(function() { for ( var i = 0, l = targets.length; i < l; i++ ) { if ( jQuery.contains( this, targets[i] ) ) { return true; } } }); }, not: function( selector ) { return this.pushStack( winnow(this, selector, false), "not", selector); }, filter: function( selector ) { return this.pushStack( winnow(this, selector, true), "filter", selector ); }, is: function( selector ) { return !!selector && ( typeof selector === "string" ? // If this is a positional selector, check membership in the returned set // so $("p:first").is("p:last") won't return true for a doc with two "p". POS.test( selector ) ? jQuery( selector, this.context ).index( this[0] ) >= 0 : jQuery.filter( selector, this ).length > 0 : this.filter( selector ).length > 0 ); }, closest: function( selectors, context ) { var ret = [], i, l, cur = this[0]; // Array (deprecated as of jQuery 1.7) if ( jQuery.isArray( selectors ) ) { var level = 1; while ( cur && cur.ownerDocument && cur !== context ) { for ( i = 0; i < selectors.length; i++ ) { if ( jQuery( cur ).is( selectors[ i ] ) ) { ret.push({ selector: selectors[ i ], elem: cur, level: level }); } } cur = cur.parentNode; level++; } return ret; } // String var pos = POS.test( selectors ) || typeof selectors !== "string" ? jQuery( selectors, context || this.context ) : 0; for ( i = 0, l = this.length; i < l; i++ ) { cur = this[i]; while ( cur ) { if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { ret.push( cur ); break; } else { cur = cur.parentNode; if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) { break; } } } } ret = ret.length > 1 ? jQuery.unique( ret ) : ret; return this.pushStack( ret, "closest", selectors ); }, // Determine the position of an element within // the matched set of elements index: function( elem ) { // No argument, return index in parent if ( !elem ) { return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1; } // index in selector if ( typeof elem === "string" ) { return jQuery.inArray( this[0], jQuery( elem ) ); } // Locate the position of the desired element return jQuery.inArray( // If it receives a jQuery object, the first element is used elem.jquery ? elem[0] : elem, this ); }, add: function( selector, context ) { var set = typeof selector === "string" ? jQuery( selector, context ) : jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), all = jQuery.merge( this.get(), set ); return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? all : jQuery.unique( all ) ); }, andSelf: function() { return this.add( this.prevObject ); } }); // A painfully simple check to see if an element is disconnected // from a document (should be improved, where feasible). function isDisconnected( node ) { return !node || !node.parentNode || node.parentNode.nodeType === 11; } jQuery.each({ parent: function( elem ) { var parent = elem.parentNode; return parent && parent.nodeType !== 11 ? parent : null; }, parents: function( elem ) { return jQuery.dir( elem, "parentNode" ); }, parentsUntil: function( elem, i, until ) { return jQuery.dir( elem, "parentNode", until ); }, next: function( elem ) { return jQuery.nth( elem, 2, "nextSibling" ); }, prev: function( elem ) { return jQuery.nth( elem, 2, "previousSibling" ); }, nextAll: function( elem ) { return jQuery.dir( elem, "nextSibling" ); }, prevAll: function( elem ) { return jQuery.dir( elem, "previousSibling" ); }, nextUntil: function( elem, i, until ) { return jQuery.dir( elem, "nextSibling", until ); }, prevUntil: function( elem, i, until ) { return jQuery.dir( elem, "previousSibling", until ); }, siblings: function( elem ) { return jQuery.sibling( elem.parentNode.firstChild, elem ); }, children: function( elem ) { return jQuery.sibling( elem.firstChild ); }, contents: function( elem ) { return jQuery.nodeName( elem, "iframe" ) ? elem.contentDocument || elem.contentWindow.document : jQuery.makeArray( elem.childNodes ); } }, function( name, fn ) { jQuery.fn[ name ] = function( until, selector ) { var ret = jQuery.map( this, fn, until ); if ( !runtil.test( name ) ) { selector = until; } if ( selector && typeof selector === "string" ) { ret = jQuery.filter( selector, ret ); } ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { ret = ret.reverse(); } return this.pushStack( ret, name, slice.call( arguments ).join(",") ); }; }); jQuery.extend({ filter: function( expr, elems, not ) { if ( not ) { expr = ":not(" + expr + ")"; } return elems.length === 1 ? jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : jQuery.find.matches(expr, elems); }, dir: function( elem, dir, until ) { var matched = [], cur = elem[ dir ]; while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { if ( cur.nodeType === 1 ) { matched.push( cur ); } cur = cur[dir]; } return matched; }, nth: function( cur, result, dir, elem ) { result = result || 1; var num = 0; for ( ; cur; cur = cur[dir] ) { if ( cur.nodeType === 1 && ++num === result ) { break; } } return cur; }, sibling: function( n, elem ) { var r = []; for ( ; n; n = n.nextSibling ) { if ( n.nodeType === 1 && n !== elem ) { r.push( n ); } } return r; } }); // Implement the identical functionality for filter and not function winnow( elements, qualifier, keep ) { // Can't pass null or undefined to indexOf in Firefox 4 // Set to 0 to skip string check qualifier = qualifier || 0; if ( jQuery.isFunction( qualifier ) ) { return jQuery.grep(elements, function( elem, i ) { var retVal = !!qualifier.call( elem, i, elem ); return retVal === keep; }); } else if ( qualifier.nodeType ) { return jQuery.grep(elements, function( elem, i ) { return ( elem === qualifier ) === keep; }); } else if ( typeof qualifier === "string" ) { var filtered = jQuery.grep(elements, function( elem ) { return elem.nodeType === 1; }); if ( isSimple.test( qualifier ) ) { return jQuery.filter(qualifier, filtered, !keep); } else { qualifier = jQuery.filter( qualifier, filtered ); } } return jQuery.grep(elements, function( elem, i ) { return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep; }); } function createSafeFragment( document ) { var list = nodeNames.split( "|" ), safeFrag = document.createDocumentFragment(); if ( safeFrag.createElement ) { while ( list.length ) { safeFrag.createElement( list.pop() ); } } return safeFrag; } var nodeNames = "abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|" + "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, rleadingWhitespace = /^\s+/, rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, rtagName = /<([\w:]+)/, rtbody = /", "" ], legend: [ 1, "
    ", "
    " ], thead: [ 1, "", "
    " ], tr: [ 2, "", "
    " ], td: [ 3, "", "
    " ], col: [ 2, "", "
    " ], area: [ 1, "", "" ], _default: [ 0, "", "" ] }, safeFragment = createSafeFragment( document ); wrapMap.optgroup = wrapMap.option; wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; wrapMap.th = wrapMap.td; // IE can't serialize and "); }; if (jQueryTmplVersion > 0) { jQuery['tmpl']['tag']['ko_code'] = { open: "__.push($1 || '');" }; jQuery['tmpl']['tag']['ko_with'] = { open: "with($1) {", close: "} " }; } }; ko.jqueryTmplTemplateEngine.prototype = new ko.templateEngine(); // Use this one by default *only if jquery.tmpl is referenced* var jqueryTmplTemplateEngineInstance = new ko.jqueryTmplTemplateEngine(); if (jqueryTmplTemplateEngineInstance.jQueryTmplVersion > 0) ko.setTemplateEngine(jqueryTmplTemplateEngineInstance); ko.exportSymbol('jqueryTmplTemplateEngine', ko.jqueryTmplTemplateEngine); })(); }); })(window,document,navigator); ================================================ FILE: packages/knockoutjs.2.1.0/Content/Scripts/knockout-2.1.0.js ================================================ // Knockout JavaScript library v2.1.0 // (c) Steven Sanderson - http://knockoutjs.com/ // License: MIT (http://www.opensource.org/licenses/mit-license.php) (function(window,document,navigator,undefined){ function m(w){throw w;}var n=void 0,p=!0,s=null,t=!1;function A(w){return function(){return w}};function E(w){function B(b,c,d){d&&c!==a.k.r(b)&&a.k.S(b,c);c!==a.k.r(b)&&a.a.va(b,"change")}var a="undefined"!==typeof w?w:{};a.b=function(b,c){for(var d=b.split("."),f=a,g=0;g",c[0];);return 4a.a.j(c,b[e])&&c.push(b[e]);return c},T:function(a,b){for(var a=a||[],c=[], e=0,f=a.length;ea.length?t:a.substring(0,b.length)===b},eb:function(a,b){for(var c="return ("+a+")",e=0;e",""]||!d.indexOf("",""]||(!d.indexOf("",""]||[0,"",""];b="ignored
    "+d[1]+b+d[2]+"
    ";for("function"==typeof window.innerShiv?c.appendChild(window.innerShiv(b)):c.innerHTML=b;d[0]--;)c=c.lastChild;c=a.a.L(c.lastChild.childNodes)}return c}; a.a.Y=function(b,c){a.a.ga(b);if(c!==s&&c!==n)if("string"!=typeof c&&(c=c.toString()),"undefined"!=typeof jQuery)jQuery(b).html(c);else for(var d=a.a.pa(c),f=0;f"},Va:function(a,b){var c=d[a];c===n&&m(Error("Couldn't find any memo with ID "+a+". Perhaps it's already been unmemoized."));try{return c.apply(s,b||[]),p}finally{delete d[a]}},Wa:function(b,d){var e=[];c(b,e);for(var h=0,j=e.length;hc;c++)b=b();return b})};a.toJSON=function(b,c,e){b=a.Ta(b);return a.a.sa(b,c,e)}})();a.b("toJS",a.Ta);a.b("toJSON",a.toJSON);(function(){a.k={r:function(b){switch(a.a.o(b)){case "option":return b.__ko__hasDomDataOptionValue__===p?a.a.f.get(b,a.c.options.oa):b.getAttribute("value");case "select":return 0<=b.selectedIndex?a.k.r(b.options[b.selectedIndex]):n;default:return b.value}},S:function(b,c){switch(a.a.o(b)){case "option":switch(typeof c){case "string":a.a.f.set(b,a.c.options.oa, n);"__ko__hasDomDataOptionValue__"in b&&delete b.__ko__hasDomDataOptionValue__;b.value=c;break;default:a.a.f.set(b,a.c.options.oa,c),b.__ko__hasDomDataOptionValue__=p,b.value="number"===typeof c?c:""}break;case "select":for(var d=b.options.length-1;0<=d;d--)if(a.k.r(b.options[d])==c){b.selectedIndex=d;break}break;default:if(c===s||c===n)c="";b.value=c}}}})();a.b("selectExtensions",a.k);a.b("selectExtensions.readValue",a.k.r);a.b("selectExtensions.writeValue",a.k.S);a.g=function(){function b(a,b){for(var d= s;a!=d;)d=a,a=a.replace(c,function(a,c){return b[c]});return a}var c=/\@ko_token_(\d+)\@/g,d=/^[\_$a-z][\_$a-z0-9]*(\[.*?\])*(\.[\_$a-z][\_$a-z0-9]*(\[.*?\])*)*$/i,f=["true","false"];return{D:[],W:function(c){var e=a.a.w(c);if(3>e.length)return[];"{"===e.charAt(0)&&(e=e.substring(1,e.length-1));for(var c=[],d=s,f,k=0;k$/: /^\s*ko\s+(.*\:.*)\s*$/,h=g?/^<\!--\s*\/ko\s*--\>$/:/^\s*\/ko\s*$/,j={ul:p,ol:p};a.e={C:{},childNodes:function(a){return b(a)?d(a):a.childNodes},ha:function(c){if(b(c))for(var c=a.e.childNodes(c),e=0,d=c.length;e"),t))}};a.c.uniqueName.gb=0;a.c.checked={init:function(b,c,d){a.a.n(b,"click",function(){var f;if("checkbox"==b.type)f=b.checked;else if("radio"==b.type&&b.checked)f=b.value;else return;var g=c();"checkbox"==b.type&&a.a.d(g)instanceof Array?(f=a.a.j(a.a.d(g),b.value), b.checked&&0>f?g.push(b.value):!b.checked&&0<=f&&g.splice(f,1)):a.g.$(g,d,"checked",f,p)});"radio"==b.type&&!b.name&&a.c.uniqueName.init(b,A(p))},update:function(b,c){var d=a.a.d(c());"checkbox"==b.type?b.checked=d instanceof Array?0<=a.a.j(d,b.value):d:"radio"==b.type&&(b.checked=b.value==d)}};var F={"class":"className","for":"htmlFor"};a.c.attr={update:function(b,c){var d=a.a.d(c())||{},f;for(f in d)if("string"==typeof f){var g=a.a.d(d[f]),e=g===t||g===s||g===n;e&&b.removeAttribute(f);8>=a.a.ja&& f in F?(f=F[f],e?b.removeAttribute(f):b[f]=g):e||b.setAttribute(f,g.toString())}}};a.c.hasfocus={init:function(b,c,d){function f(b){var e=c();a.g.$(e,d,"hasfocus",b,p)}a.a.n(b,"focus",function(){f(p)});a.a.n(b,"focusin",function(){f(p)});a.a.n(b,"blur",function(){f(t)});a.a.n(b,"focusout",function(){f(t)})},update:function(b,c){var d=a.a.d(c());d?b.focus():b.blur();a.a.va(b,d?"focusin":"focusout")}};a.c["with"]={p:function(b){return function(){var c=b();return{"if":c,data:c,templateEngine:a.q.K}}}, init:function(b,c){return a.c.template.init(b,a.c["with"].p(c))},update:function(b,c,d,f,g){return a.c.template.update(b,a.c["with"].p(c),d,f,g)}};a.g.D["with"]=t;a.e.C["with"]=p;a.c["if"]={p:function(b){return function(){return{"if":b(),templateEngine:a.q.K}}},init:function(b,c){return a.c.template.init(b,a.c["if"].p(c))},update:function(b,c,d,f,g){return a.c.template.update(b,a.c["if"].p(c),d,f,g)}};a.g.D["if"]=t;a.e.C["if"]=p;a.c.ifnot={p:function(b){return function(){return{ifnot:b(),templateEngine:a.q.K}}}, init:function(b,c){return a.c.template.init(b,a.c.ifnot.p(c))},update:function(b,c,d,f,g){return a.c.template.update(b,a.c.ifnot.p(c),d,f,g)}};a.g.D.ifnot=t;a.e.C.ifnot=p;a.c.foreach={p:function(b){return function(){var c=a.a.d(b());return!c||"number"==typeof c.length?{foreach:c,templateEngine:a.q.K}:{foreach:c.data,includeDestroyed:c.includeDestroyed,afterAdd:c.afterAdd,beforeRemove:c.beforeRemove,afterRender:c.afterRender,templateEngine:a.q.K}}},init:function(b,c){return a.c.template.init(b,a.c.foreach.p(c))}, update:function(b,c,d,f,g){return a.c.template.update(b,a.c.foreach.p(c),d,f,g)}};a.g.D.foreach=t;a.e.C.foreach=p;a.t=function(){};a.t.prototype.renderTemplateSource=function(){m(Error("Override renderTemplateSource"))};a.t.prototype.createJavaScriptEvaluatorBlock=function(){m(Error("Override createJavaScriptEvaluatorBlock"))};a.t.prototype.makeTemplateSource=function(b,c){if("string"==typeof b){var c=c||document,d=c.getElementById(b);d||m(Error("Cannot find template with ID "+b));return new a.l.i(d)}if(1== b.nodeType||8==b.nodeType)return new a.l.M(b);m(Error("Unknown template type: "+b))};a.t.prototype.renderTemplate=function(a,c,d,f){return this.renderTemplateSource(this.makeTemplateSource(a,f),c,d)};a.t.prototype.isTemplateRewritten=function(a,c){return this.allowTemplateRewriting===t||!(c&&c!=document)&&this.V&&this.V[a]?p:this.makeTemplateSource(a,c).data("isRewritten")};a.t.prototype.rewriteTemplate=function(a,c,d){var f=this.makeTemplateSource(a,d),c=c(f.text());f.text(c);f.data("isRewritten", p);!(d&&d!=document)&&"string"==typeof a&&(this.V=this.V||{},this.V[a]=p)};a.b("templateEngine",a.t);a.Z=function(){function b(b,c,e){for(var b=a.g.W(b),d=a.g.D,j=0;j/g;return{mb:function(b,c,e){c.isTemplateRewritten(b,e)||c.rewriteTemplate(b,function(b){return a.Z.zb(b,c)},e)},zb:function(a,g){return a.replace(c,function(a,c,d,f,i,l,q){return b(q,c,g)}).replace(d,function(a,c){return b(c,"<\!-- ko --\>",g)})},Za:function(b){return a.s.na(function(c, e){c.nextSibling&&a.ya(c.nextSibling,b,e)})}}}();a.b("templateRewriting",a.Z);a.b("templateRewriting.applyMemoizedBindingsToNextSibling",a.Z.Za);(function(){a.l={};a.l.i=function(a){this.i=a};a.l.i.prototype.text=function(){var b=a.a.o(this.i),b="script"===b?"text":"textarea"===b?"value":"innerHTML";if(0==arguments.length)return this.i[b];var c=arguments[0];"innerHTML"===b?a.a.Y(this.i,c):this.i[b]=c};a.l.i.prototype.data=function(b){if(1===arguments.length)return a.a.f.get(this.i,"templateSourceData_"+ b);a.a.f.set(this.i,"templateSourceData_"+b,arguments[1])};a.l.M=function(a){this.i=a};a.l.M.prototype=new a.l.i;a.l.M.prototype.text=function(){if(0==arguments.length){var b=a.a.f.get(this.i,"__ko_anon_template__")||{};b.ua===n&&b.da&&(b.ua=b.da.innerHTML);return b.ua}a.a.f.set(this.i,"__ko_anon_template__",{ua:arguments[0]})};a.l.i.prototype.nodes=function(){if(0==arguments.length)return(a.a.f.get(this.i,"__ko_anon_template__")||{}).da;a.a.f.set(this.i,"__ko_anon_template__",{da:arguments[0]})}; a.b("templateSources",a.l);a.b("templateSources.domElement",a.l.i);a.b("templateSources.anonymousTemplate",a.l.M)})();(function(){function b(b,c,d){for(var f,c=a.e.nextSibling(c);b&&(f=b)!==c;)b=a.e.nextSibling(f),(1===f.nodeType||8===f.nodeType)&&d(f)}function c(c,d){if(c.length){var f=c[0],g=c[c.length-1];b(f,g,function(b){a.xa(d,b)});b(f,g,function(b){a.s.Wa(b,[d])})}}function d(a){return a.nodeType?a:0a.a.ja)&&b.nodes?b.nodes():s; if(c)return a.a.L(c.cloneNode(p).childNodes);b=b.text();return a.a.pa(b)};a.q.K=new a.q;a.ra(a.q.K);a.b("nativeTemplateEngine",a.q);(function(){a.ma=function(){var a=this.vb=function(){if("undefined"==typeof jQuery||!jQuery.tmpl)return 0;try{if(0<=jQuery.tmpl.tag.tmpl.open.toString().indexOf("__"))return 2}catch(a){}return 1}();this.renderTemplateSource=function(b,f,g){g=g||{};2>a&&m(Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later."));var e=b.data("precompiled"); e||(e=b.text()||"",e=jQuery.template(s,"{{ko_with $item.koBindingContext}}"+e+"{{/ko_with}}"),b.data("precompiled",e));b=[f.$data];f=jQuery.extend({koBindingContext:f},g.templateOptions);f=jQuery.tmpl(e,b,f);f.appendTo(document.createElement("div"));jQuery.fragments={};return f};this.createJavaScriptEvaluatorBlock=function(a){return"{{ko_code ((function() { return "+a+" })()) }}"};this.addTemplate=function(a,b){document.write("